@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:400;font-display:swap;src:url("/assets/fonts/ibm-plex-sans-latin-400-normal.woff2") format("woff2");}
@font-face{font-family:"IBM Plex Sans";font-style:normal;font-weight:600;font-display:swap;src:url("/assets/fonts/ibm-plex-sans-latin-600-normal.woff2") format("woff2");}
:root{
  --c-bg:#ffffff;--c-surface:#f3f3f1;--c-text:#141414;--c-muted:#6d6d6d;--c-line:#dcdcdc;
  --c-accent:#141414;--c-accent-text:#ffffff;--c-soft:#e3e3e3;--c-dark:#141414;--c-dark-text:#ffffff;
  --bg:var(--c-bg);--surface:var(--c-surface);--text:var(--c-text);--muted:var(--c-muted);--line:var(--c-line);
  --accent:var(--c-accent);--accent-text:var(--c-accent-text);
  --font-heading:"IBM Plex Sans",system-ui,sans-serif;--font-body:"IBM Plex Sans",system-ui,sans-serif;
  --heading-weight:600;--heading-scale:1;--btn-radius:0;
}
html{font-size:100%}
.bg-surface{background:var(--c-surface);--surface:var(--c-bg)}
.bg-soft{background:var(--c-soft);--surface:var(--c-bg);--line:#c4c4c4}
.bg-white{background:#fff;--surface:#f6f6f6}
.bg-accent{background:var(--c-accent);--text:var(--c-accent-text);--muted:#d0d0d0;--line:#5b5b5b;--accent:var(--c-accent-text);--accent-text:var(--c-accent);--surface:#2c2c2c}
.bg-dark{background:var(--c-dark);--text:var(--c-dark-text);--muted:#bdbdbd;--line:#434343;--accent:#959595;--accent-text:#ffffff;--surface:#242424}

*,*::before,*::after{box-sizing:border-box}
html{-webkit-text-size-adjust:100%}
body{margin:0;background:var(--bg);color:var(--text);font-family:var(--font-body);font-size:1.0625rem;line-height:1.65}
img{max-width:100%;height:auto;display:block}
a{color:var(--accent);text-underline-offset:.18em;text-decoration-thickness:1px}
a:hover{text-decoration-thickness:2px}
h1,h2,h3,h4{font-family:var(--font-heading);font-weight:var(--heading-weight);line-height:1.2;margin:0 0 .6em;letter-spacing:-.01em}
h1{font-size:calc(clamp(2rem,1.4rem + 2.6vw,3.25rem) * var(--heading-scale))}
h2{font-size:calc(clamp(1.55rem,1.25rem + 1.2vw,2.1rem) * var(--heading-scale))}
h3{font-size:calc(1.25rem * var(--heading-scale))}
p{margin:0 0 1em}
:focus-visible{outline:2px solid var(--accent);outline-offset:3px}
.wrap{width:min(1120px,100% - 2.5rem);margin-inline:auto}
.narrow{max-width:720px}
.skip{position:absolute;left:-999px;top:0;background:var(--accent);color:var(--accent-text);padding:.6rem 1rem;z-index:10}
.skip:focus{left:1rem}

.site-header{border-bottom:1px solid var(--line);background:var(--bg);position:sticky;top:0;z-index:5}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:76px}
.brand{text-decoration:none;color:var(--text);display:flex;flex-direction:column;line-height:1.2}
.brand strong{font-family:var(--font-heading);font-weight:var(--heading-weight);font-size:1.3rem}
.brand small{color:var(--muted);font-size:.85rem}
.brand img{max-height:52px;width:auto}
.site-nav{display:flex;align-items:center;gap:1.75rem}
.site-nav ul{list-style:none;margin:0;padding:0;display:flex;gap:1.5rem}
.site-nav li{position:relative}
.site-nav a{color:var(--text);text-decoration:none;font-size:.98rem}
.site-nav a:hover,.site-nav a[aria-current=page]{color:var(--accent)}
.site-nav a[aria-current=page]{text-decoration:underline;text-decoration-thickness:1px}
.site-nav a.btn,.site-nav a.btn:hover{color:var(--accent-text);text-decoration:none}
.site-nav .sub{display:none;position:absolute;top:100%;left:-1rem;background:var(--surface);border:1px solid var(--line);padding:.75rem 1rem;min-width:240px;flex-direction:column;gap:.45rem}
.site-nav li:hover>.sub,.site-nav li:focus-within>.sub{display:flex}
.nav-extra{display:flex;align-items:center;gap:1rem}
.lang a{font-size:.85rem;color:var(--muted);text-decoration:none;letter-spacing:.04em}
.lang a[aria-current=true]{color:var(--text);font-weight:600}
.nav-toggle{display:none;background:none;border:1px solid var(--line);border-radius:var(--btn-radius);color:var(--text);font:inherit;padding:.4rem .8rem;cursor:pointer}

.btn{display:inline-block;background:var(--accent);color:var(--accent-text);text-decoration:none;padding:.8rem 1.4rem;font-weight:600;font-size:.98rem;border:1px solid var(--accent);border-radius:var(--btn-radius);cursor:pointer;font-family:inherit}
.btn:hover{filter:brightness(1.08)}
.btn-ghost{background:transparent;color:var(--accent)}
.btn-small{padding:.5rem 1rem;font-size:.92rem}

.block{padding:clamp(2.5rem,2rem + 3vw,5rem) 0}
.block + .block{padding-top:0}
.block.has-bg,.block.has-bg + .block{padding-top:clamp(2.5rem,2rem + 3vw,5rem)}
.has-bg{color:var(--text)}
.has-bg .cta-band{border:0;padding:0}
.has-bg .hero-plain{border-bottom:0;padding-bottom:0}
main > .block.has-bg:last-child{margin-bottom:calc(-1 * clamp(3rem,5vw,5rem))}
.pb-ph{display:grid;place-items:center;width:100%;aspect-ratio:4/3;background:var(--surface);border:1px dashed var(--line);color:var(--muted);font-size:.95rem}
.hero-media .pb-ph,.team-grid .pb-ph{aspect-ratio:4/5}
.team-grid .pb-ph{margin-bottom:1rem}
.gallery-grid .pb-ph{aspect-ratio:3/2}
@media (prefers-reduced-motion:no-preference){
  .anim-ready main .block{transition:opacity .8s ease,transform .8s ease}
  .anim-ready[data-anim=fade] main .block:not(.in){opacity:0}
  .anim-ready[data-anim=slide] main .block:not(.in){opacity:0;transform:translateY(32px)}
}
.page-title{padding-top:clamp(2.5rem,2rem + 3vw,4.5rem)}

.hero-split .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:clamp(2rem,4vw,4.5rem);align-items:center}
.hero-split .hero-media img{width:100%;aspect-ratio:4/5;object-fit:cover}
.hero .lead{font-size:1.18rem;color:var(--muted);max-width:36em}
.hero .lead p:last-child{margin-bottom:1.6em}
.hero-plain{border-bottom:1px solid var(--line);padding-bottom:clamp(2rem,1.5rem + 2vw,3.5rem)}
.hero-plain h1{max-width:18em}

.prose ul,.prose ol{padding-left:1.25em;margin:0 0 1em}
.prose li{margin-bottom:.35em}
.prose h3{margin-top:1.6em}
.prose blockquote{margin:1.5em 0;padding-left:1.25em;border-left:2px solid var(--accent);font-family:var(--font-heading);font-size:1.15rem}

.text-image{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,4rem);align-items:start}
.text-image.image-left .ti-media{order:-1}
.text-image img{width:100%;aspect-ratio:4/3;object-fit:cover}

.section-head{max-width:720px;margin-bottom:2rem}
.section-head .intro{color:var(--muted)}

.service-list{list-style:none;margin:0;padding:0;border-top:1px solid var(--line)}
.service-list li{border-bottom:1px solid var(--line)}
.service-list a,.service-list .row{display:grid;grid-template-columns:minmax(180px,1fr) 2fr auto;gap:1.5rem;align-items:baseline;padding:1.15rem 0;color:var(--text);text-decoration:none}
.service-list a:hover .s-title{color:var(--accent)}
.s-title{font-family:var(--font-heading);font-size:1.2rem}
.s-text{color:var(--muted)}
.s-arrow{color:var(--accent)}
.service-list.with-images a,.service-list.with-images .row{grid-template-columns:96px minmax(160px,1fr) 2fr auto;align-items:center}
.service-list img{width:96px;height:72px;object-fit:cover}

.facts{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:0;margin:0;border-top:1px solid var(--line)}
.facts div{padding:1.1rem 1.25rem 1.1rem 0;border-bottom:1px solid var(--line)}
.facts dt{font-size:.85rem;color:var(--muted);text-transform:uppercase;letter-spacing:.06em}
.facts dd{margin:.2rem 0 0;font-family:var(--font-heading);font-size:1.2rem}

.hours{border-collapse:collapse;width:100%;max-width:520px}
.hours th,.hours td{text-align:left;padding:.65rem 0;border-bottom:1px solid var(--line);font-weight:400}
.hours th{color:var(--muted);width:45%}
.hours-note{color:var(--muted);margin-top:1rem}

.team-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(250px,1fr));gap:2.5rem 2rem}
.team-grid img{width:100%;aspect-ratio:4/5;object-fit:cover;margin-bottom:1rem}
.team-grid h3{margin-bottom:.15em}
.team-role{color:var(--muted);margin-bottom:.6em}

.faq details{border-bottom:1px solid var(--line)}
.faq details:first-of-type{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;padding:1.1rem 2rem 1.1rem 0;font-family:var(--font-heading);font-size:1.12rem;list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:.25rem;top:1rem;color:var(--accent);font-size:1.3rem}
.faq details[open] summary::after{content:"–"}
.faq .answer{padding-bottom:1.2rem;max-width:44em}

.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:1rem}
.gallery-grid img{width:100%;aspect-ratio:3/2;object-fit:cover}
.gallery-grid figcaption{font-size:.9rem;color:var(--muted);margin-top:.4rem}

.notice{border-left:3px solid var(--accent);background:var(--surface);padding:1.25rem 1.5rem}
.notice.important{border-left-color:#a33a2b}
.notice h2{font-size:1.2rem;margin-bottom:.4em}
.notice :last-child{margin-bottom:0}

.consent{border:1px solid var(--line);background:var(--surface);padding:clamp(1.5rem,3vw,2.5rem)}
.consent p{color:var(--muted);max-width:40em}
.consent-actions{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center}
.consent iframe{width:100%;border:0;display:block;background:#fff}
.consent.is-video{background:#1a1a1a;min-height:12rem}
.consent.is-video p{color:#d8d8d8}
.consent.is-video .btn-ghost{color:#fff;border-color:rgba(255,255,255,.35)}
.consent.loaded{padding:0;border:0;background:transparent;overflow:hidden}
.consent.loaded.is-video{border-radius:4px}

.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,4vw,4rem)}
.contact-grid address{font-style:normal;font-size:1.12rem;line-height:1.7}
.contact-lines{list-style:none;padding:0;margin:1.25rem 0}
.contact-lines li{padding:.45rem 0;border-bottom:1px solid var(--line)}
.contact-lines span{display:inline-block;min-width:5.5rem;color:var(--muted)}

.cta-band{border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:clamp(2rem,4vw,3.25rem) 0;display:flex;justify-content:space-between;align-items:center;gap:2rem}
.cta-band h2{margin-bottom:.25em}
.cta-band p{margin:0;color:var(--muted)}

.site-footer{border-top:1px solid var(--line);margin-top:clamp(3rem,5vw,5rem);padding:3rem 0 2rem;font-size:.95rem;color:var(--muted)}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:2rem}
.site-footer strong{color:var(--text);font-family:var(--font-heading);font-weight:var(--heading-weight);font-size:1.1rem}
.site-footer ul{list-style:none;padding:0;margin:0}
.site-footer li{margin-bottom:.35rem}
.site-footer a{color:var(--muted)}
.footer-bottom{margin-top:2.5rem;font-size:.85rem}

[data-block]{scroll-margin-top:100px}
.pb-selected{outline:2px dashed var(--accent);outline-offset:-2px}

@media (max-width:860px){
  .nav-toggle{display:block}
  .site-nav{display:none;position:absolute;left:0;right:0;top:100%;background:var(--bg);border-bottom:1px solid var(--line);flex-direction:column;align-items:flex-start;padding:1rem 1.25rem 1.5rem;gap:1rem}
  .site-nav.open{display:flex}
  .site-nav ul{flex-direction:column;gap:.7rem}
  .site-nav .sub{display:flex;position:static;border:0;padding:.5rem 0 0 1rem;background:none;min-width:0}
  .hero-split .hero-grid,.text-image,.contact-grid,.footer-grid{grid-template-columns:1fr}
  .hero-split .hero-media{order:-1}
  .hero-split .hero-media img{aspect-ratio:4/3}
  .text-image.image-left .ti-media{order:0}
  .service-list a,.service-list .row,.service-list.with-images a,.service-list.with-images .row{grid-template-columns:1fr auto;gap:.25rem 1rem}
  .service-list img{display:none}
  .s-text{grid-column:1}
  .s-arrow{grid-row:1;grid-column:2}
  .cta-band{flex-direction:column;align-items:flex-start}
}
@media print{.site-header,.site-footer,.consent{display:none}}
