:root {
  --font-display: 'Cabinet Grotesk', 'Helvetica Neue', sans-serif;
  --font-body: 'Satoshi', 'Helvetica Neue', sans-serif;
  --text-xs: clamp(.75rem,.72rem + .14vw,.8125rem);
  --text-sm: clamp(.875rem,.85rem + .12vw,.9375rem);
  --text-base: clamp(1rem,.95rem + .2vw,1.125rem);
  --text-xl: clamp(1.5rem,1.1rem + 1vw,2rem);
  --text-2xl: clamp(2.25rem,1.6rem + 2.7vw,4.25rem);
  --text-hero: clamp(3.25rem,1.35rem + 5.5vw,6.5rem);
  --space-1: .25rem; --space-2: .5rem; --space-3: .75rem;
  --space-4: 1rem; --space-5: 1.25rem; --space-6: 1.5rem;
  --space-8: 2rem; --space-10: 2.5rem; --space-12: 3rem;
  --space-16: 4rem; --space-20: 5rem; --space-24: 6rem; --space-32: 8rem;
  --radius-sm: 4px; --radius-md: 8px; --radius-lg: 16px;
  --color-bg: oklch(.98 .005 85);
  --color-surface: oklch(1 0 0);
  --color-surface-offset: oklch(.945 .008 85);
  --color-text: oklch(.2 .002 85);
  --color-text-muted: oklch(.46 .004 85);
  --color-border: oklch(.2 0 0 / .15);
  --color-primary: oklch(.55 .215 27);
  --color-primary-hover: oklch(.49 .2 27);
  --color-link-hover: var(--color-primary);
  --color-accent-text: var(--color-primary);
  --color-accent-on-dark: oklch(.65 .22 27);
  --white: oklch(.98 .003 85);
  --transition-interactive: 240ms cubic-bezier(.16,1,.3,1);
  --gutter: clamp(var(--space-5),5vw,var(--space-20));
  color-scheme: light;
}
[data-theme="dark"] {
  --color-bg: oklch(.15 .002 85);
  --color-surface: oklch(.185 .002 85);
  --color-surface-offset: oklch(.215 .003 85);
  --color-text: oklch(.96 .006 85);
  --color-text-muted: oklch(.72 .005 85);
  --color-border: oklch(.95 0 0 / .15);
  --color-link-hover: oklch(.72 .17 27);
  --color-accent-text: var(--color-accent-on-dark);
  color-scheme: dark;
}
a { color: inherit; text-decoration: none; }
button,a,input,select,textarea { -webkit-tap-highlight-color: transparent; }
button:active,.button:active { transform: translateY(1px); }
[hidden] { display: none !important; }
body { overflow-x: clip; }
body.modal-open { overflow: hidden; }
main { min-height: 50vh; }
.container { width: 100%; max-width: 1520px; padding-inline: var(--gutter); margin-inline: auto; }
.section { padding-block: clamp(var(--space-16),8vw,var(--space-32)); }
.eyebrow { display: flex; align-items: center; gap: var(--space-3); font-size: var(--text-xs); letter-spacing: .12em; text-transform: uppercase; margin-bottom: var(--space-6); font-weight: 600; color:var(--color-accent-text); }
.accent-text { color:var(--color-accent-text); }
.eyebrow::before { content: ''; width: 24px; height: 2px; background: var(--color-primary); flex: none; }
h1,h2,h3 { font-family: var(--font-display); font-weight: 500; letter-spacing: -.035em; }
h2 { font-size: var(--text-2xl); }
h3 { font-size: var(--text-xl); }
p { color: var(--color-text-muted); }
.section-heading { display: flex; justify-content: space-between; align-items: end; gap: var(--space-12); margin-bottom: var(--space-12); }
.section-heading h2 { max-width: 15ch; }
.section-heading>p { max-width: 38ch; }
.button { display: inline-flex; align-items: center; justify-content: center; gap: var(--space-8); min-height: 52px; padding: var(--space-4) var(--space-6); background: var(--color-primary); color: white; border: 1px solid transparent; border-radius: var(--radius-sm); font-size: var(--text-sm); font-weight: 600; }
.button:hover { background: var(--color-primary-hover); }
.button.secondary { background: transparent; border-color: var(--color-border); color: var(--color-text); }
.button.secondary:hover { background: var(--color-surface-offset); }
.arrow { font-family: sans-serif; font-weight: 400; font-size: var(--text-xl); line-height: 1; display: inline-block; transition: transform var(--transition-interactive); }
a:hover>.arrow,button:hover>.arrow { transform: translate(2px,-2px); }
.text-link { display: inline-flex; gap: var(--space-6); align-items: center; min-height: 44px; padding-block: var(--space-2); font-size: var(--text-sm); border-bottom: 1px solid currentColor; }
.text-link:hover { color: var(--color-link-hover); }
.skip-link { position: fixed; z-index: 500; left: var(--space-4); top: -100px; padding: var(--space-3) var(--space-5); background: var(--color-primary); color: white; }
.skip-link:focus { top: var(--space-4); }
.site-header { position: absolute; top: 0; left: 0; right: 0; z-index: 50; color: var(--white); border-bottom: 1px solid oklch(1 0 0 / .18); background:oklch(.1 0 0 / .93); }
.header-inner { height: 128px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); }
.brand { display: inline-flex; align-items: center; gap: var(--space-3); flex-shrink: 0; }
.brand-logo { width:150px;height:auto;display:block;object-fit:contain;background:black; }
.main-nav { display: flex; align-items: center; gap: var(--space-8); }
.main-nav a { font-size: var(--text-sm); min-height: 44px; display: flex; align-items: center; border-bottom: 1px solid transparent; }
.main-nav a:hover,.main-nav a[aria-current="page"] { border-color: currentColor; }
.header-actions { display: flex; align-items: center; gap: var(--space-4); }
.header-actions .button { min-height: 44px; padding: var(--space-3) var(--space-5); background: oklch(1 0 0 / .06); border-color: oklch(1 0 0 / .35); backdrop-filter: blur(10px); }
.header-actions .button:hover { background: var(--color-primary); border-color: var(--color-primary); }
.icon-button { height: 44px; width: 44px; border: 1px solid oklch(1 0 0 / .25); border-radius: 50%; display: grid; place-items: center; flex: none; }
.icon-button:hover { background: oklch(1 0 0 / .1); }
.theme-shape { width: 15px; height: 15px; border: 1.5px solid currentColor; border-radius: 50%; background: linear-gradient(90deg,currentColor 50%,transparent 50%); }
.menu-toggle { display: none; border-radius: var(--radius-sm); }
.menu-lines { width: 18px; height: 8px; border-block: 1px solid currentColor; }
.mobile-nav { position:fixed;inset:0;z-index:150;width:100%;max-width:none;height:100dvh;max-height:none;margin:0;border:0;background:var(--color-bg);color:var(--color-text);padding:var(--space-6);display:none;flex-direction:column;overflow-y:auto; }
.mobile-nav[open] { display:flex;animation:menu-appear 180ms ease-out; }
.mobile-nav::backdrop { background:var(--color-bg); }
@keyframes menu-appear { from { opacity:0; } to { opacity:1; } }
.mobile-nav-top { display: flex; align-items: center; justify-content: space-between; margin-bottom: var(--space-8); }
.mobile-nav .brand-logo { width:128px; }
.mobile-nav-links { display: flex; flex-direction: column; gap: var(--space-4); }
.mobile-nav-links a { font-size: var(--text-xl); font-family: var(--font-display); min-height: 48px; }
.mobile-nav-contact { display: flex; flex-direction: column; gap: var(--space-3); margin-top: auto; padding-top: var(--space-10); }
.mobile-nav-contact a { min-height: 44px; display: inline-flex; align-items: center; }
.hero { min-height: min(900px,100svh); position: relative; isolation: isolate; color: var(--white); background: oklch(.13 0 0); display: flex; flex-direction: column; justify-content: end; overflow: hidden; }
.hero-image { position: absolute; width: 100%; height: 100%; inset: 0; object-fit: cover; object-position: 65% 50%; z-index: -3; animation: slow-pan 24s ease-out both; }
@keyframes slow-pan { from { transform: scale(1.02); } to { transform: scale(1.1); } }
.hero::before { content:''; position:absolute; inset:0; z-index:-2; background: linear-gradient(90deg,oklch(.1 0 0 / .88),oklch(.1 0 0 / .49) 48%,oklch(.1 0 0 / .08)),linear-gradient(0deg,oklch(.1 0 0 / .58),transparent 50%,oklch(.1 0 0 / .35)); }
.hero-content { padding-top: 200px; padding-bottom: var(--space-16); }
.hero-pill { display: inline-flex; align-items: center; gap: var(--space-3); font-size: var(--text-xs); padding: var(--space-2) var(--space-4); border: 1px solid oklch(1 0 0 / .24); border-radius: 30px; background: oklch(.1 0 0 / .22); margin-bottom: var(--space-6); }
.hero-pill::before { content:''; width:6px; height:6px; border-radius:50%; background:var(--color-primary); }
.hero h1 { font-size: var(--text-hero); line-height: 1.02; max-width: 18ch; }
.hero h1 span { color:var(--color-accent-on-dark); }
.hero-description { color: oklch(.91 .003 85); max-width: 43ch; margin-top: var(--space-6); font-size: var(--text-base); }
.hero-secondary { color:var(--white);font-size:var(--text-sm);margin-top:var(--space-4); }
.hero-bottom { width: 100%; border-top: 1px solid oklch(1 0 0 / .2); background: oklch(.12 0 0 / .23); backdrop-filter: blur(10px); }
.hero-bottom-inner { display: flex; align-items: center; justify-content: space-between; gap: var(--space-8); padding-block: var(--space-6); }
.hero-ctas { display:flex;align-items:center; gap:var(--space-8); }
.hero-ctas .text-link { border:0; color:white; }
.hero-caption { font-size:var(--text-xs); text-align:right; line-height:1.6; color:oklch(.86 .003 85); }
.hero-caption span { display:block; }
.hero-caption .hero-image-note { margin-top:var(--space-2);opacity:.7; }
.trust-strip { padding-block:var(--space-6); border-bottom:1px solid var(--color-border); }
.trust-list { display:flex;align-items:center;justify-content:space-between;gap:var(--space-6);flex-wrap:wrap;list-style:none; }
.trust-list li { font-size:var(--text-sm); display:flex;gap:var(--space-3);align-items:center; }
.trust-list li::before { content:'+';color:var(--color-primary);font-size:var(--text-xl); }
.services-layout { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-16);align-items:start; }
.service-image-wrap { position:sticky;top:var(--space-8);border-radius:var(--radius-md);overflow:hidden;aspect-ratio:1/1.05;background:var(--color-surface-offset); }
.service-image-wrap img { width:100%;height:100%;object-fit:cover;transition:opacity 240ms ease; }
.image-caption { position:absolute;bottom:0;inset-inline:0;padding:var(--space-8);color:white;background:linear-gradient(transparent,oklch(.1 0 0 / .8));font-size:var(--text-xs); }
.service-item { border-top:1px solid var(--color-border); }
.service-item:last-child { border-bottom:1px solid var(--color-border); }
.service-trigger { display:grid;grid-template-columns:2rem 1fr 24px;gap:var(--space-4);align-items:center;width:100%;text-align:left;padding-block:var(--space-6); }
.service-trigger:hover { color:var(--color-link-hover); }
.service-number { font-size:var(--text-xs);color:var(--color-accent-text);align-self:start;padding-top:var(--space-2); }
.service-name { font-family:var(--font-display);font-size:var(--text-xl);line-height:1.2;letter-spacing:-.02em; }
.service-symbol { font-size:var(--text-xl);font-weight:300; }
.service-content { display:grid;grid-template-rows:0fr;visibility:hidden;transition:grid-template-rows 350ms ease,visibility 350ms ease; }
.service-content>div { overflow:hidden; }
.service-content p { font-size:var(--text-base);padding-left:var(--space-12); }
.service-content .text-link { margin:var(--space-4) 0 var(--space-8) var(--space-12); }
.service-item.is-open .service-content { grid-template-rows:1fr;visibility:visible; }
.work-section { background:var(--color-surface);border-block:1px solid var(--color-border); }
.filters { display:flex;gap:var(--space-2);flex-wrap:wrap;margin-bottom:var(--space-8); }
.filter { padding:var(--space-2) var(--space-5);border:1px solid var(--color-border);border-radius:30px;min-height:44px;font-size:var(--text-sm); }
.filter:hover { background:var(--color-surface-offset); }
.filter[aria-pressed="true"] { background:var(--color-primary);color:white;border-color:var(--color-primary); }
.gallery-grid { display:grid;grid-template-columns:1.2fr 1fr;gap:var(--space-10) var(--space-6); }
.gallery-card:nth-child(even) { padding-top:var(--space-16); }
.gallery-card button { display:block;width:100%;text-align:left; }
.gallery-img { overflow:hidden;border-radius:var(--radius-md);aspect-ratio:4/3;position:relative;background:var(--color-surface-offset); }
.gallery-img img { width:100%;height:100%;object-fit:cover;transition:transform 650ms cubic-bezier(.16,1,.3,1); }
.gallery-card button:hover img { transform:scale(1.045); }
.gallery-open { position:absolute;right:var(--space-5);bottom:var(--space-5);height:44px;width:44px;display:grid;place-items:center;background:oklch(.98 0 0 / .9);color:oklch(.15 0 0);border-radius:50%; }
.gallery-title { display:flex;justify-content:space-between;gap:var(--space-4);align-items:center;margin-top:var(--space-5); }
.gallery-title h3 { font-size:var(--text-xl); }
.gallery-meta { margin-top:var(--space-2);color:var(--color-text-muted);font-size:var(--text-xs); }
.image-note { margin-top:var(--space-8);font-size:var(--text-xs);max-width:80ch; }
.home-detail-section { display:grid;grid-template-columns:.7fr 1.3fr;gap:var(--space-16);align-items:center; }
.home-detail-copy p { margin-top:var(--space-6); }
.home-detail-copy .text-link { margin-top:var(--space-6); }
.hardware-list { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-5);padding-block:var(--space-5);margin-top:var(--space-6);border-block:1px solid var(--color-border);font-size:var(--text-sm); }
.home-detail-image img { width:100%;height:auto;border-radius:var(--radius-md); }
.home-detail-image .image-note { margin-top:var(--space-3); }
.local-story { background:oklch(.12 .002 85);color:var(--white);position:relative;isolation:isolate;overflow:hidden; }
.story-image { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;opacity:.2;z-index:-2; }
.local-story::after { content:'';position:absolute;inset:0;background:linear-gradient(90deg,oklch(.12 0 0 / .5),oklch(.12 0 0 / .8));z-index:-1; }
.story-layout { display:grid;grid-template-columns:.6fr 1.4fr;gap:var(--space-16);align-items:start; }
.story-statement { font-family:var(--font-display);font-size:var(--text-2xl);line-height:1.18;letter-spacing:-.035em;color:var(--white);max-width:25ch; }
.story-statement span { color:var(--color-accent-on-dark); }
.local-story .eyebrow { color:var(--color-accent-on-dark); }
.story-logo { width:100%;max-width:300px;height:auto;background:black; }
.story-roots { color:inherit;margin-top:var(--space-6); }
.story-body { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-8);margin-top:var(--space-10); }
.story-body p { color:oklch(.77 .005 85); }
.story-signature { font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;display:flex;gap:var(--space-3);align-items:center;margin-top:var(--space-10); }
.story-signature::before { content:'';width:32px;height:1px;background:var(--color-primary); }
.process-grid { display:grid;grid-template-columns:repeat(4,1fr);gap:var(--space-8);margin-top:var(--space-12); }
.process-step { border-top:1px solid var(--color-border);padding-top:var(--space-6); }
.process-number { font-size:var(--text-xs);color:var(--color-accent-text);display:block;margin-bottom:var(--space-8); }
.process-step h3 { font-size:var(--text-xl);margin-bottom:var(--space-4); }
.process-step p { font-size:var(--text-sm); }
.cta-section { padding-block:var(--space-16);background:var(--color-surface-offset);border-block:1px solid var(--color-border); }
.cta-inner { display:flex;align-items:center;justify-content:space-between;gap:var(--space-8); }
.cta-inner h2 { max-width:17ch; }
.cta-inner p { margin-top:var(--space-4); }
.cta-inner .button { flex-shrink:0; }
.site-footer { padding-top:var(--space-16); }
.footer-main { display:grid;grid-template-columns:1.2fr 1fr .7fr;gap:var(--space-16);padding-bottom:var(--space-12); }
.footer-main .brand { margin-bottom:var(--space-6); }
.footer-main .brand-logo { width:240px;max-width:100%; }
.footer-description { font-size:var(--text-sm);max-width:32ch; }
.footer-label { font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;display:block;margin-bottom:var(--space-5);color:var(--color-accent-text); }
.footer-links { display:flex;flex-direction:column;align-items:start;gap:var(--space-2); }
.footer-links a { min-height:44px;display:flex;align-items:center;font-size:var(--text-sm); }
.footer-links a:hover { color:var(--color-link-hover); }
.footer-bottom { padding-block:var(--space-6);border-top:1px solid var(--color-border);display:flex;justify-content:space-between;gap:var(--space-6);font-size:var(--text-xs);color:var(--color-text-muted); }
.footer-bottom button { min-height:44px; }
.mobile-cta { display:none; }
.reveal { opacity:1; }
.js .reveal { opacity:0;transition:opacity 700ms ease; }
.js .reveal.is-visible { opacity:1; }
.contact-page .site-header { position:relative;background:oklch(.13 .002 85); }
.contact-page main { padding-top:var(--space-16); }
.contact-heading { padding-bottom:var(--space-12); }
.contact-heading h1 { font-size:var(--text-2xl);max-width:18ch; }
.contact-heading p { margin-top:var(--space-6);max-width:56ch; }
.contact-layout { display:grid;grid-template-columns:.85fr 1.15fr;gap:clamp(var(--space-10),7vw,var(--space-24));padding-bottom:var(--space-24);align-items:start; }
.contact-method { border-top:1px solid var(--color-border);padding-block:var(--space-6); }
.contact-method .label { font-size:var(--text-xs);text-transform:uppercase;letter-spacing:.1em;display:block;color:var(--color-accent-text);margin-bottom:var(--space-3); }
.contact-method a { display:inline-flex;min-height:44px;align-items:center;gap:var(--space-5);font-family:var(--font-display);font-size:var(--text-xl);letter-spacing:-.01em;overflow-wrap:anywhere; }
.contact-method a:hover { color:var(--color-link-hover); }
.contact-method.email a { font-size:var(--text-base);font-family:var(--font-body); }
.contact-method p { font-size:var(--text-sm); }
.contact-local-note { padding:var(--space-6);background:var(--color-surface-offset);border-radius:var(--radius-md);margin-top:var(--space-5); }
.contact-local-note p { font-size:var(--text-sm); }
.contact-local-note strong { display:block;color:var(--color-accent-text);margin-bottom:var(--space-2); }
.contact-logo { width:200px;max-width:100%;height:auto;margin-bottom:var(--space-6);background:black; }
.quote-form { padding:clamp(var(--space-6),3vw,var(--space-10));background:var(--color-surface);border:1px solid var(--color-border);border-radius:var(--radius-md); }
.quote-form>p { font-size:var(--text-sm);margin-top:var(--space-3);margin-bottom:var(--space-8); }
.form-row { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-5); }
.form-row:has(#service) { grid-template-columns:1fr;gap:0; }
.field { margin-bottom:var(--space-5); }
.field label { display:block;margin-bottom:var(--space-2);font-size:var(--text-sm); }
.field label span { color:var(--color-text-muted);font-size:var(--text-xs); }
.field input,.field select,.field textarea { width:100%;min-height:50px;padding:var(--space-3) var(--space-4);background:var(--color-bg);border:1px solid var(--color-border);border-radius:var(--radius-sm);font-size:var(--text-base); }
.field input:hover,.field select:hover,.field textarea:hover { border-color:var(--color-text-muted); }
.field textarea { min-height:120px;resize:vertical; }
.field-error { font-size:var(--text-xs);color:var(--color-primary);margin-top:var(--space-2); }
.field-hint { font-size:var(--text-xs);margin-top:var(--space-2); }
[data-theme="dark"] .field-error { color:oklch(.75 .16 27); }
.quote-form .button { width:100%; }
.form-note { font-size:var(--text-xs)!important;margin-top:var(--space-4)!important;margin-bottom:0!important; }
.form-note button { text-decoration:underline; }
.draft-result { margin-top:var(--space-6);border-top:1px solid var(--color-border);padding-top:var(--space-6); }
.draft-result h3 { margin-bottom:var(--space-3); }
.draft-result p { margin-bottom:var(--space-4);font-size:var(--text-sm); }
.draft-result pre { white-space:pre-wrap;overflow-wrap:anywhere;font-family:var(--font-body);font-size:var(--text-sm);background:var(--color-bg);padding:var(--space-5);margin-bottom:var(--space-5);border:1px solid var(--color-border); }
.draft-result .secondary { margin-top:var(--space-3); }
.dialog { width:min(1020px,calc(100% - 40px));max-height:90dvh;margin:auto;padding:0;background:var(--color-bg);color:var(--color-text);border:1px solid var(--color-border);border-radius:var(--radius-md); }
.dialog::backdrop { background:oklch(.08 0 0 / .85);backdrop-filter:blur(8px); }
.dialog-close { position:absolute;top:var(--space-4);right:var(--space-4);height:44px;width:44px;z-index:3;border-radius:50%;background:oklch(.1 0 0 / .8);color:white;font-size:var(--text-xl); }
.dialog-layout { display:grid;grid-template-columns:1.25fr 1fr; }
.dialog-layout img { width:100%;height:100%;object-fit:cover;min-height:440px; }
.dialog-copy { padding:var(--space-12) var(--space-8); }
.dialog-copy p { margin-top:var(--space-5); }
.dialog-copy .button { margin-top:var(--space-8); }
.dialog-caption { font-size:var(--text-xs); }
.privacy-dialog { max-width:650px;padding:var(--space-12) var(--space-8); }
.privacy-dialog p { margin-top:var(--space-5);font-size:var(--text-sm); }
.privacy-dialog h2 { font-size:var(--text-xl);padding-right:var(--space-10); }
.img-failed { opacity:.2; }
@media (max-width:1100px) {
  .main-nav { gap:var(--space-5); }
  .header-inner { gap:var(--space-4); }
  .header-actions { gap:var(--space-2); }
  .services-layout,.home-detail-section { gap:var(--space-10); }
  .footer-main { gap:var(--space-8); }
}
@media (max-width:900px) {
  .main-nav,.header-actions>.button { display:none; }
  .menu-toggle { display:grid; }
  .header-inner { height:112px; }
  .brand-logo { width:132px; }
  .hero { min-height:790px; }
  .hero-caption { display:none; }
  .services-layout { grid-template-columns:.85fr 1fr;gap:var(--space-8); }
  .service-image-wrap { aspect-ratio:3/4; }
  .section-heading>p { max-width:30ch; }
  .story-layout { grid-template-columns:1fr;gap:var(--space-8); }
  .process-grid { grid-template-columns:repeat(2,1fr);gap:var(--space-10); }
  .home-detail-section { grid-template-columns:1fr; }
  .home-detail-copy { max-width:600px; }
  .footer-main { grid-template-columns:1fr 1fr; }
  .footer-nav-column { grid-column:2;grid-row:1; }
  .contact-layout { grid-template-columns:1fr 1.1fr;gap:var(--space-8); }
  .contact-method a { font-size:var(--text-base); }
  .form-row { grid-template-columns:1fr;gap:0; }
}
@media (max-width:640px) {
  body { padding-bottom:76px; }
  .header-inner { height:104px; }
  .brand-logo { width:120px; }
  .header-actions { gap:var(--space-2); }
  .theme-toggle { border:0; }
  .hero { min-height:calc(100svh - 72px); }
  .hero-image { object-position:48% center; }
  .hero::before { background:linear-gradient(90deg,oklch(.1 0 0 / .88),oklch(.1 0 0 / .28)),linear-gradient(0deg,oklch(.1 0 0 / .65),transparent); }
  .hero-content { padding-top:calc(var(--space-32) + var(--space-6));padding-bottom:var(--space-10); }
  .hero h1 { font-size:clamp(2.7rem,9vw + .4rem,4rem);max-width:14ch; }
  .hero-pill { font-size:var(--text-xs);margin-bottom:var(--space-5); }
  .hero-description { font-size:var(--text-base);margin-top:var(--space-5); }
  .hero-bottom-inner { padding-block:var(--space-5); }
  .hero-ctas { gap:var(--space-5);width:100%; }
  .hero-ctas .button { padding-inline:var(--space-4);gap:var(--space-3); }
  .hero-ctas .text-link { gap:var(--space-3); }
  .trust-list { display:grid;grid-template-columns:1fr 1fr;gap:var(--space-3) var(--space-4); }
  .trust-list li { font-size:var(--text-xs);gap:var(--space-2); }
  .section-heading { flex-direction:column;align-items:start;gap:var(--space-6);margin-bottom:var(--space-8); }
  .section-heading h2 { max-width:18ch; }
  .section-heading>p { max-width:100%; }
  .services-layout { grid-template-columns:1fr;gap:var(--space-8); }
  .service-image-wrap { position:relative;top:0;aspect-ratio:4/3; }
  .service-trigger { grid-template-columns:24px 1fr 24px;gap:var(--space-3); }
  .service-content p { padding-left:var(--space-8); }
  .service-content .text-link { margin-left:var(--space-8); }
  .gallery-grid { grid-template-columns:1fr;gap:var(--space-8); }
  .gallery-card:nth-child(even) { padding-top:0; }
  .gallery-title h3 { font-size:var(--text-xl); }
  .filter { padding-inline:var(--space-4); }
  .story-body { grid-template-columns:1fr;gap:var(--space-6); }
  .story-statement { font-size:var(--text-2xl); }
  .process-grid { gap:var(--space-8) var(--space-5); }
  .process-number { margin-bottom:var(--space-5); }
  .process-step h3 { font-size:var(--text-xl); }
  .cta-inner { flex-direction:column;align-items:start;gap:var(--space-6); }
  .footer-main { grid-template-columns:1fr;gap:var(--space-8); }
  .footer-nav-column { grid-column:auto;grid-row:auto; }
  .footer-bottom { flex-direction:column;gap:var(--space-2); }
  .mobile-cta { display:flex;position:fixed;bottom:0;left:0;right:0;z-index:45;background:var(--color-bg);border-top:1px solid var(--color-border);padding:var(--space-3) var(--space-4);padding-bottom:max(var(--space-3),env(safe-area-inset-bottom));gap:var(--space-3); }
  .mobile-cta .button { flex:1;min-height:44px;padding:var(--space-2) var(--space-3);gap:var(--space-2); }
  .contact-page main { padding-top:var(--space-12); }
  .contact-layout { grid-template-columns:1fr;gap:var(--space-10);padding-bottom:var(--space-16); }
  .contact-heading { padding-bottom:var(--space-8); }
  .contact-method a { font-size:var(--text-xl); }
  .contact-method.email a { font-size:var(--text-base); }
  .contact-local-note { margin-top:var(--space-3); }
  .dialog-layout { grid-template-columns:1fr; }
  .dialog-layout img { min-height:0;aspect-ratio:4/3; }
  .dialog-copy { padding:var(--space-6); }
  .dialog { width:calc(100% - 24px); }
}
@media (prefers-reduced-motion:reduce) {
  .js .reveal { opacity:1; }
  .hero-image { animation:none; }
}
