
:root{
  --ink:#1F2D3A; --ink-2:#4A5963; --sea:#3E7074; --sea-deep:#2C5256; --mist:#9CC3C5;
  --ground:#F2F4F2; --panel:#E6ECEA; --line:#CBD5D2; --brass:#A9824A; --on-sea:#F2F4F2;
  --display:"Marcellus", "Cormorant Garamond", Georgia, serif;
  --body:"Hanken Grotesk", "Segoe UI", system-ui, -apple-system, sans-serif;
  --wrap:1180px;
}
@media (prefers-color-scheme: dark){
  :root:not([data-theme="light"]){
    --ink:#EAF1EF; --ink-2:#BAC8C6; --sea:#84B3B6; --sea-deep:#27484D; --mist:#A8CCCE;
    --ground:#1E282E; --panel:#293640; --line:#3D4C55; --brass:#D4AE76; --on-sea:#F2F7F6;
  }
}
:root[data-theme="dark"]{
  --ink:#E4ECEA; --ink-2:#A6B6B4; --sea:#6FA3A6; --sea-deep:#1B3538; --mist:#9CC3C5;
  --ground:#121A1F; --panel:#1A252B; --line:#2C3A40; --brass:#C9A269; --on-sea:#EEF3F2;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto}*{transition:none!important;animation:none!important}}
html{scroll-padding-top:86px}
body{margin:0;background:var(--ground);color:var(--ink);font:400 17px/1.6 var(--body);-webkit-font-smoothing:antialiased}
img{max-width:100%;display:block}
a{color:inherit}
:focus-visible{outline:2px solid var(--brass);outline-offset:3px}
.wrap{max-width:var(--wrap);margin:0 auto;padding-inline:clamp(16px,4vw,40px)}
h1,h2,h3{font-family:var(--display);font-weight:400;line-height:1.1;text-wrap:balance;margin:0}
h2{font-size:clamp(2rem,4.2vw,3.1rem)}
.eyebrow{font:600 .75rem/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--sea)}
section{padding-block:clamp(64px,9vw,120px)}
/* deck boards: the recurring boardwalk motif */
.deck{height:14px;background:repeating-linear-gradient(90deg,var(--line) 0 118px,transparent 118px 122px);opacity:.9}

/* header */
header{position:sticky;top:env(safe-area-inset-top,0px);z-index:20;background:color-mix(in srgb,var(--ground) 90%,transparent);backdrop-filter:blur(10px);border-bottom:1px solid var(--line)}
.bar{display:flex;align-items:center;justify-content:space-between;gap:16px;min-height:68px}
.mark{text-decoration:none;display:flex;flex-direction:row;align-items:center;gap:11px}
.mark-emblem{width:44px;height:44px;object-fit:contain;display:block;flex:none}
.mark-txt{display:flex;flex-direction:column;line-height:1}
.mark b{font:400 1.35rem/1 var(--display);letter-spacing:.08em;text-transform:uppercase}
.mark-txt span{font:600 .6rem/1 var(--body);letter-spacing:.42em;text-transform:uppercase;color:var(--sea);margin-top:5px}
nav ul{display:flex;gap:clamp(14px,1.6vw,26px);list-style:none;margin:0;padding:0}
nav a{text-decoration:none;font-size:.95rem;color:var(--ink-2);white-space:nowrap}
nav a:hover{color:var(--ink)}
.call{display:inline-flex;align-items:center;gap:8px;text-decoration:none;font-weight:600;font-size:.95rem;background:var(--ink);color:var(--ground);padding:10px 16px;border-radius:999px;white-space:nowrap}
.menu-btn{display:none;background:none;border:1px solid var(--line);border-radius:8px;padding:8px 10px;color:var(--ink);font:inherit;font-size:.9rem}
@media (max-width:900px){
  nav{position:absolute;left:0;right:0;top:100%;background:var(--ground);border-bottom:1px solid var(--line)}
  nav:not(.open){display:none}
  nav ul{flex-direction:column;gap:0;padding:8px clamp(16px,4vw,40px) 16px}
  nav a{display:block;padding:12px 0;font-size:1.05rem;border-bottom:1px solid var(--line)}
  .menu-btn{display:inline-block}
  .call .num{display:none}
}

/* hero */
.hero{position:relative;padding:0;min-height:min(82vh,760px);display:grid;align-items:end;color:#F4F7F6;overflow:hidden}
.hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,22,30,.5) 0%,rgba(12,22,30,.26) 45%,rgba(12,22,30,.03) 75%),linear-gradient(180deg,rgba(12,22,30,.06) 0%,rgba(12,22,30,0) 35%,rgba(12,22,30,.46) 100%)}
.hero .wrap{position:relative;z-index:1;width:100%;padding-block:clamp(40px,7vw,80px)}
.hero h1{font-size:clamp(2.8rem,7.6vw,6.2rem);max-width:12ch;letter-spacing:-.01em;color:#fff;text-shadow:0 2px 10px rgba(8,16,22,.55),0 2px 30px rgba(8,16,22,.4)}
.hero h1 em{font-style:normal;color:#E8C48A}
.hero p{max-width:46ch;font-size:clamp(1.05rem,1.7vw,1.22rem);font-weight:500;margin:18px 0 28px;color:#F4F7F6;text-shadow:0 1px 6px rgba(8,16,22,.65),0 1px 16px rgba(8,16,22,.45)}
.ctas{display:flex;flex-wrap:wrap;gap:12px}
.btn{display:inline-block;text-decoration:none;font-weight:600;padding:14px 22px;border-radius:999px;border:1px solid transparent;cursor:pointer;font-size:1rem;font-family:var(--body)}
.btn.solid{background:#F4F7F6;color:#1F2D3A}
.btn.ghost{border-color:rgba(244,247,246,.6);color:#F4F7F6}
.btn.sea{background:var(--sea);color:var(--on-sea)}
.btn:hover{filter:brightness(1.06)}

/* shoreline strip */
.shore{background:var(--sea-deep);color:var(--on-sea);padding-block:22px}
.shore .wrap{display:flex;flex-wrap:wrap;align-items:center;gap:10px 22px}
.shore small{font:600 .7rem/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--mist)}
.towns{display:flex;flex-wrap:wrap;gap:6px 0;list-style:none;margin:0;padding:0;font-family:var(--display);font-size:1.15rem}
.towns li+li::before{content:"";display:inline-block;width:26px;height:1px;background:var(--mist);vertical-align:middle;margin:0 12px;opacity:.7}

/* services */
.svc-head{display:grid;grid-template-columns:1fr 1fr;gap:24px 60px;align-items:end;margin-bottom:48px}
.svc-head p{margin:0;color:var(--ink-2);max-width:48ch}
.svc-list{display:grid;grid-template-columns:repeat(2,1fr);gap:0 60px;list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.svc-list li{display:grid;grid-template-columns:2.2rem 1fr;gap:4px 12px;padding:22px 0;border-bottom:1px solid var(--line)}
.svc-list svg{grid-row:span 2;width:26px;height:26px;stroke:var(--sea);fill:none;stroke-width:1.4;margin-top:3px}
.svc-list h3{font-size:1.4rem}
.svc-list p{margin:0;color:var(--ink-2);font-size:.98rem}
.strip{display:grid;grid-template-columns:1.1fr .9fr 1.3fr .8fr;gap:10px;margin-top:56px}
.strip img{width:100%;height:clamp(180px,24vw,320px);object-fit:cover;border-radius:4px}
@media (max-width:760px){
  .svc-head,.svc-list{grid-template-columns:1fr}
  .strip{grid-template-columns:1fr 1fr}
}

/* work */
#work{background:var(--panel)}
.work-head{display:flex;flex-wrap:wrap;justify-content:space-between;align-items:end;gap:16px;margin-bottom:36px}
.work-head p{margin:0;color:var(--ink-2);max-width:40ch}
.gallery{columns:3 280px;column-gap:12px}
.gallery button{display:block;width:100%;margin:0 0 12px;padding:0;border:0;background:none;cursor:zoom-in;break-inside:avoid;position:relative;border-radius:4px;overflow:hidden}
.gallery img{width:100%;height:auto;transition:transform .5s ease}
.gallery button:hover img{transform:scale(1.03)}
.gallery span{position:absolute;left:10px;bottom:10px;background:rgba(18,30,38,.72);color:#F4F7F6;font-size:.78rem;letter-spacing:.06em;padding:5px 10px;border-radius:999px}
.quote-card{break-inside:avoid;margin:0 0 12px;background:var(--sea-deep);color:var(--on-sea);padding:28px;border-radius:4px}
.quote-card p{font-family:var(--display);font-size:1.3rem;line-height:1.35;margin:0 0 16px}
.quote-card cite{font-style:normal;font-size:.9rem;color:var(--mist)}
dialog{border:0;padding:0;background:transparent;max-width:min(94vw,1100px);max-height:92vh}
dialog::backdrop{background:rgba(10,16,20,.88)}
dialog img{max-height:84vh;width:auto;margin:0 auto;border-radius:4px}
dialog p{color:#E3ECEA;text-align:center;margin:10px 0 0;font-size:.95rem}
.lb-nav{display:flex;justify-content:center;gap:10px;margin-top:10px}
.lb-nav button{background:rgba(255,255,255,.12);color:#fff;border:0;border-radius:999px;padding:9px 16px;font:600 .9rem var(--body);cursor:pointer}

/* about */
.about{display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(32px,6vw,80px);align-items:center}
.about figure{margin:0;position:relative}
.about figure img{width:100%;aspect-ratio:4/5;object-fit:cover;object-position:50% 25%;border-radius:4px}
.about figcaption{margin-top:12px;font-size:.9rem;color:var(--ink-2)}
.about figcaption b{display:block;color:var(--ink);font:400 1.2rem var(--display)}
.about blockquote{margin:22px 0;font:400 clamp(1.4rem,2.4vw,1.85rem)/1.3 var(--display);color:var(--sea)}
.about p{max-width:58ch;color:var(--ink-2)}
@media (max-width:760px){.about{grid-template-columns:1fr}.about figure{max-width:420px}}

/* reviews */
.reviews{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:40px}
.review{border-top:2px solid var(--sea);padding-top:20px}
.review p{margin:0 0 14px;color:var(--ink)}
.review cite{font-style:normal;font-size:.9rem;color:var(--ink-2)}
.review cite b{color:var(--ink);font-weight:600}
.vid-head{font-size:clamp(1.4rem,2.4vw,1.75rem);margin:56px 0 0}
.videos{display:grid;grid-template-columns:repeat(auto-fit,minmax(190px,248px));gap:18px;margin-top:22px}
.videos figure{margin:0}
.videos video{width:100%;aspect-ratio:9/16;object-fit:cover;background:var(--panel);border-radius:6px;display:block;border:1px solid var(--line)}
.videos figcaption{margin-top:10px;font-size:.88rem;color:var(--ink-2)}
@media (max-width:760px){.reviews{grid-template-columns:1fr}.videos{grid-template-columns:1fr 1fr;gap:12px}}

/* request */
#request{background:var(--sea-deep);color:var(--on-sea)}
.req{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(32px,6vw,80px)}
.req .eyebrow{color:var(--mist)}
.req h2{margin:12px 0 18px}
.req-info p{color:#CFDDDB;max-width:40ch}
.contact-lines{list-style:none;padding:0;margin:28px 0 0;display:grid;gap:14px}
.contact-lines a{text-decoration:none;font:400 1.25rem var(--display);border-bottom:1px solid rgba(156,195,197,.4)}
.contact-lines small{display:block;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;color:var(--mist)}
form{display:grid;grid-template-columns:1fr 1fr;gap:16px}
.field{display:grid;gap:6px}
.field.full{grid-column:1/-1}
label{font-size:.85rem;color:#CFDDDB}
label i{font-style:normal;color:var(--mist);font-size:.78rem}
input,select,textarea{width:100%;font:inherit;font-size:1rem;color:#F2F4F2;background:rgba(255,255,255,.07);border:1px solid rgba(156,195,197,.35);border-radius:6px;padding:12px 14px}
select option{color:#1F2D3A}
textarea{min-height:120px;resize:vertical}
input:focus,select:focus,textarea:focus{outline:none;border-color:#D7B887;background:rgba(255,255,255,.1)}
.form-foot{grid-column:1/-1;display:flex;flex-wrap:wrap;align-items:center;gap:16px}
.form-foot .btn{background:#F2F4F2;color:#1F2D3A;border:0}
#form-status{margin:0;font-size:.95rem;color:#D7B887}
.hp{position:absolute;left:-9999px}
@media (max-width:760px){.req,form{grid-template-columns:1fr}}

/* footer */
footer{padding-block:48px 40px;font-size:.92rem;color:var(--ink-2)}
.foot{display:flex;flex-wrap:wrap;justify-content:space-between;gap:24px}
.foot a{text-decoration:none}
.foot .mark{margin-bottom:10px}

/* hero quick-quote */
.hero-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(24px,5vw,64px);align-items:end}
.qq{grid-template-columns:1fr;background:rgba(16,32,40,.72);-webkit-backdrop-filter:blur(14px);backdrop-filter:blur(14px);border:1px solid rgba(232,196,138,.35);color:#F4F7F6;border-radius:10px;padding:26px;display:grid;gap:12px;box-shadow:0 24px 60px rgba(5,12,16,.45)}
.qq h2{font-size:1.6rem}
.qq > p{margin:0;color:#CFDDDB;font-size:.92rem;font-weight:400;text-shadow:none}
.qq label{color:#CFDDDB;font-size:.8rem}
.qq input,.qq select{background:rgba(255,255,255,.1);color:#F4F7F6;border:1px solid rgba(207,221,219,.35);padding:11px 12px}
.qq input:focus,.qq select:focus{border-color:#E8C48A;background:rgba(255,255,255,.16)}
.qq .row{display:grid;grid-template-columns:1fr 1fr;gap:10px}
.qq .btn{background:#E8C48A;color:#1F2D3A;border:0;width:100%}
.qq .fine{font-size:.78rem;color:#4A5963;margin:0}
#qq-status{margin:0;font-size:.9rem;color:#E8C48A;font-weight:600;text-shadow:none}
@media (max-width:900px){.hero-grid{grid-template-columns:1fr}.qq .row{grid-template-columns:1fr}}

/* press feature */
#press{background:var(--panel);padding-block:clamp(56px,8vw,104px)}
.press{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(28px,6vw,80px);align-items:stretch}
.press-photo{margin:0;position:relative;display:flex;min-height:100%}
.press-photo > a{display:block;flex:1;position:relative;border-radius:4px;overflow:hidden}
.press-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 25%}
.press-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:40px 18px 14px;font-size:.85rem;color:#F4F7F6;background:linear-gradient(180deg,rgba(12,22,30,0),rgba(12,22,30,.75));border-radius:0 0 4px 4px;pointer-events:none}
.press-tag{position:absolute;top:16px;left:-10px;background:var(--brass);color:#fff;font:600 .7rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;padding:9px 14px;border-radius:2px;box-shadow:0 6px 16px rgba(0,0,0,.18)}
.press-src{display:flex;flex-wrap:wrap;align-items:center;gap:8px 14px;font:600 .75rem/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--sea)}
.press-src span{width:28px;height:1px;background:var(--line)}
.press h2{font-size:clamp(2.2rem,5vw,3.6rem);margin:16px 0 10px}
.press .dek{font-size:1.12rem;color:var(--ink-2);margin:0 0 26px;max-width:48ch}
.press-points{list-style:none;margin:0 0 28px;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:18px 32px}
.press-points li{border-top:1px solid var(--line);padding-top:12px}
.press-points b{display:block;font:400 1.15rem/1.25 var(--display);color:var(--ink);margin-bottom:4px}
.press-points p{margin:0;font-size:.93rem;color:var(--ink-2)}
.press blockquote{margin:0 0 28px;padding-left:18px;border-left:2px solid var(--brass);font:400 1.3rem/1.35 var(--display);color:var(--ink)}
.press blockquote cite{display:block;margin-top:8px;font:500 .85rem var(--body);color:var(--ink-2);font-style:normal}
.btn.read{background:var(--ink);color:var(--ground);display:inline-flex;align-items:center;gap:10px}
.btn.read svg{width:16px;height:16px}
@media (max-width:820px){.press{grid-template-columns:1fr}.press-photo{display:block;max-width:420px;aspect-ratio:auto;min-height:0}.press-photo > a{display:block;flex:none;width:100%;height:0;padding-top:125%}.press-points{grid-template-columns:1fr}.press-tag{left:10px}}
.press-logo{display:block;max-width:360px;margin-bottom:18px}
.press-logo img{width:100%;height:auto}
@media (prefers-color-scheme: dark){:root:not([data-theme="light"]) .press-logo img{filter:brightness(1.9) saturate(.9)}}
:root[data-theme="dark"] .press-logo img{filter:brightness(1.9) saturate(.9)}

/* google reviews card */
.g-card{margin-top:46px;background:var(--ground);border:1px solid var(--line);border-radius:8px;padding:clamp(24px,3.5vw,34px);display:grid;grid-template-columns:1fr auto;gap:22px 36px;align-items:center}
.g-badge{display:inline-block;background:#fff;border:1px solid #E1E5E3;border-radius:8px;padding:12px 18px;line-height:0}
.g-badge img{width:152px;height:auto;display:block}
.g-card p{margin:16px 0 0;color:var(--ink-2);max-width:46ch;font-size:.98rem}
.g-card .acts{display:flex;flex-wrap:wrap;gap:10px}
.btn.line{border-color:var(--line);color:var(--ink)}
.btn.line:hover{border-color:var(--sea);color:var(--sea);filter:none}
@media (max-width:760px){.g-card{grid-template-columns:1fr}}

/* preferred vendors */
#vendors{background:var(--panel)}
.vend-head{max-width:62ch;margin-bottom:44px}
.vend-head p{margin:14px 0 0;color:var(--ink-2)}
.vendors{display:grid;grid-template-columns:repeat(2,1fr);gap:20px;list-style:none;margin:0;padding:0;max-width:820px}
#location{padding-block:clamp(56px,8vw,104px)}
.loc-head{max-width:62ch;margin-bottom:40px}
.loc{display:grid;grid-template-columns:1.25fr .75fr;grid-template-rows:auto auto;gap:22px}
.loc-photo{margin:0;grid-column:1;grid-row:1/3;border-radius:6px;overflow:hidden;border:1px solid var(--line);background:var(--panel)}
.loc-photo img{width:100%;height:100%;min-height:260px;object-fit:cover;display:block}
.loc-info{grid-column:2;grid-row:1;background:var(--panel);border:1px solid var(--line);border-radius:6px;padding:26px 24px}
.loc-info h3{font:400 1.25rem/1.2 var(--display);margin:0 0 12px}
.loc-info address{font-style:normal;color:var(--ink-2);line-height:1.7}
.loc-call{margin:16px 0 20px;color:var(--ink-2)}
.loc-call a{color:var(--sea);font-weight:600;text-decoration:none}
.loc-call a:hover{text-decoration:underline}
.loc-map{grid-column:2;grid-row:2;border-radius:6px;overflow:hidden;border:1px solid var(--line);background:var(--panel);min-height:240px}
.loc-map iframe{width:100%;height:100%;min-height:240px;border:0;display:block;filter:saturate(.9)}
@media (max-width:820px){
  .loc{grid-template-columns:1fr;grid-template-rows:auto}
  .loc-photo{grid-column:1;grid-row:auto}
  .loc-photo img{min-height:200px}
  .loc-info{grid-column:1;grid-row:auto}
  .loc-map{grid-column:1;grid-row:auto;min-height:260px}
}
.vendor{background:var(--ground);border:1px solid var(--line);border-radius:6px;padding:28px 26px;display:grid;gap:10px;align-content:start}
.vendor .logo{height:140px;display:flex;align-items:center;justify-content:flex-start;margin-bottom:8px}
.vendor .logo img{max-height:100%;max-width:210px;width:auto;height:auto;object-fit:contain;display:block}
.vendor .cat{font:600 .68rem/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--sea)}
.vendor h3{font-size:1.5rem}
.vendor p{margin:0;color:var(--ink-2);font-size:.95rem}
@media (max-width:820px){.vendors{grid-template-columns:1fr}}

/* social links */
.social{display:flex;flex-wrap:wrap;gap:10px;margin-top:14px}
.social a{display:inline-flex;align-items:center;gap:8px;padding:8px 14px;border:1px solid var(--line);border-radius:999px;color:var(--ink-2);text-decoration:none;font-size:.88rem;font-weight:600}
.social a:hover{border-color:var(--sea);color:var(--sea)}
.social svg{width:16px;height:16px;stroke:currentColor;fill:none;stroke-width:1.7}
.social img.ico{width:16px;height:16px;display:block}

/* ---- inner pages ---- */
#quote{background:var(--sea-deep);color:var(--on-sea)}
.page-hero{position:relative;padding:0;min-height:min(58vh,520px);display:grid;align-items:end;color:#F4F7F6;overflow:hidden}
.page-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.page-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(12,22,30,.62) 0%,rgba(12,22,30,.3) 55%,rgba(12,22,30,.08) 100%),linear-gradient(180deg,rgba(12,22,30,0) 40%,rgba(12,22,30,.5) 100%)}
.page-hero .wrap{position:relative;z-index:1;width:100%;padding-block:clamp(36px,6vw,72px)}
.page-hero .eyebrow{color:#E8C48A}
.page-hero h1{font-size:clamp(2.3rem,5.4vw,4.2rem);max-width:18ch;margin:12px 0 0;color:#fff;text-shadow:0 2px 14px rgba(8,16,22,.5)}
.page-hero p.lede{max-width:56ch;font-size:clamp(1.05rem,1.6vw,1.18rem);font-weight:500;margin:16px 0 26px;text-shadow:0 1px 8px rgba(8,16,22,.6)}
.crumbs{font-size:.85rem;color:var(--ink-2);padding-block:16px;border-bottom:1px solid var(--line)}
.crumbs ol{list-style:none;margin:0;padding:0;display:flex;flex-wrap:wrap;gap:6px}
.crumbs li+li::before{content:"/";margin-right:6px;color:var(--line)}
.crumbs a{text-decoration:none;color:var(--sea)}
.content{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:clamp(32px,6vw,72px);align-items:start}
.prose{max-width:70ch}
.prose h2{font-size:clamp(1.6rem,3vw,2.2rem);margin:44px 0 14px}
.prose h2:first-child{margin-top:0}
.prose p{color:var(--ink-2)}
.prose a{color:var(--sea);text-decoration-thickness:1px;text-underline-offset:3px}
.checks{list-style:none;margin:18px 0;padding:0;display:grid;gap:12px}
.checks li{position:relative;padding-left:28px;color:var(--ink-2)}
.checks li::before{content:"";position:absolute;left:2px;top:.55em;width:12px;height:7px;border-left:2px solid var(--brass);border-bottom:2px solid var(--brass);transform:rotate(-45deg)}
.checks b{color:var(--ink);font-weight:600}
.side{position:sticky;top:96px;display:grid;gap:18px}
.side-card{background:var(--panel);border:1px solid var(--line);border-radius:8px;padding:24px}
.side-card h3{font-size:1.35rem;margin-bottom:8px}
.side-card p{margin:0 0 16px;color:var(--ink-2);font-size:.95rem}
.side-card .btn{width:100%;text-align:center;margin-top:8px}
.side-card address{font-style:normal;color:var(--ink-2);font-size:.95rem;line-height:1.6}
.photo-row{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:48px}
.photo-row img{width:100%;height:clamp(160px,20vw,260px);object-fit:cover;border-radius:4px}
.pull{margin:40px 0 0;background:var(--sea-deep);color:var(--on-sea);padding:28px;border-radius:6px}
.pull p{font:400 1.3rem/1.4 var(--display);margin:0 0 12px;color:var(--on-sea)}
.pull cite{font-style:normal;font-size:.9rem;color:var(--mist)}
.faq{margin-top:56px;border-top:1px solid var(--line)}
.faq h2{margin-top:40px}
.faq details{border-bottom:1px solid var(--line);padding:16px 0}
.faq summary{cursor:pointer;font:400 1.15rem/1.35 var(--display);color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:16px}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";color:var(--sea);font-family:var(--body);font-size:1.3rem;line-height:1}
.faq details[open] summary::after{content:"\2212"}
.faq details p{margin:10px 0 0}
.related{background:var(--panel)}
.cards{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:16px;margin-top:28px;list-style:none;padding:0}
.cards a{display:block;height:100%;background:var(--ground);border:1px solid var(--line);border-radius:6px;padding:22px;text-decoration:none}
.cards a:hover{border-color:var(--sea)}
.cards b{display:block;font:400 1.25rem/1.2 var(--display);margin-bottom:6px}
.cards span{font-size:.92rem;color:var(--ink-2)}
.explore{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px;padding-block:36px;border-top:1px solid var(--line);margin-top:8px}
.explore h4{font:600 .72rem/1 var(--body);letter-spacing:.18em;text-transform:uppercase;color:var(--sea);margin:0 0 12px}
.explore ul{list-style:none;margin:0;padding:0;display:grid;gap:7px;font-size:.92rem}
.explore a{text-decoration:none;color:var(--ink-2)}
.explore a:hover{color:var(--sea)}
.h1-kicker{display:block;font:600 clamp(.72rem,1.2vw,.82rem)/1.3 var(--body);letter-spacing:.2em;text-transform:uppercase;color:#E8C48A;margin-bottom:14px;text-shadow:0 1px 6px rgba(8,16,22,.6)}
.svc-list h3 a{text-decoration:none}
.svc-list h3 a:hover{color:var(--sea)}
.towns a{text-decoration:none}
.towns a:hover{text-decoration:underline;text-underline-offset:4px}
@media (max-width:900px){.content{grid-template-columns:1fr}.side{position:static}}
@media (max-width:760px){.photo-row{grid-template-columns:1fr 1fr}.photo-row img:nth-child(3){display:none}.explore{grid-template-columns:1fr}}

/* press release card */
.pr-card-wrap{margin-top:clamp(36px,5vw,56px);display:flex;flex-direction:column;gap:14px}
.pr-card{display:block;text-decoration:none;color:inherit;background:var(--ground);border:1px solid var(--line);border-left:4px solid var(--brass);border-radius:4px;padding:clamp(20px,3vw,32px)}
.pr-card:hover{border-color:var(--sea);border-left-color:var(--brass)}
.pr-card-kick{display:flex;flex-wrap:wrap;align-items:center;gap:8px 12px;font:600 .72rem/1 var(--body);letter-spacing:.16em;text-transform:uppercase;color:var(--ink-2)}
.pr-card-pill{background:var(--brass);color:#fff;padding:6px 9px;border-radius:2px}
.pr-card-title{display:block;font:400 clamp(1.35rem,2.6vw,1.9rem)/1.2 var(--display);color:var(--ink);margin:14px 0 10px;max-width:46ch}
.pr-card-dek{display:block;color:var(--ink-2);max-width:62ch}
.pr-card-more{display:inline-block;margin-top:14px;font-weight:600;color:var(--sea)}
.pr-all{align-self:flex-start;font-weight:600;color:var(--sea);text-decoration:none}
