/* Shared phone layout. Loaded last in WordPress and static previews. */
.mobile-menu-toggle{display:none}
@media(max-width:767px){
 :root{scroll-padding-top:16px}
 html .header.header{position:relative;z-index:40;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:10px;min-height:68px;height:auto;padding:10px 18px}
 html .header.header .brand{display:block;flex:0 1 190px;width:190px;max-width:calc(100% - 66px);margin:0}
 html .header.header .brand img{display:block;width:100%;height:auto}
 html .header.header #navigation{display:flex;flex:0 0 100%;width:100%;position:static;flex-direction:row;justify-content:center;gap:16px;padding:4px 0 0;border:0;background:transparent}
 html .header.header #navigation>a{display:flex;align-items:center;justify-content:center;min-height:42px;padding:8px 0;font-size:13px;line-height:1.6}
 html .header.header #navigation>.header-contact{display:inline-flex;min-height:42px;margin:0;padding:9px 15px;font-size:13px;line-height:1.6;gap:12px}
 html.mobile-nav-ready .header.header .mobile-menu-toggle{display:flex;flex:0 0 44px;width:44px;height:48px;flex-direction:column;align-items:center;justify-content:center;gap:4px;padding:5px 2px;border:0;background:transparent;color:var(--ink);font:inherit;cursor:pointer}
 .mobile-menu-toggle .mobile-menu-lines{position:relative;display:block;width:22px;height:13px;border-top:1.5px solid currentColor;border-bottom:1.5px solid currentColor}
 .mobile-menu-toggle .mobile-menu-lines::before{position:absolute;content:'';top:5px;left:0;width:22px;border-top:1.5px solid currentColor}
 .mobile-menu-toggle .mobile-menu-label{font-size:9px;line-height:1.4;letter-spacing:.02em}
 .mobile-menu-toggle:focus-visible{outline:2px solid var(--green);outline-offset:3px}
 html.mobile-nav-ready .header.header #navigation{display:none;position:absolute;top:100%;left:0;right:0;width:auto;padding:8px 20px 16px;background:var(--paper,#fff);border-top:1px solid var(--line);border-bottom:1px solid var(--line);gap:0;flex-direction:column;align-items:stretch;white-space:normal}
 html.mobile-nav-ready .header.header[data-menu-open="true"] #navigation{display:flex}
 html.mobile-nav-ready .header.header #navigation>a{justify-content:space-between;min-height:48px;padding:13px 10px;font-size:14px;text-decoration:none;border-bottom:1px solid var(--line)}
 html.mobile-nav-ready .header.header #navigation>.header-contact{justify-content:center;min-height:46px;margin:10px 0 0;padding:12px 16px;border:1px solid var(--red);border-radius:2px}
 html[data-palette].mobile-nav-ready .header.header #navigation>.header-contact{border-color:var(--action)}
 html.mobile-nav-ready .header.header[data-menu-open="true"] .mobile-menu-lines{border:0}
 html.mobile-nav-ready .header.header[data-menu-open="true"] .mobile-menu-lines::before,
 html.mobile-nav-ready .header.header[data-menu-open="true"] .mobile-menu-lines::after{content:'';position:absolute;left:0;top:6px;width:22px;border-top:1.5px solid currentColor;transform:rotate(45deg)}
 html.mobile-nav-ready .header.header[data-menu-open="true"] .mobile-menu-lines::after{transform:rotate(-45deg)}
 html .hero{padding:25px 20px 0}
 html .hero .hero-inner{display:flex;flex-direction:column;align-items:stretch;gap:0;min-height:0;max-width:520px;width:100%;margin:0 auto}
 html .hero .hero-copy{display:contents}
 html .hero .eyebrow{order:0;margin:0 0 13px;font-size:10px;line-height:1.8;letter-spacing:.025em;gap:7px}
 html .hero h1{order:1;position:static;width:100%;max-width:none;margin:0;font-size:clamp(26px,7.2vw,30px);line-height:1.5;font-weight:700;letter-spacing:.01em;text-align:left}
 html .hero .hero-art{order:2;display:flex;flex-direction:column;width:calc(100% + 16px);max-width:none;height:auto;min-height:0;margin:12px -8px 0;align-self:stretch}
 html .hero .hero-art img{order:0;display:block;width:100%;height:auto;aspect-ratio:1.65;max-height:300px;object-fit:contain;object-position:center;margin:0;padding:0}
 html .hero .art-caption{order:1;position:static;inset:auto;writing-mode:horizontal-tb;align-self:flex-start;max-height:none;margin:2px 8px 0;padding-left:9px;border-left:1px solid var(--green);font-size:11px;line-height:1.7;letter-spacing:.025em;color:var(--muted)}
 html[data-palette] .hero .art-caption{border-color:var(--action)}
 html .hero .hero-description{order:3;width:100%;margin:17px 0 18px;font-size:14px;line-height:1.95;letter-spacing:0}
 html .hero .desktop{display:none}
 html .hero .hero-copy>.button{order:4;display:flex;align-items:center;justify-content:space-between;width:100%;min-width:0;min-height:52px;margin:0;padding:15px 18px;font-size:13px;line-height:1.7}
 html .hero .hero-bottom{max-width:520px;margin:18px auto 0;padding:12px 0;font-size:10px;line-height:1.7;gap:14px}
 html .hero .hero-bottom a{font-size:0}
 html .hero .hero-bottom a span{font-size:18px}
 html .section,html .container{max-width:calc(100% - 40px)}
 html .section-heading>p,html .message-copy>p:not(.section-label),html .about>p:not(.section-label){font-size:14px;line-height:2}
 html .service-content>p:not(.service-kicker){font-size:14px;line-height:1.9}
 html .service-art{height:180px}
 html .service-grid,html.layout-e .service-grid{grid-template-columns:1fr;gap:24px}
 html.layout-e .service-card:nth-child(n){padding-top:0}
 html .about img,html .footer-brand img{max-width:100%;height:auto}
 /* The nearby footer carries the formal logo on phones. */
 html .lower>.about>img{display:none}
 html .lower>.about>h2{margin-bottom:18px}
 /* E keeps its artwork and copy, with a horizontal headline on phones. */
 html.layout-e .hero{padding:23px 20px 20px}
 html.layout-e .e-hero-top{max-width:520px;margin:0 auto 13px;font-size:10px;line-height:1.8;letter-spacing:.02em}
 html.layout-e .e-hero-top a{display:none}
 html.layout-e .e-stage{display:flex;flex-direction:column;gap:13px;height:auto;max-width:520px;margin:0 auto;align-items:stretch}
 html.layout-e .hero h1{display:flex;flex-direction:column;align-self:stretch;gap:0;font-size:clamp(26px,7.2vw,30px);line-height:1.5}
 html.layout-e .hero h1 span:nth-child(n){display:block;writing-mode:horizontal-tb;text-orientation:mixed;margin:0;padding:0;letter-spacing:.025em;white-space:normal}
 html.layout-e .e-picture{order:2;position:static;inset:auto;width:100%;margin:0;border:0}
 html.layout-e .e-picture img{display:block;width:100%;height:auto;aspect-ratio:1.65;object-fit:contain;max-height:300px;padding:0}
 html.layout-e .e-picture-caption{font-size:11px;line-height:1.7;margin:3px 0 0;padding-left:9px;border-left-width:1px}
 html.layout-e .e-hero-bottom{display:block;max-width:520px;margin:17px auto 0}
 html.layout-e .e-hero-bottom p{font-size:14px;line-height:1.95;letter-spacing:0}
 html.layout-e .e-hero-bottom .button{display:flex;justify-content:space-between;align-items:center;width:100%;min-width:0;min-height:52px;padding:15px 18px;margin:18px 0 0;font-size:13px;line-height:1.7}
 html.layout-e .container,html.layout-e .section{width:calc(100% - 40px);max-width:calc(100% - 40px)}
}
