@font-face{font-family:"Syne";src:url("/assets/fonts/syne.woff2") format("woff2");font-weight:500 800;font-style:normal;font-display:swap}
@font-face{font-family:"Asap";src:url("/assets/fonts/asap.woff2") format("woff2");font-weight:400 700;font-style:normal;font-display:swap}

:root{
  --ink:#131312;
  --ink-2:#1d1d1b;
  --paper:#f5f3ed;
  --mute:#a3a09a;
  --mute-d:#5d5b56;
  --line:rgba(245,243,237,.24);
  --line-d:rgba(19,19,18,.24);
  --red:#d92b30;
  --red-d:#b3191e;
  --head:"Syne","Arial Black",Arial,sans-serif;
  --body:"Asap","Helvetica Neue",Arial,sans-serif;
  --hdr:64px;
}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--ink);color:var(--paper);font-family:var(--body);font-size:17px;line-height:1.6;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit}
h1,h2,h3{font-family:var(--head);font-weight:700;margin:0;letter-spacing:-.01em;text-wrap:balance}
p{margin:0 0 16px}
:focus-visible{outline:3px solid var(--red);outline-offset:3px}
.skip{position:absolute;left:8px;top:8px;background:var(--paper);color:var(--ink);padding:12px 16px;z-index:50;transform:translateY(-300%)}
.skip:focus{transform:none}

/* header */
.hdr{position:sticky;top:0;z-index:30;height:var(--hdr);background:var(--ink);border-bottom:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:24px;padding:0 32px}
.mark{font-family:var(--head);font-weight:700;font-size:19px;text-decoration:none;color:var(--paper);white-space:nowrap;min-height:48px;display:inline-flex;align-items:center}
.mark span{color:var(--mute);margin-left:.28em}
.nav{display:flex;align-items:center;gap:8px}
.nav a{font-weight:600;font-size:15px;text-decoration:none;padding:12px 16px;min-height:48px;display:inline-flex;align-items:center}
.nav a:hover,.nav a[aria-current="page"]{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:3px;text-underline-offset:8px}
.nav .tel{margin-left:16px;font-family:var(--head);font-weight:700;font-size:16px;text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:3px;text-underline-offset:8px}
.menu-btn{display:none;background:none;border:1px solid var(--line);color:var(--paper);font:600 15px var(--body);padding:0 16px;min-height:48px;cursor:pointer}

/* home narrative */
.story{position:relative}
.chapter{display:grid;grid-template-columns:minmax(0,44fr) 56px minmax(0,56fr);border-bottom:1px solid var(--line)}
.pane{position:sticky;top:var(--hdr);height:calc(100vh - var(--hdr));align-self:start;overflow:hidden;margin:0;background:var(--ink-2)}
.pane img{width:100%;height:100%;object-fit:cover}
.pane figcaption{position:absolute;left:0;right:0;bottom:0;padding:56px 24px 20px;background:linear-gradient(rgba(19,19,18,0),rgba(19,19,18,.88));font-size:14px;line-height:1.4;color:var(--paper)}
.copy{grid-column:3;padding:96px 56px 96px 24px;min-height:calc(100vh - var(--hdr));display:flex;flex-direction:column;justify-content:center}
.copy>*{max-width:36em}
.rail{position:absolute;top:0;bottom:0;left:calc((100% - 56px) * .44);width:56px;pointer-events:none}
.rail svg{position:sticky;top:96px;display:block;width:56px;height:calc(100vh - 128px)}
h1{font-size:clamp(2.5rem,4.2vw,4.25rem);line-height:1.04;margin-bottom:24px}
h2{font-size:clamp(1.9rem,2.8vw,2.75rem);line-height:1.1;margin-bottom:24px}
h3{font-size:1.25rem;line-height:1.35;margin-bottom:8px}
.lead{font-size:20px;line-height:1.55;max-width:30em}
.phone-big{font-family:var(--head);font-weight:700;font-size:clamp(2rem,3.4vw,3.25rem);line-height:1.15;color:var(--paper);text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:4px;text-underline-offset:10px;display:inline-block;min-height:48px;margin:16px 0 24px}
.phone-big:hover{text-decoration-color:var(--paper)}
.small{font-size:15px;color:var(--mute)}
.link-u{text-decoration:underline;text-decoration-thickness:1px;text-underline-offset:5px}
.link-u:hover{text-decoration-color:var(--red);text-decoration-thickness:3px}
.link-row{display:flex;flex-wrap:wrap;gap:8px 32px;margin-top:24px}
.link-row a{min-height:48px;display:inline-flex;align-items:center}
.rows{margin:24px 0 0;padding:0;list-style:none;border-top:1px solid var(--line)}
.rows li{padding:16px 0;border-bottom:1px solid var(--line);display:grid;grid-template-columns:minmax(0,1fr) minmax(0,2fr);gap:24px}
.rows b{font-family:var(--head);font-weight:600}
.rows span{color:var(--mute)}
.quote{margin:0;padding:24px 0;border-top:1px solid var(--line)}
.quote p{font-family:var(--head);font-weight:600;font-size:clamp(1.15rem,1.7vw,1.5rem);line-height:1.4;margin-bottom:8px}
.quote cite{font-style:normal;font-size:15px;color:var(--mute)}
.hours{border-collapse:collapse;width:100%;max-width:26em;margin:16px 0}
.hours th,.hours td{text-align:left;padding:8px 0;border-bottom:1px solid var(--line);font-weight:400}
.hours th{font-weight:600;width:50%}

/* inner pages */
.pagehead{display:grid;grid-template-columns:minmax(0,7fr) minmax(0,5fr);gap:48px;padding:96px 32px 72px;max-width:1280px;margin:0 auto}
.pagehead h1{font-size:clamp(2.4rem,4.6vw,4.5rem);margin:0}
.pagehead p{font-size:18px;color:var(--mute);margin:8px 0 0;align-self:end;max-width:28em}
.pagehead .phone-big{margin:0}
.sheet{background:var(--paper);color:var(--ink)}
.sheet .small{color:var(--mute-d)}
.wrap{max-width:1280px;margin:0 auto;padding:0 32px}
.sheet .wrap{padding-top:96px;padding-bottom:96px}
.sheet a.link-u:hover{text-decoration-color:var(--red-d)}
.svc{display:grid;grid-template-columns:240px minmax(0,1fr);gap:48px}
.svc-index{position:sticky;top:96px;align-self:start}
.svc-index ul{list-style:none;margin:0;padding:8px 0 0;border-top:1px solid var(--line-d)}
.svc-index a{display:flex;align-items:center;min-height:48px;border-bottom:1px solid var(--line-d);text-decoration:none;font-weight:600;font-size:15px}
.svc-index a:hover{text-decoration:underline;text-decoration-color:var(--red-d);text-decoration-thickness:3px;text-underline-offset:6px}
.svc-row{padding:0 0 64px;margin:0 0 64px;border-bottom:1px solid var(--line-d);scroll-margin-top:96px}
.svc-row:last-child{border-bottom:0;margin-bottom:0;padding-bottom:0}
.svc-row h2{font-size:clamp(1.75rem,2.4vw,2.25rem);margin-bottom:16px}
.svc-row p{max-width:36em}
.svc-row figure{margin:24px 0 0}
.svc-row figure img{width:100%;height:auto;max-height:520px;object-fit:cover}
figcaption.cap{font-size:14px;color:var(--mute-d);margin-top:8px}
.ask{font-size:15px;color:var(--mute-d);border-top:1px solid var(--line-d);padding-top:12px;margin-top:16px;max-width:36em}

.cols{columns:3;column-gap:24px}
.cols figure{margin:0 0 32px;break-inside:avoid}
.cols img{width:100%;height:auto;background:var(--ink-2)}
.cols figcaption{font-size:14px;color:var(--mute);margin-top:8px}
.gallery-wrap{max-width:1280px;margin:0 auto;padding:0 32px 96px}

.about{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,6fr);gap:64px;align-items:start}
.about img{width:100%;height:auto}
.about .logo-sign{max-width:420px;margin-bottom:24px}
.tally{list-style:none;margin:24px 0 0;padding:0;border-top:1px solid var(--line-d)}
.tally li{display:flex;justify-content:space-between;gap:16px;padding:12px 0;border-bottom:1px solid var(--line-d)}
.tally b{font-family:var(--head);font-weight:700}
.sheet .quote{border-color:var(--line-d)}
.sheet .quote cite{color:var(--mute-d)}
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:64px}
.sheet .hours th,.sheet .hours td{border-color:var(--line-d)}
.faq{background:var(--paper);color:var(--ink);border-top:1px solid var(--line-d);scroll-margin-top:64px}
.faq .wrap{padding-top:96px;padding-bottom:96px}
.faq h2{margin-bottom:48px}
.qa{display:grid;grid-template-columns:minmax(0,5fr) minmax(0,7fr);gap:48px;padding:24px 0;border-top:1px solid var(--line-d)}
.qa h3{margin:0;font-size:1.2rem}
.qa p{margin:0;max-width:36em}

/* footer */
.ftr{background:var(--ink);border-top:1px solid var(--line);padding:72px 32px 32px}
.ftr-in{max-width:1280px;margin:0 auto;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:48px}
.ftr .ftr-h{font-family:var(--body);font-size:1rem;line-height:1.4;margin-bottom:16px;color:var(--mute);font-weight:600;letter-spacing:0}
.ftr ul{list-style:none;margin:0;padding:0}
.ftr li a{display:flex;align-items:center;min-height:48px;text-decoration:none;font-size:16px}
.ftr li a:hover,.ftr a.tel:hover{text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:2px;text-underline-offset:5px}
.ftr .logo-sign{width:240px;height:auto;margin-bottom:16px}
.ftr address{font-style:normal;font-size:16px;line-height:1.6}
.ftr .tel{font-family:var(--head);font-weight:700;font-size:1.25rem;text-decoration:underline;text-decoration-color:var(--red);text-decoration-thickness:3px;text-underline-offset:6px;display:inline-flex;align-items:center;min-height:48px}
.legal{max-width:1280px;margin:48px auto 0;padding-top:24px;border-top:1px solid var(--line);font-size:14px;color:var(--mute);display:flex;flex-wrap:wrap;gap:8px 32px;justify-content:space-between}
.legal a{display:inline-flex;align-items:center;min-height:48px}

@media (max-width:1100px){
  .cols{columns:2}
  .ftr-in{grid-template-columns:1fr 1fr}
  .svc{grid-template-columns:1fr}
  .svc-index{position:static}
}
@media (max-width:900px){
  .hdr{padding:0 16px}
  .menu-btn{display:inline-flex;align-items:center}
  .nav{display:none;position:absolute;top:var(--hdr);left:0;right:0;background:var(--ink);border-bottom:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;padding:8px 16px 16px}
  .nav.open{display:flex}
  .nav a{border-bottom:1px solid var(--line);min-height:56px;font-size:17px;padding:12px 0}
  .nav .tel{margin-left:0;text-decoration:none;border-bottom:0}
  .chapter{display:block}
  .pane{position:relative;top:0;height:auto;aspect-ratio:4/3}
  .rail{display:none}
  .copy{padding:48px 16px 64px;min-height:0;display:block}
  .pagehead{grid-template-columns:1fr;gap:24px;padding:56px 16px 48px}
  .sheet .wrap,.faq .wrap{padding:56px 16px}
  .wrap,.gallery-wrap{padding-left:16px;padding-right:16px}
  .gallery-wrap{padding-bottom:64px}
  .about,.split{grid-template-columns:1fr;gap:32px}
  .qa{grid-template-columns:1fr;gap:8px}
  .rows li{grid-template-columns:1fr;gap:4px}
  .ftr{padding:48px 16px 24px}
  .ftr-in{grid-template-columns:1fr;gap:32px}
}
@media (max-width:600px){
  .cols{columns:1}
  body{font-size:17px}
}
@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important}}
