@font-face { font-family:'TC Volume'; src:url('/assets/fonts/TCVolume-Regular.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'TC Volume'; src:url('/assets/fonts/TCVolume-Italic.woff2') format('woff2'); font-style:italic; font-weight:400; font-display:swap; }
@font-face { font-family:'TC Volume Sans'; src:url('/assets/fonts/TCVolumeSans-Regular.woff2') format('woff2'); font-style:normal; font-weight:400; font-display:swap; }
@font-face { font-family:'Libre Baskerville'; src:url('/assets/fonts/LibreBaskerville-Italic.woff2') format('woff2'); font-style:italic; font-weight:400 700; font-display:swap; }
:root { --paper:#fffdf8; --surface:#f7f1e7; --ink:#292823; --muted:#777064; --line:#ddd3c4; --orange:#d96f19; --orange-dark:#a34f10; --orange-soft:#f2e0cd; --button-cream:#fff9ef; --button-ink:#292823; --home-title-size:clamp(38.72px,4.598vw,60.5px); color-scheme:light; }
:root[data-theme='dark'] { --paper:#24282b; --surface:#303539; --ink:#ece8df; --muted:#b8b2a8; --line:#4a5054; --orange:#f1974f; --orange-dark:#f2a263; --orange-soft:#543b2a; color-scheme:dark; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--paper); color:var(--ink); font-family:'TC Volume',Georgia,serif; }
img { max-width:100%; height:auto; }
a { color:inherit; }
a:focus-visible,button:focus-visible { outline:3px solid var(--orange); outline-offset:4px; }
.skip-link { position:absolute; z-index:20; left:12px; top:-100px; padding:10px 16px; background:var(--ink); color:white; }
.skip-link:focus { top:12px; }
.section-shell { width:min(1180px,calc(100% - 48px)); margin-inline:auto; }
.site-header { position:sticky; top:0; z-index:10; border-bottom:1px solid var(--line); background:var(--paper); }
.header-inner { width:min(1360px,calc(100% - 48px)); min-height:86px; margin:auto; display:flex; align-items:center; flex-wrap:wrap; gap:10px; }
.wordmark { order:0; display:flex; flex-direction:column; width:max-content; text-decoration:none; white-space:nowrap; }
.wordmark span { font-family:'Libre Baskerville',Baskerville,'Baskerville Old Face',Georgia,serif; font-size:16.2px; font-style:italic; line-height:1; }
.wordmark em { color:var(--orange); }
.wordmark small { margin-bottom:6px; color:var(--muted); font-family:'TC Volume Sans',sans-serif; font-size:9px; letter-spacing:.38em; text-align:center; text-transform:uppercase; }
.primary-nav { order:3; width:100%; padding:15px 0 7px; display:flex; flex-direction:column; align-items:stretch; gap:0; border-top:1px solid var(--line); }
.has-menu-script .primary-nav { display:none; }
.has-menu-script .primary-nav.is-open { display:flex; }
.primary-nav a { padding:11px 5px; font-family:'TC Volume Sans',sans-serif; font-size:13px; letter-spacing:.025em; text-decoration:none; white-space:nowrap; }
.primary-nav a:hover { color:var(--orange-dark); }
.primary-nav .nav-contact { align-self:stretch; margin-top:0; color:inherit; }
.primary-nav .nav-contact:hover { color:var(--orange-dark); }
.theme-toggle { order:1; flex:none; display:grid; place-items:center; width:40px; height:40px; margin-left:auto; padding:0; border:1px solid var(--orange); border-radius:50%; background:var(--button-cream); color:var(--button-ink); font-family:Arial,sans-serif; font-size:21px; line-height:1; cursor:pointer; transition:background 160ms ease,color 160ms ease; }
.theme-toggle:hover { background:var(--orange); color:#1f1c18; }
.menu-toggle { order:2; display:inline-flex; align-items:center; gap:7px; padding:10px 13px; border:1px solid var(--orange); border-radius:999px; background:var(--button-cream); color:var(--button-ink); font-family:'TC Volume Sans',sans-serif; font-size:11px; cursor:pointer; }
.menu-toggle:hover { background:var(--orange); color:#1f1c18; }
h1,h2,h3 { font-family:'Libre Baskerville',Baskerville,'Baskerville Old Face',Georgia,serif; font-style:italic; font-weight:400; color:var(--orange); }
p { line-height:1.6; }
.brand-hero { position:relative; overflow:hidden; width:min(1440px,100%); margin:auto; padding:34px 24px 20px; display:flex; flex-direction:column; align-items:center; background:radial-gradient(circle at 50% 40%,var(--orange-soft),transparent 58%); text-align:center; }
.brand-eyebrow { margin:14px 0 0; color:var(--muted); font-family:'TC Volume Sans',sans-serif; font-size:clamp(11px,1.05vw,14px); letter-spacing:.17em; line-height:1.45; text-transform:uppercase; }
.brand-hero h1 { margin:12px 0 0; color:var(--ink); font-size:clamp(36px,4vw,52px); letter-spacing:-.025em; line-height:1.1; white-space:nowrap; }
.brand-art { position:relative; margin:0; }
.brand-art img { display:block; width:auto; max-height:500px; margin:auto; filter:drop-shadow(0 22px 28px rgba(47,31,18,.14)); }
.hero { width:min(1360px,calc(100% - 48px)); min-height:670px; margin:auto; padding:46px 0 54px; display:grid; grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr); align-items:center; gap:clamp(30px,5vw,90px); }
.hero-copy { padding-left:clamp(0px,3vw,56px); }
.hero h2 { margin:0; font-size:var(--home-title-size); line-height:1.15; letter-spacing:-.025em; }
.hero h2 em { color:var(--ink); font-weight:400; }
.hero-lead { max-width:510px; margin:30px 0 28px; font-size:clamp(19px,2vw,23px); line-height:1.45; }
.actions { display:flex; flex-wrap:wrap; align-items:center; gap:18px 25px; }
.button { display:inline-flex; min-height:44px; align-items:center; justify-content:center; padding:9px 20px; border:1px solid var(--orange); border-radius:999px; background:var(--button-cream); color:var(--button-ink); font-family:'TC Volume Sans',sans-serif; font-size:12px; letter-spacing:.025em; text-decoration:none; transition:transform 160ms ease,background 160ms ease,color 160ms ease; }
.button:hover { transform:translateY(-2px); background:var(--orange); color:#1f1c18; }
.text-link { color:var(--orange-dark); font-family:'TC Volume Sans',sans-serif; font-size:12px; text-decoration:underline; text-underline-offset:4px; }
.text-link:hover { color:var(--ink); }
.hero-art { position:relative; margin:0; }
.hero-art::before { content:''; position:absolute; z-index:-1; inset:8% -3% 5% 8%; border-radius:50%; background:var(--orange-soft); filter:blur(30px); }
.hero-art img { display:block; width:100%; max-height:575px; object-fit:cover; border-radius:46% 46% 4px 4px; box-shadow:0 22px 50px rgba(52,36,22,.15); }
.ornament { width:min(640px,70vw); margin:8px auto 0; }
.ornament img { display:block; width:100%; opacity:.58; }
.brand-divider { margin:0 auto; }
.intro { max-width:850px; padding:75px 0 105px; text-align:center; }
.intro h2,.closing h2 { margin:0 auto 22px; font-size:var(--home-title-size); line-height:1.15; }
.intro>p { max-width:710px; margin:0 auto; font-size:clamp(18px,2vw,21px); }
.feature-band { background:var(--surface); border-block:1px solid var(--line); }
.feature-band+.feature-band { border-top:0; }
.feature-band--plain { background:var(--paper); }
.feature-inner { min-height:600px; padding-block:70px; display:grid; grid-template-columns:.9fr 1.1fr; align-items:center; gap:clamp(50px,8vw,110px); }
.feature-band--reverse .feature-cover { order:2; transform:rotate(3deg); }
.feature-band--reverse .feature-copy { justify-self:end; }
.feature-cover { max-width:350px; justify-self:center; transform:rotate(-3deg); }
.feature-cover img { display:block; width:100%; border-radius:2px; box-shadow:22px 25px 34px rgba(42,32,24,.18); }
.feature-copy { max-width:560px; }
.feature-kicker { margin:0 0 12px; color:var(--orange-dark); font-family:'TC Volume Sans',sans-serif; font-size:11px; letter-spacing:.13em; text-transform:uppercase; }
.feature-copy h2 { margin:0; font-size:var(--home-title-size); line-height:1.15; }
.feature-copy h2 span { color:var(--ink); }
.feature-copy>p:not(.feature-kicker) { margin-bottom:26px; font-size:19px; }
.feature-copy>p a { color:inherit; text-decoration:underline; text-underline-offset:4px; }
.feature-copy>p a:hover { color:var(--orange-dark); }
.town-section { background:#332d27; color:#fff9ef; }
:root[data-theme='dark'] .town-section { background:#1c2022; color:var(--ink); }
.town-inner { padding-block:95px; display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(40px,7vw,110px); }
.town-section h2 { margin:0; color:#f4a161; font-size:var(--home-title-size); line-height:1.15; }
.town-section p { max-width:380px; margin-top:25px; font-size:19px; }
.town-radio { width:min(100%,450px); justify-self:end; display:block; overflow:hidden; border:1px solid #706455; background:#18120d; box-shadow:0 18px 38px rgba(0,0,0,.28); transition:transform 180ms ease,border-color 180ms ease; }
.town-radio:hover { transform:translateY(-3px); border-color:#f4a161; }
.town-radio img { display:block; width:100%; }
.closing { padding-block:120px 125px; text-align:center; }
.closing h2 { max-width:750px; }
.closing>p { max-width:540px; margin:0 auto 27px; font-size:19px; }
.site-footer { background:var(--surface); border-top:1px solid var(--line); }
.footer-inner { padding-block:47px 35px; display:flex; justify-content:space-between; gap:25px; }
.footer-mark { font-family:'Libre Baskerville',Baskerville,Georgia,serif; font-size:27px; font-style:italic; }
.footer-mark em { color:var(--orange); }
.footer-inner p { margin:8px 0 0; color:var(--muted); font-size:15px; }
.footer-links { display:flex; align-items:center; flex-wrap:wrap; gap:20px; }
.footer-links a { font-family:'TC Volume Sans',sans-serif; font-size:11px; text-decoration:underline; text-underline-offset:4px; }
.footer-links a:hover { color:var(--orange-dark); }
.copyright { margin:0; padding:18px 24px 25px; border-top:1px solid var(--line); color:var(--muted); font-family:'TC Volume Sans',sans-serif; font-size:10px; letter-spacing:.06em; text-align:center; }
@media(max-width:1100px) { .hero { min-height:0; padding-top:66px; } }
@media(max-width:760px) { :root { --home-title-size:28.8px; } .section-shell,.hero,.header-inner { width:min(100% - 34px,600px); } .header-inner { min-height:70px; padding-block:14px; } .wordmark span { font-size:13.2px; } .wordmark small { font-size:7px; } .theme-toggle { width:36px; height:36px; font-size:19px; } .menu-toggle { padding:8px 10px; } .brand-hero { padding:28px 10px 18px; background:radial-gradient(circle at 50% 34%,var(--orange-soft),transparent 54%); } .brand-art { width:min(100%,620px); } .brand-art img { width:100%; max-height:none; } .brand-eyebrow { margin-top:10px; font-size:9px; letter-spacing:.14em; } .brand-hero h1 { margin-top:8px; font-size:clamp(25px,7.4vw,29px); line-height:1.12; } .hero { padding-block:55px 35px; grid-template-columns:1fr; gap:45px; } .hero-copy { padding:0; } .hero-lead { margin-block:24px; } .hero-art { width:min(100%,570px); margin:auto; } .hero-art img { max-height:none; } .ornament { width:min(77vw,440px); } .intro { padding-block:70px 85px; } .feature-inner { padding-block:65px 78px; grid-template-columns:1fr; gap:45px; } .feature-cover,.feature-band--reverse .feature-cover { order:0; max-width:270px; transform:rotate(-2deg); } .feature-band--reverse .feature-copy { justify-self:auto; } .town-inner { padding-block:80px; grid-template-columns:1fr; } .town-radio { justify-self:center; } .closing { padding-block:90px; } }
@media(max-width:560px) { .footer-inner { flex-direction:column; } }
@media(prefers-reduced-motion:reduce) { *,*::before,*::after { scroll-behavior:auto!important; transition:none!important; } }
