/* =========================================================================
   Aircraft Interior Services — landing styles
   Targets the custom classes set on native blocks in the pattern + parts.
   Loaded on the front end AND inside the editor (enqueue_block_assets).
   ========================================================================= */

:root{
  --ais-blue:#0F79B6; --ais-blue-deep:#0A567F; --ais-slate:#3E4A54;
  --ais-ink:#132430; --ais-ink-2:#0C1A24; --ais-aluminum:#D9DEE2;
  --ais-paper:#F5F3EE; --ais-paper-2:#EDE9E1; --ais-tan:#C8A578;
  --ais-line:rgba(19,36,48,.12);
  --ais-shadow:0 18px 45px -22px rgba(12,26,36,.55);
}

/* ---- generic section rhythm ---- */
.section{ padding:clamp(58px,8vw,92px) clamp(20px,4vw,90px); }

/* anchor targets clear the sticky header when jumped to from the menu */
.section[id],
.hero[id]{ scroll-margin-top:84px; }

/* eyebrow label (mono + tan tick) */
.eyebrow{
  font-family:"IBM Plex Mono",monospace!important;
  font-weight:600; font-size:.72rem; letter-spacing:.22em;
  text-transform:uppercase; color:var(--ais-blue);
  display:flex; align-items:center; gap:.7em; margin:0 0 .3em;
}
.eyebrow::before{ content:""; width:26px; height:2px; background:var(--ais-tan); flex:none; }

/* ============================ HEADER ============================ */
/* Stick the whole header template-part wrapper so it stays pinned all the way
   down the page. (Sticky on the inner group alone releases as soon as the
   short header wrapper scrolls out of view.) */
.wp-block-template-part:has(.ais-header){
  position:sticky; top:0; z-index:100;
}
.ais-header{
  background:rgba(245,243,238,.9); backdrop-filter:blur(10px);
  border-bottom:1px solid var(--ais-line);
  padding:12px clamp(20px,4vw,90px)!important;
}
.ais-header .wp-block-site-title a,
.ais-header .brand-name{
  font-family:"Saira Condensed",sans-serif!important; font-weight:700;
  font-size:1.25rem; letter-spacing:.02em; color:var(--ais-ink)!important;
  text-decoration:none; line-height:1;
}
.ais-header .wp-block-site-logo img{ width:42px; height:42px; }
.ais-header .wp-block-navigation{ font-family:"Source Sans 3",sans-serif; font-weight:600; }
.ais-header .wp-block-navigation a{ color:var(--ais-slate); }
.ais-header .wp-block-navigation a:hover{ color:var(--ais-blue); }

/* ============================ HERO ============================ */
.hero{
  position:relative; overflow:hidden; color:#fff;
  padding:clamp(60px,9vw,104px) clamp(20px,4vw,90px)!important;
  background:
    radial-gradient(1100px 480px at 80% -10%, rgba(15,121,182,.30), transparent 60%),
    linear-gradient(180deg,var(--ais-ink) 0%, var(--ais-ink-2) 100%);
}
.hero::before{ /* blueprint grid */
  content:""; position:absolute; inset:0; pointer-events:none;
  background-image:
    linear-gradient(rgba(217,222,226,.06) 1px,transparent 1px),
    linear-gradient(90deg,rgba(217,222,226,.06) 1px,transparent 1px);
  background-size:52px 52px;
  -webkit-mask-image:radial-gradient(1000px 620px at 28% 34%,#000,transparent 82%);
          mask-image:radial-gradient(1000px 620px at 28% 34%,#000,transparent 82%);
}
.hero::after{ /* ghosted wing */
  content:""; position:absolute; right:-4%; bottom:-14%;
  width:min(58%,720px); aspect-ratio:2/1; opacity:.10; pointer-events:none;
  background:no-repeat center/contain
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 400 200'%3E%3Cpath fill='%230F79B6' d='M10 150C120 120 250 60 390 30L390 46C260 84 150 120 60 160Z'/%3E%3Cpath fill='%230F79B6' opacity='.6' d='M40 172C150 150 260 110 380 88L380 100C270 126 170 152 90 176Z'/%3E%3C/svg%3E");
}
.hero > *{ position:relative; z-index:2; }
.hero h1{
  font-size:clamp(2.5rem,5.4vw,4.3rem); font-weight:700; line-height:.98;
  text-transform:uppercase; color:#fff; margin:.2em 0 .3em;
}
.hero h1 .has-blue-color{ color:var(--ais-blue)!important; }
.hero .lead{ font-size:1.15rem; color:#C9D3DB; max-width:34ch; margin:0 0 1.6em; }
.hero .eyebrow{ color:#7FC4EE; }

/* ---- signature: certification data plate (small HTML block) ---- */
.dataplate{
  position:relative; border-radius:6px; padding:30px 30px 24px; color:var(--ais-ink);
  background:
    repeating-linear-gradient(115deg,rgba(255,255,255,.5) 0,rgba(255,255,255,.5) 1px,transparent 1px,transparent 4px),
    linear-gradient(150deg,#EAEDEF 0%,#C4CCD1 45%,#DEE3E6 60%,#B4BCC2 100%);
  box-shadow:inset 0 1px 0 rgba(255,255,255,.7), inset 0 -2px 6px rgba(0,0,0,.18), var(--ais-shadow);
  border:1px solid rgba(255,255,255,.4);
}
.dataplate::before{ content:""; position:absolute; inset:9px; border:1.5px solid rgba(19,36,48,.28); border-radius:3px; }
.dataplate .rivet{ position:absolute; width:11px; height:11px; border-radius:50%;
  background:radial-gradient(circle at 35% 30%,#f4f6f7,#8b969d 60%,#5c666c);
  box-shadow:0 1px 1px rgba(0,0,0,.4), inset 0 -1px 1px rgba(0,0,0,.3); }
.dataplate .rivet.tl{top:15px;left:15px} .dataplate .rivet.tr{top:15px;right:15px}
.dataplate .rivet.bl{bottom:15px;left:15px} .dataplate .rivet.br{bottom:15px;right:15px}
.dataplate .dp-head{ position:relative; font-family:"Saira Condensed",sans-serif; font-weight:700;
  text-transform:uppercase; letter-spacing:.05em; font-size:1.3rem; text-align:center; line-height:1.05; }
.dataplate .dp-head small{ display:block; font-family:"IBM Plex Mono",monospace; font-weight:500;
  font-size:.6rem; letter-spacing:.2em; color:var(--ais-slate); margin-top:6px; }
.dataplate .dp-divider{ height:1.5px; background:rgba(19,36,48,.25); margin:15px 2px; }
.dataplate .dp-row{ position:relative; display:flex; justify-content:space-between; align-items:baseline;
  gap:14px; font-family:"IBM Plex Mono",monospace; padding:7px 2px; border-bottom:1px dotted rgba(19,36,48,.28); }
.dataplate .dp-label{ font-size:.66rem; letter-spacing:.14em; text-transform:uppercase; color:var(--ais-slate); }
.dataplate .dp-value{ font-size:1.02rem; font-weight:600; color:var(--ais-ink); letter-spacing:.04em; }
.dataplate .dp-stamp{ position:relative; margin-top:14px; text-align:center;
  font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.2em; color:var(--ais-blue-deep); text-transform:uppercase; }

/* ============================ SECTION HEADS ============================ */
.section-head{ max-width:660px; margin-bottom:12px; }
.section-head h2{ font-size:clamp(1.9rem,3.6vw,2.8rem); text-transform:uppercase; margin:.15em 0 .3em; }
.section-head p{ font-size:1.1rem; color:var(--ais-slate); margin:0; }

/* ============================ SERVICES ============================ */
.services{ background:var(--ais-paper); }
.svc{
  background:#fff; border:1px solid var(--ais-line); border-radius:6px;
  padding:30px 26px!important; position:relative; overflow:hidden;
  transition:transform .22s ease, box-shadow .22s ease, border-color .22s;
}
.svc::after{ content:""; position:absolute; left:0; top:0; height:100%; width:3px;
  background:var(--ais-blue); transform:scaleY(0); transform-origin:top; transition:transform .25s ease; }
.svc:hover{ transform:translateY(-4px); box-shadow:var(--ais-shadow); border-color:transparent; }
.svc:hover::after{ transform:scaleY(1); }
.svc h3{ font-size:1.35rem; text-transform:uppercase; letter-spacing:.02em; margin:0 0 6px; }
.svc p{ margin:0; color:var(--ais-slate); font-size:1rem; }
.svc::before{ content:""; display:block; width:42px; height:42px; margin-bottom:15px;
  background-repeat:no-repeat; background-position:center; background-size:contain; }
.svc.ic-seat::before   { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%230F79B6' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 30v-8a6 6 0 0 1 6-6h16a6 6 0 0 1 6 6v8'/%3E%3Cpath d='M8 30h32v6a4 4 0 0 1-4 4H12a4 4 0 0 1-4-4z'/%3E%3Cpath d='M14 40v3M34 40v3'/%3E%3C/svg%3E"); }
.svc.ic-carpet::before { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%230F79B6' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='8' y='10' width='32' height='28' rx='2'/%3E%3Cpath d='M8 18h32M8 26h32M8 34h32M16 10v28M24 10v28M32 10v28'/%3E%3C/svg%3E"); }
.svc.ic-panel::before  { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%230F79B6' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M10 12h28v24H10z'/%3E%3Cpath d='M10 20h28M18 12v8M30 12v8M14 28h6M28 28h6'/%3E%3C/svg%3E"); }
.svc.ic-cabinet::before{ background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%230F79B6' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='9' y='10' width='30' height='28' rx='2'/%3E%3Cpath d='M24 10v28M9 24h30'/%3E%3C/svg%3E"); }
.svc.ic-sound::before  { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%230F79B6' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M14 24a10 10 0 0 1 20 0M9 24a15 15 0 0 1 30 0M19 24a5 5 0 0 1 10 0M24 24v10'/%3E%3C/svg%3E"); }
.svc.ic-refit::before  { background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 48 48' fill='none' stroke='%230F79B6' stroke-width='2.2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M24 6l4 6 7 1-5 5 1 7-7-3-7 3 1-7-5-5 7-1z'/%3E%3Cpath d='M12 40h24M18 34v6M30 34v6'/%3E%3C/svg%3E"); }

/* ============================ CRAFT / CERTIFIED ============================ */
.craft{ background:linear-gradient(160deg,var(--ais-ink) 0%,var(--ais-ink-2) 100%); color:#fff; }
.craft h2{ color:#fff; font-size:clamp(1.9rem,3.6vw,2.9rem); text-transform:uppercase; margin:.2em 0 .5em; }
.craft p{ color:#C9D3DB; font-size:1.1rem; }
.craft .eyebrow{ color:#7FC4EE; }
.stat{ border:1px solid rgba(217,222,226,.18); border-radius:5px; background:rgba(255,255,255,.03);
  padding:18px 22px!important; }
.stat .stat-n{ font-family:"Saira Condensed",sans-serif; font-weight:700; font-size:1.7rem; color:#fff; line-height:1; margin:0; }
.stat .stat-l{ font-family:"IBM Plex Mono",monospace; font-size:.64rem; letter-spacing:.13em;
  text-transform:uppercase; color:#8FA3B0; margin:.5em 0 0; }
.craft-visual{
  border-radius:8px; min-height:340px; border:1px solid rgba(217,222,226,.14);
  background:
    no-repeat center/58%
      url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 240' fill='none' stroke='%237FC4EE' stroke-opacity='.5' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M100 20C80 60 70 120 72 180L72 210 128 210 128 180C130 120 120 60 100 20Z'/%3E%3Cpath d='M72 130 20 155 20 168 72 152M128 130 180 155 180 168 128 152'/%3E%3Cpath d='M86 208 70 226 86 226M114 208 130 226 114 226'/%3E%3Cpath d='M92 70h16M90 100h20M88 130h24'/%3E%3Ccircle cx='100' cy='46' r='4'/%3E%3C/svg%3E"),
    radial-gradient(600px 300px at 70% 20%,rgba(15,121,182,.35),transparent 60%),
    linear-gradient(150deg,#1b3140,#0c1a24);
}

/* ============================ TEAM ============================ */
.team{ background:var(--ais-paper-2); }
.person{ background:#fff; border:1px solid var(--ais-line); border-radius:8px; padding:32px!important; }
.person h3{ font-size:1.5rem; text-transform:uppercase; letter-spacing:.02em; margin:0; }
.person .avatar{
  width:60px; height:60px; border-radius:50%; flex:none;
  background:linear-gradient(150deg,var(--ais-blue),var(--ais-blue-deep));
  color:#fff!important; display:flex; align-items:center; justify-content:center;
  font-family:"Saira Condensed",sans-serif!important; font-weight:700; font-size:1.4rem; margin:0;
}
.person .role{ font-family:"IBM Plex Mono",monospace!important; font-size:.7rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--ais-blue); margin:.25em 0 0; }
.person .desc{ color:var(--ais-slate); }
.person .cline{ margin:0; padding:5px 0; font-size:1rem; }
.person .cline a{ color:var(--ais-ink); text-decoration:none; }
.person .cline a:hover{ color:var(--ais-blue); }
.person .cline .tag{ font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.1em;
  text-transform:uppercase; color:var(--ais-slate); }

/* ============================ CONTACT ============================ */
.contact{ background:var(--ais-paper); }
.contact h2{ font-size:clamp(1.9rem,3.6vw,2.8rem); text-transform:uppercase; margin:.2em 0 .4em; }
.contact-list{ list-style:none; padding:0; }
.contact-list li{ padding:12px 0; border-bottom:1px solid var(--ais-line); }
.contact-list li:last-child{ border-bottom:0; }
.contact-list .k{ font-family:"IBM Plex Mono",monospace; font-size:.6rem; letter-spacing:.13em;
  text-transform:uppercase; color:var(--ais-slate); display:block; }
.contact-list .v{ font-size:1.08rem; font-weight:600; color:var(--ais-ink); }
.contact-list a.v:hover{ color:var(--ais-blue); }
.map{ border-radius:8px; overflow:hidden; border:1px solid var(--ais-line); box-shadow:var(--ais-shadow); min-height:360px; }
.map iframe{ display:block; width:100%; min-height:360px; border:0; filter:grayscale(.2) contrast(1.02); }

/* ============================ FOOTER ============================ */
.ais-footer{
  background:var(--ais-ink-2); color:var(--ais-aluminum);
  padding:44px clamp(20px,4vw,90px) 28px!important;
}
.ais-footer .brand-name{ color:#fff!important; }
.ais-footer p, .ais-footer li{ color:var(--ais-aluminum); }
.ais-footer .foot-cred{ font-family:"IBM Plex Mono",monospace; font-size:.68rem; letter-spacing:.1em; color:#8FA3B0; line-height:2; margin:0; }
.ais-footer .foot-cred b{ color:var(--ais-blue); }
.ais-footer .foot-bottom{ font-family:"IBM Plex Mono",monospace; font-size:.66rem; letter-spacing:.1em; color:#6E828F; }

/* ---- button variants ---- */
.wp-block-button.btn-ghost .wp-block-button__link{
  background:transparent!important; color:#fff!important; border:1.5px solid rgba(255,255,255,.5)!important;
}
.wp-block-button.btn-ghost .wp-block-button__link:hover{ border-color:#fff!important; background:rgba(255,255,255,.1)!important; }
.wp-block-button.btn-dark .wp-block-button__link{ background:var(--ais-ink)!important; color:#fff!important; }
.wp-block-button.btn-dark .wp-block-button__link:hover{ background:var(--ais-ink-2)!important; }

/* ---- scroll reveal (JS adds .is-in) ---- */
.ais-reveal{ opacity:0; transform:translateY(22px); transition:opacity .7s ease, transform .7s ease; }
.ais-reveal.is-in{ opacity:1; transform:none; }
@media (prefers-reduced-motion:reduce){ .ais-reveal{ opacity:1; transform:none; transition:none; } }
