/* Native focus and form scrolling must stay stable, including without JavaScript. */
html { scroll-behavior:auto; }
.hero-copy,.hero-art { min-width:0; }
@media(min-width:1600px) { .hero { padding-top:70px; } .hero-art { min-height:530px; } }
@media(max-width:1180px) {
    .shell { width:calc(100% - 72px); }
    .site-nav { gap:25px; } .nav-links { gap:24px; }
    .hero { gap:32px; } .hero h1 { font-size:7.5vw; } .hero-art { min-height:410px; }
    .hero-actions { gap:15px; } .hero-actions .button { gap:22px; }
    .service-card { padding:26px 20px; } .service-card h3 { font-size:21px; }
    .project-grid { gap:24px; } .mock-search { padding:16px; } .mock-search b { font-size:28px; }
    .mock-local b,.mock-local b em { font-size:34px; }
    .approach { gap:60px; } .quote-grid { gap:56px; }
    .detail-grid { gap:40px; }
    .local-band>.shell { gap:32px; grid-template-columns:80px 1fr auto; }
    .local-band h2 { font-size:36px; }
    .faq-section { gap:50px; } .faq-section h2 { font-size:38px; }
}
@media(max-width:950px) {
    .header-inner { min-height:90px; flex-wrap:wrap; gap:0; }
    .site-nav { width:100%; padding-bottom:20px; justify-content:space-between; }
    .js .menu-toggle { display:flex; align-items:center; gap:12px; border:1px solid #a8afa3; background:transparent; padding:10px 14px; font-size:12px; min-height:44px; }
    .menu-lines { width:18px; height:10px; border-block:1px solid var(--ink); }
    .js .site-nav { display:none; }
    .js .site-nav.is-open { display:flex; }
    .hero { grid-template-columns:minmax(0,1fr) minmax(0,1fr); gap:32px 26px; padding-top:30px; }
    .hero h1 { font-size:7.5vw; } .hero-description { font-size:13px; margin-top:24px; }
    .hero-actions { margin-top:24px; gap:8px; } .hero-actions .button { padding:14px 17px; font-size:12px; }
    .hero-footnote { margin-top:24px; } .hero-art { min-height:0; width:100%; }
    .art-monogram { font-size:36vw; padding-right:35px; }
    .art-label { gap:24px; padding:13px 16px; } .art-label>span { font-size:23px; }
    .art-ticket { width:195px; padding:12px 16px; bottom:12%; }
    .art-ticket>span:first-child { font-size:8px; }
    .art-top,.art-caption { font-size:6px; left:17px; right:17px; }
    .capability-strip>.shell { font-size:10px; gap:12px; }
    .section { padding-block:80px; }
    .service-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
    .service-card h3 { min-height:0; max-width:250px; } .service-card-top { margin-bottom:28px; }
    .project-grid { gap:30px 20px; }
    .project-image { aspect-ratio:.85; } .project-art { min-height:240px; }
    .project-card h3 { font-size:17px; }
    .mock-stationery b { font-size:21px; } .mock-card { font-size:68px; height:36%; }
    .mock-search b { font-size:27px; } .mock-input { font-size:7px; }
    .mock-local b,.mock-local b em { font-size:29px; }
    .mock-pin { width:57px; height:57px; } .mock-pin .icon { width:33px; height:33px; }
    .approach { gap:40px; } .process-list li { gap:12px; padding-block:22px; }
    .local-band>.shell { grid-template-columns:64px 1fr; } .local-band>.shell>p { grid-column:2; }
    .faq-section { grid-template-columns:1fr 1.2fr; gap:30px; }
    .faq-section h2 { font-size:33px; }
    .quote-grid { grid-template-columns:1fr 1.2fr; gap:35px; }
    .quote-copy h2 { font-size:43px; } .quote-section .cr-quote-form { padding:24px; }
    .quote-section .cr-form-fields { grid-template-columns:minmax(0,1fr); gap:18px; }
    .footer-top { gap:35px; grid-template-columns:1.2fr .8fr 1fr; }
    .footer-brand { font-size:21px; gap:10px; }
    .footer-bottom { flex-wrap:wrap; } .footer-bottom>span:last-child { display:none; }
    .detail-grid { grid-template-columns:1.4fr 1fr; gap:30px; }
    .detail-main>.project-art { height:400px; }
    .detail-main .mock-local b,.detail-main .mock-local b em { font-size:45px; }
    .detail-main .mock-search { padding:24px; } .detail-main .mock-search b { font-size:42px; }
    .detail-main .mock-stationery b { font-size:31px; } .detail-main .mock-card { font-size:110px; }
}
@media(max-width:680px) {
    html { scroll-padding-top:24px; }
    .shell { width:calc(100% - 40px); }
    .header-inner { min-height:82px; }
    .brand-symbol { font-size:43px; } .brand-name { font-size:16px; } .brand-name small { font-size:7px; }
    .custom-logo { max-width:185px; max-height:62px; }
    .site-nav,.js .site-nav.is-open { flex-direction:column; align-items:stretch; gap:16px; padding-top:16px; }
    .nav-links { flex-direction:column; align-items:stretch; gap:0; }
    .nav-links a { padding:13px 4px; border-top:1px solid var(--line); min-height:44px; }
    .nav-links .sub-menu { display:block; position:static; border:none; padding-left:20px; width:auto; }
    .hero { grid-template-columns:minmax(0,1fr); gap:32px; padding-top:26px; }
    .hero-copy { padding-top:12px; padding-bottom:0; }
    .hero .eyebrow { font-size:9px; margin-bottom:26px; }
    .hero h1 { font-size:clamp(3.8rem,14vw,6rem); }
    .hero-description { font-size:14px; max-width:410px; margin-top:24px; }
    .hero-actions { gap:20px; margin-top:26px; }
    .hero-actions .button { min-height:52px; padding-inline:20px; gap:28px; }
    .hero-actions .text-link { font-size:12px; }
    .hero-footnote { margin-top:26px; } .hero-footnote p { font-size:10px; }
    .hero-art { min-height:0; aspect-ratio:1.08; }
    .art-monogram { font-size:64vw; inset:4% 0 0; }
    .art-top,.art-caption { font-size:6px; } .art-top { top:18px; } .art-caption { bottom:18px; }
    .art-label { padding:14px 18px; gap:40px; } .art-label>span { font-size:25px; }
    .art-spark .icon { width:57px; height:57px; }
    .art-ticket { width:210px; bottom:13%; } .art-ticket>span:first-child { font-size:8px; }
    .hero-bottom { padding-block:12px; margin-top:-12px; font-size:7px; gap:10px; }
    .hero-bottom a { font-size:8px; letter-spacing:0; gap:8px; }
    .capability-strip>.shell { display:grid; grid-template-columns:1fr 1fr; gap:12px 18px; padding-block:18px; font-size:10px; }
    .capability-strip i { display:none; }
    .section { padding-block:64px; }
    .section-heading { display:block; margin-bottom:30px; }
    .section-heading>p,.section-heading>div+div { margin-top:26px; }
    .section-heading>p,.section-heading>div>p:not(.eyebrow) { font-size:13px; }
    .eyebrow { font-size:9px; margin-bottom:20px; }
    h2 { font-size:36px; }
    .service-grid { grid-template-columns:minmax(0,1fr); }
    .service-card { padding:26px; } .service-card-top { margin-bottom:24px; }
    .service-card h3 { font-size:26px; margin-bottom:14px; max-width:none; }
    .service-card>p:not(.card-kicker) { font-size:13px; margin-bottom:20px; }
    .service-more { font-size:12px; }
    .section-tail { display:block; padding-top:18px; } .section-tail>a { margin-top:8px; }
    .project-grid { grid-template-columns:minmax(0,1fr); gap:32px; }
    .project-image { aspect-ratio:1.13; } .project-art { min-height:0; }
    .project-card h3 { font-size:21px; }
    .mock-stationery b { font-size:27px; } .mock-stationery>span { font-size:11px; }
    .mock-card { font-size:100px; height:43%; }
    .mock-search { padding:22px; } .mock-search b { font-size:36px; }
    .mock-input { font-size:9px; } .mock-search-label { font-size:7px; }
    .mock-pill { font-size:8px; }
    .mock-local b,.mock-local b em { font-size:41px; }
    .mock-pin { width:75px; height:75px; } .mock-pin .icon { width:42px; height:42px; }
    .approach { grid-template-columns:minmax(0,1fr); gap:30px; }
    .approach h2 { font-size:43px; } .approach-intro>p:not(.eyebrow) { font-size:13px; }
    .process-list h3 { font-size:23px; } .process-list p { font-size:13px; }
    .process-list li { grid-template-columns:26px 1fr 18px; padding-block:24px; }
    .local-band { padding-block:44px; }
    .local-band>.shell { gap:26px; grid-template-columns:42px 1fr; }
    .local-star { align-self:start; } .local-star .icon { width:42px; height:42px; }
    .local-band h2 { font-size:32px; } .local-band .eyebrow { font-size:7px; }
    .faq-section { grid-template-columns:minmax(0,1fr); gap:30px; }
    .faq-section h2 { font-size:36px; }
    .faq-list summary { font-size:14px; padding-block:22px; }
    .quote-grid { grid-template-columns:minmax(0,1fr); gap:36px; }
    .quote-copy { padding-top:0; } .quote-copy h2 { font-size:45px; }
    .quote-copy>p:not(.eyebrow) { margin-top:20px; max-width:360px; }
    .quote-arrow { display:none; } .quote-copy .quote-note { margin-top:22px!important; }
    .quote-section .cr-quote-form { padding:24px 20px; }
    .quote-section .cr-quote-form label,.quote-section .cr-quote-form .cr-form-consent { font-size:12px; }
    .quote-section .cr-quote-form .cr-form-hint { font-size:11px; }
    .footer-top { grid-template-columns:1fr 1fr; gap:32px 20px; padding-block:44px; }
    .footer-top>div:first-child { grid-column:1/-1; } .footer-brand { font-size:27px; }
    .footer-top p { margin-top:14px; }
    .footer-bottom { gap:8px; font-size:9px; padding-block:22px; align-items:flex-start; flex-direction:column; }
    .footer-bottom>div { flex-wrap:wrap; gap:12px; }
    .whatsapp-link { bottom:12px; right:12px; font-size:10px; padding:10px 12px; }
    body:has(.whatsapp-link) .site-footer { padding-bottom:50px; }
    .page-intro { padding-block:30px 40px; } .breadcrumb { margin-bottom:25px; }
    .page-intro h1 { font-size:46px; } .page-intro>p:not(.eyebrow) { font-size:14px; margin-top:22px; }
    .filter-bar { gap:8px; } .filter-bar>a { font-size:11px; padding:10px 12px; }
    .archive-content { padding-bottom:30px; }
    .compact-cta { align-items:flex-start; flex-direction:column; padding-block:44px; }
    .detail-grid { grid-template-columns:minmax(0,1fr); gap:40px; padding-bottom:40px; }
    .detail-main>.project-art { height:360px; }
    .detail-main .mock-local b,.detail-main .mock-local b em { font-size:46px; }
    .detail-main .mock-local small,.detail-main .mock-local>span { font-size:9px; }
    .detail-main .mock-pin { width:80px; height:80px; } .detail-main .mock-pin .icon { width:45px; height:45px; }
    .detail-main .mock-search { padding:23px; } .detail-main .mock-search b { font-size:42px; }
    .detail-main .mock-search-label { font-size:7px; } .detail-main .mock-input { font-size:10px; padding:10px; }
    .detail-main .mock-pill { margin-top:20px; padding:9px; font-size:8px; }
    .detail-main .mock-stationery>span { font-size:11px; } .detail-main .mock-stationery b { font-size:28px; }
    .detail-main .mock-card { font-size:105px; } .detail-main .mock-card>span { font-size:10px; }
    .detail-main .mock-stationery small { font-size:6px; }
    .prose { font-size:15px; } .prose .alignwide { margin-inline:0; max-width:100%; }
    .error-page { padding-block:60px; } .error-page h1 { font-size:46px; }
    .search-form>div { gap:8px; } .search-form .button { padding-inline:15px; gap:15px; }
    .pagination .nav-links { flex-direction:row; flex-wrap:wrap; }
}
@media(prefers-reduced-motion:reduce) {
    html { scroll-behavior:auto; }
    *,*::before,*::after { animation:none!important; transition:none!important; scroll-behavior:auto!important; }
}
@media(forced-colors:active) {
    .button,.service-card,.project-image,.concept-badge,.menu-toggle { border:1px solid CanvasText; }
    .art-monogram { color:CanvasText; }
}
@media print {
    .site-nav,.menu-toggle,.hero-art,.quote-section,.whatsapp-link,.site-footer,.hero-actions { display:none!important; }
    body { background:#fff; color:#000; }
    .shell { width:100%; } .section { padding-block:25px; }
    .hero,.approach,.detail-grid { display:block; }
    .service-grid,.project-grid { grid-template-columns:repeat(2,1fr); }
}
