:root{
  --paper:#ffffff;--shell:#f8f4f2;--ink:#16100f;--ink-2:#4b3e3d;--muted:#7c6d6c;
  --rule:#e6dbd8;--rule-2:#f2ebe9;
  --red:#8d1f16;--red-hot:#a8291d;--red-glow:#d4604f;--red-tint:#fbefed;--on-red:#fff6f4;
  --night:#230908;--night-2:#190605;
  /* accents on the dark maroon field — matches the social artwork */
  --rose:#e8b9b1;--rose-2:#eccfc9;--rose-dim:#c99189;
}


*{box-sizing:border-box}
body{margin:0;background:var(--paper);color:var(--ink);
  font-family:"IBM Plex Sans",system-ui,sans-serif;font-size:16px;line-height:1.6}
.pad{padding-inline:22px}
.container{max-width:1140px;margin:0 auto}
.mono{font-family:"IBM Plex Mono",ui-monospace,monospace}




/* ================= HEADER ================= */
.topbar{background:#190605;color:var(--rose);font-size:.76rem}
.topbar .container{display:flex;justify-content:space-between;gap:14px;padding-block:8px;flex-wrap:wrap;align-items:center}
.topbar a{color:#f2dbd6;text-decoration:none;font-weight:500}
.topbar .addr{opacity:.92}
header{background:var(--night);border-bottom:1px solid rgba(232,185,177,.20);position:sticky;top:0;z-index:50;
  transition:transform .25s ease}
@media (max-width:960px){ header.hide{transform:translateY(-100%);pointer-events:none} }
@media (prefers-reduced-motion:reduce){ header{transition:none} }
.nav{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:14px 0}
.brand{display:flex;align-items:center;gap:11px;text-decoration:none;color:inherit}
.brand .lockup{height:52px;width:auto;display:block}
footer .brand .lockup{height:46px}
.wm .n{font-weight:600;font-size:1.18rem;letter-spacing:.24em;color:var(--red);display:block;line-height:1}
.wm .s{font-size:.57rem;letter-spacing:.32em;color:var(--muted);display:block;margin-top:4px}
.menu{display:flex;gap:22px;list-style:none;margin:0;padding:0;font-size:.88rem;font-weight:500}
.menu a{color:#e2cbc7;text-decoration:none}
.menu a:hover{color:#ffffff}
.navcta{background:var(--red-hot);color:#fff;text-decoration:none;font-size:.84rem;
  font-weight:600;padding:11px 18px;white-space:nowrap}

/* ================= HERO (the dark one) ================= */
.hero{position:relative;background:var(--night);color:#f6efee;overflow:hidden;isolation:isolate}
.grid,.glow{position:absolute;inset:0;z-index:-1;pointer-events:none}
.grid{
  background-image:repeating-radial-gradient(circle at 50% 118%,
    rgba(255,232,226,0) 0 56px, rgba(255,232,226,.085) 56px 58px);
  mask-image:radial-gradient(ellipse 95% 110% at 50% 108%, #000 34%, transparent 82%);
  -webkit-mask-image:radial-gradient(ellipse 95% 110% at 50% 108%, #000 34%, transparent 82%);
}
.glow{background:
  radial-gradient(ellipse 78% 92% at 50% 112%, rgba(141,31,22,.46), transparent 62%),
  radial-gradient(ellipse 60% 55% at 16% 10%, rgba(141,31,22,.20), transparent 70%);}
.hero .container{display:grid;grid-template-columns:1.12fr .88fr;gap:46px;padding-block:52px 58px;align-items:start}
.kicker{font-family:"IBM Plex Mono",monospace;font-size:.71rem;letter-spacing:.2em;
  text-transform:uppercase;color:var(--rose);margin:0 0 22px;display:flex;align-items:center;gap:10px}
.kicker::before{content:"";width:26px;height:1px;background:var(--rose);display:block}
h1{font-family:"Instrument Serif",Georgia,serif;font-weight:400;
  font-size:clamp(2.5rem,5.4vw,4.3rem);line-height:1.0;margin:0 0 20px;text-wrap:balance;
  letter-spacing:-.015em;text-shadow:0 0 70px rgba(141,31,22,.45)}
.hero h1 em{font-style:normal;color:var(--rose);position:relative;white-space:nowrap}
.hero h1 em::after{content:"";position:absolute;left:0;right:0;bottom:.08em;height:.055em;
  background:var(--rose);opacity:.55;border-radius:2px}
.lede{font-size:1.05rem;color:#dec9c5;max-width:46ch;margin:0 0 22px}
.herostats{display:flex;gap:0;border-top:1px solid rgba(255,255,255,.14);margin-top:24px}
.hs{padding:18px 22px 0 0;margin-right:22px;border-right:1px solid rgba(255,255,255,.14)}
.hs:last-child{border-right:none}
.hs b{display:block;font-family:"Instrument Serif",serif;font-size:2rem;color:var(--rose);line-height:1}
.hs span{font-size:.76rem;color:var(--rose-dim);display:block;margin-top:5px}

/* enquiry form */
.form{background:var(--paper);color:var(--ink);border:1px solid rgba(255,255,255,.16);
  box-shadow:0 24px 70px rgba(0,0,0,.5)}
.form-head{background:var(--red);color:var(--on-red);padding:16px 22px}
.form-head b{display:block;font-size:1.02rem;font-weight:600}
.form-head span{font-size:.8rem;opacity:.9}
.form-body{padding:20px 22px 22px;display:grid;gap:14px}
.fld label{display:block;font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin-bottom:6px}
.fld input,.fld select{width:100%;padding:11px 12px;border:1px solid var(--rule);background:var(--shell);
  font-family:inherit;font-size:.93rem;color:var(--ink);border-radius:0}
.fld input:focus,.fld select:focus{outline:2px solid var(--red);outline-offset:-1px}
.two{display:grid;grid-template-columns:1fr 1fr;gap:12px}
.consent{display:flex;gap:9px;font-size:.76rem;color:var(--muted);line-height:1.5;align-items:flex-start}
.consent input{margin-top:3px;flex-shrink:0;accent-color:var(--red)}
.submit{width:100%;background:var(--red);color:var(--on-red);border:none;padding:14px;
  font-family:inherit;font-size:.95rem;font-weight:600;cursor:pointer}
.submit:hover{background:var(--red-hot)}
.formfoot{font-size:.72rem;color:var(--muted);text-align:center}


/* ===== departure board ===== */
.board{margin:26px 0 0;border:1px solid rgba(232,185,177,.28);background:rgba(0,0,0,.42);
  box-shadow:0 0 0 1px rgba(0,0,0,.5), 0 24px 60px rgba(0,0,0,.55), inset 0 1px 0 rgba(255,255,255,.06)}
.board-top{display:flex;justify-content:space-between;align-items:center;gap:12px;
  padding:9px 14px;border-bottom:1px solid rgba(232,185,177,.24);
  font-family:"IBM Plex Mono",monospace;font-size:.63rem;letter-spacing:.2em;color:var(--rose)}
.board-top .live{display:flex;align-items:center;gap:7px}
.dot{width:6px;height:6px;background:#ff4a37;border-radius:50%;box-shadow:0 0 8px 2px rgba(212,96,79,.85);
  animation:pulse 2s ease-in-out infinite}
@keyframes pulse{0%,100%{opacity:1}50%{opacity:.35}}
.rows{padding:8px 10px 12px}
.row{display:flex;align-items:center;gap:14px;padding:7px 4px;
  border-bottom:1px solid rgba(255,255,255,.07)}
.row:last-child{border-bottom:none}
.from{font-family:"IBM Plex Mono",monospace;font-size:.62rem;letter-spacing:.14em;color:#8a7472;white-space:nowrap}
.cells{display:flex;gap:2px;flex:0 0 auto;white-space:nowrap}
.cell{font-family:"IBM Plex Mono",monospace;font-weight:600;font-size:.86rem;line-height:1.5;
  width:.86em;height:1.55em;display:flex;align-items:center;justify-content:center;flex:0 0 auto;
  background:linear-gradient(#241615,#180f0e);color:#ffd9d2;
  border-top:1px solid rgba(255,255,255,.07);border-bottom:1px solid rgba(0,0,0,.6);flex-shrink:0}
.cell.on{color:var(--rose);text-shadow:0 0 10px rgba(212,96,79,.75)}
.cells.bvisa .cell{font-size:.72rem;width:.78em;background:linear-gradient(#1d1312,#140d0c);color:#c9a9a5}
@media (max-width:1040px){.cells.bvisa{display:none}}
@media (max-width:400px){.cell{font-size:.74rem}.from{display:none}}


/* ===== clickable stats ===== */
.herostats button.hs{background:none;border:none;border-right:1px solid rgba(255,255,255,.14);
  font-family:inherit;text-align:left;cursor:pointer;color:inherit;padding:18px 22px 14px 0;margin-right:22px;
  transition:opacity .15s ease}
.herostats button.hs:last-child{border-right:none}
.herostats button.hs:hover b{text-shadow:0 0 18px rgba(212,96,79,.8)}
.herostats button.hs:hover i{color:var(--rose);opacity:1}
.hs i{display:block;font-style:normal;font-family:"IBM Plex Mono",monospace;font-size:.6rem;
  letter-spacing:.12em;color:#8a7472;margin-top:8px;opacity:.85}

/* ===== modal ===== */
.ovl{position:fixed;inset:0;background:rgba(8,5,5,.82);backdrop-filter:blur(3px);z-index:100;
  display:flex;align-items:flex-start;justify-content:center;padding:24px 16px;overflow-y:auto}
.ovl[hidden]{display:none!important}
.modal{background:var(--night);color:#f3ecea;border:1px solid rgba(232,185,177,.3);max-width:780px;width:100%;
  box-shadow:0 40px 120px rgba(0,0,0,.7);position:relative;margin:auto}
.m-head{display:flex;justify-content:space-between;align-items:flex-start;gap:16px;
  padding:22px 24px;border-bottom:1px solid rgba(232,185,177,.22);
  background:linear-gradient(180deg,rgba(141,31,22,.24),transparent)}
.m-head h3{font-family:"Instrument Serif",serif;font-weight:400;font-size:1.8rem;margin:0;line-height:1.1}
.m-head p{margin:6px 0 0;font-size:.88rem;color:#c2aeac;max-width:52ch}
.m-close{background:none;border:1px solid rgba(255,255,255,.2);color:#f3ecea;width:34px;height:34px;
  font-size:1.1rem;line-height:1;cursor:pointer;flex-shrink:0}
.m-close:hover{background:rgba(255,255,255,.1)}
.m-body{padding:22px 24px 26px}
.m-body h4{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.18em;text-transform:uppercase;
  color:var(--rose);margin:24px 0 12px;font-weight:500}
.m-body h4:first-child{margin-top:0}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chip{font-family:"IBM Plex Mono",monospace;font-size:.74rem;padding:6px 10px;
  background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);color:#e2d2d0}
.chip.hot{background:rgba(141,31,22,.3);border-color:rgba(232,185,177,.45);color:#ffd9d2}
.scope{display:grid;gap:10px}
.sc{display:grid;grid-template-columns:auto 1fr;gap:12px;align-items:start;font-size:.92rem;color:#d8c8c6}
.sc .mk{font-family:"IBM Plex Mono",monospace;font-size:.8rem;color:#7ddca0}
.sc .mk.no{color:var(--rose)}
.note{margin-top:22px;padding:14px 16px;background:rgba(255,255,255,.05);
  border-left:2px solid var(--rose);font-size:.83rem;color:#c2aeac;line-height:1.65}

/* checker */
.qwrap{display:grid;gap:16px}
.q label{display:block;font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.14em;
  text-transform:uppercase;color:#9a8583;margin-bottom:7px}
.q select{width:100%;padding:11px 12px;background:#1a1211;border:1px solid rgba(255,255,255,.16);
  color:#f3ecea;font-family:inherit;font-size:.93rem}
.q select:focus{outline:2px solid var(--rose);outline-offset:-1px}
.q2{display:grid;grid-template-columns:1fr 1fr;gap:14px}
.runbtn{background:var(--red-hot);color:#fff;border:none;padding:14px;font-family:inherit;
  font-size:.95rem;font-weight:600;cursor:pointer;width:100%}
.runbtn:hover{background:#bb3223}
#result{margin-top:22px}
.rlist{display:grid;gap:8px;margin:12px 0 0}
.ri{display:grid;grid-template-columns:auto 1fr;gap:11px;align-items:start;font-size:.9rem;
  color:#e2d2d0;padding:10px 12px;background:rgba(255,255,255,.045);border-left:2px solid rgba(232,185,177,.5)}
.ri .n{font-family:"IBM Plex Mono",monospace;font-size:.72rem;color:var(--rose);padding-top:2px}
.ri.warn{border-left-color:#ffb020;background:rgba(255,176,32,.08)}
.rcta{margin-top:20px;display:flex;gap:10px;flex-wrap:wrap}
.rcta a{flex:1 1 200px;text-align:center;text-decoration:none;padding:13px 16px;font-weight:600;font-size:.9rem}
.rcta .p{background:var(--red-hot);color:#fff}
.rcta .s{border:1px solid rgba(255,255,255,.25);color:#f3ecea}
@media (max-width:560px){.q2{grid-template-columns:1fr}.m-head h3{font-size:1.45rem}}

/* ================= SECTIONS ================= */
section{padding:76px 0}
.sec-head{max-width:58ch;margin-bottom:38px}
.eyebrow{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.18em;
  text-transform:uppercase;color:var(--red);margin:0 0 13px}
.sec-head h2{font-family:"Instrument Serif",Georgia,serif;font-weight:400;
  font-size:clamp(1.95rem,3.8vw,2.7rem);line-height:1.1;margin:0 0 12px;text-wrap:balance}
.sec-head p{color:var(--ink-2);margin:0;font-size:1.02rem}

/* destinations */
.dest{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.d{background:var(--paper);padding:24px 20px;text-decoration:none;color:inherit;min-height:168px;display:block}
.d:hover{background:var(--red-tint)}
.d .fl{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.14em;color:var(--muted);text-transform:uppercase}
.d h3{font-family:"Instrument Serif",serif;font-weight:400;font-size:1.45rem;margin:11px 0 7px;line-height:1.1}
.d p{font-size:.85rem;color:var(--ink-2);margin:0}
.d .cats{margin-top:13px;font-family:"IBM Plex Mono",monospace;font-size:.69rem;color:var(--muted);line-height:1.75}
.d.lead{grid-column:span 2;grid-row:span 2;background:var(--night);color:#f6efee;
  display:flex;flex-direction:column;justify-content:space-between;position:relative;overflow:hidden}
.d.lead::after{content:"";position:absolute;inset:0;
  background:radial-gradient(ellipse 80% 95% at 50% 115%, rgba(141,31,22,.50), transparent 66%);pointer-events:none}
.d.lead>*{position:relative;z-index:1}
.d.lead .fl{color:var(--rose)}
.d.lead h3{font-size:2.7rem;margin-top:16px}
.d.lead p{color:#e3cdc9;font-size:1rem;max-width:33ch}
.d.lead .cats{color:var(--rose);font-size:.75rem;margin-top:20px}

/* steps */
.steps{display:grid;grid-template-columns:repeat(4,1fr);gap:24px}
.st{border-top:2px solid var(--red);padding-top:17px}
.st .num{font-family:"IBM Plex Mono",monospace;font-size:.7rem;color:var(--red);letter-spacing:.14em;display:block;margin-bottom:9px}
.st h4{font-size:1rem;margin:0 0 7px;font-weight:600}
.st p{font-size:.87rem;color:var(--ink-2);margin:0}

/* testimonials */
.tgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.tslot{border:1.5px dashed var(--rule);padding:24px 20px;background:var(--shell);min-height:180px;
  display:flex;flex-direction:column;justify-content:space-between}
.tslot .q{font-family:"Instrument Serif",serif;font-size:1.6rem;color:var(--rule);line-height:1}
.tslot p{font-size:.87rem;color:var(--muted);margin:12px 0 0}
.tslot .who{font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--red);letter-spacing:.08em;margin-top:14px}

/* office */
.office{background:var(--night);color:#f6efee;position:relative;overflow:hidden;isolation:isolate}
.office .glow{background:radial-gradient(ellipse 70% 110% at 50% 118%, rgba(141,31,22,.46), transparent 66%)}
.office .container{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:center;padding-block:72px}
.office h2{font-family:"Instrument Serif",serif;font-weight:400;font-size:clamp(1.9rem,3.6vw,2.6rem);margin:0 0 24px;line-height:1.08}
.addrline{font-size:1.02rem;line-height:1.85;margin-bottom:24px}
.addrline strong{display:block;font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--rose);margin-bottom:6px;font-weight:500}
.office .eyebrow{color:var(--rose)}
.maplike{border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.04);height:290px;
  display:flex;align-items:center;justify-content:center;text-align:center;
  font-family:"IBM Plex Mono",monospace;font-size:.74rem;color:#b3a09e;letter-spacing:.12em;padding:20px}

/* footer */
footer{background:var(--night-2);color:#cdb5b1;padding:54px 0 28px;font-size:.86rem;
  position:relative;overflow:hidden;isolation:isolate}
footer::before{content:"";position:absolute;inset:0;z-index:-1;pointer-events:none;background:
  repeating-radial-gradient(circle at 50% 128%, rgba(255,232,226,0) 0 54px, rgba(255,232,226,.055) 54px 56px),
  radial-gradient(ellipse 70% 120% at 50% 126%, rgba(141,31,22,.30), transparent 66%);}
footer .container{padding-bottom:96px}
footer .container{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:34px}
footer h5{color:#f5efee;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  font-family:"IBM Plex Mono",monospace;margin:0 0 13px;font-weight:500}
footer ul{list-style:none;margin:0;padding:0;line-height:2}
footer a{color:#cdb5b1;text-decoration:none}
footer a:hover{color:var(--rose)}
.disc{background:rgba(255,255,255,.05);padding:16px 18px;margin-top:26px;font-size:.77rem;line-height:1.7}
.legal{border-top:1px solid rgba(255,255,255,.12);margin-top:20px;padding-top:18px;font-size:.75rem;
  color:#a58c88;display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap}


@media (max-width:960px){
  .hero .container{grid-template-columns:1fr;gap:40px;padding-block:48px 56px}
  .dest{grid-template-columns:repeat(2,1fr)}
  .d.lead{grid-column:span 2;grid-row:span 1;min-height:230px}
  .steps{grid-template-columns:repeat(2,1fr)}
  .tgrid{grid-template-columns:1fr}
  .office .container{grid-template-columns:1fr;gap:34px;padding-block:54px}
  footer .container{grid-template-columns:1fr 1fr}
  .menu{display:none}
}
@media (max-width:520px){
  .dest{grid-template-columns:1fr}
  .d.lead{grid-column:span 1}
  .steps{grid-template-columns:1fr}
  footer .container{grid-template-columns:1fr}
  .two{grid-template-columns:1fr}
  .wm .n{font-size:1rem;letter-spacing:.16em}
  .brand img{height:38px}
  .herostats{flex-wrap:wrap;gap:14px 0}
}
@media (prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
a:focus-visible,button:focus-visible{outline:2px solid var(--red);outline-offset:3px}
/* ---- theme additions ---- */
.formerr{color:var(--red);font-size:.82rem;margin:0;text-align:center;font-weight:600}
.wa svg{display:block}
.page-wrap{padding-block:56px 76px}
.page-wrap h1{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(2.1rem,4.6vw,3.2rem);line-height:1.05;margin:0 0 10px}
.page-lede{color:var(--muted);font-family:"IBM Plex Mono",monospace;font-size:.72rem;letter-spacing:.16em;text-transform:uppercase;margin:0 0 30px}
.entry{max-width:72ch;font-size:1.02rem;line-height:1.75}
.entry h2{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:1.7rem;margin:34px 0 12px;line-height:1.15}
.entry h3{font-size:1.08rem;font-weight:600;margin:26px 0 8px}
.entry p{margin:0 0 14px}
.entry ul,.entry ol{padding-left:20px;margin:0 0 16px}
.entry li{margin-bottom:7px}
.entry a{color:var(--red)}
.entry table{border-collapse:collapse;width:100%;margin:16px 0}
.entry th,.entry td{border:1px solid var(--rule);padding:9px 11px;text-align:left;font-size:.94rem}
.entry img{max-width:100%;height:auto}
.nf{text-align:center;padding-block:90px 110px}
.nf h1{font-size:clamp(2.4rem,6vw,4rem)}
.nf p{color:var(--ink-2);max-width:48ch;margin:0 auto 24px}
.d-all{font-family:inherit;text-align:left;border:none;cursor:pointer;background:var(--shell)}
.d-all:hover{background:var(--red-tint)}
.d-all .cats{color:var(--red)}

/* ---- Google reviews ---- */
.revhead{display:flex;justify-content:space-between;align-items:flex-end;gap:30px;margin-bottom:34px;flex-wrap:wrap}
.revhead>div{max-width:56ch}
.revhead h2{font-family:"Instrument Serif",Georgia,serif;font-weight:400;font-size:clamp(1.95rem,3.8vw,2.7rem);line-height:1.1;margin:0 0 10px}
.revhead p{color:var(--ink-2);margin:0}
.gbadge{display:flex;flex-direction:column;align-items:center;gap:3px;text-decoration:none;
  border:1px solid var(--rule);padding:16px 26px;background:var(--paper);flex-shrink:0}
.gbadge:hover{border-color:var(--red)}
.gbadge .score{font-family:"Instrument Serif",serif;font-size:2.6rem;line-height:1;color:var(--ink)}
.gbadge .cnt{font-family:"IBM Plex Mono",monospace;font-size:.66rem;letter-spacing:.1em;color:var(--muted);text-transform:uppercase}
.stars{color:#e8a33d;letter-spacing:.12em;font-size:.95rem}
.revgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.rev{background:var(--paper);margin:0;padding:24px 20px;display:flex;flex-direction:column;gap:12px}
.rev blockquote{margin:0;font-size:.93rem;line-height:1.65;color:var(--ink-2);flex:1}
.rev blockquote::before{content:"“"}
.rev blockquote::after{content:"”"}
.rev figcaption{border-top:1px solid var(--rule-2);padding-top:12px}
.rev figcaption b{display:block;font-size:.9rem}
.rev figcaption span{font-family:"IBM Plex Mono",monospace;font-size:.66rem;color:var(--muted);letter-spacing:.05em}
@media (max-width:960px){.revgrid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:560px){.revgrid{grid-template-columns:1fr}.revhead{align-items:flex-start}}

/* ================= NAV: burger + mobile panel ================= */
.skip{position:absolute;left:-9999px;top:0;background:var(--red);color:#fff;padding:10px 16px;z-index:200}
.skip:focus{left:0}
.burger{display:none;background:none;border:1px solid rgba(232,185,177,.34);width:46px;height:46px;
  cursor:pointer;padding:0;align-items:center;justify-content:center;flex-direction:column;gap:5px}
.burger span{display:block;width:20px;height:2px;background:#ecd6d2;transition:transform .2s ease,opacity .2s ease}
.burger[aria-expanded="true"] span:nth-child(1){transform:translateY(7px) rotate(45deg)}
.burger[aria-expanded="true"] span:nth-child(2){opacity:0}
.burger[aria-expanded="true"] span:nth-child(3){transform:translateY(-7px) rotate(-45deg)}
.mobilenav{display:block;position:fixed;left:0;right:0;bottom:0;top:0;z-index:45;overflow-y:auto;
  -webkit-overflow-scrolling:touch;background:var(--night);border-bottom:3px solid var(--red);
  padding:8px 22px calc(26px + env(safe-area-inset-bottom,0px))}
.mobilenav[hidden]{display:none!important}
@media (min-width:961px){.mobilenav{display:none!important}}
.mobilenav ul{list-style:none;margin:0 0 18px;padding:0}
.mobilenav li{border-bottom:1px solid rgba(255,255,255,.1)}
.mobilenav a{display:block;padding:15px 2px;color:#f3ecea;text-decoration:none;font-size:1.02rem;font-weight:500}
.mobilenav a:active{color:var(--rose)}
.mobilenav-cta{display:grid;gap:10px}
.mobilenav-cta .btn{text-align:center;padding:15px}
.mobilenav-cta .btn-ghost{color:var(--rose);border-color:var(--rose)}
.mobilenav-addr{margin:20px 0 0;font-family:"IBM Plex Mono",monospace;font-size:.72rem;
  line-height:1.8;color:#9a8583}

/* ================= MOBILE POLISH ================= */
@media (max-width:960px){
  .burger{display:flex}
  .navcta{display:none}
  .nav{padding:12px 0}
  .topbar{font-size:.72rem}
  .topbar .container{padding-block:9px;gap:4px}
  .topbar .addr{line-height:1.45}
  .topbar .tels{font-weight:600}
}
@media (max-width:700px){
  .hero .container{padding-block:34px 42px;gap:30px}
  h1{font-size:clamp(2.15rem,8.5vw,3rem);line-height:1.06}
  .kicker{font-size:.63rem;letter-spacing:.13em;margin-bottom:16px}
  .lede{font-size:1rem;line-height:1.6;margin-bottom:20px}
  .board{margin-top:22px}
  .board-top{font-size:.58rem;letter-spacing:.1em;padding:9px 12px;gap:8px}
  .rows{padding:6px 8px 10px}
  .row{padding:9px 2px;gap:10px}
  .cell{font-size:.8rem;width:.84em;height:1.6em}
  /* stats: own row, generous targets, never clipped */
  .herostats{display:grid;grid-template-columns:1fr 1fr;gap:0;margin-top:22px;border-top:none}
  .herostats button.hs{border:1px solid rgba(255,255,255,.14);border-radius:0;margin:0 -1px -1px 0;
    padding:16px 14px;min-height:96px}
  .hs b{font-size:1.7rem}
  .hs span{font-size:.74rem;line-height:1.3}
  .hs i{font-size:.56rem;margin-top:6px}
  .form-head{padding:14px 18px}
  .form-body{padding:16px 18px 20px;gap:12px}
  .fld input,.fld select{padding:13px 12px;font-size:16px}   /* 16px stops iOS zooming on focus */
  .submit{padding:16px}
  section{padding:48px 0}
  .sec-head{margin-bottom:26px}
  .sec-head h2{font-size:clamp(1.6rem,6.5vw,2rem)}
  .sec-head p{font-size:.96rem}
  .d{min-height:0;padding:20px 18px}
  .d h3{font-size:1.3rem}
  .d.lead h3{font-size:2rem}
  .d.lead p{font-size:.95rem}
  .revhead{gap:18px;margin-bottom:22px}
  .gbadge{padding:12px 20px}
  .gbadge .score{font-size:2rem}
  .office .container{padding-block:44px}
  .maplike,.maplike iframe{height:230px}
  footer{padding:40px 0 24px}
  footer .container{gap:26px}
  .legal{flex-direction:column;gap:6px}
  .page-wrap{padding-block:34px 52px}
  .entry{font-size:1rem}
}
@media (max-width:359px){
  .herostats{grid-template-columns:1fr}
  .cell{font-size:.74rem}
  .wm .n{font-size:.95rem;letter-spacing:.14em}
  .wm .s{font-size:.52rem;letter-spacing:.24em}
  .brand img{height:34px}
}

/* ================= inner page templates ================= */
.phero{position:relative;background:var(--night);color:#f6efee;overflow:hidden;isolation:isolate}
.phero .container{padding-block:56px 52px;position:relative}
.phero h1{font-family:"Instrument Serif",Georgia,serif;font-weight:400;
  font-size:clamp(2.1rem,5vw,3.5rem);line-height:1.04;margin:0 0 16px;max-width:20ch;text-wrap:balance}
.phero h1 em{font-style:normal;color:var(--rose);white-space:normal}
.phero .lede{color:#d9c9c7;max-width:56ch;margin:0;font-size:1.05rem}
.two-col{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:52px;align-items:start}
.side{position:sticky;top:100px}
.sidecard{border:1px solid var(--rule);background:var(--shell);padding:24px 22px}
.sidecard h4{font-family:"IBM Plex Mono",monospace;font-size:.68rem;letter-spacing:.16em;
  text-transform:uppercase;color:var(--red);margin:0 0 16px;font-weight:500}
.sidecard dl{margin:0 0 20px}
.sidecard dt{font-family:"IBM Plex Mono",monospace;font-size:.63rem;letter-spacing:.12em;
  text-transform:uppercase;color:var(--muted);margin-top:14px}
.sidecard dt:first-child{margin-top:0}
.sidecard dd{margin:4px 0 0;font-size:.92rem;line-height:1.55}
.sidecard dd a{color:var(--red)}
.sidecard .btn{display:block;text-align:center}
.corrgrid{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:var(--rule);border:1px solid var(--rule)}
.corr{background:var(--paper);padding:26px 22px}
.corr .fl{font-family:"IBM Plex Mono",monospace;font-size:.65rem;letter-spacing:.14em;
  color:var(--muted);text-transform:uppercase}
.corr h3{font-family:"Instrument Serif",serif;font-weight:400;font-size:1.5rem;margin:10px 0 9px;line-height:1.12}
.corr p{font-size:.93rem;color:var(--ink-2);margin:0 0 14px}
.corr .cats{font-family:"IBM Plex Mono",monospace;font-size:.68rem;color:var(--red);line-height:1.7}
.form-standalone{border:1px solid var(--rule);box-shadow:none}
.faqwrap{max-width:76ch}
.faq{border-bottom:1px solid var(--rule);padding:4px 0}
.faq summary{cursor:pointer;padding:18px 34px 18px 0;font-weight:600;font-size:1.04rem;
  list-style:none;position:relative}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:"+";position:absolute;right:4px;top:16px;font-size:1.5rem;
  color:var(--red);font-weight:400;line-height:1}
.faq[open] summary::after{content:"\\2212"}
.faq[open] summary{color:var(--red)}
.faq-a{padding:0 34px 20px 0;color:var(--ink-2);font-size:.98rem;line-height:1.7}
.faq-a p{margin:0}
.faq-cta{margin-top:40px;padding-top:28px;border-top:2px solid var(--red)}
.faq-cta p{font-size:1.05rem;margin:0 0 18px}
@media (max-width:960px){
  .two-col{grid-template-columns:1fr;gap:34px}
  .side{position:static}
  .corrgrid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:700px){
  .phero .container{padding-block:34px 34px}
  .corrgrid{grid-template-columns:1fr}
  .faq summary{font-size:1rem;padding-block:16px}
}

/* ================= buttons (restored) ================= */
.herobtns{display:flex;gap:12px;flex-wrap:wrap;margin-top:4px}
.btn{display:inline-block;text-decoration:none;font-family:inherit;font-weight:600;
  font-size:.95rem;line-height:1.2;padding:15px 26px;border:1px solid var(--red);
  background:transparent;color:var(--red);cursor:pointer;transition:background .15s ease,color .15s ease}
.btn-solid{background:var(--red);color:var(--on-red);border-color:var(--red)}
.btn-solid:hover{background:var(--red-hot);border-color:var(--red-hot);color:var(--on-red)}
.btn-ghost{background:transparent;color:var(--red)}
.btn-ghost:hover{background:var(--red-tint)}
.phero .btn-ghost,.hero .btn-ghost{color:var(--rose);border-color:var(--rose)}
.phero .btn-ghost:hover,.hero .btn-ghost:hover{background:rgba(255,139,126,.14)}
.nf .herobtns{justify-content:center}
@media (max-width:700px){
  .herobtns{flex-direction:column}
  .herobtns .btn{width:100%;text-align:center}
}

/* ================= floating WhatsApp button ================= */
.wa{position:fixed;right:16px;bottom:calc(16px + env(safe-area-inset-bottom,0px));z-index:55;
  display:inline-flex;align-items:center;justify-content:center;gap:9px;
  background:#1faf54;color:#fff;text-decoration:none;font-family:inherit;font-weight:600;
  font-size:.9rem;line-height:1;padding:0 20px 0 16px;height:52px;border-radius:26px;
  box-shadow:0 8px 26px rgba(0,0,0,.28);transition:background .15s ease}
.wa svg{display:block;flex:0 0 auto}
.wa span{display:block;line-height:1;white-space:nowrap}
.wa:hover{background:#188f44;color:#fff}
.wa svg{flex-shrink:0}
@media (max-width:700px){
  .wa{right:14px;bottom:calc(14px + env(safe-area-inset-bottom,0px));padding:0 18px 0 14px;height:50px;font-size:.87rem}
}
@media (max-width:400px){ .wa span{display:none} .wa{width:52px;height:52px;padding:0;border-radius:50%} }

/* footer contact line: our colours, not iOS blue */
.legal a{color:#bdaead;text-decoration:none;border-bottom:1px solid rgba(255,139,126,.4)}
.legal a:hover{color:var(--rose)}
.legal{align-items:flex-start}
.faq-group{font-family:"IBM Plex Mono",monospace;font-size:.7rem;letter-spacing:.16em;text-transform:uppercase;
  color:var(--red);margin:44px 0 4px;font-weight:500}
.faq-group:first-child{margin-top:0}


/* ================= SOCIAL + WHATSAPP ENTRY POINTS ================= */

/* Row of profile buttons: footer (dark) and contact sidecard (light).
   Brand colour at rest rather than on hover — most of the traffic is on a
   phone, where nothing ever hovers. */
.social-head{font-family:"IBM Plex Mono",ui-monospace,monospace;font-size:.68rem;
  letter-spacing:.18em;text-transform:uppercase;color:#8f8180;margin:0 0 12px}
.social{display:flex;gap:12px;align-items:center;flex-wrap:wrap}
/* On a phone the footer columns stack, so the tiles need room beneath them. */
footer .socialblock{margin-bottom:26px}
.social a{position:relative;display:inline-flex;align-items:center;justify-content:center;
  -webkit-tap-highlight-color:transparent;
  width:46px;height:46px;border-radius:14px;color:#fff;text-decoration:none;
  isolation:isolate;
  transition:transform .18s cubic-bezier(.2,.8,.3,1),box-shadow .18s ease,filter .18s ease}
.social a svg{position:relative;z-index:1;display:block}
.social a::before{content:"";position:absolute;top:0;right:0;bottom:0;left:0;inset:0;
  border-radius:inherit;z-index:0}
/* A thin highlight along the top edge, so the tiles read as objects not blocks. */
.social a::after{content:"";position:absolute;top:0;right:0;bottom:0;left:0;inset:0;
  border-radius:inherit;z-index:2;
  pointer-events:none;border:1px solid rgba(255,255,255,.28);
  -webkit-mask-image:linear-gradient(#fff,transparent 62%);
  mask-image:linear-gradient(#fff,transparent 62%)}

.social-instagram::before{background:
  radial-gradient(circle at 28% 108%,#fdf497 0%,#fdf497 5%,#fd5949 45%,#d6249f 62%,#285AEB 92%)}
.social-facebook::before{background:linear-gradient(160deg,#2b8cff,#0b5fd0)}
.social-whatsapp::before{background:linear-gradient(160deg,#3ae07b,#12a150)}

.social-instagram{box-shadow:0 7px 20px rgba(214,36,159,.38)}
.social-facebook{box-shadow:0 7px 20px rgba(24,119,242,.34)}
.social-whatsapp{box-shadow:0 7px 20px rgba(18,161,80,.34)}

.social a:hover,.social a:focus-visible{transform:translateY(-3px);filter:saturate(1.15)}
.social-instagram:hover,.social-instagram:focus-visible{box-shadow:0 12px 30px rgba(214,36,159,.58)}
.social-facebook:hover,.social-facebook:focus-visible{box-shadow:0 12px 30px rgba(24,119,242,.52)}
.social-whatsapp:hover,.social-whatsapp:focus-visible{box-shadow:0 12px 30px rgba(18,161,80,.52)}

/* On the contact page the card sits on paper: same tiles, softer shadow.
   The rule sits on the block so the label stays attached to its icons. */
.socialblock.social-light{margin-top:20px;padding-top:20px;border-top:1px solid var(--rule)}
.social-light .social-head{color:var(--muted)}
.social-light .social a{width:42px;height:42px;border-radius:12px}
.social-light .social-instagram{box-shadow:0 5px 14px rgba(214,36,159,.3)}
.social-light .social-facebook{box-shadow:0 5px 14px rgba(24,119,242,.26)}
.social-light .social-whatsapp{box-shadow:0 5px 14px rgba(18,161,80,.26)}

@media (prefers-reduced-motion:reduce){ .social a{transition:none} .social a:hover{transform:none} }

/* The same three tiles in the red strip at the very top. Toned down to sit on
   the red rather than shout over it: white glyphs at rest, brand colour on
   hover, and no glow (a coloured shadow on red reads as a smudge). */
.socialblock.social-top{display:inline-block;vertical-align:middle;margin-left:14px}
.social-top .social{gap:7px}
.social-top .social a{width:28px;height:28px;border-radius:8px;
  background:rgba(255,255,255,.13);box-shadow:none}
.social-top .social a::before{opacity:0;transition:opacity .18s ease}
.social-top .social a::after{border-color:rgba(255,255,255,.34);
  -webkit-mask-image:none;mask-image:none}
.social-top .social a:hover,.social-top .social a:focus-visible{transform:translateY(-2px)}
.social-top .social a:hover::before,.social-top .social a:focus-visible::before{opacity:1}
.social-top .social a:hover::after,.social-top .social a:focus-visible::after{border-color:rgba(255,255,255,.6)}

/* WhatsApp button in the desktop header, left of Free file check. */
.navwa{display:inline-flex;align-items:center;gap:7px;background:transparent;color:#f3ded9;
  box-shadow:inset 0 0 0 1px rgba(240,200,193,.50);
  text-decoration:none;font-size:.84rem;font-weight:600;padding:11px 16px;
  white-space:nowrap;transition:background .15s ease}
.navwa:hover,.navwa:focus-visible{background:rgba(255,255,255,.09);box-shadow:inset 0 0 0 1px rgba(240,200,193,.85)}
.navwa svg{display:block}

/* WhatsApp button inside the mobile menu panel. The panel's own rule sets
   text-align on .btn, so the flex box has to be stated at equal specificity
   or the glyph drops onto its own line. */
.mobilenav-cta .btn-wa,.btn-wa{display:flex;align-items:center;justify-content:center;gap:9px;
  background:var(--red);color:#fff;border-color:var(--red)}
.btn-wa:hover,.btn-wa:focus-visible{background:var(--red-hot);border-color:var(--red-hot)}
.btn-wa svg{display:block;flex:none}

@media (max-width:960px){
  /* The header is tight on a phone; the top strip and the menu panel carry WhatsApp. */
  .navwa{display:none}
  .socialblock.social-top{margin-left:10px}
}
@media (max-width:420px){
  .social-top .social{gap:6px}
  .social-top .social a{width:26px;height:26px;border-radius:7px}
  /* On the narrowest phones the strip was running to three lines. The
     invitation is repeated in the menu and on the contact page, so the
     address and the landmark keep the space. */
  .topbar .walkin{display:none}
}

/* The header gained a WhatsApp button, so the menu needs a little more room.
   Keep each menu item on one line, and tighten as the viewport narrows
   rather than letting "Study Visa" break across two rows. */
.menu a{white-space:nowrap}
@media (max-width:1240px){
  .nav{gap:16px}
  .menu{gap:16px;font-size:.85rem}
  .navwa span{display:none}
  .navwa{padding:11px 13px}
  .navcta{padding:11px 14px}
}
@media (max-width:1080px){
  .menu{gap:12px;font-size:.82rem}
  .navcta{font-size:.8rem;padding:10px 12px}
}

/* Addresses that open the map. Underlined on hover only, so the header strip
   still reads as a line of text rather than a link farm. */
.addrlink{color:inherit;text-decoration:none;border-bottom:1px solid transparent;
  transition:border-color .15s ease}
.addrlink:hover,.addrlink:focus-visible{border-bottom-color:currentColor}
.topbar .addrlink{font-weight:500}
.landmark{color:var(--muted);font-size:.88em}
footer .landmark{color:#a58c88}
.addrline .addrlink{display:inline-block}

@media (max-width:600px){ .brand .lockup{height:40px} footer .brand .lockup{height:38px} }
