/* ==========================================================
   THE OTHER OFFER — town page stylesheet
   Shared by all /[town] pages. Same design system as index.html,
   trimmed for fast mobile loads (no GSAP, no video player).
   ========================================================== */
:root{
  --paper:#FDFCF8;
  --band:#F1F7FB;
  --card:#FFFFFF;
  --ink:#182430;
  --ink-2:#33424F;
  --dim:#5E6B77;
  --line:#E3E9EE;
  --line-warm:#EADFC8;
  --sky:#8FC4EA;
  --sky-2:#BFE0F5;
  --blue:#2E7FC2;
  --sun:#F2A93B;
  --sun-2:#FFC65C;
  --sun-deep:#D98D1F;
  --keep:#1F9D66;
  --loss:#D2543C;
  --navy:#14202B;
  --disp:'Bricolage Grotesque',system-ui,sans-serif;
  --body:'Instrument Sans',system-ui,sans-serif;
  --mono:'IBM Plex Mono',monospace;
}
*{box-sizing:border-box;margin:0;padding:0}
html{scroll-behavior:smooth}
body{background:var(--paper);color:var(--ink);font-family:var(--body);font-size:17px;line-height:1.65;-webkit-font-smoothing:antialiased;overflow-x:clip}
img{max-width:100%;display:block}
.wrap{width:min(1080px,92vw);margin:0 auto}
a{color:inherit}
::selection{background:rgba(242,169,59,.35)}
:focus-visible{outline:2px solid var(--blue);outline-offset:3px;border-radius:4px}

/* ---------- nav ---------- */
nav{position:relative;z-index:90;background:#FCFBF7;border-bottom:1px solid #E7E1D7}
.nav-in{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:80px;padding:0}
/* Brand lockup styles live in sitewide.css — keep only layout-safe defaults here. */
.brand{display:inline-flex;align-items:baseline;gap:0;white-space:nowrap;text-decoration:none}
.brand .mark{display:none}
.nav-right{display:flex;align-items:center;gap:44px;font-size:16px;color:#172936}
.nav-link,.nav-towns{font-size:16px;font-weight:500;text-decoration:none;color:#172936;white-space:nowrap;transition:color .2s}
.nav-link:hover,.nav-towns:hover{color:#A56814}
.nav-tel{font-size:16px;text-decoration:none;color:#172936;white-space:nowrap;transition:color .2s}
.nav-tel b{color:#172936;font-weight:700}
.nav-tel:hover b{color:#A56814}
.nav-cta{font-size:16px;font-weight:500;text-decoration:none;color:#172936;padding:5px 0;border-bottom:1px solid #B7832E;white-space:nowrap}

/* ---------- breadcrumb ---------- */
.crumbs{font-family:var(--mono);font-size:11.5px;letter-spacing:.06em;color:var(--dim);padding:18px 0 0}
.crumbs a{text-decoration:none;color:var(--dim)}
.crumbs a:hover{color:var(--sun-deep)}
.crumbs span{margin:0 8px;color:var(--sun)}

/* ---------- hero ---------- */
.t-hero{background:#FCFBF7;padding:0}
.eyebrow{display:flex;align-items:center;gap:10px;font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#A87521;margin-bottom:25px}
.eyebrow::before{content:"";display:block;width:13px;height:16px;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20'%3E%3Cpath fill='%23A87521' d='M8 0a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 8 4a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E")}
h1{font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:clamp(40px,4vw,58px);line-height:1.07;letter-spacing:-.045em;margin-bottom:15px;text-wrap:balance;max-width:14.5ch;color:#172936}
h1 em{font-style:italic;font-weight:400;color:#B87617}
.lede{font-size:20px;line-height:1.7;color:#4A5966;max-width:48ch;margin-bottom:12px}
.lede strong{color:#172936;font-weight:700}
.hero-people{display:flex;align-items:center;gap:20px;margin-top:22px}
.hero-faces{display:flex;flex:none}
.hero-faces img{width:72px;height:72px;border-radius:50%;object-fit:cover;border:4px solid #FCFBF7;box-shadow:0 0 0 1px #D8D1C5}
.hero-faces img+img{margin-left:-15px}
.hero-faces .garrett{object-position:50% 24%}
.hero-faces .graham{object-position:50% 22%}
.hero-people-copy{font-size:14px;line-height:1.45;color:#4E5E6A}
.hero-people-copy b{display:block;color:#172936;font-size:16px;font-weight:700}
.hero-btns{display:flex;flex-wrap:wrap;gap:32px;margin-top:25px;align-items:center}
.btn{display:inline-flex;align-items:center;gap:10px;text-decoration:none;font-weight:700;font-size:18px;padding:17px 28px;border-radius:6px;transition:transform .2s,box-shadow .25s,border-color .2s,color .2s,background .2s;border:none;cursor:pointer;font-family:var(--body)}
.btn .ar{transition:transform .2s}
.btn:hover .ar{transform:translateX(4px)}
.btn-p{color:#fff;background:#C99435;box-shadow:none}
.btn-p:hover{transform:translateY(-1px);box-shadow:0 8px 20px rgba(180,119,25,.18)}
.btn-s{padding:0;border:0;color:#172936;background:transparent;text-decoration:underline;text-underline-offset:8px;text-decoration-color:#B7832E}
.btn-s:hover{color:#A56814;background:transparent}
.hero-note{display:flex;align-items:flex-start;gap:12px;margin-top:32px;font-size:13px;line-height:1.55;color:#4E5E6A;max-width:46ch}
.hero-note::before{content:"✓";flex:none;width:22px;height:22px;border:1.5px solid #B7832E;border-radius:7px;display:grid;place-items:center;color:#A87521;font-weight:800;font-size:12px}
.hero-note b{color:#172936;font-weight:700}

/* ---------- sections ---------- */
section{padding:56px 0}
.sec-eyebrow{font-family:var(--body);font-size:12px;font-weight:700;letter-spacing:.16em;text-transform:uppercase;color:#A87521;margin-bottom:14px;display:flex;align-items:center;gap:10px}
.sec-eyebrow::before{content:"";display:block;width:13px;height:16px;flex:none;background:no-repeat center/contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 20'%3E%3Cpath fill='%23A87521' d='M8 0a7 7 0 0 0-7 7c0 5.25 7 13 7 13s7-7.75 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 8 4a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E")}
h2{font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:clamp(28px,2.7vw,38px);line-height:1.12;letter-spacing:-.03em;margin-bottom:14px;text-wrap:balance;color:#172936}
h3{font-family:var(--disp);font-weight:700;font-size:19px;letter-spacing:-.015em}
.sec-lede{font-size:16px;color:var(--dim);max-width:66ch;margin-bottom:30px}
.prose{max-width:72ch}
.prose p{margin-bottom:16px;color:var(--ink-2);font-size:16px}
.prose p:last-child{margin-bottom:0}
.prose b,.prose strong{color:var(--ink)}
.band{background:linear-gradient(180deg,var(--paper),var(--band) 18%,var(--band) 88%,var(--paper))}

/* ---------- ledger (comparison) ---------- */
.scenario{display:inline-flex;flex-wrap:wrap;align-items:center;gap:8px 20px;font-family:var(--mono);font-size:12.5px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:12px 16px;margin-bottom:30px;color:var(--ink-2);box-shadow:0 6px 20px rgba(24,36,48,.05)}
.scenario b{font-weight:600;color:var(--ink)}
.scenario .chip{color:var(--dim)}
.ledger{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:stretch}
.sheet{background:var(--card);border:1px solid var(--line);border-radius:20px;display:flex;flex-direction:column;position:relative;box-shadow:0 14px 40px rgba(24,36,48,.07);transition:transform .3s,box-shadow .3s}
.sheet:hover{transform:translateY(-5px);box-shadow:0 24px 56px rgba(24,36,48,.12)}
.sheet-body{padding:22px 22px 20px;display:flex;flex-direction:column;flex:1}
.sheet h3{margin-bottom:3px;font-size:18.5px}
.sheet .time{font-family:var(--mono);font-size:10.5px;color:var(--dim);margin-bottom:12px}
.li{display:flex;justify-content:space-between;gap:12px;font-family:var(--mono);font-size:12.5px;padding:7px 0;border-top:1px dashed var(--line)}
.li .lbl{color:var(--dim)}
.li .amt{font-weight:600;white-space:nowrap;color:var(--ink)}
.li .amt.minus{color:var(--loss)}
.keep-row{margin-top:auto;padding-top:13px;border-top:2px solid var(--ink)}
.keep-row .k-lbl{font-family:var(--mono);font-size:10px;font-weight:600;letter-spacing:.16em;text-transform:uppercase;color:var(--dim);margin-bottom:2px}
.keep-row .k-amt{font-family:var(--disp);font-size:clamp(23px,2vw,29px);font-weight:800;color:var(--keep);line-height:1.15;letter-spacing:-.02em}
.ledger-foot{margin-top:28px;display:flex;flex-wrap:wrap;gap:12px 32px;justify-content:space-between;align-items:baseline}
.ledger-punch{font-family:var(--disp);font-weight:700;font-size:clamp(17px,1.8vw,21px);letter-spacing:-.02em}
.ledger-punch em{font-style:normal;background:linear-gradient(95deg,var(--sun-deep),#E8752E);-webkit-background-clip:text;background-clip:text;color:transparent}
.ledger-fine{font-size:12.5px;color:var(--dim);max-width:52ch;line-height:1.55}

/* ---------- paths list ---------- */
.paths-list{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:6px}
.paths-list li{background:var(--card);border:1px solid var(--line);border-radius:14px;padding:15px 18px;font-size:14.5px;color:var(--ink-2);line-height:1.55}
.paths-list li b{display:block;color:var(--ink);font-family:var(--disp);font-size:15.5px;letter-spacing:-.01em;margin-bottom:3px}

/* ---------- situations ---------- */
.sits{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.sit{background:var(--card);border:1px solid var(--line);border-radius:16px;padding:18px 20px;transition:transform .3s,box-shadow .3s}
.sit:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(24,36,48,.1)}
.sit h3{font-family:var(--disp);font-weight:700;font-size:16px;letter-spacing:-.01em;margin-bottom:6px}
.sit p{font-size:13.5px;color:var(--dim);line-height:1.58}

/* ---------- FAQ ---------- */
.faq{max-width:76ch}
.faq details{background:var(--card);border:1px solid var(--line);border-radius:14px;margin-bottom:10px;overflow:hidden}
.faq summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;gap:16px;padding:16px 20px;font-family:var(--disp);font-weight:600;font-size:15.5px;letter-spacing:-.01em}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";font-family:var(--mono);font-size:18px;color:var(--sun-deep);flex:none;transition:transform .25s}
.faq details[open] summary::after{transform:rotate(45deg)}
.faq .a{padding:0 20px 18px;font-size:14.5px;color:var(--ink-2);line-height:1.65}
.faq .a p{margin-bottom:10px}
.faq .a p:last-child{margin-bottom:0}

/* ---------- local layout ---------- */
.local-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:40px;align-items:start}
.local-photo{margin:0;border-radius:16px;overflow:hidden;background:#E7E1D7;aspect-ratio:4/3}
.local-photo img{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.local-photo figcaption{font-size:13px;color:var(--dim);padding:10px 2px 0;line-height:1.45}
@media(max-width:900px){
  .local-grid{grid-template-columns:1fr}
}

/* ---------- people ---------- */
.people{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.person{display:flex;background:var(--card);border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:transform .3s,box-shadow .3s}
.person:hover{transform:translateY(-4px);box-shadow:0 22px 50px rgba(24,36,48,.12)}
.person-img{width:36%;flex:none;aspect-ratio:4/5;height:auto;object-fit:cover;object-position:50% 18%;filter:saturate(.95)}
.person-img.graham{object-position:50% 18%}
.person-img.garrett{object-position:50% 20%}
.person-body{padding:20px 22px 22px}
.person h3{font-family:var(--disp);font-weight:700;font-size:18px;letter-spacing:-.015em}
.person .role{font-family:var(--mono);font-size:10px;font-weight:500;letter-spacing:.16em;text-transform:uppercase;color:var(--sun-deep);margin:5px 0 9px}
.person p{font-size:13.5px;color:var(--dim);line-height:1.6}

/* ---------- form (shared styles live in /assets/contact-form.css) ---------- */
.talk{padding:88px 0}

/* ---------- nearby towns ---------- */
.nearby{display:flex;flex-wrap:wrap;gap:10px}
.nearby a{text-decoration:none;font-size:13.5px;font-weight:600;color:var(--ink-2);border:1px solid var(--line);background:var(--card);border-radius:99px;padding:9px 17px;transition:border-color .2s,color .2s,transform .2s}
.nearby a:hover{border-color:var(--sun-deep);color:var(--sun-deep);transform:translateY(-2px)}

/* ---------- footer ---------- */
footer{background:#22333D;color:#B8C5CE;padding:52px 0 42px;font-size:14px}
.foot-top{display:flex;flex-wrap:wrap;gap:24px;justify-content:space-between;align-items:center;padding-bottom:22px;border-bottom:1px solid rgba(255,255,255,.1)}
.foot-brand{font-family:Georgia,'Times New Roman',serif;font-weight:500;font-size:20px;color:#fff;display:flex;align-items:center;gap:10px;text-decoration:none}
.foot-brand .mark{width:25px;height:25px}
.foot-brand em{position:relative;display:inline-block;font-style:italic;font-weight:800;font-size:1.1em;line-height:1;padding:0 .1em;color:#06090d;-webkit-text-stroke:2px #06090d}
.foot-brand em::before{content:attr(data-text);position:absolute;inset:0;padding:0 .1em;z-index:-1;transform:translate(.06em,.07em);opacity:.8}
.foot-brand em::after{content:attr(data-text);position:absolute;inset:0;padding:0 .1em;-webkit-text-stroke:0;background:linear-gradient(180deg,var(--sun-2),var(--sun) 55%,var(--sun-deep));-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.foot-links a{margin-left:22px;text-decoration:none;color:#93A3B1;transition:color .2s}
.foot-links a:hover{color:var(--sun-2)}
.foot-towns{margin-top:20px;font-size:13px;line-height:2;color:#71818F}
.foot-towns a{color:#C6D2DC;text-decoration:none;margin-right:14px;white-space:nowrap}
.foot-towns a:hover{color:var(--sun-2)}
.foot-tel{font-family:var(--mono);margin-top:18px;font-size:13px}
.foot-tel a{color:#C6D2DC;text-decoration:none}
.foot-tel a:hover{color:var(--sun-2)}
.disc{margin-top:20px;line-height:1.7;font-size:12.5px;color:#71818F;max-width:92ch}

/* ---------- responsive ---------- */
@media(max-width:960px){
  .ledger{grid-template-columns:1fr;gap:26px}
  .paths-list{grid-template-columns:1fr}
  .sits{grid-template-columns:1fr}
  .people{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr;gap:36px}
  section{padding:46px 0}
  .nav-link,.nav-tel{display:none}
}
@media(max-width:480px){
  .person{flex-direction:column}
  .person-img{width:100%;aspect-ratio:4/5;object-fit:cover}
  .nav-cta{display:none}
  .cta-town{display:none}
  .two{grid-template-columns:1fr}
}
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.01ms!important;transition:none!important;scroll-behavior:auto!important}
}
