/* ============ CONSUL GATE — Royal Navy design system ============ */
:root{
  --navy:#0A1526;
  --navy-2:#0E1D33;
  --navy-3:#13233D;
  --white:#F5F4F0;
  --mist:#8E99AB;
  --line:rgba(245,244,240,.12);
  --gold:#C9A548;
  --gold-deep:#8E6F2F;
  --gold-light:#EAD9A5;
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{background:var(--navy);color:var(--white);font-family:'Roboto',sans-serif;font-weight:300;line-height:1.75;-webkit-font-smoothing:antialiased}
::selection{background:var(--gold);color:var(--navy)}
h1,h2,h3,h4{font-family:'Playfair Display',serif;font-weight:500}
img{display:block;width:100%;height:100%;object-fit:cover}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:2px solid var(--gold);outline-offset:3px}
em{color:var(--gold-light)}

/* ---------- Nav ---------- */
nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;justify-content:space-between;align-items:center;
    padding:24px 4vw;transition:.45s;background:linear-gradient(to bottom,rgba(10,21,38,.9),transparent)}
nav.scrolled{background:rgba(10,21,38,.97);padding:15px 4vw;border-bottom:1px solid var(--line)}
.logo{display:flex;align-items:center;gap:13px;text-decoration:none;color:var(--white)}
.logo svg{height:33px;width:auto}
.logo span{font-family:'Playfair Display',serif;font-size:14.5px;letter-spacing:.34em}
.nav-links{display:flex;gap:28px;align-items:center}
.nav-links a{color:var(--mist);text-decoration:none;font-size:11px;letter-spacing:.18em;text-transform:uppercase;transition:.3s;white-space:nowrap}
.nav-links a:hover{color:var(--gold-light)}
.nav-links a.active{color:var(--gold-light)}
.nav-cta{border:1px solid var(--gold);padding:10px 22px;color:var(--gold-light)!important}
.nav-cta:hover{background:var(--gold);color:var(--navy)!important}
.lang{display:flex;align-items:center;gap:6px;margin-left:4px}
.lang button{background:none;border:none;cursor:pointer;font-family:'Roboto',sans-serif;font-size:11px;letter-spacing:.18em;color:var(--mist);padding:4px 2px;transition:.3s}
.lang button.on{color:var(--gold-light);border-bottom:1px solid var(--gold)}
.lang span{color:rgba(245,244,240,.25);font-size:11px}
.burger{display:none;background:none;border:none;cursor:pointer;width:40px;height:34px;position:relative;z-index:210}
.burger i{position:absolute;left:8px;right:8px;height:1px;background:var(--gold-light);transition:.35s}
.burger i:first-child{top:12px}
.burger i:last-child{bottom:12px}
.burger.open i:first-child{top:16px;transform:rotate(45deg)}
.burger.open i:last-child{bottom:17px;transform:rotate(-45deg)}
@media(max-width:1200px){
  .nav-links a:not(.nav-cta){display:none}
  .burger{display:block}
}
@media(max-width:560px){.nav-cta{display:none!important}}

/* Mobile overlay menu */
.menu{position:fixed;inset:0;background:rgba(10,21,38,.98);z-index:200;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:26px;
      opacity:0;visibility:hidden;transition:opacity .45s ease,visibility .45s}
.menu.open{opacity:1;visibility:visible}
.menu a{font-family:'Playfair Display',serif;font-size:clamp(20px,5vw,28px);color:var(--white);text-decoration:none;letter-spacing:.08em;transition:.3s}
.menu a:hover,.menu a.active{color:var(--gold-light)}
.menu .lang{margin:12px 0 0}
.menu .lang button{font-size:14px}

/* ---------- Home hero ---------- */
header.hero{position:relative;min-height:100vh;display:flex;align-items:center;overflow:hidden}
.hero-bg{position:absolute;inset:0}
.hero-bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(100deg,rgba(10,21,38,.96) 30%,rgba(10,21,38,.72) 55%,rgba(10,21,38,.42));}
.hero-inner{position:relative;z-index:2;padding:130px 5vw 90px;max-width:880px}
.eyebrow{display:flex;align-items:center;gap:18px;font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:34px}
.eyebrow::before{content:'';width:48px;height:1px;background:var(--gold);flex:none}
header.hero h1{font-size:clamp(36px,4.8vw,66px);line-height:1.16;margin-bottom:30px}
header.hero h1 em{font-style:italic}
header.hero .lead{color:#C3CAD6;max-width:540px;margin-bottom:46px;font-size:16px}
.btn-row{display:flex;gap:18px;flex-wrap:wrap}
.btn{display:inline-block;padding:17px 44px;text-decoration:none;font-size:11px;letter-spacing:.3em;text-transform:uppercase;transition:.4s;cursor:pointer}
.btn-gold{background:var(--gold);color:var(--navy);border:1px solid var(--gold)}
.btn-gold:hover{background:var(--gold-light);border-color:var(--gold-light)}
.btn-ghost{border:1px solid rgba(245,244,240,.35);color:var(--white)}
.btn-ghost:hover{border-color:var(--gold);color:var(--gold-light)}
.scroll-cue{position:absolute;bottom:36px;left:50%;transform:translateX(-50%);width:1px;height:54px;overflow:hidden;z-index:2}
.scroll-cue::after{content:'';position:absolute;top:-54px;left:0;width:1px;height:54px;background:linear-gradient(to bottom,transparent,var(--gold-light));animation:drop 2.4s cubic-bezier(.65,0,.35,1) infinite}
@keyframes drop{0%{top:-54px}55%,100%{top:54px}}

/* ---------- Page hero (subpages) ---------- */
.page-hero{position:relative;min-height:52vh;display:flex;align-items:flex-end;overflow:hidden;padding:150px 5vw 72px}
.page-hero .bg{position:absolute;inset:0}
.page-hero .bg::after{content:'';position:absolute;inset:0;
  background:linear-gradient(to top,var(--navy) 4%,rgba(10,21,38,.62) 50%,rgba(10,21,38,.55))}
.page-hero .ph-inner{position:relative;z-index:2;max-width:1280px;width:100%;margin:0 auto}
.crumb{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:20px;display:flex;align-items:center;gap:14px}
.crumb a{color:var(--mist);text-decoration:none;transition:.3s}
.crumb a:hover{color:var(--gold-light)}
.crumb b{color:rgba(245,244,240,.3);font-weight:300}
.page-hero h1{font-size:clamp(34px,4.5vw,58px);line-height:1.15}
.page-hero .ph-sub{color:#C3CAD6;max-width:560px;margin-top:20px;font-size:15.5px}

/* ---------- Shared ---------- */
main{display:block}
section{padding:110px 5vw;max-width:1280px;margin:0 auto}
section.tight{padding-top:30px}
.kicker{font-size:11px;letter-spacing:.4em;text-transform:uppercase;color:var(--gold);margin-bottom:24px}
.kicker.center{text-align:center}
.center{text-align:center}
.statement{font-family:'Playfair Display',serif;font-size:clamp(23px,2.8vw,36px);line-height:1.55;font-weight:400;max-width:940px}
.statement em{font-style:italic}
.sec-head{text-align:center;max-width:680px;margin:0 auto 66px}
.sec-head h2{font-size:clamp(28px,3vw,42px);margin-bottom:16px}
.sec-head p{color:var(--mist);font-size:15px}
.h2{font-size:clamp(27px,3vw,40px);line-height:1.35}
.more{display:inline-flex;align-items:center;gap:12px;color:var(--gold-light);text-decoration:none;font-size:11px;letter-spacing:.3em;text-transform:uppercase;margin-top:34px;transition:.3s}
.more::after{content:'→';font-size:14px;transition:transform .3s}
.more:hover{color:var(--gold)}
.more:hover::after{transform:translateX(6px)}
.reveal{opacity:0;transform:translateY(26px);transition:opacity .9s ease,transform .9s ease}
.reveal.on{opacity:1;transform:none}
@media(prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none;transition:none}
  .scroll-cue{display:none}
}

/* ---------- Two-column about ---------- */
.about{display:grid;grid-template-columns:1.1fr .9fr;gap:7vw;align-items:center}
@media(max-width:900px){.about{grid-template-columns:1fr}}
.about h2{margin-bottom:26px}
.about p{color:var(--mist);font-size:15px;margin-bottom:18px}
.about-img{height:480px;overflow:hidden;position:relative}
.about-img::before{content:'';position:absolute;inset:0;border:1px solid var(--gold);transform:translate(16px,16px);pointer-events:none;z-index:2}
@media(max-width:900px){.about-img{height:320px}}

/* ---------- Service cards (home preview) ---------- */
.svc-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:980px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.svc-grid{grid-template-columns:1fr}}
.svc{background:var(--navy-2);border:1px solid var(--line);padding:38px 32px;transition:.4s;position:relative;top:0}
.svc:hover{top:-6px;border-color:rgba(201,165,72,.5);background:var(--navy-3)}
.svc .ic{width:40px;height:40px;margin-bottom:22px}
.svc .ic svg{width:100%;height:100%;stroke:var(--gold);fill:none;stroke-width:1.1}
.svc h3{font-size:18.5px;margin-bottom:10px}
.svc p{color:var(--mist);font-size:13.6px}

/* ---------- Service detail rows (services page) ---------- */
.svc-detail{border-top:1px solid var(--line)}
.sd-row{display:grid;grid-template-columns:150px 1fr 1.35fr;gap:34px;padding:52px 6px;border-bottom:1px solid var(--line);transition:background .4s}
.sd-row:hover{background:rgba(201,165,72,.04)}
@media(max-width:900px){.sd-row{grid-template-columns:1fr;gap:14px;padding:40px 0}}
.sd-num{display:flex;align-items:flex-start;gap:20px}
.sd-num span{font-family:'Playfair Display',serif;color:var(--gold);font-size:15px;letter-spacing:.12em;padding-top:4px}
.sd-num .ic{width:36px;height:36px}
.sd-num .ic svg{width:100%;height:100%;stroke:var(--gold);fill:none;stroke-width:1.1}
.sd-row h3{font-size:23px;letter-spacing:.02em}
.sd-body p{color:var(--mist);font-size:14.5px;margin-bottom:16px}
.inc{list-style:none}
.inc li{color:#C3CAD6;font-size:13.5px;padding:7px 0 7px 24px;position:relative}
.inc li::before{content:'◆';position:absolute;left:0;top:8px;color:var(--gold);font-size:8px}

/* ---------- Steps / process ---------- */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:36px}
@media(max-width:980px){.steps{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.steps{grid-template-columns:1fr}}
.step{border-top:1px solid var(--line);padding-top:26px;position:relative}
.step::before{content:'';position:absolute;top:-1px;left:0;width:44px;height:1px;background:var(--gold)}
.step .n{font-family:'Playfair Display',serif;font-size:34px;color:var(--gold-light)}
.step h3{font-size:18px;margin:12px 0 10px}
.step p{color:var(--mist);font-size:13.8px}

/* ---------- Stats ---------- */
.stats{border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);text-align:center;max-width:none;padding:0}
.stats div{padding:64px 20px;border-right:1px solid var(--line)}
.stats div:last-child{border-right:none}
@media(max-width:820px){.stats{grid-template-columns:repeat(2,1fr)}.stats div:nth-child(2n){border-right:none}}
.stats h3{font-size:clamp(30px,3.2vw,44px);color:var(--gold-light)}
.stats p{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--mist);margin-top:8px}

/* ---------- Destination tiles + features ---------- */
.strip{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:900px){.strip{grid-template-columns:repeat(2,1fr)}}
.strip .tile{position:relative;height:300px;overflow:hidden}
.strip .tile::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(10,21,38,.85),transparent 55%)}
.strip .tile img{transition:transform 1.3s ease}
.strip .tile:hover img{transform:scale(1.06)}
.strip .tile span{position:absolute;bottom:20px;left:22px;z-index:2;font-family:'Playfair Display',serif;font-size:19px;letter-spacing:.08em}
.dest-line{margin-top:56px;text-align:center;font-family:'Playfair Display',serif;font-size:clamp(17px,2vw,24px);line-height:2.1;color:var(--white)}
.dest-line b{color:var(--gold);padding:0 .5em;font-size:.6em;vertical-align:middle;font-weight:400}

.feature{display:grid;grid-template-columns:1fr 1fr;gap:6vw;align-items:center;margin-bottom:100px}
.feature:last-child{margin-bottom:0}
@media(max-width:880px){.feature{grid-template-columns:1fr;gap:34px}}
.feature .f-img{height:430px;overflow:hidden;position:relative}
.feature .f-img::before{content:'';position:absolute;inset:0;border:1px solid var(--gold);transform:translate(14px,14px);pointer-events:none;z-index:2}
@media(max-width:880px){.feature .f-img{height:300px}}
.feature.rev .f-img{order:2}
@media(max-width:880px){.feature.rev .f-img{order:0}}
.feature h3{font-size:clamp(24px,2.6vw,34px);margin-bottom:18px}
.feature p{color:var(--mist);font-size:14.8px;margin-bottom:18px}
.hl{font-size:11px;letter-spacing:.24em;text-transform:uppercase;color:var(--gold-light);line-height:2.4}
.hl b{color:var(--gold);padding:0 .6em;font-size:9px;vertical-align:middle;font-weight:400}

/* ---------- Pillars ---------- */
.pillars{display:grid;grid-template-columns:repeat(4,1fr);gap:44px}
@media(max-width:1000px){.pillars{grid-template-columns:repeat(2,1fr)}}
@media(max-width:620px){.pillars{grid-template-columns:1fr}}
.pillar h3{font-size:19px;margin:18px 0 12px}
.pillar p{color:var(--mist);font-size:14px}
.pillar-mark{width:34px;height:1px;background:var(--gold)}

/* ---------- Numbered standard rows ---------- */
.rows{border-top:1px solid var(--line)}
.row{display:grid;grid-template-columns:80px 1fr 1.3fr;gap:26px;align-items:baseline;padding:34px 6px;border-bottom:1px solid var(--line);transition:.4s}
.row:hover{background:rgba(201,165,72,.04);padding-left:20px}
@media(max-width:760px){.row{grid-template-columns:50px 1fr}.row p{grid-column:2}}
.row .n{font-family:'Playfair Display',serif;color:var(--gold);font-size:14px;letter-spacing:.1em}
.row h3{font-size:20px}
.row p{color:var(--mist);font-size:14.5px}

/* ---------- Values / cards ---------- */
.cards3{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
@media(max-width:980px){.cards3{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.cards3{grid-template-columns:1fr}}
.card{background:var(--navy-2);border:1px solid var(--line);padding:40px 34px;transition:.4s;position:relative;top:0}
.card:hover{top:-6px;border-color:rgba(201,165,72,.5);background:var(--navy-3)}
.card .ic{width:40px;height:40px;margin-bottom:22px}
.card .ic svg{width:100%;height:100%;stroke:var(--gold);fill:none;stroke-width:1.1}
.card h3{font-size:19px;margin-bottom:10px}
.card p{color:var(--mist);font-size:13.8px}

.aud-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:16px}
@media(max-width:980px){.aud-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:520px){.aud-grid{grid-template-columns:1fr}}
.aud{border:1px solid var(--line);padding:26px 24px;font-size:13px;letter-spacing:.14em;text-transform:uppercase;color:#C3CAD6;text-align:center;transition:.4s;background:rgba(14,29,51,.4)}
.aud:hover{border-color:rgba(201,165,72,.5);color:var(--gold-light)}

/* ---------- Photo band ---------- */
.photo-band{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}
@media(max-width:820px){.photo-band{grid-template-columns:1fr}}
.photo-band .pb{position:relative;height:340px;overflow:hidden}
.photo-band .pb::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(10,21,38,.7),transparent 50%)}
.photo-band .pb img{transition:transform 1.3s ease}
.photo-band .pb:hover img{transform:scale(1.05)}
.photo-band .pb span{position:absolute;bottom:18px;left:20px;z-index:2;font-family:'Playfair Display',serif;font-size:16px;letter-spacing:.08em}

/* ---------- Gallery ---------- */
.gallery{display:grid;grid-template-columns:repeat(3,1fr);grid-auto-rows:250px;gap:16px}
@media(max-width:900px){.gallery{grid-template-columns:repeat(2,1fr);grid-auto-rows:210px}}
.gallery .g{position:relative;overflow:hidden}
.gallery .g.tall{grid-row:span 2}
.gallery .g.wide{grid-column:span 2}
@media(max-width:900px){.gallery .g.wide{grid-column:span 1}}
.gallery .g::after{content:'';position:absolute;inset:0;background:linear-gradient(to top,rgba(10,21,38,.75),transparent 45%)}
.gallery .g img{transition:transform 1.4s ease}
.gallery .g:hover img{transform:scale(1.05)}
.gallery .g span{position:absolute;bottom:16px;left:18px;z-index:2;font-family:'Playfair Display',serif;font-size:15px;letter-spacing:.1em;opacity:.9}

/* ---------- Partners ---------- */
.p-band{display:flex;justify-content:center;flex-wrap:wrap;gap:0 14px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:34px 10px}
.p-band span{font-size:11.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-light);padding:8px 10px;white-space:nowrap}
.p-band i{color:var(--gold);font-style:normal;align-self:center;font-size:9px}

/* ---------- Contact / form ---------- */
.contact-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:6vw;align-items:start}
@media(max-width:900px){.contact-grid{grid-template-columns:1fr}}
.c-block{border-top:1px solid var(--line);padding:26px 0}
.c-block h4{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:8px;font-weight:500;font-family:'Roboto',sans-serif}
.c-block p{color:var(--white);font-size:15px}
.c-block a{color:var(--white);text-decoration:none;border-bottom:1px solid rgba(201,165,72,.4);transition:.3s}
.c-block a:hover{color:var(--gold-light);border-color:var(--gold)}
form{background:var(--navy-2);border:1px solid var(--line);padding:46px 42px}
@media(max-width:600px){form{padding:34px 24px}}
.f-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:600px){.f-row{grid-template-columns:1fr}}
label{display:block;font-size:10.5px;letter-spacing:.26em;text-transform:uppercase;color:var(--mist);margin:0 0 8px}
input,select,textarea{width:100%;background:var(--navy);border:1px solid var(--line);color:var(--white);
  font-family:'Roboto',sans-serif;font-weight:300;font-size:14.5px;padding:14px 16px;margin-bottom:22px;transition:border .3s;border-radius:0;-webkit-appearance:none}
input:focus,select:focus,textarea:focus{border-color:var(--gold);outline:none}
select{background-image:linear-gradient(45deg,transparent 50%,var(--gold) 50%),linear-gradient(135deg,var(--gold) 50%,transparent 50%);
  background-position:calc(100% - 20px) 50%,calc(100% - 15px) 50%;background-size:5px 5px;background-repeat:no-repeat}
textarea{min-height:130px;resize:vertical}
.form-note{color:var(--mist);font-size:12.5px;margin-top:18px}
.hidden{display:none}

/* ---------- CTA band ---------- */
.cta-band{text-align:center;max-width:none;border-top:1px solid var(--line);padding:110px 5vw}
.cta-band h2{font-size:clamp(30px,3.4vw,48px);margin-bottom:22px}
.cta-band h2 em{font-style:italic}
.cta-band p{color:var(--mist);max-width:560px;margin:0 auto 42px}

/* ---------- Footer ---------- */
footer{border-top:1px solid var(--line);padding:70px 5vw 0;max-width:none}
.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:50px;max-width:1280px;margin:0 auto;padding-bottom:54px}
@media(max-width:820px){.footer-grid{grid-template-columns:1fr}}
.footer-grid .fw{font-family:'Playfair Display',serif;letter-spacing:.3em;font-size:14px;display:block;margin-bottom:18px}
.footer-grid p{color:var(--mist);font-size:13.5px;max-width:340px}
.footer-grid h4{font-size:10.5px;letter-spacing:.3em;text-transform:uppercase;color:var(--gold);margin-bottom:16px;font-weight:500;font-family:'Roboto',sans-serif}
.footer-grid ul{list-style:none}
.footer-grid li{margin-bottom:9px}
.footer-grid a{color:var(--mist);text-decoration:none;font-size:13.5px;transition:.3s}
.footer-grid a:hover{color:var(--gold-light)}
.footer-bot{border-top:1px solid var(--line);padding:26px 0;max-width:1280px;margin:0 auto;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px}
.footer-bot p{color:#5E6878;font-size:11.5px;letter-spacing:.06em}
