/* Visitor-facing adjustments. Load after expansion.css. */

/* Comfortable hit areas; the visible icons keep their original proportions. */
.site-header .mobile-toggle{width:44px;min-width:44px;min-height:44px;padding:10px;align-items:center;justify-content:center;flex-shrink:0}
.site-header .mobile-toggle span{width:23px;flex-shrink:0}
.site-header .language-toggle{min-width:44px;min-height:44px;justify-content:center}
.site-header .services-toggle{width:44px;min-width:44px;min-height:44px;flex-shrink:0}
.site-header .nav-services-row>a{min-height:44px;display:flex;align-items:center}
#site-dialog .dialog-close{width:44px;height:44px;min-width:44px;min-height:44px;display:grid;place-items:center;padding:0}
#site-dialog .gallery-controls button{min-width:44px;min-height:44px;display:grid;place-items:center}
.map-region-buttons button,.hero .video-toggle,.form-card .form-back,.form-card .form-email{min-height:44px}
.hero .video-toggle{min-width:44px;padding:5px}
.form-card .form-back,.form-card .form-email{padding-top:10px;padding-bottom:10px}
.site-header .mobile-toggle:focus-visible,.site-header .language-toggle:focus-visible,.site-header .services-toggle:focus-visible,.site-header .service-menu-link:focus-visible{outline:2px solid #071D33;outline-offset:4px}
#site-dialog .dialog-close:focus-visible,#site-dialog .gallery-controls button:focus-visible,.project-filters button:focus-visible,.map-region-buttons button:focus-visible,.hero .video-toggle:focus-visible{outline:2px solid #E5B544;outline-offset:4px}
.form-card .form-back:focus-visible,.form-card .form-email:focus-visible{outline:2px solid #071D33;outline-offset:4px}

/* Filters wrap as complete controls instead of forcing a wide viewport. */
.project-filters{flex-wrap:wrap;align-items:stretch;gap:6px 24px}
.project-filters button{min-height:44px;max-width:100%;display:flex;align-items:center;gap:6px;padding:10px 0 14px;text-align:left;white-space:normal}
.project-filters button sup{flex-shrink:0;position:relative;top:-3px}

/* Keep the wider touch targets inside the navigation's intermediate widths. */
@media(min-width:1101px) and (max-width:1270px){
  .site-header{gap:20px}
  .site-header .desktop-nav{gap:13px}
  .site-header .header-actions{gap:14px}
  .site-header .brand{width:200px}
  .site-header.scrolled .brand{width:170px}
}
@media(max-width:360px){
  .site-header .brand{width:132px}
  .site-header.scrolled .brand{width:120px}
  .site-header .header-actions{gap:8px}
}

/* The film follows the copy on tablets and phones, including longer languages. */
@media(max-width:900px){
  .hero{height:auto;min-height:100svh;max-height:none;display:grid;grid-template-columns:minmax(0,1fr);grid-template-rows:auto auto;align-content:start;padding-bottom:112px}
  .hero .hero-content{max-width:none;width:auto;padding-top:165px;padding-bottom:0;margin-left:7%;margin-right:7%;min-width:0}
  .hero .hero-content>p{max-width:560px}
  .hero .hero-buttons{max-width:100%;flex-wrap:wrap}
  .hero .hero-film{position:relative;left:auto;right:auto;bottom:auto;width:86%;max-width:620px;margin:36px 7% 0;transform:none;align-self:start;grid-column:1;min-width:0}
  .hero .hero-bottom{bottom:26px}
}
@media(max-width:640px){
  .hero{padding-bottom:104px}
  .hero .hero-content{padding-top:135px;margin-left:24px;margin-right:24px}
  .hero .hero-film{width:calc(100% - 48px);max-width:none;margin:30px 24px 0}
  .hero .hero-bottom{bottom:22px}
  .project-filters{column-gap:18px;row-gap:6px}
}

/* Sticky construction always fits beneath the fixed header on low screens. */
@media(max-height:740px){
  .villa-sticky{top:92px;height:calc(100svh - 104px);min-height:0;padding-top:8px;padding-bottom:12px}
  .villa-canvas{min-height:0;margin-top:-12px;margin-bottom:-10px}
  .villa-rail-step p{display:none}
  .villa-rail-step h3{font-size:12px;line-height:18px}
  .villa-rail{gap:16px}
  .villa-scene-label{bottom:12px}
}
@media(max-height:740px) and (max-width:900px){
  .villa-sticky{top:88px;height:calc(100svh - 100px)}
}
@media(max-height:740px) and (max-width:640px){
  .villa-sticky{top:78px;height:calc(100svh - 90px)}
  .villa-rail{gap:9px}
  .villa-rail-step h3{font-size:11px;line-height:17px}
}
@media(max-height:600px){
  .villa-scroll-hint{display:none}
  .villa-scene-label>small{display:none}
  .villa-scene-label>strong{font-size:14px;line-height:20px}
  .villa-scene-label{padding-top:9px;padding-bottom:9px}
  .villa-scene-top{flex-direction:row;gap:10px}
}
@media(prefers-reduced-motion:reduce){
  .villa-sticky{position:relative;top:auto;height:auto;min-height:0;padding-top:30px;padding-bottom:65px}
  .villa-canvas{height:auto;min-height:0;aspect-ratio:1.43;margin:0}
  .villa-rail-step p{display:block}
  .villa-scene-label,.villa-scroll-hint{display:none}
}

/* Long service names and form choices remain readable on narrow phones. */
.trust-grid>div,.choice-grid>*{min-width:0}
.trust-grid svg{flex-shrink:0}
.review-list dd{overflow-wrap:anywhere}
@media(max-width:640px){main h1,main h2,main h3{overflow-wrap:anywhere}}
@media(max-width:480px){.trust-grid,.choice-grid{grid-template-columns:minmax(0,1fr)}.choice>span{min-width:0;min-height:52px;font-size:14px;line-height:22px}.choice>span svg{flex-shrink:0}.form-progress{gap:8px}.form-progress>span{min-width:0}}

/* The illustration may bleed horizontally without widening the page. */
.villa-runway{overflow-x:clip}

/* Direct enquiry delivery: clear state, readable confirmation, optional chat. */
.form-card[aria-busy="true"]{cursor:progress}
.form-card button:disabled{cursor:wait;opacity:.65;transform:none}
.form-card input:disabled,.form-card select:disabled,.form-card textarea:disabled{opacity:.8}
.form-card .form-whatsapp{display:inline-flex;align-items:center;justify-content:center;gap:8px;min-height:44px;padding:10px 0;text-decoration:underline;text-underline-offset:4px;font-size:14px;line-height:22px}
.form-card .form-whatsapp svg{width:20px;height:20px}
.form-card .form-whatsapp:focus-visible{outline:2px solid #071D33;outline-offset:4px}
.form-card .form-honeypot{position:absolute!important;left:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-submit-status{font-size:14px;line-height:22px;color:#071D33;margin:0 0 16px}
.form-success{min-height:340px;display:flex;flex-direction:column;align-items:flex-start;justify-content:center;gap:20px}
.form-success:focus{outline:2px solid #071D33;outline-offset:5px}
.form-success .eyebrow,.form-success p{margin:0}
.form-success h3{margin:0;overflow-wrap:anywhere}
.form-success-icon{width:44px;height:44px;display:grid;place-items:center;background:#E5B544;color:#071D33;font-size:26px;line-height:1}
.submission-reference{display:flex;flex-direction:column;gap:6px;width:100%;padding:16px;border:1px solid #C7CCD1;background:#F4F5F3}
.submission-reference span{font-size:14px;line-height:20px}
.submission-reference strong{font-size:16px;line-height:24px;overflow-wrap:anywhere;letter-spacing:.02em}
.form-error:focus{outline:2px solid currentColor;outline-offset:5px}
@media(max-width:640px){.form-card .form-actions{flex-wrap:wrap}.form-card .form-actions>[data-send="server"]{flex-basis:100%}.form-card .form-whatsapp{font-size:14px}.form-success{min-height:300px}.submission-reference strong{font-size:15px}}

/* Native SVG replaces decorative and control glyphs across desktop and mobile. */
.ui-icon{display:inline-block;width:20px;height:20px;flex:0 0 auto;vertical-align:middle}
.footer-stars{letter-spacing:0;align-items:center;gap:10px}
.footer-stars .ui-icon{width:17px;height:17px}
@media(min-width:641px){.footer-stars{display:inline-flex}}
.pause-symbol .ui-icon{width:14px;height:14px}
.facebook-button b .ui-icon{width:15px;height:15px}
.facebook-letter{display:inline-flex;align-items:center;justify-content:center;line-height:1}
.facebook-letter .ui-icon{width:20px;height:20px}
.form-success-icon .ui-icon{width:26px;height:26px}
.form-back,.form-email{display:inline-flex;align-items:center;gap:8px}
.form-back .ui-icon,.form-email .ui-icon{width:18px;height:18px}
.dialog-close .ui-icon{width:22px;height:22px}
.gallery-controls button>svg{display:block;width:22px;height:22px}
.hero-film-caption>span:last-child .ui-icon{width:11px;height:11px;vertical-align:-1px;margin-left:3px}
.map-north{display:flex;align-items:center;gap:4px;letter-spacing:2px}
.map-north .ui-icon{width:14px;height:14px}
.careers-outline .ui-icon{width:.8em;height:.8em}
.faq-plus{display:inline-flex;align-items:center;justify-content:center;flex:0 0 20px;width:20px;height:20px}
.faq-plus .ui-icon{width:20px;height:20px}
.service-info li:before,.service-fit li:before{content:none}
.service-info li>.ui-icon{width:13px;height:13px;color:#a88749}
.service-fit li>.ui-icon{position:absolute;left:0;top:5px;width:15px;height:15px;color:currentColor}

.villa-scroll-hint .ui-icon{width:18px;height:18px}

/* Team contact stays personal without identifying an individual or using a portrait. */
.team-contact-icon{width:56px;height:56px;flex:0 0 56px;display:grid;place-items:center;background:#071D33;border:1px solid #E5B54455;color:#E5B544}
.team-contact-icon .ui-icon{width:28px;height:28px}
.contact-team-card,.service-contact-team{display:flex;align-items:center;gap:16px}
.contact-team-card{margin:35px 0}
.contact-team-card>div{display:flex;flex-direction:column;gap:4px;min-width:0}
.contact-team-card strong,.service-contact-team strong{font-size:16px;line-height:24px}
.contact-team-card span:not(.team-contact-icon){font-size:12px;line-height:20px}
.service-contact-team .team-contact-icon{width:52px;height:52px;flex-basis:52px}
@media(max-width:640px){.contact-team-card{margin:27px 0}.contact-team-card strong,.service-contact-team strong{font-size:15px;line-height:23px}.team-profile-photo-caption{gap:12px}.team-profile-signature{font-family:Sora,Arial,sans-serif;font-size:21px}}

.team-profile-signature{font-family:Sora,Arial,sans-serif;font-style:normal;font-size:24px;letter-spacing:0}
.team-profile-signature span{font-family:Manrope,Arial,sans-serif;letter-spacing:.06em}
.contact-team-card>.team-contact-icon,.service-contact-team>.team-contact-icon{display:grid;margin:0;letter-spacing:normal;color:#E5B544}
