:root{
  --navy:#081a2f;
  --navy-2:#0d2440;
  --navy-3:#123253;
  --gold:#c8a24a;
  --gold-2:#e6ca8a;
  --gold-3:#a47b2c;
  --paper:#fbf8f1;
  --cream:#f2eadb;
  --cream-2:#e9dfcc;
  --ink:#1b232d;
  --muted:#656b72;
  --line:rgba(200,162,74,.32);
  --line-dark:rgba(8,26,47,.12);
  --serif:'Cormorant Garamond',Georgia,'Times New Roman',serif;
  --sans:'Jost',-apple-system,BlinkMacSystemFont,'Segoe UI',Arial,sans-serif;
  --container:1240px;
  --header-h:88px;
}

*,
*::before,
*::after{box-sizing:border-box}

html{scroll-behavior:smooth;scroll-padding-top:96px}

body{
  margin:0;
  background:var(--paper);
  color:var(--ink);
  font-family:var(--sans);
  font-size:16px;
  font-weight:400;
  line-height:1.65;
  -webkit-font-smoothing:antialiased;
  overflow-x:hidden;
}

body.menu-open{overflow:hidden}

img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button{font:inherit;color:inherit}
address{font-style:normal}
ul{list-style:none;margin:0;padding:0}
p{margin:0}
::selection{background:var(--gold);color:var(--navy)}

.skip-link{
  position:fixed;top:-100px;left:16px;z-index:300;
  background:var(--gold);color:var(--navy);
  padding:10px 16px;font-size:.75rem;letter-spacing:.1em;text-transform:uppercase;
  transition:top .2s;
}
.skip-link:focus{top:12px}

.container{
  width:100%;
  max-width:var(--container);
  margin:0 auto;
  padding:0 30px;
}

h1,h2,h3,h4{
  margin:0;
  font-family:var(--serif);
  font-weight:500;
  color:var(--navy);
  line-height:1.08;
}

.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:12px;
  margin:0 0 18px;
  font-size:.64rem;
  font-weight:500;
  letter-spacing:.27em;
  line-height:1.4;
  text-transform:uppercase;
  color:var(--gold-3);
}
.eyebrow::before{
  content:"";
  width:30px;
  height:1px;
  flex:none;
  background:currentColor;
  opacity:.75;
}
.eyebrow.light{color:var(--gold-2)}

.section{padding:clamp(78px,8vw,124px) 0}

.section-head{
  max-width:780px;
  margin:0 auto clamp(42px,5vw,66px);
  text-align:center;
}
.section-head .eyebrow{justify-content:center}
.section-head h2{
  margin:0 0 18px;
  font-size:clamp(2.45rem,4.2vw,3.9rem);
  letter-spacing:-.015em;
}
.section-head > p:last-child{
  max-width:640px;
  margin:0 auto;
  color:var(--muted);
  font-size:.97rem;
  line-height:1.8;
}
.section-head.light h2{color:#fff}
.section-head.light > p:last-child{color:rgba(255,255,255,.64)}

.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  gap:10px;
  min-height:48px;
  padding:14px 27px;
  border:1px solid transparent;
  border-radius:0;
  background:transparent;
  font-family:var(--sans);
  font-size:.69rem;
  font-weight:500;
  letter-spacing:.18em;
  line-height:1.2;
  text-align:center;
  text-transform:uppercase;
  cursor:pointer;
  transition:background .3s,color .3s,border-color .3s,transform .3s;
}
.btn svg{
  width:16px;height:16px;flex:none;
  fill:none;stroke:currentColor;stroke-width:1.6;
  stroke-linecap:round;stroke-linejoin:round;
  transition:transform .3s;
}
.btn:hover svg{transform:translateX(4px)}
.btn-gold{background:var(--gold);border-color:var(--gold);color:var(--navy)}
.btn-gold:hover{background:var(--gold-2);border-color:var(--gold-2)}
.btn-navy{background:var(--navy);border-color:var(--navy);color:#fff}
.btn-navy:hover{background:var(--navy-2);border-color:var(--navy-2)}
.btn-outline-light{border-color:rgba(255,255,255,.48);color:#fff}
.btn-outline-light:hover{border-color:var(--gold-2);color:var(--gold-2)}
.btn-sm{min-height:40px;padding:10px 19px;font-size:.61rem}

.text-link{
  display:inline-flex;
  align-items:center;
  gap:9px;
  font-size:.66rem;
  font-weight:500;
  letter-spacing:.17em;
  text-transform:uppercase;
  color:var(--gold-3);
  transition:color .3s;
}
.text-link svg{
  width:15px;height:15px;flex:none;
  fill:none;stroke:currentColor;stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round;
  transition:transform .3s;
}
.text-link:hover{color:var(--navy)}
.text-link:hover svg{transform:translateX(4px)}
.text-link.light{color:var(--gold-2)}
.text-link.light:hover{color:#fff}

/* Header */
.site-header{
  position:fixed;
  inset:0 0 auto;
  z-index:100;
  color:#fff;
  transition:background .35s,box-shadow .35s;
}
.topbar{
  overflow:hidden;
  max-height:40px;
  border-bottom:1px solid rgba(255,255,255,.12);
  color:rgba(255,255,255,.68);
  font-size:.61rem;
  letter-spacing:.15em;
  text-transform:uppercase;
  transition:max-height .35s,opacity .25s,padding .35s;
}
.topbar-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:36px;
}
.topbar-inner p{display:flex;align-items:center;gap:9px;margin:0}
.status-dot{
  width:5px;height:5px;flex:none;border-radius:50%;
  background:var(--gold-2);
  box-shadow:0 0 0 4px rgba(230,202,138,.12);
  animation:pulse 2.4s infinite;
}
@keyframes pulse{
  0%,100%{opacity:1}
  50%{opacity:.45}
}
.topbar-links{display:flex;align-items:center;gap:10px}
.topbar-links a{transition:color .25s}
.topbar-links a:hover{color:var(--gold-2)}
.topbar-links .sep{color:rgba(255,255,255,.25)}

.navbar{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  height:var(--header-h);
  transition:height .35s;
}
.brand{display:flex;align-items:center;gap:13px;flex:none}
.brand-mark{
  display:grid;
  place-items:center;
  width:64px;
  height:64px;
  padding:5px;
  flex:none;
  overflow:hidden;
  border:1px solid rgba(200,162,74,.6);
  border-radius:50%;
  background:#fff;
  box-shadow:0 6px 18px rgba(0,0,0,.18);
}
.brand-mark img{width:100%;height:100%;object-fit:contain}
.brand-text{display:flex;flex-direction:column;line-height:1}
.brand-text strong{
  font-family:var(--serif);
  font-size:1.28rem;
  font-weight:600;
  letter-spacing:.17em;
  color:#fff;
}
.brand-text small{
  margin-top:5px;
  font-size:.56rem;
  letter-spacing:.25em;
  text-transform:uppercase;
  color:var(--gold-2);
}

.nav{display:flex;align-items:center;gap:clamp(13px,1.65vw,26px)}
.nav > a:not(.nav-cta){
  position:relative;
  padding:6px 0;
  color:rgba(255,255,255,.82);
  font-size:.65rem;
  font-weight:400;
  letter-spacing:.13em;
  text-transform:uppercase;
  transition:color .25s;
}
.nav > a:not(.nav-cta)::after{
  content:"";
  position:absolute;
  left:0;
  bottom:0;
  width:0;
  height:1px;
  background:var(--gold-2);
  transition:width .3s;
}
.nav > a:not(.nav-cta):hover,
.nav > a:not(.nav-cta).active{color:var(--gold-2)}
.nav > a:not(.nav-cta):hover::after,
.nav > a:not(.nav-cta).active::after{width:100%}
.nav-cta{display:none}
.nav-actions{display:flex;align-items:center;gap:12px;flex:none}
.nav-scrim{
  position:fixed;
  inset:0;
  z-index:105;
  background:rgba(4,13,24,.62);
  opacity:0;
  visibility:hidden;
  transition:opacity .35s,visibility .35s;
  backdrop-filter:blur(2px);
  -webkit-backdrop-filter:blur(2px);
}
.nav-scrim.show{opacity:1;visibility:visible}
.nav-toggle{
  display:none;
  width:44px;height:44px;
  padding:0;
  border:1px solid rgba(255,255,255,.28);
  background:transparent;
  cursor:pointer;
}
.nav-toggle span{
  display:block;
  width:19px;
  height:1px;
  margin:4px auto;
  background:#fff;
  transition:transform .3s,opacity .3s;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1){transform:translateY(5px) rotate(45deg)}
.nav-toggle[aria-expanded="true"] span:nth-child(2){opacity:0}
.nav-toggle[aria-expanded="true"] span:nth-child(3){transform:translateY(-5px) rotate(-45deg)}

.site-header.scrolled{
  background:rgba(7,19,36,.97);
  box-shadow:0 12px 35px rgba(0,0,0,.2);
  backdrop-filter:blur(12px);
  -webkit-backdrop-filter:blur(12px);
}
.site-header.scrolled .topbar{
  max-height:0;
  opacity:0;
  border-color:transparent;
}
.site-header.scrolled .navbar{height:74px}

/* Hero */
.hero{
  position:relative;
  display:flex;
  align-items:center;
  min-height:max(720px,100svh);
  overflow:hidden;
  background:var(--navy);
  color:#fff;
}
.hero-slides{position:absolute;inset:0}
.hero-slide{
  position:absolute;
  inset:0;
  background-size:cover;
  background-position:center;
  opacity:0;
  transform:scale(1.06);
  transition:opacity 1.6s ease,transform 7s ease;
}
.hero-slide.is-active{opacity:1;transform:scale(1)}
.hero-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(4,14,26,.84) 0%,rgba(4,14,26,.38) 55%,rgba(4,14,26,.58) 100%),
    linear-gradient(180deg,rgba(4,14,26,.58) 0%,rgba(4,14,26,.05) 35%,rgba(4,14,26,.82) 100%);
}
.hero-content{
  position:relative;
  z-index:2;
  max-width:960px;
  padding-top:150px;
  padding-bottom:120px;
  text-align:center;
}
.hero .eyebrow{justify-content:center;letter-spacing:.32em}
.hero h1{
  margin:0;
  color:#fff;
  font-size:clamp(3.9rem,8.2vw,7.2rem);
  font-weight:500;
  line-height:.95;
  letter-spacing:-.025em;
  text-shadow:0 8px 40px rgba(0,0,0,.22);
}
.hero h1 em{color:var(--gold-2);font-weight:400}
.hero-rule{
  width:76px;
  height:1px;
  margin:30px auto 26px;
  background:var(--gold-2);
  opacity:.85;
}
.hero-sub{
  max-width:820px;
  margin:0 auto;
  color:rgba(255,255,255,.8);
  font-size:.72rem;
  letter-spacing:.22em;
  line-height:1.9;
  text-transform:uppercase;
}
.hero-actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:14px;
  margin-top:34px;
}
.hero-chips{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:9px;
  margin-top:32px;
}
.hero-chips span{
  padding:8px 14px;
  border:1px solid rgba(255,255,255,.22);
  background:rgba(5,16,29,.25);
  color:rgba(255,255,255,.72);
  font-size:.58rem;
  letter-spacing:.16em;
  text-transform:uppercase;
  backdrop-filter:blur(4px);
  -webkit-backdrop-filter:blur(4px);
}
.hero-bottom{
  position:absolute;
  right:0;bottom:0;left:0;
  z-index:2;
  border-top:1px solid rgba(255,255,255,.16);
}
.hero-bottom-inner{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:24px;
  min-height:66px;
  color:rgba(255,255,255,.58);
  font-size:.6rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.scroll-cue{display:flex;align-items:center;gap:13px}
.scroll-cue > span{
  position:relative;
  display:block;
  width:1px;
  height:30px;
  overflow:hidden;
  background:rgba(255,255,255,.25);
}
.scroll-cue > span::after{
  content:"";
  position:absolute;
  top:-100%;left:0;
  width:1px;height:100%;
  background:var(--gold-2);
  animation:scrollLine 2s ease-in-out infinite;
}
@keyframes scrollLine{
  0%{top:-100%}
  100%{top:100%}
}
.hero-bottom-inner p{margin:0}

/* About */
.about{background:var(--paper)}
.about-grid{
  display:grid;
  grid-template-columns:1.02fr 1fr;
  gap:clamp(42px,7vw,88px);
  align-items:center;
}
.about-visual{
  position:relative;
  padding:0 42px 44px 0;
}
.about-frame{position:relative}
.about-frame::before{
  content:"";
  position:absolute;
  top:-16px;left:-16px;
  width:52%;height:52%;
  border-top:1px solid var(--gold);
  border-left:1px solid var(--gold);
  pointer-events:none;
}
.about-main{
  width:100%;
  aspect-ratio:4/5;
  object-fit:cover;
  filter:saturate(.92);
}
.about-inset{
  position:absolute;
  right:0;bottom:0;
  width:46%;
  aspect-ratio:1/1.05;
  object-fit:cover;
  border:10px solid var(--paper);
  box-shadow:0 20px 45px rgba(8,26,47,.16);
}
.about-badge{
  position:absolute;
  top:28px;left:-22px;
  display:flex;
  align-items:center;
  gap:12px;
  max-width:190px;
  padding:16px 18px;
  border-left:2px solid var(--gold);
  background:var(--navy);
  color:#fff;
  box-shadow:0 16px 35px rgba(8,26,47,.22);
}
.about-badge strong{
  font-family:var(--serif);
  font-size:2.1rem;
  font-weight:500;
  line-height:1;
  color:var(--gold-2);
}
.about-badge span{
  font-size:.54rem;
  letter-spacing:.16em;
  line-height:1.5;
  text-transform:uppercase;
  color:rgba(255,255,255,.72);
}
.about-copy h2{
  margin:0 0 20px;
  font-size:clamp(2.3rem,3.5vw,3.5rem);
  letter-spacing:-.015em;
}
.about-copy .lead{
  margin-bottom:14px;
  color:var(--ink);
  font-size:1.04rem;
  line-height:1.8;
}
.about-copy > p:not(.eyebrow):not(.lead){
  color:var(--muted);
  font-size:.94rem;
  line-height:1.85;
}
.check-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:10px 22px;
  margin:26px 0 30px;
}
.check-grid li{
  position:relative;
  padding-left:17px;
  color:var(--muted);
  font-size:.83rem;
  line-height:1.55;
}
.check-grid li::before{
  content:"";
  position:absolute;
  top:.55em;left:0;
  width:5px;height:5px;
  border:1px solid var(--gold-3);
  transform:rotate(45deg);
}
.about-foot{
  display:flex;
  align-items:flex-end;
  justify-content:space-between;
  gap:24px;
  padding-top:21px;
  border-top:1px solid var(--line-dark);
}
.signature{display:flex;flex-direction:column}
.sig-name{font-family:var(--serif);font-size:1.25rem;color:var(--navy)}
.sig-role{margin-top:3px;color:var(--muted);font-size:.6rem;letter-spacing:.12em;text-transform:uppercase}

.stats-row{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:clamp(50px,6vw,76px);
  padding:27px 0;
  border-top:1px solid var(--line);
  border-bottom:1px solid var(--line);
}
.stat{
  padding:0 28px;
  border-right:1px solid var(--line-dark);
}
.stat:first-child{padding-left:0}
.stat:last-child{border-right:0;padding-right:0}
.stat strong{
  display:block;
  margin-bottom:4px;
  font-family:var(--serif);
  font-size:clamp(2.3rem,3vw,2.9rem);
  font-weight:500;
  line-height:1;
  color:var(--navy);
}
.stat strong.stat-word{color:var(--gold-3)}
.stat span{
  display:block;
  color:var(--muted);
  font-size:.59rem;
  letter-spacing:.12em;
  line-height:1.5;
  text-transform:uppercase;
}

/* Services */
.services{background:var(--cream)}
.services-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  border:1px solid rgba(8,26,47,.13);
  background:rgba(8,26,47,.13);
}
.service-card{
  position:relative;
  display:flex;
  flex-direction:column;
  min-height:282px;
  padding:34px 30px 30px;
  background:var(--paper);
  transition:background .35s,box-shadow .35s;
}
.service-card:hover{
  z-index:1;
  background:var(--navy);
  box-shadow:0 24px 50px rgba(8,26,47,.18);
}
.service-top{
  display:flex;
  align-items:flex-start;
  justify-content:space-between;
  gap:16px;
  margin-bottom:28px;
}
.service-num{
  font-family:var(--serif);
  font-size:1rem;
  color:var(--gold-3);
  transition:color .35s;
}
.service-top svg{
  width:42px;height:42px;
  fill:none;
  stroke:var(--gold-3);
  stroke-width:1.25;
  stroke-linecap:round;
  stroke-linejoin:round;
  transition:stroke .35s;
}
.service-card h3{
  margin:0 0 10px;
  font-size:1.55rem;
  line-height:1.1;
  transition:color .35s;
}
.service-card p{
  margin-bottom:18px;
  color:var(--muted);
  font-size:.86rem;
  line-height:1.72;
  transition:color .35s;
}
.service-link{
  display:inline-flex;
  align-items:center;
  gap:7px;
  width:fit-content;
  margin-top:auto;
  padding-top:17px;
  border-top:1px solid var(--line-dark);
  color:var(--gold-3);
  font-size:.58rem;
  font-weight:500;
  letter-spacing:.17em;
  text-transform:uppercase;
  transition:color .35s,border-color .35s;
}
.service-link span{transition:transform .3s}
.service-link:hover span{transform:translateX(4px)}
.service-card:hover h3{color:#fff}
.service-card:hover p{color:rgba(255,255,255,.66)}
.service-card:hover .service-link{color:var(--gold-2);border-color:rgba(255,255,255,.18)}
.service-card:hover .service-num,
.service-card:hover .service-top svg{color:var(--gold-2);stroke:var(--gold-2)}

/* Partner */
.partner{background:var(--paper)}
.partner-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:clamp(42px,7vw,86px);
  align-items:center;
}
.partner-media{position:relative}
.partner-media img{
  width:100%;
  aspect-ratio:4/3.35;
  object-fit:cover;
  filter:saturate(.82);
}
.partner-media::before{
  content:"";
  position:absolute;
  right:-16px;bottom:-16px;
  width:48%;height:48%;
  border-right:1px solid var(--gold);
  border-bottom:1px solid var(--gold);
  pointer-events:none;
}
.partner-badge{
  position:absolute;
  bottom:-24px;left:-22px;
  display:flex;
  align-items:center;
  gap:11px;
  padding:15px 18px;
  border:1px solid var(--line);
  background:var(--paper);
  box-shadow:0 16px 35px rgba(8,26,47,.12);
}
.partner-badge strong{
  font-family:var(--serif);
  font-size:1.85rem;
  font-weight:500;
  line-height:1;
  color:var(--navy);
}
.partner-badge span{
  color:var(--muted);
  font-size:.55rem;
  letter-spacing:.13em;
  line-height:1.5;
  text-transform:uppercase;
}
.partner-copy h2{
  margin:0 0 18px;
  font-size:clamp(2.3rem,3.5vw,3.5rem);
}
.partner-copy .lead{
  margin-bottom:18px;
  color:var(--muted);
  font-size:.96rem;
  line-height:1.8;
}
.reason-list{display:block}
.reason{
  display:grid;
  grid-template-columns:35px 1fr;
  gap:12px;
  padding:14px 0;
  border-bottom:1px solid var(--line-dark);
}
.reason > span{
  padding-top:2px;
  font-family:var(--serif);
  font-size:.95rem;
  color:var(--gold-3);
}
.reason h3{
  margin:0 0 3px;
  font-family:var(--sans);
  font-size:.86rem;
  font-weight:500;
  letter-spacing:.01em;
  color:var(--navy);
}
.reason p{color:var(--muted);font-size:.8rem;line-height:1.55}
.partner-copy blockquote{
  margin:28px 0;
  padding:4px 0 4px 22px;
  border-left:2px solid var(--gold);
  font-family:var(--serif);
  font-size:1.5rem;
  font-style:italic;
  line-height:1.35;
  color:var(--navy);
}

/* Programs */
.programs{
  position:relative;
  background:var(--navy);
  color:#fff;
  overflow:hidden;
}
.programs::before{
  content:"";
  position:absolute;
  top:-180px;right:-180px;
  width:520px;height:520px;
  border:1px solid rgba(200,162,74,.14);
  border-radius:50%;
  pointer-events:none;
}
.programs .container{position:relative;z-index:1}
.program-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:14px;
}
.program-card{
  position:relative;
  display:block;
  min-height:340px;
  padding:0;
  overflow:hidden;
  border:0;
  background:var(--navy-2);
  color:#fff;
  text-align:left;
  cursor:pointer;
}
.program-card img{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  filter:saturate(.85);
  transition:transform 1s ease,filter 1s ease;
}
.program-shade{
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(5,15,27,.08) 20%,rgba(5,15,27,.88) 100%);
  transition:background .4s;
}
.program-content{
  position:absolute;
  right:0;bottom:0;left:0;
  z-index:2;
  display:block;
  padding:25px;
}
.program-num{
  display:block;
  margin-bottom:7px;
  color:var(--gold-2);
  font-size:.57rem;
  letter-spacing:.22em;
}
.program-card h3{
  margin:0 0 14px;
  color:#fff;
  font-size:1.5rem;
  line-height:1.08;
}
.program-link{
  display:inline-flex;
  align-items:center;
  gap:8px;
  color:var(--gold-2);
  font-size:.57rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.program-link span{transition:transform .3s}
.program-card:hover img{transform:scale(1.06);filter:saturate(1)}
.program-card:hover .program-shade{background:linear-gradient(180deg,rgba(5,15,27,.2) 0%,rgba(5,15,27,.94) 100%)}
.program-card:hover .program-link span{transform:translateX(4px)}
.program-card:focus-visible{outline:2px solid var(--gold-2);outline-offset:-4px}

/* MICE & weddings */
.mice{background:var(--paper)}
.feature-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}
.feature-card{
  position:relative;
  display:flex;
  align-items:flex-end;
  min-height:570px;
  overflow:hidden;
  color:#fff;
}
.feature-card > img{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
  filter:saturate(.86);
  transition:transform 1.2s ease;
}
.feature-overlay{
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(5,16,29,.06) 20%,rgba(5,16,29,.88) 100%),
    linear-gradient(90deg,rgba(5,16,29,.35),rgba(5,16,29,.05));
}
.feature-content{
  position:relative;
  z-index:2;
  width:100%;
  padding:38px;
}
.feature-content .eyebrow{margin-bottom:13px}
.feature-content h3{
  margin:0 0 14px;
  color:#fff;
  font-size:clamp(1.9rem,2.5vw,2.5rem);
}
.feature-content > p{
  max-width:460px;
  margin-bottom:20px;
  color:rgba(255,255,255,.7);
  font-size:.88rem;
  line-height:1.7;
}
.feature-list{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px 18px;
  margin-bottom:25px;
}
.feature-list li{
  position:relative;
  padding-left:15px;
  color:rgba(255,255,255,.82);
  font-size:.77rem;
  line-height:1.55;
}
.feature-list li::before{
  content:"";
  position:absolute;
  top:.55em;left:0;
  width:4px;height:4px;
  background:var(--gold-2);
  transform:rotate(45deg);
}
.feature-card:hover > img{transform:scale(1.035)}

/* Fleet */
.fleet{background:var(--cream)}
.fleet-grid{
  display:grid;
  grid-template-columns:1.12fr 1fr 1fr 1fr;
  gap:18px;
  align-items:stretch;
}
.fleet-intro{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:34px 30px;
  background:var(--navy);
  color:#fff;
}
.fleet-intro .eyebrow{color:var(--gold-2);margin-bottom:14px}
.fleet-intro h2{
  margin:0 0 14px;
  color:#fff;
  font-size:2.3rem;
  line-height:1.02;
}
.fleet-intro > p{
  margin-bottom:18px;
  color:rgba(255,255,255,.65);
  font-size:.83rem;
  line-height:1.72;
}
.mini-list{margin-bottom:26px}
.mini-list li{
  position:relative;
  padding:7px 0 7px 14px;
  border-bottom:1px solid rgba(255,255,255,.1);
  color:rgba(255,255,255,.78);
  font-size:.73rem;
}
.mini-list li::before{
  content:"";
  position:absolute;
  top:1.05em;left:0;
  width:4px;height:4px;
  border:1px solid var(--gold-2);
  transform:rotate(45deg);
}
.fleet-intro .btn{margin-top:auto}
.fleet-card{
  display:flex;
  flex-direction:column;
  margin:0;
  background:var(--paper);
  border:1px solid var(--line);
}
.fleet-card img{
  width:100%;
  height:270px;
  object-fit:cover;
  filter:saturate(.86);
  transition:filter .4s;
}
.fleet-card:hover img{filter:saturate(1)}
.fleet-card figcaption{
  display:flex;
  flex-direction:column;
  justify-content:center;
  flex:1;
  padding:18px 18px 20px;
}
.fleet-card figcaption span{
  margin-bottom:5px;
  color:var(--gold-3);
  font-size:.55rem;
  letter-spacing:.17em;
  text-transform:uppercase;
}
.fleet-card figcaption strong{
  font-family:var(--serif);
  font-size:1.18rem;
  font-weight:500;
  line-height:1.2;
  color:var(--navy);
}

/* Team */
.team{
  background:var(--navy);
  color:#fff;
}
.team-quote{
  max-width:720px;
  margin:-16px auto 44px;
  text-align:center;
}
.team-quote p{
  margin:0;
  font-family:var(--serif);
  font-size:clamp(1.7rem,2.7vw,2.25rem);
  line-height:1.2;
  color:#fff;
}
.team-quote em{color:var(--gold-2)}
.team-quote span{
  display:block;
  margin-top:10px;
  color:rgba(255,255,255,.48);
  font-size:.58rem;
  letter-spacing:.18em;
  text-transform:uppercase;
}
.team-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:22px;
}
.director{
  display:grid;
  grid-template-columns:.8fr 1.2fr;
  min-height:470px;
  border:1px solid rgba(255,255,255,.13);
  background:rgba(255,255,255,.035);
}
.director-photo{overflow:hidden}
.director-photo img{
  width:100%;height:100%;
  object-fit:cover;
  filter:saturate(.9);
  transition:transform .8s;
}
.director:hover .director-photo img{transform:scale(1.03)}
.director-body{
  display:flex;
  flex-direction:column;
  align-items:flex-start;
  padding:32px 28px;
}
.pill{
  display:inline-block;
  margin-bottom:16px;
  padding:5px 10px;
  border:1px solid rgba(200,162,74,.45);
  color:var(--gold-2);
  font-size:.52rem;
  letter-spacing:.14em;
  line-height:1.4;
  text-transform:uppercase;
}
.director h3{
  margin:0 0 5px;
  color:#fff;
  font-size:1.95rem;
  line-height:1.05;
}
.director .role{
  margin:0 0 15px;
  color:var(--gold-2);
  font-size:.57rem;
  letter-spacing:.12em;
  line-height:1.6;
  text-transform:uppercase;
}
.director-body > p:not(.role){
  margin:0;
  color:rgba(255,255,255,.63);
  font-size:.8rem;
  line-height:1.7;
}
.tag-list{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:auto;
  padding-top:20px;
}
.tag-list li{
  padding:5px 8px;
  border:1px solid rgba(255,255,255,.15);
  color:rgba(255,255,255,.64);
  font-size:.52rem;
  letter-spacing:.06em;
}

/* CTA band */
.cta-band{
  position:relative;
  overflow:hidden;
  padding:clamp(80px,9vw,116px) 0;
  text-align:center;
  color:#fff;
}
.cta-band > img{
  position:absolute;
  inset:0;
  width:100%;height:100%;
  object-fit:cover;
}
.cta-overlay{
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(5,16,29,.92),rgba(5,16,29,.6) 55%,rgba(5,16,29,.82));
}
.cta-inner{position:relative;z-index:2}
.cta-inner .eyebrow{justify-content:center}
.cta-inner h2{
  margin:0 0 14px;
  color:#fff;
  font-size:clamp(2.8rem,5vw,4.5rem);
}
.cta-inner > p:not(.eyebrow){
  max-width:600px;
  margin:0 auto;
  color:rgba(255,255,255,.66);
  font-size:.95rem;
  line-height:1.75;
}
.cta-actions{
  display:flex;
  justify-content:center;
  flex-wrap:wrap;
  gap:13px;
  margin-top:28px;
}

/* Contact */
.contact{background:var(--paper)}
.contact-grid{
  display:grid;
  grid-template-columns:.86fr 1.14fr;
  gap:36px;
  align-items:start;
}
.office-card{
  margin-bottom:16px;
  padding:25px;
  border:1px solid var(--line);
  background:var(--cream);
}
.office-head{
  display:flex;
  align-items:center;
  gap:13px;
  margin-bottom:16px;
}
.flag{
  display:grid;
  place-items:center;
  width:40px;height:40px;
  flex:none;
  border:1px solid var(--gold);
  border-radius:50%;
  background:var(--paper);
  color:var(--navy);
  font-size:.57rem;
  font-weight:500;
  letter-spacing:.06em;
}
.office-head h3{margin:0 0 2px;font-size:1.4rem;line-height:1.1}
.office-head p{
  color:var(--muted);
  font-size:.56rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.office-name{
  margin:0 0 7px;
  color:var(--gold-3);
  font-size:.59rem;
  letter-spacing:.14em;
  text-transform:uppercase;
}
.office-card address{
  margin-bottom:12px;
  color:var(--muted);
  font-size:.81rem;
  line-height:1.7;
}
.office-card > a{
  display:block;
  width:fit-content;
  margin-bottom:5px;
  color:var(--navy);
  font-size:.84rem;
  transition:color .25s;
}
.office-card > a:hover{color:var(--gold-3)}
.office-contact{
  margin-top:9px;
  color:var(--muted);
  font-size:.65rem;
}
.license{
  display:inline-block;
  margin-top:9px;
  padding:4px 7px;
  border:1px solid var(--line);
  color:var(--gold-3);
  font-size:.5rem;
  letter-spacing:.1em;
  text-transform:uppercase;
}
.contact-note{
  margin-top:4px;
  color:var(--muted);
  font-size:.72rem;
}
.contact-note a{
  color:var(--gold-3);
  border-bottom:1px solid var(--line);
}

.contact-form-wrap{position:relative}
.contact-form{
  padding:36px;
  background:var(--navy);
  color:#fff;
  box-shadow:0 30px 70px rgba(8,26,47,.16);
}
.form-head{margin-bottom:25px}
.form-head > span{
  display:block;
  margin-bottom:7px;
  color:var(--gold-2);
  font-size:.57rem;
  letter-spacing:.2em;
  text-transform:uppercase;
}
.form-head h3{
  margin:0;
  color:#fff;
  font-size:2rem;
  line-height:1.08;
}
.form-row{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:13px;
  margin-bottom:13px;
}
.form-row .full{grid-column:1/-1}
.field{display:flex;flex-direction:column}
.field label{
  margin-bottom:6px;
  color:rgba(255,255,255,.62);
  font-size:.56rem;
  letter-spacing:.12em;
  text-transform:uppercase;
}
.field label span{color:var(--gold-2)}
.field input,
.field select,
.field textarea{
  width:100%;
  min-height:44px;
  padding:11px 13px;
  border:1px solid rgba(255,255,255,.16);
  border-radius:0;
  background:rgba(255,255,255,.055);
  color:#fff;
  font-family:var(--sans);
  font-size:.83rem;
  font-weight:300;
  outline:none;
  transition:border-color .25s,background .25s;
}
.field textarea{
  min-height:105px;
  resize:vertical;
  line-height:1.6;
}
.field input::placeholder,
.field textarea::placeholder{color:rgba(255,255,255,.34)}
.field input:focus,
.field select:focus,
.field textarea:focus{
  border-color:var(--gold-2);
  background:rgba(255,255,255,.08);
}
.field select{
  appearance:none;
  -webkit-appearance:none;
  padding-right:34px;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='M1 1l5 5 5-5' fill='none' stroke='%23c8a24a' stroke-width='1.4'/%3E%3C/svg%3E");
  background-repeat:no-repeat;
  background-position:right 13px center;
  cursor:pointer;
}
.field select option{background:#fff;color:var(--ink)}
.field input[type="date"]{color-scheme:dark}
.consent{
  display:flex;
  align-items:flex-start;
  gap:9px;
  margin:4px 0 0;
  color:rgba(255,255,255,.58);
  font-size:.68rem;
  line-height:1.55;
  cursor:pointer;
}
.consent input{
  width:14px;height:14px;
  margin:2px 0 0;
  flex:none;
  accent-color:var(--gold);
}
.hp{
  position:absolute;
  left:-9999px;
  width:1px;height:1px;
  opacity:0;
  pointer-events:none;
}
.btn-submit{
  width:100%;
  margin-top:18px;
}
.form-status{
  min-height:20px;
  margin-top:12px;
  color:var(--gold-2);
  font-size:.76rem;
  line-height:1.5;
}
.form-status.success{color:#a8d8ad}
.form-status.error{color:#f0aaaa}
.form-small{
  margin-top:8px;
  color:rgba(255,255,255,.35);
  font-size:.6rem;
  line-height:1.5;
}

/* Footer */
.footer{
  padding-top:70px;
  background:#061323;
  color:rgba(255,255,255,.58);
}
.footer-grid{
  display:grid;
  grid-template-columns:1.35fr .7fr .8fr 1.1fr;
  gap:40px;
  padding-bottom:54px;
}
.footer-logo{
  display:block;
  width:205px;
  margin-bottom:20px;
  padding:10px;
  background:#fff;
}
.footer-logo img{width:100%}
.footer-tagline{
  margin:0 0 8px;
  font-family:var(--serif);
  font-size:1.35rem;
  color:var(--gold-2);
}
.footer-small{
  max-width:300px;
  font-size:.78rem;
  line-height:1.7;
}
.footer-licenses{
  display:flex;
  flex-wrap:wrap;
  gap:6px;
  margin-top:16px;
}
.footer-licenses span{
  padding:4px 7px;
  border:1px solid rgba(255,255,255,.14);
  font-size:.51rem;
  letter-spacing:.09em;
  text-transform:uppercase;
}
.footer-col h4{
  margin:0 0 18px;
  color:#fff;
  font-family:var(--sans);
  font-size:.61rem;
  font-weight:500;
  letter-spacing:.19em;
  text-transform:uppercase;
}
.footer-col > a{
  display:block;
  width:fit-content;
  margin-bottom:9px;
  color:rgba(255,255,255,.58);
  font-size:.79rem;
  transition:color .25s;
}
.footer-col > a:hover{color:var(--gold-2)}
.footer-contact p{
  margin:0 0 12px;
  font-size:.76rem;
  line-height:1.7;
}
.footer-bottom{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:20px;
  padding:21px 0;
  border-top:1px solid rgba(255,255,255,.09);
  color:rgba(255,255,255,.33);
  font-size:.6rem;
  letter-spacing:.06em;
}

/* Floating */
.whatsapp-float{
  position:fixed;
  right:22px;bottom:22px;
  z-index:90;
  display:grid;
  place-items:center;
  width:52px;height:52px;
  border-radius:50%;
  background:#25d366;
  color:#fff;
  box-shadow:0 10px 28px rgba(0,0,0,.22);
  transition:transform .3s,box-shadow .3s;
}
.whatsapp-float svg{width:28px;height:28px;fill:currentColor}
.whatsapp-float:hover{transform:translateY(-3px);box-shadow:0 14px 32px rgba(0,0,0,.28)}
.to-top{
  position:fixed;
  right:25px;bottom:86px;
  z-index:90;
  display:grid;
  place-items:center;
  width:40px;height:40px;
  border:1px solid var(--line);
  background:rgba(7,19,36,.9);
  color:var(--gold-2);
  opacity:0;
  pointer-events:none;
  cursor:pointer;
  transition:opacity .3s,transform .3s;
}
.to-top svg{
  width:15px;height:15px;
  fill:none;stroke:currentColor;stroke-width:1.5;
  stroke-linecap:round;stroke-linejoin:round;
}
.to-top.visible{opacity:1;pointer-events:auto}
.to-top:hover{transform:translateY(-3px)}

/* Modal */
.modal{
  position:fixed;
  inset:0;
  z-index:200;
  display:flex;
  align-items:center;
  justify-content:center;
  padding:24px;
  background:rgba(4,13,24,.78);
  opacity:0;
  visibility:hidden;
  transition:opacity .3s,visibility .3s;
  backdrop-filter:blur(6px);
  -webkit-backdrop-filter:blur(6px);
}
.modal.is-open{opacity:1;visibility:visible}
.modal-backdrop{position:absolute;inset:0}
.modal-dialog{
  position:relative;
  display:grid;
  grid-template-columns:.9fr 1.1fr;
  width:100%;
  max-width:900px;
  max-height:90vh;
  overflow:auto;
  background:var(--paper);
  box-shadow:0 30px 80px rgba(0,0,0,.35);
  transform:translateY(18px);
  transition:transform .35s;
}
.modal.is-open .modal-dialog{transform:none}
.modal-media{min-height:420px}
.modal-media img{width:100%;height:100%;object-fit:cover}
.modal-body{padding:38px}
.modal-body h2{margin:0 0 14px;font-size:2.5rem;line-height:1.03}
.modal-body > p:not(.eyebrow){color:var(--muted);font-size:.9rem;line-height:1.75}
.check-list{
  display:grid;
  gap:8px;
  margin:20px 0 26px;
}
.check-list li{
  position:relative;
  padding-left:17px;
  color:var(--muted);
  font-size:.82rem;
}
.check-list li::before{
  content:"";
  position:absolute;
  top:.55em;left:0;
  width:5px;height:5px;
  border:1px solid var(--gold-3);
  transform:rotate(45deg);
}
.modal-close{
  position:absolute;
  top:13px;right:13px;
  z-index:3;
  display:grid;
  place-items:center;
  width:38px;height:38px;
  border:1px solid var(--line);
  background:var(--paper);
  color:var(--navy);
  font-size:1.4rem;
  line-height:1;
  cursor:pointer;
  transition:background .25s,color .25s;
}
.modal-close:hover{background:var(--navy);color:#fff}

/* Reveal */
.reveal{
  opacity:0;
  transform:translateY(24px);
  transition:opacity .8s ease,transform .8s ease;
}
.reveal.is-visible{opacity:1;transform:none}
.no-js .reveal{opacity:1;transform:none}

@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,
  *::before,
  *::after{
    animation-duration:.01ms !important;
    animation-iteration-count:1 !important;
    transition-duration:.01ms !important;
  }
  .reveal{opacity:1;transform:none}
}

/* Tablet */
@media (max-width:1080px){
  :root{--header-h:78px}
  .container{padding:0 24px}
  .topbar-links a:last-child,
  .topbar-links .sep{display:none}
  .navbar{gap:18px}
  .brand-mark{width:56px;height:56px}
  .brand-text strong{font-size:1.1rem}
  .nav{
    position:fixed;
    top:0;right:0;
    z-index:110;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    justify-content:flex-start;
    gap:0;
    width:min(370px,86vw);
    height:100vh;
    padding:104px 30px 30px;
    overflow-y:auto;
    background:var(--navy);
    box-shadow:-20px 0 60px rgba(0,0,0,.28);
    transform:translateX(100%);
    transition:transform .4s ease;
  }
  .nav.open{transform:translateX(0)}
  .nav > a:not(.nav-cta){
    width:100%;
    padding:13px 0;
    border-bottom:1px solid rgba(255,255,255,.1);
    font-size:.8rem;
  }
  .nav > a:not(.nav-cta)::after{display:none}
  .nav-cta{
    display:inline-flex;
    width:100%;
    justify-content:center;
    margin-top:20px;
    padding:13px 18px;
    background:var(--gold);
    color:var(--navy);
    font-size:.65rem;
    letter-spacing:.15em;
    text-transform:uppercase;
  }
  .nav-actions > .btn{display:none}
  .nav-toggle{display:block;position:relative;z-index:120}
  .hero-content{padding-top:130px}
  .about-grid,
  .partner-grid{grid-template-columns:1fr;gap:48px}
  .about-visual{max-width:560px}
  .about-copy h2,
  .partner-copy h2{max-width:650px}
  .stats-row{margin-top:48px}
  .services-grid{grid-template-columns:1fr 1fr}
  .program-grid{grid-template-columns:1fr 1fr}
  .feature-grid{grid-template-columns:1fr}
  .feature-card{min-height:500px}
  .fleet-grid{grid-template-columns:1fr 1fr}
  .fleet-intro{grid-column:1/-1;display:grid;grid-template-columns:1fr 1fr;gap:16px 34px;align-items:start}
  .fleet-intro .eyebrow,
  .fleet-intro h2,
  .fleet-intro > p{grid-column:1}
  .mini-list{grid-column:2;grid-row:2/5;margin:0}
  .fleet-intro .btn{grid-column:1;justify-self:start;margin-top:2px}
  .team-grid{grid-template-columns:1fr}
  .director{grid-template-columns:.7fr 1.3fr;min-height:420px}
  .contact-grid{grid-template-columns:1fr;gap:40px}
  .contact-info{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .office-card{margin:0}
  .contact-note{grid-column:1/-1}
  .footer-grid{grid-template-columns:1.2fr 1fr 1fr;gap:34px}
  .footer-brand{grid-column:1/-1;display:grid;grid-template-columns:180px 1fr;column-gap:26px;align-items:center}
  .footer-logo{grid-row:1/5;margin:0}
  .footer-tagline{grid-column:2}
  .footer-small{grid-column:2}
  .footer-licenses{grid-column:2}
}

/* Mobile */
@media (max-width:780px){
  html{scroll-padding-top:104px}
  .container{padding:0 20px}
  .topbar{display:none}
  .site-header .navbar{height:76px}
  .site-header.scrolled .navbar{height:68px}
  .brand{gap:10px}
  .brand-mark{width:52px;height:52px;padding:4px}
  .brand-text strong{font-size:1.02rem;letter-spacing:.13em}
  .brand-text small{font-size:.48rem;margin-top:4px}
  .hero{min-height:700px}
  .hero-content{padding:120px 0 100px}
  .hero h1{font-size:clamp(2.9rem,11vw,4.4rem)}
  .hero-sub{font-size:.64rem;letter-spacing:.16em}
  .hero-actions{flex-direction:column;align-items:stretch;max-width:300px;margin-right:auto;margin-left:auto}
  .hero-chips{gap:6px;margin-top:26px}
  .hero-chips span{padding:6px 9px;font-size:.51rem}
  .hero-chips span:last-child{display:none}
  .hero-bottom-inner{justify-content:center;min-height:56px}
  .hero-bottom-inner > p{display:none}
  .section{padding:70px 0}
  .section-head{margin-bottom:38px}
  .section-head h2{font-size:clamp(2.1rem,7vw,3rem)}
  .section-head > p:last-child{font-size:.9rem}
  .about-visual{padding:0 28px 35px 0}
  .about-frame::before{top:-11px;left:-11px}
  .about-inset{border-width:7px}
  .about-badge{left:0;padding:12px 14px;max-width:165px}
  .about-badge strong{font-size:1.75rem}
  .about-badge span{font-size:.47rem}
  .about-copy h2{font-size:2.3rem}
  .check-grid{grid-template-columns:1fr}
  .about-foot{flex-direction:column;align-items:flex-start;gap:16px}
  .stats-row{grid-template-columns:1fr 1fr;padding:10px 0}
  .stat{padding:17px 18px;border-bottom:1px solid var(--line-dark)}
  .stat:nth-child(2){border-right:0}
  .stat:nth-child(3){border-bottom:0;padding-left:0}
  .stat:nth-child(4){border-bottom:0}
  .stat:first-child{padding-left:0}
  .services-grid{grid-template-columns:1fr}
  .service-card{min-height:0}
  .service-top{margin-bottom:22px}
  .partner-media::before{right:-9px;bottom:-9px}
  .partner-badge{left:0;bottom:-18px;padding:11px 14px}
  .partner-badge strong{font-size:1.55rem}
  .partner-copy blockquote{font-size:1.35rem}
  .program-grid{grid-template-columns:1fr}
  .program-card{min-height:300px}
  .feature-card{min-height:540px}
  .feature-content{padding:28px 24px}
  .feature-list{grid-template-columns:1fr}
  .fleet-grid{grid-template-columns:1fr}
  .fleet-intro{display:flex;padding:28px 24px}
  .mini-list{margin-bottom:24px}
  .fleet-card img{height:250px}
  .team-quote{margin-top:0;margin-bottom:30px}
  .director{grid-template-columns:1fr;min-height:0}
  .director-photo{height:390px}
  .director-photo img{object-position:center top}
  .director-body{padding:26px 22px}
  .director h3{font-size:1.8rem}
  .cta-band{padding:76px 0}
  .contact-info{grid-template-columns:1fr}
  .contact-form{padding:25px 21px}
  .form-row{grid-template-columns:1fr}
  .form-head h3{font-size:1.75rem}
  .footer-grid{grid-template-columns:1fr 1fr;gap:30px}
  .footer-brand{display:block}
  .footer-logo{width:170px;margin-bottom:18px}
  .footer-tagline,
  .footer-small,
  .footer-licenses{display:block}
  .footer-contact{grid-column:1/-1}
  .footer-bottom{flex-direction:column;align-items:flex-start;gap:6px}
  .modal{padding:14px}
  .modal-dialog{grid-template-columns:1fr;max-height:92vh}
  .modal-media{min-height:0;height:230px}
  .modal-body{padding:27px 23px}
  .modal-body h2{font-size:2rem}
  .to-top{display:none}
  .whatsapp-float{width:48px;height:48px;right:16px;bottom:16px}
  .whatsapp-float svg{width:26px;height:26px}
}

@media (max-width:480px){
  .container{padding:0 17px}
  .hero h1{font-size:2.7rem}
  .hero .eyebrow{font-size:.52rem;letter-spacing:.2em}
  .hero .eyebrow::before{width:18px}
  .hero-chips span{font-size:.47rem}
  .hero-chips span:nth-child(2){display:none}
  .btn{padding:13px 20px;font-size:.63rem}
  .stats-row{margin-top:38px}
  .stat strong{font-size:2.1rem}
  .stat span{font-size:.52rem}
  .program-card h3{font-size:1.35rem}
  .feature-content h3{font-size:1.8rem}
  .footer-grid{grid-template-columns:1fr}
  .footer-brand{grid-column:auto}
  .footer-contact{grid-column:auto}
  .contact-form{padding:22px 17px}
  .office-card{padding:21px 18px}
}
