/* Mobile layout: loaded only for viewports up to 760px. */
html{scroll-padding-top:88px}
body{font-size:15px;line-height:1.7}
.wrap{width:calc(100% - 40px);max-width:600px}
main,main>section,.why-grid,.contact-grid,.section-top,.contact-card{min-width:0}
h1,h2,h3,p,a{overflow-wrap:break-word}
p,.lead,.intro{font-size:15px;line-height:1.8}
h2{font-size:30px;line-height:1.25;letter-spacing:-.8px;margin-bottom:20px}
h3{line-height:1.5}
.section{padding-top:56px;padding-bottom:56px}
.eyebrow{font-size:15px;line-height:1.5;letter-spacing:0;margin-bottom:16px}
/* Compact header: brand, flag and generous menu target. */
header .nav{width:calc(100% - 32px);height:72px;gap:8px}
header .nav .brand{gap:8px;font-size:25px;letter-spacing:-1px;min-width:0}
header .nav .brand svg{display:block;width:26px;height:34px;flex-shrink:0}
header .nav .brand small{display:none}
header .nav>.language-switch{margin-left:auto;width:44px;height:44px;padding:7px;border:0}
header .nav>.language-switch img{width:28px;height:19px}
header .nav>.menu{width:44px;height:44px;justify-content:center;align-items:center;padding:10px;gap:7px;border-color:var(--border);border-radius:5px;flex-shrink:0}
header .nav>.desktop{display:none}
header .nav>nav{position:absolute;inset:72px 0 auto;width:100%;padding:12px 20px 20px;margin:0;max-height:calc(100svh - 72px);overflow-y:auto;background:#1B1B1D;box-shadow:0 20px 30px rgba(0,0,0,.25)}
header .nav>nav.open{display:flex;gap:0}
header .nav>nav a{display:block;width:100%;padding:14px 0;font-size:17px;border-bottom:1px solid var(--border)}
header .nav>nav a:last-child{border-bottom:0}
/* Camera remains visible above the copy, with a controlled text backdrop. */
.hero{height:auto;max-height:none;min-height:650px;align-items:flex-end}
.hero-image{object-position:70% top;opacity:.9}
.hero-shade{background:linear-gradient(0deg,#1B1B1D 2%,rgba(27,27,29,.96) 33%,rgba(27,27,29,.75) 62%,rgba(27,27,29,.1) 100%)}
.hero-copy{padding-top:210px;padding-bottom:40px}
.hero h1{font-size:35px;line-height:1.18;letter-spacing:-1.1px;margin:0 0 22px}
.hero h1 span{display:block;margin-top:7px}
.hero h1 br{display:none}
.hero .intro{max-width:440px;margin:0;color:#d0cdc6}
.hero .actions{display:block;margin-top:26px}
.hero .button{width:100%;max-width:440px;min-height:54px;padding:16px 20px;font-size:16px}
.hero .eyebrow,.hero-bottom,.trust-strip{display:none}
/* Keep mobile service cards compact, readable and clearly separated. */
.section-top{display:block;margin-bottom:26px}
.section-top>p{margin:0;max-width:none}
.service-grid{grid-template-columns:1fr;gap:12px;border:0}
.service-card{padding:22px;min-height:0;border:1px solid var(--border);border-radius:8px;background:rgba(255,255,255,.015)}
.card-top{margin-bottom:16px}
.card-top svg{width:29px;height:29px}
.card-top span{font-size:15px}
.service-card h3{font-size:18px;margin-bottom:9px;letter-spacing:-.25px}
.service-card p{font-size:15px;line-height:1.75;max-width:none}
@media(hover:none){.service-card:hover{background:rgba(255,255,255,.015);color:var(--ivory)}.service-card:hover h3{color:var(--ivory)}.service-card:hover p,.service-card:hover .card-top span{color:var(--gray)}.service-card:hover .card-top svg{stroke:var(--gold)}}
/* Remove repeated photography and ornamental location artwork. */
.why-grid,.area,.contact-grid{display:grid;grid-template-columns:minmax(0,1fr);gap:0}
.why-photo,.location-art{display:none}
.why-grid>div:last-child{order:initial}
.benefits{margin-top:26px}
.benefits article{gap:14px;padding:20px 0}
.benefits article>span{font-size:15px;flex-shrink:0;padding-top:1px}
.benefits h3{font-size:18px;margin-bottom:7px}
.benefits p{font-size:15px;line-height:1.75}
.area .lead{margin-bottom:16px}
.area .text-link{min-height:44px;margin-top:12px;font-size:16px}
/* Tap-friendly FAQ rows without a redundant number column. */
.faq .section-top{margin-bottom:28px}
.faq-index{display:none}
.faq summary{gap:14px;padding:19px 0;align-items:flex-start;min-height:60px}
.faq summary h3{font-size:16px;line-height:1.55;letter-spacing:0;min-width:0}
.faq-plus{font-size:24px;line-height:1;flex:0 0 20px;padding-top:2px;text-align:center}
.faq details>p{font-size:15px;line-height:1.8;margin:0 0 22px;padding-right:22px}
.faq-toggle{width:100%;justify-content:center;padding:15px 18px;text-align:center;font-size:16px;min-height:54px;margin-top:24px}
/* Contact becomes a clean, full-width stack. */
.contact{overflow:hidden}
.contact h2{font-size:32px;line-height:1.22;letter-spacing:-.7px;margin-bottom:22px}
.contact h2 br{display:none}
.contact h2{max-width:430px}
.contact .lead{margin:0 0 28px;max-width:none}
.contact-card{width:100%;padding:24px 18px;border-radius:8px;background:rgba(27,27,29,.94)}
.contact-card .eyebrow{margin-bottom:16px}
.contact-card .phone{display:inline-block;font-size:clamp(23px,6.2vw,30px);line-height:1.3;letter-spacing:-.6px;white-space:nowrap}
.contact-card>p:not(.eyebrow){font-size:15px;line-height:1.75;margin-top:14px;margin-bottom:22px}
.contact-card .button{width:100%;font-size:15px;line-height:1.5;gap:12px;padding:15px 16px;min-height:54px;margin-top:12px;border-radius:4px}
.email-slot{display:flex;flex-direction:row;align-items:baseline;justify-content:flex-start;gap:6px;flex-wrap:wrap;padding-top:22px;margin-top:24px;font-size:15px}
.email-slot a{max-width:100%;min-width:0;overflow-wrap:anywhere;line-height:1.8}
.contact-motion{opacity:.35}
.contact-scan,.orbit-b{display:none}
.contact-orbit{width:340px;height:340px;right:-210px;top:40px}
/* Footer retains the brand and attribution; navigation is in the header. */
footer{padding:32px 0 24px}
.footer-top{gap:0}
.footer-top .brand{font-size:25px}
.footer-top .brand small{display:none}
.footer-top>a:last-child:not(.brand),.footer-links{display:none}
.footer-bottom{margin-top:24px;padding-top:20px;gap:12px;font-size:15px;line-height:1.75}
.footer-bottom>span:last-child{font-size:15px;line-height:1.75}
@media(min-width:560px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.hero-copy{padding-top:230px}.hero h1{font-size:42px}}
@media(max-width:360px){.wrap{width:calc(100% - 32px)}.hero h1{font-size:31px}.hero-copy{padding-top:190px}.hero{min-height:620px}.contact h2{font-size:29px}.contact-card{padding:22px 16px}}

.equipment-showcase{margin-top:38px;padding-top:30px}.equipment-showcase>h3{font-size:23px;line-height:1.35}.equipment-showcase>p{font-size:15px;line-height:1.8;margin-bottom:24px}.equipment-grid{grid-template-columns:1fr;gap:20px}.equipment-grid figure{display:grid;grid-template-columns:115px minmax(0,1fr);gap:18px;align-items:center}.equipment-frame{aspect-ratio:1;width:115px}.equipment-frame img{padding:8px}.equipment-grid figcaption{padding:0;gap:6px}.equipment-grid figcaption strong{font-size:16px;line-height:1.5}.hero-image{object-position:78% top}

/* Display the full hero composition above the copy on narrow screens. */
.hero{min-height:0;display:block;background:#1B1B1D}.hero-image{top:0;bottom:auto;width:100%;height:auto;aspect-ratio:3/2;object-fit:contain;object-position:center top;transform:none!important;opacity:1}.hero-shade{background:linear-gradient(0deg,#1B1B1D 0%,#1B1B1D 48%,rgba(27,27,29,.06) 80%,rgba(27,27,29,.02) 100%)}.hero-copy{padding-top:calc(66.666vw + 22px);padding-bottom:38px}.hero h1{font-size:34px}.hero .intro{margin-top:0}.equipment-frame img{padding:8px}.contact-camera{left:auto;right:-50px;bottom:6px;width:250px;opacity:.15;transform:rotate(-12deg)}
@media(max-width:360px){.hero-copy{padding-top:calc(66.666vw + 18px)}.hero h1{font-size:31px}}

/* Portrait hero integrates the three cameras naturally into the background. */
.hero{position:relative;display:flex;align-items:flex-end;min-height:740px;overflow:hidden}.hero-image{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover;object-position:center top;transform:none!important}.hero-shade{background:linear-gradient(0deg,#1B1B1D 0%,rgba(27,27,29,.97) 37%,rgba(27,27,29,.3) 65%,rgba(27,27,29,.04) 100%)}.hero-copy{padding-top:340px;padding-bottom:38px}.hero .actions{margin-top:24px}.contact-camera-visual{width:210px;left:auto;right:-70px;top:25px;bottom:auto;opacity:.13}.camera-moving-optics{animation-duration:11s}
@media(max-width:360px){.hero{min-height:720px}.hero-copy{padding-top:300px;padding-bottom:34px}}
.hero-image{height:auto;aspect-ratio:2/3;object-fit:contain;object-position:center top}.hero-shade{background:linear-gradient(0deg,#1B1B1D 0%,rgba(27,27,29,.98) 28%,rgba(27,27,29,.45) 58%,rgba(27,27,29,.02) 85%)}
@media(min-width:560px){.hero-copy{padding-top:480px}}

.contact-camera-visual{top:18px;right:12px;left:auto;bottom:auto;width:140px;opacity:.12;transform:none}.contact-grid>div:first-child .lead{color:var(--ivory)}

/* Full-height right drawer, leaving 20% of the page visible. */
header{backdrop-filter:none;-webkit-backdrop-filter:none;background:#1B1B1D}
header .nav>nav{display:flex;flex-direction:column;position:fixed;inset:0 0 0 auto;width:80vw;height:100vh;height:100dvh;max-height:none;margin:0;padding:calc(24px + env(safe-area-inset-top)) 24px calc(28px + env(safe-area-inset-bottom));background:#1B1B1D;border:0;box-shadow:-12px 0 32px rgba(0,0,0,.28);z-index:32;overflow-y:auto;overscroll-behavior:contain;gap:0;transform:translateX(105%);visibility:hidden;transition:transform .32s cubic-bezier(.22,.61,.36,1),visibility 0s .32s}
header .nav>nav.open{transform:translateX(0);visibility:visible;transition:transform .32s cubic-bezier(.22,.61,.36,1),visibility 0s}
header .nav>nav .drawer-heading{display:flex;align-items:center;justify-content:space-between;gap:16px;margin-bottom:34px;font-size:21px;font-weight:700;color:#fff}
.drawer-close{display:grid;place-items:center;width:44px;height:44px;padding:0;background:transparent;border:1px solid var(--border);border-radius:5px;color:#fff;font-size:32px;font-weight:400;line-height:1;cursor:pointer;flex-shrink:0}
header .nav>nav a{font-size:18px;color:#fff;padding:19px 0;line-height:1.5}
header .nav>nav a:hover,header .nav>nav a:focus-visible{color:#fff}
header .nav>.drawer-backdrop{display:block;position:fixed;inset:0 auto 0 0;width:20vw;height:100vh;height:100dvh;background:rgba(0,0,0,.1);border:0;padding:0;z-index:31;opacity:0;visibility:hidden;cursor:pointer;transition:opacity .32s,visibility 0s .32s}
header .nav>.drawer-backdrop.open{opacity:1;visibility:visible;transition:opacity .32s,visibility 0s}
@media(prefers-reduced-motion:reduce){header .nav>nav,header .nav>.drawer-backdrop{transition:none!important}}
