:root{--ink:#282d2c;--muted:#626965;--paper:#f8f8f6;--line:#d6dad6;--accent:#3e514b;--maxw:1240px;--sp:clamp(20px,4vw,44px)}
*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);font:clamp(15px,.4vw + 14px,17px)/1.65 Arial,sans-serif;-webkit-text-size-adjust:100%}
a{color:inherit;text-underline-offset:5px}a:hover{color:#65766e}
button,input,select,textarea{font:inherit;border-radius:0}
button,.button{cursor:pointer;display:inline-block;background:var(--ink);color:white;padding:clamp(11px,1.6vw,13px) clamp(18px,2.6vw,25px);border:1px solid var(--ink);text-decoration:none}
button:hover,.button:hover{background:var(--accent);color:white}
input,select,textarea{width:100%;padding:clamp(11px,1.6vw,13px);background:white;border:1px solid #a9afaa;color:var(--ink)}
label{display:block;font-size:14px}
.wrap{width:min(var(--maxw),100% - 2*clamp(18px,4vw,40px));margin-inline:auto}
header{padding:clamp(18px,3vw,26px) 0;border-bottom:1px solid var(--line)}
header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;flex-wrap:wrap}
.brand{font-family:Georgia,serif;font-size:clamp(20px,2.4vw,25px);line-height:1.05;text-decoration:none}
.brand small{display:block;font:11px/1.5 Arial,sans-serif;letter-spacing:2.8px;margin-top:8px}
nav{display:flex;gap:clamp(16px,2.4vw,30px);align-items:center;flex-wrap:wrap}
nav a{font-size:14px;text-decoration:none}
.eyebrow{font-size:12px;letter-spacing:2px;text-transform:uppercase;color:var(--muted)}
h1,h2,h3{font-family:Georgia,serif;font-weight:400;line-height:1.1;overflow-wrap:break-word}
h1{font-size:clamp(2.1rem,7.5vw,4.75rem);margin:17px 0 26px;letter-spacing:-1.5px}
h2{font-size:clamp(1.6rem,4vw,2.7rem);margin:10px 0 23px}
h3{font-size:clamp(1.15rem,2vw,1.6rem);margin:14px 0}
.intro{max-width:38rem;font-size:clamp(1rem,1.2vw,1.125rem);color:var(--muted)}
.hero{padding:clamp(36px,7vw,58px) 0 clamp(24px,4vw,36px)}
.hero-grid{display:grid;grid-template-columns:minmax(0,1.04fr) minmax(0,1fr);gap:clamp(28px,5vw,70px);align-items:center}
.hero figure{margin:0}
.hero img{width:100%;height:clamp(240px,32vw,365px);object-fit:cover;display:block;filter:saturate(.6)}
figcaption{font-size:12px;color:var(--muted);padding-top:8px}
.search{margin-top:28px;display:grid;grid-template-columns:minmax(0,1.2fr) auto;gap:12px;align-items:end}
.search button{height:54px}
.section{padding:clamp(32px,6vw,45px) 0;border-top:1px solid var(--line)}
.section-head{display:flex;justify-content:space-between;gap:20px;align-items:end;flex-wrap:wrap;margin-bottom:clamp(18px,3vw,28px)}
.categories{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,150px),1fr));gap:12px}
.categories a{display:block;background:white;border:1px solid var(--line);padding:18px 16px;text-decoration:none;font-family:Georgia,serif;font-size:19px;transition:border-color .15s ease}
.categories a:hover{border-color:var(--accent)}
.categories span{display:block;font:12px/1 Arial,sans-serif;color:var(--muted);margin-top:10px;letter-spacing:1px}
.grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,250px),1fr));gap:clamp(16px,2.4vw,28px)}
.carousel{display:grid;grid-auto-flow:column;grid-auto-columns:min(78%,300px);gap:clamp(16px,2.4vw,28px);overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:8px;scrollbar-width:thin}
.carousel .card{scroll-snap-align:start}
.card{background:white;border:1px solid var(--line);padding:clamp(18px,2.4vw,24px);display:flex;flex-direction:column;gap:10px}
.card p{margin:0;color:var(--muted);font-size:15px;flex-grow:1}
.card .meta{font-size:14px;color:var(--ink)}
.card .link{font-size:14px}
.ribbon{font-size:12px;letter-spacing:1.6px;text-transform:uppercase;color:var(--muted)}
.carousel-controls button{background:none;color:var(--ink);border:1px solid var(--line);padding:10px 16px;font-size:16px}
.carousel-controls button:hover{background:var(--ink);color:white;border-color:var(--ink)}
.columns{display:grid;grid-template-columns:minmax(0,2fr) minmax(0,1fr);gap:clamp(28px,5vw,70px);align-items:start}
.columns h2{font-size:clamp(1.3rem,2.6vw,2rem)}
.contact{background:white;border:1px solid var(--line);padding:clamp(18px,3vw,28px)}
.soft{background:#f1f2ee}
.notice{font-size:13.5px;color:var(--muted)}
.meta{font-size:13.5px;color:var(--muted)}
.breadcrumb{font-size:13.5px;color:var(--muted);margin-bottom:26px}
.breadcrumb a{color:var(--muted)}
.facts{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,130px),1fr));gap:15px;margin:24px 0}
.facts div{border-top:1px solid var(--line);padding-top:10px}
.facts dt{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}
.facts dd{margin:6px 0 0;font-size:15px}
.reading{max-width:46rem}
.reading p{color:#3c413f}
table{width:100%;border-collapse:collapse;font-size:15px}
th,td{text-align:left;padding:10px 12px 10px 0;border-bottom:1px solid var(--line);vertical-align:top}
th{font-size:12px;letter-spacing:1.5px;text-transform:uppercase;color:var(--muted)}
details{border-top:1px solid var(--line);padding:14px 0}
summary{cursor:pointer;font-family:Georgia,serif;font-size:18px}
details p{color:#3c413f;margin:10px 0 0}
.chips{display:flex;gap:10px;overflow-x:auto;padding:4px 2px 8px;scrollbar-width:none;-webkit-overflow-scrolling:touch;grid-column:1/-1}
.chips::-webkit-scrollbar{display:none}
.chip{flex:0 0 auto;display:inline-flex;align-items:baseline;gap:8px;background:white;border:1px solid var(--line);padding:9px 16px;text-decoration:none;font-size:14.5px;white-space:nowrap;color:var(--ink)}
.chip span{font-size:11.5px;color:var(--muted);letter-spacing:1px}
.chip:hover{border-color:var(--accent)}
.chip.now{background:var(--ink);color:white;border-color:var(--ink)}
.chip.now span{color:#c9cfc9}
.skip{position:absolute;left:-9999px}
.skip:focus{position:static}
#filters.search{grid-template-columns:repeat(auto-fit,minmax(min(100%,160px),1fr))}
#filters.search button{height:54px}
#filters .chips{margin-top:6px}
footer{border-top:1px solid var(--line);margin-top:40px;padding:clamp(28px,5vw,40px) 0}
footer .wrap{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,220px),1fr));gap:24px;align-items:start}
footer p{font-size:13.5px;color:var(--muted);margin:10px 0 0}
footer .brand{font-size:20px}
footer .wrap>div:last-child{justify-self:end}
.request-form{display:grid;gap:20px;margin-top:30px;max-width:36rem}
.request-form button{justify-self:start}
.listing-photo{display:block;width:100%;height:auto;max-height:480px;object-fit:cover;object-position:center 25%;margin-bottom:10px}
.hero figure{margin:0 0 24px}
.hero img{object-position:center 25%}
hr{border:0;border-top:1px solid #bdc6bf;margin:25px 0}
.contact a{overflow-wrap:anywhere}
.card h3{overflow-wrap:anywhere}
.quote-fields{display:grid;gap:20px}
.quote-fields label:last-child{font-size:14px}
@media(max-width:900px){
 .hero-grid{grid-template-columns:1fr;gap:32px}
 .columns{grid-template-columns:1fr;gap:28px}
 footer .wrap>div:last-child{justify-self:start}
}
@media(max-width:600px){
 .search{grid-template-columns:1fr}
 .search button{width:100%}
 #filters.search{grid-template-columns:1fr 1fr}
 #filters.search label:first-child{grid-template-columns:1fr;grid-column:1/-1}
 #filters .chips{grid-column:1/-1}
 .reading table{font-size:14px}
 .facts{gap:15px}
 .carousel-controls{white-space:nowrap}
 nav a{min-height:30px;display:inline-flex;align-items:center}
 .section-head{align-items:start;flex-direction:column;gap:12px}
}
@media(max-width:450px){
 #filters.search{grid-template-columns:1fr}
 .categories{grid-template-columns:repeat(auto-fill,minmax(min(100%,130px),1fr))}
}
