/* Aurevia production structure layer
   Standards-based alignment, reflow and visual-stability overrides.
   Loaded after legacy + mobile styles so the existing design language stays intact. */

:root{
  --aurevia-content-max:1180px;
  --aurevia-gutter:clamp(20px,3vw,28px);
  --aurevia-tap:44px;
}

html{
  overflow-x:clip;
  text-size-adjust:100%;
  -webkit-text-size-adjust:100%;
}

body,.site,main,section,.inner,
.hero-content,.process-shell,.process-stage,.process-panel,
.operator-luxury-grid,.operator-editorial,.operator-dossier,
.services-luxury-inner,.services-brief,.services-grid-luxury,
.service-luxury-item,.request,.form,.row{
  min-width:0;
}

body{
  overflow-x:clip;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
  text-rendering:optimizeLegibility;
}

img,svg{
  max-width:100%;
  image-rendering:auto;
}

img{
  object-fit:contain;
}

/* Shared interaction baseline */
a,button,input,textarea,select{
  -webkit-tap-highlight-color:transparent;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
textarea:focus-visible,
select:focus-visible{
  outline:2px solid var(--gold,#b99a60);
  outline-offset:3px;
}

button,.btn,.submit,.nav-burger,.mobile-drawer-panel a{
  min-height:var(--aurevia-tap);
}

/* Header brand lockup: one alignment system for A + wordmark.
   The invisible nav-logo remains the geometric anchor for the floating-A docking script. */
.brand-lockup{
  --brand-a-size:58px;
  display:grid !important;
  grid-template-columns:var(--brand-a-size) auto;
  grid-template-rows:var(--brand-a-size);
  align-items:center !important;
  justify-items:start;
  gap:0;
  min-width:0;
  min-height:var(--brand-a-size);
  position:relative;
}

.brand-lockup .nav-logo{
  grid-column:1;
  grid-row:1;
  width:var(--brand-a-size) !important;
  height:var(--brand-a-size) !important;
  display:block;
  object-fit:contain;
  object-position:center;
  position:static !important;
  transform:none !important;
}

.brand-lockup .brand-word{
  grid-column:2;
  grid-row:1;
  align-self:center;
  position:static !important;
  display:block;
  width:auto;
  height:calc(var(--brand-a-size) * .2414) !important;
  margin-left:calc(var(--brand-a-size) * -.431);
  transform:translateY(calc(var(--brand-a-size) * .02));
  object-fit:contain;
  object-position:left center;
}

.brand-word.word-hidden{opacity:0}

/* Prevent decorative/fixed layers from creating page width. */
.hero-film,.hero-film .hero-slide,
.operator-geometry,.services-orbit,
.manifesto-exact,.manifesto-exact-sticky,
#confirmTakeoverShell{
  max-width:none;
}

/* Services: deterministic rows. Footer is part of layout, never floating over copy. */
#services .services-grid-luxury{
  align-items:stretch;
}

#services .service-luxury-item{
  min-width:0;
  display:grid !important;
  grid-template-rows:auto auto minmax(0,1fr) auto;
  align-content:start;
}

#services .service-luxury-top{
  min-width:0;
}

#services .service-luxury-top small{
  min-width:0;
  overflow-wrap:anywhere;
}

#services .service-luxury-item h3,
#services .service-luxury-item p{
  min-width:0;
  overflow-wrap:break-word;
}

#services .service-luxury-foot{
  position:static !important;
  left:auto !important;
  right:auto !important;
  bottom:auto !important;
  width:100%;
  margin-top:28px;
  align-self:end;
}

/* Operator dossier: explicit, non-colliding columns. */
.operator-dossier,
.operator-dossier-top,
.operator-commitment,
.operator-dossier-footer{
  min-width:0;
}

.operator-dossier-top{
  align-items:center;
}

.operator-dossier-top span,
.operator-dossier-footer span{
  min-width:0;
  overflow-wrap:anywhere;
}

.operator-commitment{
  grid-template-columns:minmax(34px,54px) minmax(0,1fr) !important;
}

.operator-commitment>div:last-child{
  min-width:0;
}

.operator-commitment h3,
.operator-commitment p{
  overflow-wrap:break-word;
}

/* Process cards: metadata / visual / copy stay in independent grid zones. */
.process-stage{
  min-width:0;
}

.process-panel.panel-request,
.process-panel.panel-source,
.process-panel.panel-fly{
  display:grid !important;
  grid-template-rows:auto minmax(0,1fr) auto;
  grid-template-columns:minmax(0,1fr);
  min-width:0;
  isolation:isolate;
}

.process-panel .panel-topline,
.process-panel .request-visual,
.process-panel .source-visual,
.process-panel .departure-visual,
.process-panel .process-panel-copy{
  min-width:0;
  width:100%;
}

.process-panel.panel-request .request-visual,
.process-panel.panel-source .source-visual,
.process-panel.panel-fly .departure-visual{
  position:relative !important;
  inset:auto !important;
  align-self:center;
}

.process-panel.panel-request .process-panel-copy,
.process-panel.panel-source .process-panel-copy,
.process-panel.panel-fly .process-panel-copy{
  position:relative !important;
  inset:auto !important;
  align-self:end;
}

.request-visual,.departure-route{
  grid-template-columns:minmax(0,auto) minmax(44px,1fr) minmax(0,auto);
}

.route-place,.departure-route strong{
  min-width:0;
}

.source-head,.aircraft-row{
  min-width:0;
}

.aircraft-row{
  grid-template-columns:12px minmax(0,1fr) auto;
}

.aircraft-row>div{
  min-width:0;
}

.aircraft-row strong,.aircraft-row small,.aircraft-row em{
  overflow-wrap:break-word;
}

/* Confirmation summary: data is allowed to wrap instead of colliding/ellipsis. */
.panel-fly .aurevia-confirm-summary,
.panel-fly .aurevia-confirm-row,
.panel-fly .aurevia-confirm-item{
  min-width:0;
}

.panel-fly .aurevia-confirm-item strong{
  white-space:normal !important;
  overflow:visible !important;
  text-overflow:clip !important;
  overflow-wrap:anywhere;
}

.panel-fly .aurevia-confirm-item small{
  white-space:normal !important;
  overflow-wrap:break-word;
}

/* Form stability */
.form,
.form .row,
.form label{
  min-width:0;
}

.form input,.form textarea,.form select{
  width:100%;
  max-width:100%;
}

.form input:focus,.form textarea:focus,.form select:focus{
  border-color:rgba(185,154,96,.72);
  box-shadow:0 0 0 3px rgba(185,154,96,.10);
}

/* Responsive structural pass */
@media (max-width:900px){
  .hero,.operator,.request{
    grid-template-columns:minmax(0,1fr) !important;
  }

  .process-shell{
    grid-template-columns:minmax(0,1fr) !important;
  }

  #services .services-grid-luxury{
    grid-template-columns:minmax(0,1fr) !important;
  }
}

@media (max-width:768px){
  :root{
    --aurevia-gutter:clamp(18px,5vw,22px);
  }

  html,body,.site{
    width:100%;
    max-width:100%;
  }

  .header{
    width:calc(100% - 20px) !important;
  }

  .nav{
    min-width:0;
    align-items:center !important;
  }

  .brand-lockup{
    --brand-a-size:44px;
    flex:0 1 auto;
    top:auto !important;
    transform:none !important;
  }

  .brand-lockup .brand-word{
    margin-left:calc(var(--brand-a-size) * -.40);
    transform:translateY(1px);
  }

  .nav-burger{
    flex:0 0 46px;
    width:46px;
    height:46px;
    padding:0 10px;
    display:inline-flex;
    align-items:center;
    justify-content:center;
  }

  .mobile-drawer-panel{
    max-height:calc(100dvh - 20px - env(safe-area-inset-top));
    overflow-y:auto;
    overscroll-behavior:contain;
  }

  .mobile-drawer-panel a{
    min-height:50px;
  }

  .cinematic-hero .hero-content{
    width:calc(100% - (var(--aurevia-gutter) * 2)) !important;
    max-width:var(--aurevia-content-max);
  }

  .cinematic-hero h1,
  .cinematic-hero .lead{
    max-width:100% !important;
  }

  .hero .actions{
    width:100%;
    align-items:stretch;
  }

  .hero .actions .btn{
    flex:1 1 150px;
  }

  /* Service cards use normal flow on phones. */
  #services .service-luxury-item{
    grid-template-rows:auto auto auto auto;
    padding:30px 22px 26px !important;
  }

  #services .service-luxury-top{
    margin-bottom:26px !important;
  }

  #services .service-luxury-item h3{
    margin:0 0 14px !important;
  }

  #services .service-luxury-foot{
    margin-top:26px !important;
    padding-top:0 !important;
  }

  /* Operator editorial + dossier */
  .operator-luxury-grid{
    grid-template-columns:minmax(0,1fr) !important;
    gap:42px !important;
  }

  .operator-editorial,
  .operator-dossier{
    width:100%;
    max-width:100%;
  }

  .operator-dossier-top{
    display:flex;
    flex-wrap:wrap;
    justify-content:space-between;
    gap:8px 16px;
  }

  .operator-commitment{
    grid-template-columns:36px minmax(0,1fr) !important;
    gap:14px !important;
  }

  .operator-dossier-footer{
    grid-template-columns:minmax(0,1fr) auto !important;
  }

  .operator-dossier-footer i{
    display:none !important;
  }

  /* Sticky process: fit the heading and card as one measured composition. */
  .process-sticky{
    height:100svh !important;
    min-height:0 !important;
    padding:calc(82px + env(safe-area-inset-top)) 0 calc(18px + env(safe-area-inset-bottom)) !important;
    align-items:flex-start !important;
  }

  .process-shell{
    width:calc(100% - 32px) !important;
    max-width:640px;
    gap:14px !important;
    align-content:start;
  }

  .process-copy{
    min-width:0;
  }

  .process-copy h2{
    margin-top:5px !important;
    font-size:clamp(30px,8.5vw,39px) !important;
    line-height:.93;
  }

  .process-progress{
    margin-top:12px !important;
  }

  .process-stage{
    width:100%;
    height:clamp(338px,48svh,404px) !important;
    min-height:0 !important;
  }

  .process-panel{
    padding:20px 18px !important;
    border-radius:22px !important;
  }

  .process-panel.panel-request,
  .process-panel.panel-source,
  .process-panel.panel-fly{
    grid-template-rows:auto auto auto !important;
    align-content:space-between;
    gap:12px !important;
    height:100% !important;
    inset:0 !important;
  }

  .process-panel.panel-request .request-visual,
  .process-panel.panel-source .source-visual,
  .process-panel.panel-fly .departure-visual{
    align-self:start !important;
    margin:0 !important;
  }

  .process-panel.panel-request .process-panel-copy,
  .process-panel.panel-source .process-panel-copy,
  .process-panel.panel-fly .process-panel-copy{
    align-self:end !important;
    margin:0 !important;
  }

  .panel-topline{
    font-size:9px !important;
    line-height:1.2;
  }

  .request-visual,.departure-route{
    gap:12px !important;
  }

  .route-place strong,.departure-route strong{
    font-size:clamp(27px,8vw,31px) !important;
  }

  .route-place span{
    display:none !important;
  }

  .source-visual{
    gap:6px !important;
  }

  .aircraft-row{
    padding:8px 9px !important;
    gap:10px !important;
  }

  .aircraft-row strong{
    font-size:11px;
  }

  .aircraft-row small{
    display:block !important;
    font-size:8px;
    line-height:1.2;
  }

  .aircraft-row em{
    font-size:7px;
  }

  .process-panel h3,
  .process-panel.panel-source .process-panel-copy h3,
  .process-panel.panel-fly .process-panel-copy h3{
    margin:0 0 8px !important;
    font-size:clamp(25px,7vw,31px) !important;
    line-height:1;
  }

  .process-panel p{
    font-size:13px !important;
    line-height:1.5 !important;
  }

  .panel-fly .aurevia-confirm-summary{
    margin:12px 0 0 !important;
    padding:0 12px !important;
    border-radius:14px;
  }

  .panel-fly .aurevia-confirm-primary{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr) !important;
  }

  .panel-fly .aurevia-confirm-secondary{
    grid-template-columns:repeat(3,minmax(0,1fr)) !important;
  }

  .panel-fly .aurevia-confirm-item{
    min-width:0;
    padding:10px 8px 10px 0 !important;
  }

  .panel-fly .aurevia-confirm-item + .aurevia-confirm-item{
    padding-left:10px !important;
  }

  .panel-fly .aurevia-confirm-item small{
    margin-bottom:5px !important;
    font-size:7.5px !important;
    line-height:1.15;
    letter-spacing:.12em !important;
  }

  .panel-fly .aurevia-confirm-item strong{
    font-size:10px !important;
    line-height:1.18 !important;
    letter-spacing:.035em !important;
  }

  /* Manifesto: preserve exact animation assets, keep geometry inside viewport. */
  .manifesto-exact-shell{
    width:min(100%,92vw) !important;
    max-width:100%;
  }

  .manifesto-exact-logo{
    width:min(430px,88vw) !important;
  }

  .manifesto-exact-copy{
    width:min(90vw,720px) !important;
  }

  .manifesto-intro-wordmark{
    width:100%;
    height:auto;
  }

  /* Request form */
  .request{
    grid-template-columns:minmax(0,1fr) !important;
  }

  .form{
    width:100%;
  }

  .form .row{
    grid-template-columns:minmax(0,1fr) !important;
  }

  input,textarea,select{
    min-height:48px;
    font-size:16px !important;
  }

  textarea{
    min-height:120px;
  }

  .submit{
    width:100%;
    min-height:50px;
  }

  .footer .inner{
    min-width:0;
  }

  .footer span{
    overflow-wrap:break-word;
  }

  /* Reduce expensive glass work on constrained devices without changing the look. */
  .header{
    -webkit-backdrop-filter:blur(16px) saturate(120%) !important;
    backdrop-filter:blur(16px) saturate(120%) !important;
  }

  .mobile-drawer-panel{
    -webkit-backdrop-filter:blur(16px) saturate(120%) !important;
    backdrop-filter:blur(16px) saturate(120%) !important;
  }
}

@media (max-width:359px){
  .brand-lockup{--brand-a-size:40px}

  .process-shell{
    width:calc(100% - 24px) !important;
  }

  .process-panel{
    padding:18px 15px !important;
  }

  .panel-fly .aurevia-confirm-primary{
    grid-template-columns:minmax(0,1fr) !important;
  }

  .panel-fly .aurevia-confirm-primary .aurevia-confirm-item + .aurevia-confirm-item{
    padding-left:0 !important;
    border-top:1px solid rgba(247,241,232,.10);
  }

  .panel-fly .aurevia-confirm-primary .aurevia-confirm-item::after{
    display:none !important;
  }
}

@media (max-width:768px) and (max-height:720px){
  .process-sticky{
    padding-top:76px !important;
  }

  .process-copy h2{
    font-size:clamp(27px,7.4vw,33px) !important;
  }

  .process-stage{
    height:clamp(306px,48svh,346px) !important;
  }

  .process-panel{
    padding:16px 15px !important;
    gap:8px !important;
  }

  .aircraft-row small{
    display:none !important;
  }

  .process-panel p{
    font-size:12px !important;
  }

  .panel-fly .aurevia-confirm-item{
    padding-top:7px !important;
    padding-bottom:7px !important;
  }
}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto !important}

  *,*::before,*::after{
    scroll-behavior:auto !important;
  }
}
