/* Device adaptation, loaded last so the visual design stays consistent. */
:root{--header-height:94px}
html{scroll-padding-top:calc(var(--header-height) + env(safe-area-inset-top,0px) + 20px)}
body{-webkit-text-size-adjust:100%;text-size-adjust:100%}
header,header.scrolled{height:calc(var(--header-height) + env(safe-area-inset-top,0px));padding-top:env(safe-area-inset-top,0px);padding-left:max(3.7%,env(safe-area-inset-left,0px));padding-right:max(3.7%,env(safe-area-inset-right,0px))}
header.scrolled{-webkit-backdrop-filter:blur(12px)}
.section,footer{padding-left:max(7%,calc((100vw - 1120px)/2),env(safe-area-inset-left,0px));padding-right:max(7%,calc((100vw - 1120px)/2),env(safe-area-inset-right,0px))}
.footer-simple{padding-bottom:max(37px,env(safe-area-inset-bottom,0px))}
.about-new>*,.approach-new>*,.contact-simple>*,.intent-choices a>div{min-width:0}
.approach-notes p,.about-story p,.intent-choices strong,.intent-choices p{overflow-wrap:break-word}
.menu-toggle{width:44px;min-height:44px;flex:0 0 44px;align-items:center;justify-content:center;padding:10px;cursor:pointer}
.language-control select{min-height:44px}
.text-link,.back-top,.hero-bottom a{min-height:44px;align-items:center}
.back-top{display:inline-flex}
.hero-actions a>span[aria-hidden],.intent-choices a>span[aria-hidden]{flex-shrink:0}
.enquiry-dialog{max-height:calc(100vh - 32px);max-height:calc(var(--dialog-viewport-height,100dvh) - 32px - env(safe-area-inset-top,0px) - env(safe-area-inset-bottom,0px));overflow-y:auto;-webkit-overflow-scrolling:touch;scroll-padding-block:60px 24px}
.dialog-close{position:sticky;top:0;float:right;z-index:2;margin:-12px -12px 0 10px;background:#fafbfc;right:auto}
html[dir="rtl"] .dialog-close{float:left;margin:-12px 10px 0 -12px;left:auto}
.dialog-content{display:flow-root}
.form-grid input,.form-grid select,.form-grid textarea{font-size:16px;min-height:48px;scroll-margin-block:65px 24px}
.form-submit{min-height:52px;gap:16px}
.enquiry-dialog::backdrop{-webkit-backdrop-filter:blur(5px)}
@media(max-width:1500px){
 :root{--header-height:78px}
 nav{top:calc(var(--header-height) + env(safe-area-inset-top,0px));max-height:calc(100vh - var(--header-height));max-height:calc(100dvh - var(--header-height) - env(safe-area-inset-top,0px));padding-bottom:max(24px,env(safe-area-inset-bottom,0px));overscroll-behavior:contain;-webkit-overflow-scrolling:touch}
 nav>a{min-height:44px;display:flex;align-items:center}
 nav>.nav-cta{justify-content:center}
 .language-control select{font-size:16px;width:110px}
 .language-status{top:calc(var(--header-height) + env(safe-area-inset-top,0px) + 10px)}
}
@media(max-width:800px){
 header{gap:8px}
 .language-control{margin-inline-start:auto}
 .language-control select{width:110px;font-size:16px}
 .hero{height:850px;height:max(760px,100svh);min-height:760px;max-height:1100px}
 .hero-content{bottom:100px}
 .hero-bottom{bottom:max(25px,env(safe-area-inset-bottom,0px));left:max(6%,env(safe-area-inset-left,0px));right:max(6%,env(safe-area-inset-right,0px))}
 .section{padding-block:65px}
 .dialog-content{padding:28px 20px}
}
@media(max-width:360px){
 header{gap:5px;padding-inline:12px}
 header .brand{font-size:18px;letter-spacing:-.8px}
 header .brand span{font-size:7px;letter-spacing:2.5px}
 .hero h1{font-size:36px;letter-spacing:-1.1px}
 html:not([lang^="pt"]) .hero h1{font-size:32px}
 .hero-actions a{padding:12px 9px;gap:5px}
 .hero-actions a>span[data-i18n]{letter-spacing:.4px}
 .about-title h2{font-size:38px}
 .contact-intro h2{font-size:42px}
 .contact-simple .intent-choices strong{font-size:26px}
}
/* Short landscape windows need a side-by-side hero, including rotated phones. */
@media(min-width:480px) and (max-height:600px) and (orientation:landscape){
 :root{--header-height:64px}
 .hero{height:100vh;height:100svh;min-height:480px;max-height:none}
 .hero-photo{top:auto;bottom:0;left:0;width:100%;height:100%;max-height:100%;object-fit:contain;object-position:left bottom;opacity:.94}
 .hero-shade{background:linear-gradient(90deg,#080f1b00 15%,#080f1b55 40%,#080f1b99 90%),linear-gradient(0deg,#080f1b,transparent 40%)}
 .hero-content{top:52%;bottom:auto;left:37%;width:59%;transform:translateY(-43%)}
 .hero h1,html:not([lang^="pt"]) .hero h1{font-size:clamp(30px,4.5vw,46px);letter-spacing:-1px}
 .hero-actions{margin-top:22px}
 .hero-actions a{min-height:60px;padding:10px}
 .hero-actions a>span[data-i18n]{font-size:9px;letter-spacing:.5px}
 .hero-bottom{bottom:16px}
}
@media(hover:none){.hero-actions a:hover,.intent-choices a:hover{background:transparent}.dialog-close:hover{background:#fafbfc}}
/* Keep both photo fades attached to the actual image on wide screens. */
@media(min-width:801px){
 .hero-photo{width:auto;height:auto;max-width:100%;max-height:100%;-webkit-mask-image:linear-gradient(to bottom,transparent,#000 9%),linear-gradient(to right,#000 82%,transparent);-webkit-mask-composite:source-in;mask-image:linear-gradient(to bottom,transparent,#000 9%),linear-gradient(to right,#000 82%,transparent);mask-composite:intersect}
}
/* A compact SVG flag; the native select keeps keyboard and mobile pickers. */
header .language-control{position:relative;display:flex;align-items:center;justify-content:center;width:64px;height:44px;flex:0 0 64px;border:1px solid #ffffff24;border-radius:5px;background:#ffffff03;transition:background-color .2s,border-color .2s}
header .language-control:hover{background:#ffffff09;border-color:#ffffff50}
header .language-control:focus-within{outline:2px solid #a6bedb;outline-offset:3px;border-color:transparent}
header .language-control select{position:absolute;inset:0;width:100%;height:100%;min-height:44px;margin:0;padding:0;opacity:0;cursor:pointer;font-size:16px}
.language-symbol{display:flex;align-items:center;gap:8px;pointer-events:none}
#language-flag{display:block;width:28px;height:21px;object-fit:cover;border-radius:2px;box-shadow:0 0 0 1px #ffffff26;filter:saturate(.78)}
#language-flag.is-globe{box-shadow:none;filter:none}
.language-chevron{width:10px;height:10px;stroke:#b9c6d8;stroke-width:1.25;stroke-linecap:round;stroke-linejoin:round}
@media(max-width:360px){header .brand{font-size:21px;letter-spacing:-.8px}header{gap:8px}}
@media(prefers-reduced-motion:reduce){header .language-control{transition:none}}
