.site-header__logo img { height: 46px; width: auto; }
a { color:var(--ink); }
a:hover { color:var(--ink-soft); }
.mobile-menu a.btn--primary { color:var(--accent-ink); font-size:var(--step-0); padding-block:var(--space-3); }
.site-nav a { color: var(--ink); text-decoration: none; font-size: var(--step--1); }
.site-nav a:hover { color: var(--ink-soft); }
.header-actions { display:flex; align-items:center; gap:var(--space-3); }
.hero-editorial { min-height: min(760px, calc(100svh - 68px)); display:grid; align-items:end; overflow:hidden; background:var(--surface); }
.hero-editorial__media { position:absolute; inset:0; z-index:0; }
.hero-editorial__media img { width:100%; height:100%; object-fit:cover; object-position:center; }
.hero-editorial::after { content:""; position:absolute; inset:0; background:color-mix(in oklab, var(--bg) 68%, transparent); z-index:1; }
.hero-editorial :is(h1,h2,h3,p,.eyebrow,.hero-meta) { color:var(--ink); }
.hero-editorial h1.m-split .m-word { opacity:1; transform:none; }
.hero-editorial__content { position:relative; z-index:2; padding-block:clamp(5rem, 14vw, 10rem); max-width:760px; margin-inline-start:auto; }
.eyebrow { margin:0 0 var(--space-4); color:var(--ink-soft); font-size:var(--step--1); letter-spacing:.14em; text-transform:uppercase; }
.hero-editorial h1 { max-width: 12ch; font-size:clamp(2.8rem, 6vw, 6.2rem); }
.hero-editorial p { font-size:clamp(1.05rem, 1.2vw, 1.28rem); max-width:42rem; color:var(--ink-soft); }
.hero-actions { display:flex; gap:var(--space-3); flex-wrap:wrap; margin-block-start:var(--space-6); }
.hero-meta { display:flex; gap:var(--space-5); flex-wrap:wrap; align-items:center; margin-block-start:var(--space-6); color:var(--ink-soft); font-size:var(--step--1); }
.hero-meta strong { color:var(--ink); }
.rule { height:1px; background:color-mix(in oklab, var(--ink) 20%, transparent); }
.intro-grid { display:grid; grid-template-columns:minmax(0,1.2fr) minmax(220px,.8fr); gap:var(--space-8); align-items:end; }
.section-head { display:flex; justify-content:space-between; gap:var(--space-6); align-items:end; margin-block-end:var(--space-7); }
.section-head h2 { max-width:16ch; }
.section-head p { max-width:40ch; color:var(--ink-soft); }
.service-list { list-style:none; padding:0; margin:0; border-block-start:var(--border); }
.service-row { display:grid; grid-template-columns: minmax(0,1fr) minmax(180px,30%); gap:var(--space-6); padding-block:var(--space-5); border-block-end:var(--border); align-items:center; }
.service-row__content { display:grid; grid-template-columns:3.5rem minmax(0,1fr); gap:var(--space-4); align-items:start; }
.service-row__index { font-family:var(--font-display); font-size:var(--step-2); color:var(--ink-soft); font-variant-numeric:tabular-nums; }
.service-row h3 { font-size:var(--step-1); margin-block-end:var(--space-2); }
.service-row p { color:var(--ink-soft); margin:0; }
.service-row img { width:100%; aspect-ratio:3/2; object-fit:cover; border-radius:var(--radius-sm); }
.service-row a { color:inherit; text-decoration:none; }
.service-row a:hover h3 { text-decoration:underline; text-decoration-thickness:1px; text-underline-offset:4px; }
.principles { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-5); border-block-start:var(--border); }
.principle { padding-block:var(--space-5); border-block-end:var(--border); }
.principle h3 { font-size:var(--step-1); }
.principle p { color:var(--ink-soft); font-size:var(--step--1); }
.rating-band { display:grid; grid-template-columns:1fr auto; gap:var(--space-6); align-items:center; }
.rating-number { font-family:var(--font-display); font-size:clamp(3rem,8vw,6rem); line-height:1; }
.rating-stars { letter-spacing:.18em; font-size:var(--step-1); }
.process { display:grid; grid-template-columns:repeat(4,1fr); gap:var(--space-5); list-style:none; padding:0; margin:0; }
.process li { border-block-start:2px solid var(--ink); padding-block-start:var(--space-4); }
.process strong { display:block; font-family:var(--font-display); font-size:var(--step-2); margin-block-end:var(--space-3); }
.process p { color:var(--ink-soft); font-size:var(--step--1); }
.faq { max-width:760px; }
.faq details { border-block-end:var(--border); padding-block:var(--space-4); }
.faq summary { cursor:pointer; list-style:none; display:flex; justify-content:space-between; gap:var(--space-4); align-items:center; font-size:var(--step-1); font-weight:600; }
.faq summary::-webkit-details-marker { display:none; }
.faq summary::after { content:"+"; font-size:1.5em; font-weight:400; }
.faq details[open] summary::after { content:"−"; }
.faq details p { color:var(--ink-soft); margin-block-start:var(--space-3); }
.contact-grid { display:grid; grid-template-columns: minmax(0,.9fr) minmax(0,1.1fr); gap:var(--space-8); align-items:start; }
.contact-details { display:grid; gap:var(--space-3); color:var(--ink-soft); }
.contact-details a { color:var(--ink); }
.hours { display:grid; grid-template-columns:auto 1fr; gap:var(--space-2) var(--space-5); margin:var(--space-5) 0 0; }
.hours dt { font-weight:600; }
.hours dd { margin:0; color:var(--ink-soft); }
.form-shell { background:var(--surface); padding:clamp(1.25rem,4vw,2.5rem); border:var(--border); }
.form-shell h2 { font-size:var(--step-2); }
.map-frame { width:100%; min-height:420px; overflow:hidden; }
.map-frame iframe { width:100%; min-height:420px; border:0; display:block; }
.article-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:var(--space-5); }
.article-card { border-block-start:var(--border); padding-block-start:var(--space-4); }
.article-card h3 { font-size:var(--step-1); }
.article-card p { color:var(--ink-soft); font-size:var(--step--1); }
.page-hero { padding-block:var(--space-9) var(--space-8); background:var(--surface); }
.page-hero h1 { max-width:16ch; }
.page-hero p { color:var(--ink-soft); max-width:52ch; font-size:var(--step-1); }
.service-detail { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px, .62fr); gap:var(--space-8); align-items:start; }
.service-detail__media { position:sticky; top:calc(68px + var(--space-6)); }
.service-detail__media img { width:100%; aspect-ratio:4/3; object-fit:cover; border-radius:var(--radius-sm); }
.service-detail h2 { font-size:var(--step-2); margin-block-start:var(--space-7); }
.service-detail ul { padding-inline-start:1.25rem; }
.service-detail li { margin-block:var(--space-2); }
.link-arrow { display:inline-flex; align-items:center; gap:var(--space-2); color:var(--ink); font-weight:600; }
.cta-panel { display:grid; grid-template-columns:minmax(0,1fr) minmax(260px,.8fr); gap:var(--space-7); align-items:center; background:var(--ink); color:var(--accent-ink); }
.cta-panel h2,.cta-panel p { color:inherit; }
.cta-panel img { width:100%; aspect-ratio:3/2; object-fit:cover; }
.legal-copy { max-width:70ch; }
.legal-copy h2 { font-size:var(--step-2); margin-block-start:var(--space-7); }
.legal-copy h3 { font-size:var(--step-1); margin-block-start:var(--space-5); }
.breadcrumb { padding-block-start:var(--space-4); color:var(--ink-soft); font-size:var(--step--1); }
.breadcrumb a { color:inherit; }
.footer-logo { height:44px; width:auto; }
@media (max-width:899px) {
  .site-header__logo img { height:38px; }
  .site-header__inner { min-height:60px; }
  .header-actions .btn:not(.nav-toggle) { display:none; }
  .header-actions .nav-toggle { display:inline-flex; min-width:44px; padding-inline:var(--space-3); background:var(--accent); color:var(--accent-ink); border-color:var(--accent); font-size:1.35rem; }
  .hero-editorial { min-height:680px; align-items:end; }
  .hero-editorial::after { background:color-mix(in oklab, var(--bg) 74%, transparent); }
  .hero-editorial__content { padding-block:5rem 3.5rem; }
  .hero-editorial h1 { max-width:10ch; }
  .intro-grid,.contact-grid,.service-detail,.cta-panel { grid-template-columns:1fr; }
  .service-detail__media { position:static; order:-1; }
  .service-row { grid-template-columns:1fr; gap:var(--space-3); }
  .service-row img { width:100%; }
  .principles,.process,.article-grid { grid-template-columns:1fr 1fr; }
  .rating-band { grid-template-columns:1fr; }
  .map-frame { min-height:320px; }
}
@media (max-width:560px) {
  .principles,.process,.article-grid { grid-template-columns:1fr; }
  .hero-actions .btn { width:100%; }
  .section-head { display:block; }
}
