/* jost-latin-ext-400-normal */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/fonts/jost-latin-ext-400-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* jost-latin-400-normal */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/fonts/jost-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* jost-latin-ext-500-normal */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/fonts/jost-latin-ext-500-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* jost-latin-500-normal */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/fonts/jost-latin-500-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* jost-latin-ext-600-normal */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/fonts/jost-latin-ext-600-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* jost-latin-600-normal */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-display: swap;
  font-weight: 600;
  src: url(/assets/fonts/jost-latin-600-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* jost-latin-ext-700-normal */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/fonts/jost-latin-ext-700-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* jost-latin-700-normal */
@font-face {
  font-family: 'Jost';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/fonts/jost-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* roboto-latin-ext-400-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/fonts/roboto-latin-ext-400-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* roboto-latin-400-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 400;
  src: url(/assets/fonts/roboto-latin-400-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* roboto-latin-ext-500-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/fonts/roboto-latin-ext-500-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* roboto-latin-500-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 500;
  src: url(/assets/fonts/roboto-latin-500-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}
/* roboto-latin-ext-700-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/fonts/roboto-latin-ext-700-normal.woff2) format('woff2');
  unicode-range: U+0100-02BA,U+02BD-02C5,U+02C7-02CC,U+02CE-02D7,U+02DD-02FF,U+0304,U+0308,U+0329,U+1D00-1DBF,U+1E00-1E9F,U+1EF2-1EFF,U+2020,U+20A0-20AB,U+20AD-20C0,U+2113,U+2C60-2C7F,U+A720-A7FF;
}
/* roboto-latin-700-normal */
@font-face {
  font-family: 'Roboto';
  font-style: normal;
  font-display: swap;
  font-weight: 700;
  src: url(/assets/fonts/roboto-latin-700-normal.woff2) format('woff2');
  unicode-range: U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD;
}

/* Layout: classic university-theme structure (split top bar, white header with admission block, hero slider with overlapping feature boxes,
   light-blue sections, dark feature band, dark footer). Coral + navy palette, Jost + Roboto. Deliberately a single light theme. */
:root{
  color-scheme:light;
  --navy:#162542; --steel:#23566f; --dark:#111c29;
  --coral:#cd4c2a; --coral-bright:#f0724f; --coral-soft:#fdeee8;
  --sky:#f0f7ff; --sky-2:#e1edfa; --white:#ffffff;
  --text:#5b6370; --heading:#162542; --line:#e1e8f1; --muted:#7f8896;
  --f-head:'Jost','Century Gothic','Futura','Trebuchet MS',sans-serif;
  --f-body:'Roboto','Segoe UI',system-ui,-apple-system,Arial,sans-serif;
  --wrap:1200px; --gutter:clamp(16px,4vw,32px);
}
*{box-sizing:border-box}
[hidden]{display:none!important}
html{scroll-behavior:smooth}
body{margin:0;background:var(--white);color:var(--text);font-family:var(--f-body);font-size:16px;line-height:1.7;overflow-x:hidden;-webkit-font-smoothing:antialiased}
a{color:inherit;text-decoration:none}
p{margin:0}
ul,ol{margin:0;padding:0;list-style:none}
h1,h2,h3,h4{font-family:var(--f-head);color:var(--heading);font-weight:600;line-height:1.2;margin:0;text-wrap:balance}
h2{font-size:clamp(1.85rem,3.6vw,2.55rem)}
h3{font-size:1.32rem}
h4{font-size:1.1rem}
:focus-visible{outline:3px solid var(--coral-bright);outline-offset:2px}
.wrap{max-width:var(--wrap);margin-inline:auto;padding-inline:var(--gutter)}
.sr{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap}
.ic{width:1em;height:1em;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round;flex:none;display:inline-block;vertical-align:middle}
.skip{position:absolute;left:-999px;top:8px;z-index:200;background:var(--coral);color:#fff;border:0;padding:.6rem 1rem;font:inherit}
.skip:focus{left:12px}

/* Top bar */
.topbar{background:var(--steel);color:#fff;font-size:.88rem;position:relative;z-index:60}
.tb{display:flex;justify-content:space-between;align-items:stretch;gap:1rem;min-height:58px}
.tb-left{position:relative;background:var(--coral);display:flex;align-items:center;gap:.4rem 1.2rem;padding:.55rem 1.8rem .55rem 0;flex-wrap:wrap}
.tb-left::before{content:"";position:absolute;right:100%;top:0;bottom:0;width:100vw;background:var(--coral)}
.tb-left::after{content:"";position:absolute;left:100%;top:0;bottom:0;width:46px;background:var(--coral);clip-path:polygon(0 0,100% 0,0 100%)}
.tb-left b{font-weight:500}
.tb-left a,.tb-left .soc{font-weight:500;white-space:nowrap}
.tb-left a:hover{text-decoration:underline;text-underline-offset:3px}
.tb-left .tb-follow{opacity:.85;font-size:.88rem}
.tb-right{display:flex;align-items:center;gap:1.6rem}
.tb-item{display:flex;align-items:center;gap:.75rem;line-height:1.3}
.tb-item .ic{font-size:1.85rem;color:var(--coral-bright);stroke-width:1.4}
.tb-item small{display:block;font-size:.76rem;opacity:.8}
.tb-item b{font-weight:500;font-size:.95rem;white-space:nowrap}
.tb-left b{white-space:nowrap}
.tb-item + .tb-item{padding-left:1.6rem;border-left:1px solid rgba(255,255,255,.22)}
@media (max-width:1520px){ .tb-right .tb-item:last-child{display:none} }
@media (max-width:1200px){ .tb-right .tb-item{display:none} }
@media (max-width:980px){ .topbar{background:var(--coral)} .tb-right{display:none} .tb-left{padding-right:0;flex:1} .tb-left::after{display:none} .tb{min-height:0} }

/* Header */
.header{position:sticky;top:env(safe-area-inset-top,0px);z-index:50;background:#fff;box-shadow:0 1px 0 var(--line);transition:box-shadow .2s}
.header.scrolled{box-shadow:0 10px 28px rgba(22,37,66,.09)}
.hd{display:flex;align-items:stretch;gap:1.2rem;min-height:86px}
.logo{display:flex;align-items:center;gap:.75rem;flex:none}
.logo svg{width:60px;height:60px;flex:none}
.logo-img{display:block;height:62px;width:auto}
.footer .logo-img{height:70px}
@media (max-width:1460px){ .logo svg{width:57px;height:57px} .logo-img{height:58px} }
.lw{display:grid;line-height:1}
.lw b{font-family:var(--f-head);font-weight:600;font-size:1.5rem;color:var(--navy);letter-spacing:.07em}
.lw small{font-family:var(--f-head);font-weight:500;font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--muted);margin-top:.3rem}
.lw em{font-style:normal;font-family:var(--f-head);font-weight:500;font-size:1.02rem;color:var(--coral);margin-top:.22rem;letter-spacing:.02em}
.nav{display:flex;align-items:stretch;margin-left:auto}
.nav > ul{display:flex;align-items:stretch}
.nav > ul > li{position:relative;display:flex}
.nav > ul > li > a{display:flex;align-items:center;gap:.3rem;padding:0 .78rem;font-family:var(--f-head);font-weight:500;font-size:1.02rem;color:var(--navy);white-space:nowrap;transition:color .2s}
.nav > ul > li > a:hover,.nav > ul > li > a[aria-current="page"]{color:var(--coral)}
.nav .ic{font-size:.85rem;stroke-width:2.2}
.dd{position:absolute;top:100%;left:0;min-width:300px;background:#fff;border-top:3px solid var(--coral);box-shadow:0 18px 40px rgba(22,37,66,.14);padding:.55rem 0;opacity:0;visibility:hidden;transform:translateY(10px);transition:opacity .2s,transform .2s,visibility .2s;z-index:5}
.nav > ul > li:last-child > .dd{left:auto;right:0}
.nav li:hover > .dd,.nav li:focus-within > .dd{opacity:1;visibility:visible;transform:none}
.dd a{display:block;padding:.48rem 1.25rem;font-size:.94rem;color:var(--navy);transition:padding .15s,color .15s,background .15s}
.dd a:hover{background:var(--sky);color:var(--coral);padding-left:1.5rem}
.dd-m{color:#97a2b1;font-size:.86em;font-weight:400;margin-left:.15rem}
.dd a:hover .dd-m,.dd a[aria-current] .dd-m{color:#e7a08b}
#mobile-list .dd-m{color:#97a2b1}
.dd .sep{border-top:1px solid var(--line);margin:.45rem 0}
.hd-cta{display:flex;align-items:center;background:var(--coral);color:#fff;font-family:var(--f-head);font-weight:500;text-transform:uppercase;letter-spacing:.05em;padding:0 1.55rem;white-space:nowrap;margin-left:.5rem;transition:background .2s}
.hd-cta:hover{background:var(--navy)}
.burger{display:none;margin-left:auto;align-self:center;width:48px;height:48px;border:0;background:var(--coral);cursor:pointer;flex-direction:column;justify-content:center;align-items:center;gap:5px}
.burger span:not(.sr){display:block;width:22px;height:2px;background:#fff}
.mobile-nav{border-top:1px solid var(--line);background:#fff;max-height:calc(100vh - 140px);overflow:auto}
.mobile-nav .wrap{padding-block:.6rem 1.2rem}
.mobile-nav a{display:block;padding:.62rem 0;border-bottom:1px solid var(--line);font-family:var(--f-head);font-weight:500;color:var(--navy)}
.mobile-nav a.sub{padding-left:1rem;font-family:var(--f-body);font-weight:400;font-size:.93rem;color:var(--text)}
.mobile-nav a.cta{color:var(--coral)}
.mobile-nav .m-grp{display:block;padding:.62rem 0;border-bottom:1px solid var(--line);font-family:var(--f-head);font-weight:500;color:var(--muted)}
.nav > ul > li > a.nav-grp{cursor:default}
.intern-photo{position:relative;margin:0;min-height:420px;border-radius:14px;overflow:hidden;background:var(--sky-2);box-shadow:0 22px 44px -32px rgba(22,37,66,.45)}
.intern-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.intern-photo .cc-badge{bottom:1rem;right:1rem}
.sky .bring{background:#fff}
.role-box .more{margin-top:auto;padding-top:.4rem}
.role-box .part-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.role-box .icc{width:54px;height:54px;font-size:1.45rem}
@media (max-width:760px){ .intern-photo{min-height:260px} }
.wrap.tb,.wrap.hd{max-width:1640px}
@media (max-width:1680px){ .nav > ul > li > a{padding:0 .5rem;font-size:.96rem} .hd-cta{padding:0 1.05rem;letter-spacing:.03em;font-size:.95rem} .hd{gap:.9rem} }
@media (max-width:1460px){ .nav > ul > li > a{padding:0 .4rem;font-size:.925rem} .nav .ic{font-size:.75rem} .hd-cta{padding:0 .95rem;font-size:.9rem;letter-spacing:.02em} .hd{gap:.7rem} .lw b{font-size:1.38rem} }
@media (max-width:1400px){ .nav > ul > li > a{padding:0 .3rem;font-size:.9rem} .hd{gap:.5rem} .hd-cta{padding:0 .8rem} }
@media (max-width:1300px){ .nav > ul > li > a{padding:0 .24rem;font-size:.86rem} .nav .ic{font-size:.7rem} }
@media (max-width:1000px){ .nav > ul > li > a{padding:0 .22rem;font-size:.84rem} .nav .ic{font-size:.7rem} .logo{gap:.55rem} .logo svg{width:50px;height:50px} .logo-img{height:50px} .lw b{font-size:1.22rem} .lw em{font-size:.9rem} .lw small{font-size:.6rem} }
@media (max-width:1240px){ .nav,.hd-cta{display:none} .burger{display:flex} .hd{min-height:76px} .logo-img{height:54px} }
@media (max-width:420px){ .logo-img{height:46px} }
.header.nav-tight .nav,.header.nav-tight .hd-cta{display:none}
.header.nav-tight .burger{display:flex}

/* Buttons */
.btn{display:inline-flex;align-items:center;gap:.65rem;background:var(--coral);color:#fff;font-family:var(--f-body);font-weight:500;font-size:1rem;padding:1rem 1.7rem;border:1px solid var(--coral);cursor:pointer;line-height:1.2;transition:background .2s,border-color .2s,color .2s}
.btn::after{content:"\2192";font-size:1.15em;line-height:1}
.btn:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.btn.navy{background:var(--navy);border-color:var(--navy)}
.btn.navy:hover{background:var(--coral);border-color:var(--coral)}
.btn.outline-w{background:transparent;border-color:#fff;color:#fff}
.btn.outline-w:hover{background:#fff;color:var(--navy)}
.btn.outline{background:transparent;color:var(--navy);border-color:var(--navy)}
.btn.outline:hover{background:var(--navy);color:#fff}
.btn.white{background:#fff;color:var(--navy);border-color:#fff}
.btn.white:hover{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.sm{padding:.72rem 1.2rem;font-size:.93rem}
.btn-row{display:flex;flex-wrap:wrap;gap:.9rem}
.more{display:inline-flex;align-items:center;gap:.45rem;color:var(--coral);font-weight:500;font-size:.95rem;transition:gap .2s}
.more::after{content:"\2192"}
a:hover .more,.more:hover{gap:.7rem}

.facts-h{background:#fff;margin-top:2.6rem;border-top:4px solid var(--coral);box-shadow:0 18px 40px -28px rgba(22,37,66,.35)}
.facts-h-head{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;background:var(--navy);padding:1rem 1.6rem}
.facts-h-head h3{color:#fff}
.fgrid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));margin:0}
.fgrid > div{padding:1.2rem 1.1rem;border-right:1px solid var(--line);border-bottom:1px solid var(--line);display:grid;gap:.35rem;align-content:start;min-width:0}
.fgrid > div:nth-child(4n){border-right:0}
.fgrid > div:nth-last-child(-n+4){border-bottom:0}
.fgrid dt{display:flex;align-items:center;gap:.5rem;font-family:var(--f-head);font-weight:600;color:var(--navy);font-size:1rem}
.fgrid dt .ic{color:var(--coral);font-size:1.2rem}
.fgrid dd{margin:0;font-size:.92rem;line-height:1.55}
.fl-ul{display:grid;gap:.25rem}
.fl-ul li{position:relative;padding-left:.95rem;font-size:.82rem;line-height:1.45}
.fl-ul li::before{content:'';position:absolute;left:0;top:.58em;width:5px;height:5px;border-radius:50%;background:var(--coral)}
@media (max-width:1180px){ .fgrid{grid-template-columns:repeat(2,minmax(0,1fr))} .fgrid > div:nth-child(4n){border-right:1px solid var(--line)} .fgrid > div:nth-child(2n){border-right:0} .fgrid > div:nth-last-child(-n+4){border-bottom:1px solid var(--line)} .fgrid > div:nth-last-child(-n+2){border-bottom:0} }
@media (max-width:560px){ .fgrid{grid-template-columns:minmax(0,1fr)} .fgrid > div{border-right:0!important;border-bottom:1px solid var(--line)!important} .fgrid > div:last-child{border-bottom:0!important} }
.enrol-steps{display:grid;gap:1.1rem;margin-top:.4rem}
.enrol-steps li{display:grid;grid-template-columns:auto minmax(0,1fr);gap:.9rem;align-items:start;color:#c8d3e3;font-size:.94rem;line-height:1.55}
.enrol-steps b{display:block;color:#fff;font-family:var(--f-head);font-weight:500;font-size:1.02rem}
.pay-sum{display:grid;margin:0;border-top:1px solid var(--line)}
.pay-sum > div{display:grid;grid-template-columns:8rem minmax(0,1fr);gap:1rem;padding:.7rem 0;border-bottom:1px solid var(--line)}
.pay-sum dt{font-weight:500;color:var(--navy)}
.pay-sum dd{margin:0;overflow-wrap:anywhere}
input[type=file]{padding:.6rem .7rem;background:var(--sky)}
.ksa h4{color:var(--coral);font-size:1rem;text-transform:uppercase;letter-spacing:.06em;margin:1.3rem 0 .7rem}
.ksa h4:first-child{margin-top:0}
.proj-open{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1.4rem 2rem;background:var(--navy);color:#c8d3e3;padding:1.8rem 2rem;border-left:5px solid var(--coral)}
.proj-open > div:first-child{flex:1 1 420px;display:grid;gap:.5rem}
.proj-open h3{color:#fff;font-size:1.45rem}
.proj-open .kicker{color:var(--coral-bright);margin:0}
.proj-photo{position:relative;margin:0;border-radius:14px;overflow:hidden;aspect-ratio:4/3;background:var(--sky-2)}
.proj-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.proj-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.2rem 1rem .8rem;background:linear-gradient(180deg,rgba(13,24,42,0),rgba(13,24,42,.85));color:#fff;font-size:.88rem}
.proj-ok{display:inline-flex;align-items:center;gap:.4rem;color:var(--coral)}
.bring-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.4rem;margin-top:2.4rem}
.bring{background:var(--sky);border-top:4px solid var(--coral);padding:1.8rem 1.6rem;display:grid;gap:.75rem;align-content:start;transition:transform .25s}
.bring:hover{transform:translateY(-4px)}
.bring .icc{width:54px;height:54px;font-size:1.45rem}
.bring h4{font-size:1.1rem}
.bring p{font-size:.94rem;line-height:1.55}
.bring-band{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);margin-top:1.6rem;box-shadow:0 22px 44px -32px rgba(22,37,66,.45)}
.bring-photo{position:relative;margin:0;min-height:330px;background:var(--sky-2)}
.bring-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 60%}
.bring-photo figcaption{position:absolute;left:0;right:0;bottom:0;padding:2.2rem 1.2rem .9rem;background:linear-gradient(180deg,rgba(13,24,42,0),rgba(13,24,42,.85));color:#fff;font-size:.88rem}
.bring-band .navy-card{align-content:center;padding:clamp(1.8rem,4vw,3rem)}
@media (max-width:1100px){ .bring-row{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:760px){ .bring-band{grid-template-columns:minmax(0,1fr)} .bring-photo{min-height:240px} }
@media (max-width:480px){ .bring-row{grid-template-columns:minmax(0,1fr)} }
.ob-box{grid-column:1 / -1;display:flex;gap:1.1rem;align-items:flex-start;background:var(--coral-soft);border-left:5px solid var(--coral);padding:1.4rem 1.6rem;margin-top:1rem}
.ob-box h3{font-size:1.2rem;margin-bottom:.4rem}
.ob-box p{color:#6e3a29}
.ob-box p + p{margin-top:.3rem}
.ob-box a{color:var(--coral);font-weight:500}
.sec .wrap:not(.two) > .ob-box{margin:0 0 2.2rem}
.enrol-cta{grid-column:1 / -1;display:flex;justify-content:space-between;align-items:center;gap:1.4rem 2rem;flex-wrap:wrap;background:var(--navy);color:#c8d3e3;padding:1.6rem 1.8rem;border-left:5px solid var(--coral);margin-top:1rem}
.enrol-cta h3{color:#fff;font-size:1.35rem;margin:.1rem 0 .4rem}
.enrol-cta .kicker{color:var(--coral-bright);margin:0}
.enrol-cta p{max-width:60ch}
.enrol-cta b{color:#fff;font-weight:500}
.cc.lg{position:relative}
.cc.lg .stretch{color:inherit}
.cc.lg .stretch::after{content:"";position:absolute;inset:0;z-index:1}
.cc.lg .cc-foot .btn{position:relative;z-index:2}
.cc.lg .cc-foot{align-items:center}
.cal-urge{color:#fff;font-weight:500;background:rgba(240,114,79,.18);border-left:3px solid var(--coral-bright);padding:.55rem .8rem;margin-top:-.3rem}
.side dl > div.comm dt,.side dl > div.comm dt .ic,.side dl > div.comm dd{color:#1d6b45}
.side dl > div.comm dd{font-weight:500}
.comm-tag{display:inline-block;font-size:.66rem;text-transform:uppercase;letter-spacing:.06em;font-weight:600;color:#1d6b45;background:#dff1e6;padding:.1rem .45rem;border-radius:3px;margin-right:.5rem;vertical-align:.12em}
.f-social{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1.3rem}
.f-social a,.f-social span{display:inline-flex;align-items:center;padding:.35rem .75rem;border:1px solid rgba(255,255,255,.25);color:#fff;font-size:.86rem;font-weight:500;transition:background .2s,border-color .2s}
.f-social a:hover{background:var(--coral);border-color:var(--coral)}
.socials .soc-box{text-align:left}
.socials .soc-box .more{margin-top:auto}
/* Calendar */
.cal-top{align-items:start}
.cal-dl{background:var(--navy);color:#c8d3e3;padding:1.6rem 1.8rem 1.8rem;border-top:4px solid var(--coral);display:grid;gap:1rem;align-content:start;min-width:0}
.cal-dl h3{color:#fff;display:flex;gap:.6rem;align-items:center}
.cal-dl h3 .ic{color:var(--coral-bright);font-size:1.4rem}
.cal-dl li{display:grid;grid-template-columns:4.6rem minmax(0,1fr) auto;gap:1rem;align-items:center;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.13);color:#fff;font-size:.95rem;line-height:1.45}
.cal-day{display:grid;justify-items:center;background:var(--coral);color:#fff;padding:.35rem .2rem .4rem;font-size:.7rem;text-transform:uppercase;letter-spacing:.05em;line-height:1.2}
.cal-day b{font-family:var(--f-head);font-size:1.45rem;letter-spacing:0;font-weight:600}
.cal-dl .more{color:var(--coral-bright);font-size:.88rem;white-space:nowrap}
.cal-dl .small{color:#c8d3e3;line-height:1.6}
.cal-dl .small b{color:#fff;font-weight:500}
.cal-tag{display:inline-block;font-size:.7rem;text-transform:uppercase;letter-spacing:.06em;font-weight:500;padding:.14rem .5rem;border-radius:3px;white-space:nowrap;background:var(--tbg);color:var(--tc);line-height:1.5}
.t-dl{--tc:#fff;--tbg:#b8401f}
.t-dip{--tc:#fff;--tbg:var(--navy)}
.t-spec{--tc:#8a3a1f;--tbg:var(--coral-soft)}
.t-visit{--tc:#fff;--tbg:var(--steel)}
.t-summer{--tc:#6e4700;--tbg:#fbe9bf}
.t-eps{--tc:#45296f;--tbg:#ebe2f7}
.t-course{--tc:#215537;--tbg:#dff1e6}
table.year{font-size:.82rem;min-width:1060px;table-layout:fixed}
table.year th:first-child,table.year td:first-child{width:12.5rem}
table.year th{padding:.7rem .45rem;text-align:center}
table.year th:first-child{text-align:left;padding-left:1rem}
table.year td{padding:.5rem .3rem;text-align:center;vertical-align:middle}
table.year td:first-child{text-align:left;width:14rem;padding-left:1rem;line-height:1.35}
table.year td.e{color:#b9c3d0}
.yc{display:block;padding:.32rem .25rem;font-size:.72rem;line-height:1.25;hyphens:auto;-webkit-hyphens:auto;background:var(--tbg);color:var(--tc);border-radius:3px}
.cal-filter{margin-bottom:1.6rem}
.cal-list{border-top:1px solid var(--line)}
.cal-month{display:grid;grid-template-columns:11rem minmax(0,1fr);gap:1.5rem;padding:1.3rem 0;border-bottom:1px solid var(--line)}
.cal-month h3{font-size:1.12rem;color:var(--coral);padding-top:.1rem}
.cal-month ul{display:grid;gap:.7rem}
.cal-month li{display:grid;grid-template-columns:9.5rem 10.5rem minmax(0,1fr);gap:1rem;align-items:baseline;font-size:.97rem;line-height:1.5}
.cal-month li a{color:var(--navy)}
.cal-txt small{display:block;color:var(--muted);font-size:.86rem;line-height:1.45;margin-top:.15rem}
.cal-dl li small{display:block;color:#c8d3e3;font-size:.84rem;line-height:1.45;margin-top:.2rem}
.cal-month li a:hover{color:var(--coral)}
.cal-month li.is-dl a{font-weight:500}
.cal-when{font-family:var(--f-head);font-weight:600;color:var(--navy)}
.cal-month .cal-tag{justify-self:start}
@media (max-width:860px){ .cal-month{grid-template-columns:minmax(0,1fr);gap:.8rem} .cal-month li{grid-template-columns:auto minmax(0,1fr);gap:.35rem .7rem} .cal-month li .cal-txt{grid-column:1 / -1} }
@media (max-width:480px){ .cal-dl{padding:1.3rem 1.1rem 1.4rem} .cal-dl li{grid-template-columns:4rem minmax(0,1fr)} .cal-dl li .more{grid-column:2} }
/* Blog */
.blog-layout{display:grid;grid-template-columns:minmax(0,1fr) 330px;gap:2.6rem;align-items:start;margin-top:2.6rem}
.blog-layout.post-l{margin-top:0}
@media (max-width:1060px){ .blog-layout{grid-template-columns:minmax(0,1fr)} }
.blog-tools{display:grid;gap:1rem}
.blog-ctrl{display:flex;flex-wrap:wrap;gap:.7rem}
.blog-ctrl input{flex:1 1 240px;width:auto}
.blog-ctrl select{flex:0 1 200px;width:auto}
.tabs .cnt{display:inline-grid;place-items:center;min-width:1.6em;height:1.6em;padding:0 .4em;margin-left:.45rem;border-radius:999px;background:rgba(22,37,66,.08);font-size:.78em;font-weight:600}
.tabs [aria-pressed="true"] .cnt{background:rgba(255,255,255,.25)}
.post-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.6rem;margin-top:.6rem}
.post-grid.three{grid-template-columns:repeat(3,minmax(0,1fr));margin-top:0}
@media (max-width:980px){ .post-grid.three{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:620px){ .post-grid,.post-grid.three{grid-template-columns:minmax(0,1fr)} }
.post-card{display:flex;flex-direction:column;background:var(--sky);transition:transform .25s,box-shadow .25s;min-width:0}
.sec.sky .post-card{background:#fff}
.post-card:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(22,37,66,.12)}
.pc-media{position:relative;aspect-ratio:16/10;background:var(--sky-2)}
.pc-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pc-body{padding:2rem 1.4rem 1.3rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.pc-body h3{font-size:1.16rem;transition:color .2s}
.post-card:hover h3,.post-feat:hover h2{color:var(--coral)}
.pc-body p{font-size:.93rem;line-height:1.6}
.pc-meta{display:flex;flex-wrap:wrap;gap:.3rem 1rem;margin-top:auto;padding-top:.8rem;border-top:1px solid var(--line);font-size:.84rem;color:var(--muted)}
.pc-meta span{display:inline-flex;align-items:center;gap:.35rem}
.pc-meta .ic{color:var(--coral)}
.post-feat{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,1fr);background:var(--navy);color:#c8d3e3;border-left:5px solid var(--coral);transition:box-shadow .25s}
.post-feat:hover{box-shadow:0 22px 44px rgba(22,37,66,.2)}
.pf-media{position:relative;min-height:340px;background:var(--sky-2)}
.pf-media img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.pf-body{padding:clamp(1.6rem,4vw,2.8rem);display:grid;gap:.85rem;align-content:center}
.pf-body h2{color:#fff;font-size:clamp(1.5rem,2.6vw,2.05rem);transition:color .2s}
.pf-body .kicker{color:var(--coral-bright);margin:0}
.pf-body .pc-meta{border-top-color:rgba(255,255,255,.15);color:#a9b6c8}
.pf-body .pc-meta .ic{color:var(--coral-bright)}
.pf-body .more{color:var(--coral-bright)}
@media (max-width:860px){ .post-feat{grid-template-columns:minmax(0,1fr)} .pf-media{min-height:230px} }
.blog-side{display:grid;gap:1.4rem;align-content:start;position:sticky;top:110px;min-width:0}
@media (max-width:1060px){ .blog-side{position:static} }
.side-box{background:var(--sky);padding:1.5rem 1.4rem;display:grid;gap:.9rem}
.sec.sky .side-box{background:#fff}
.side-box h3{font-size:1.15rem;display:flex;align-items:center;gap:.5rem}
.side-box h3 .ic{color:var(--coral)}
.pop-list{display:grid;gap:.85rem;counter-reset:pop}
.pop-list li{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:.6rem;align-items:start;counter-increment:pop}
.pop-list li::before{content:counter(pop,decimal-leading-zero);font-family:var(--f-head);font-weight:600;color:var(--coral);font-size:1.05rem;line-height:1.3}
.pop-list a{font-family:var(--f-head);font-weight:500;color:var(--navy);line-height:1.3;font-size:.97rem}
.pop-list a:hover{color:var(--coral)}
.pop-list small{display:flex;align-items:center;gap:.3rem;color:var(--muted);font-size:.8rem;margin-top:.2rem}
.cat-list a{display:flex;justify-content:space-between;align-items:center;gap:.8rem;padding:.55rem 0;border-bottom:1px solid var(--line);color:var(--navy);font-weight:500;font-size:.95rem}
.cat-list li:last-child a{border-bottom:0}
.cat-list a:hover{color:var(--coral)}
.cat-list b{font-size:.78rem;background:var(--coral-soft);color:var(--coral);border-radius:999px;padding:.1rem .55rem;font-weight:600}
.post-hero{margin:0;position:relative;aspect-ratio:16/9;border-radius:14px;overflow:hidden;background:var(--sky-2)}
.post-hero img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.post-meta{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem 1.2rem;margin-top:1.4rem;font-size:.9rem;color:var(--muted)}
.post-meta span{display:inline-flex;align-items:center;gap:.35rem}
.post-meta .ic{color:var(--coral)}
.post-meta .tag{font-size:.78rem;font-weight:500;color:var(--coral);background:var(--coral-soft);padding:.25rem .65rem;text-transform:uppercase;letter-spacing:.06em}
.post-lede{margin-top:1.2rem;color:var(--navy);font-weight:500;font-size:1.12rem}
.article p{margin-top:1rem}
.article h2{font-size:clamp(1.3rem,2.2vw,1.55rem);margin-top:2rem}
.article ul{list-style:disc;padding-left:1.3rem;margin-top:.9rem;display:grid;gap:.45rem}
.article blockquote{margin:1.6rem 0 0;padding:1.1rem 1.4rem;border-left:4px solid var(--coral);background:var(--coral-soft);color:#6e3a29;font-family:var(--f-head);font-size:1.15rem;line-height:1.5}
.post-share{display:flex;flex-wrap:wrap;align-items:center;gap:.7rem;margin-top:2.2rem;padding-top:1.4rem;border-top:1px solid var(--line)}
.post-share b{color:var(--navy);font-family:var(--f-head);font-weight:600;margin-right:.3rem}
.btn.na::after{display:none}
.post-nav{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-top:1.6rem}
.post-nav a{display:grid;gap:.25rem;background:var(--sky);padding:1rem 1.2rem;color:var(--navy);transition:background .2s}
.post-nav a:hover{background:var(--sky-2)}
.post-nav small{color:var(--coral);font-weight:500;text-transform:uppercase;letter-spacing:.06em;font-size:.75rem}
.post-nav b{font-family:var(--f-head);font-weight:600;line-height:1.3}
.post-nav .nx{text-align:right}
@media (max-width:560px){ .post-nav{grid-template-columns:minmax(0,1fr)} .post-nav .nx{text-align:left} }
.mini-post{display:grid;grid-template-columns:84px minmax(0,1fr);gap:.8rem;align-items:center}
.mini-post img{width:84px;height:64px;object-fit:cover;border-radius:8px}
.mini-post b{display:block;font-family:var(--f-head);font-weight:500;color:var(--navy);line-height:1.3;font-size:.95rem}
.mini-post:hover b{color:var(--coral)}
.mini-post small{display:flex;align-items:center;gap:.3rem;color:var(--muted);font-size:.8rem;margin-top:.2rem}
/* Photos inside offer pages, and the Gallery page */
.pgal-wrap{display:grid;gap:.9rem;min-width:0}
.pgal-h{display:flex;justify-content:space-between;align-items:baseline;gap:.5rem 1rem;flex-wrap:wrap}
.pgal-h .more{font-size:.9rem}
.pgal{display:grid;grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);grid-template-rows:repeat(2,clamp(118px,12vw,162px));gap:.8rem}
.pgal .pg:first-child{grid-row:span 2}
.pgal.row{grid-template-rows:none;grid-auto-rows:clamp(170px,19vw,250px)}
.pgal.row.n3{grid-template-columns:repeat(3,minmax(0,1fr))}
.pgal.row.n4{grid-template-columns:repeat(4,minmax(0,1fr))}
.pgal.row .pg:first-child{grid-row:auto}
.pg{position:relative;margin:0;border-radius:12px;overflow:hidden;background:var(--sky-2);box-shadow:0 16px 34px -28px rgba(22,37,66,.5)}
.pg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.pg:hover img{transform:scale(1.04)}
.pg figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.9rem .85rem .6rem;background:linear-gradient(180deg,rgba(13,24,42,0),rgba(13,24,42,.86));color:#fff;font-size:.8rem;line-height:1.35}
.pgal:not(.row) .pg:first-child figcaption,.pgal.row figcaption{font-size:.88rem}
@media (max-width:980px){ .pgal.row.n4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:560px){ .pgal{grid-template-columns:repeat(2,minmax(0,1fr));grid-template-rows:210px 130px} .pgal .pg:first-child{grid-row:auto;grid-column:1 / -1} .pgal.row.n3,.pgal.row.n4{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:140px} .pgal.row.n4 .pg:first-child{grid-column:auto} }
.gal-tabs{justify-content:center;margin-bottom:2.2rem}
@media (max-width:560px){ .gal-tabs{gap:.4rem} .gal-tabs button{padding:.5rem .8rem;font-size:.88rem} }
.cgal.flt .cg{grid-column:auto!important;grid-row:auto!important}
.cg .cg-open{position:absolute;inset:0;z-index:2;width:100%;height:100%;border:0;background:transparent;cursor:zoom-in;padding:0}
.cg .cg-open:focus-visible{outline:3px solid var(--coral-bright);outline-offset:-3px;border-radius:14px}
.lb{border:0;padding:0;background:transparent;max-width:94vw;max-height:94vh;overflow:visible;color:#fff}
.lb::backdrop{background:rgba(9,16,29,.9)}
.lb figure{margin:0;display:grid;gap:.7rem;justify-items:center}
.lb img{display:block;max-width:min(1200px,90vw);max-height:80vh;width:auto;height:auto;border-radius:10px;box-shadow:0 24px 60px rgba(0,0,0,.45)}
.lb figcaption{text-align:center;font-family:var(--f-head);font-size:1.05rem;color:#fff;max-width:70ch;padding-inline:1rem}
.lb figcaption small{display:block;font-family:var(--f-body);color:#a9b6c8;font-size:.84rem;margin-top:.15rem}
.lb-btn{position:fixed;z-index:3;width:50px;height:50px;border-radius:50%;border:1px solid rgba(255,255,255,.35);background:rgba(13,24,42,.55);color:#fff;font-size:2rem;line-height:1;display:grid;place-items:center;cursor:pointer;padding:0 0 .2rem;transition:background .2s,border-color .2s}
.lb-btn:hover{background:var(--coral);border-color:var(--coral)}
.lb-x{top:18px;right:18px;font-size:1.8rem}
.lb-prev{left:18px;top:50%;transform:translateY(-50%)}
.lb-next{right:18px;top:50%;transform:translateY(-50%)}
@media (max-width:640px){ .lb-prev,.lb-next{top:auto;bottom:18px;transform:none} .lb-prev{left:calc(50% - 60px)} .lb-next{right:calc(50% - 60px)} .lb img{max-height:70vh} }
/* About: vertical video */
.about-video{position:relative;display:flex;justify-content:center;padding:1.2rem 0 .4rem}
.about-video::before{content:"";position:absolute;top:2.4rem;bottom:-.6rem;left:50%;width:min(90%,450px);transform:translateX(-50%) rotate(-4deg);background:var(--navy);border-radius:26px}
.av-frame{position:relative;z-index:1;width:min(100%,390px);aspect-ratio:9/16;border-radius:24px;overflow:hidden;border:6px solid var(--coral-bright);background:var(--navy);box-shadow:0 30px 60px -28px rgba(22,37,66,.6)}
.av-frame video{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;display:block}
.av-btn{position:absolute;right:.8rem;bottom:.8rem;z-index:2;width:44px;height:44px;border-radius:50%;border:1px solid rgba(255,255,255,.4);background:rgba(13,24,42,.55);cursor:pointer;display:grid;place-items:center;transition:background .2s}
.av-btn:hover{background:var(--coral);border-color:var(--coral)}
.av-pause{width:12px;height:14px;border-left:4px solid #fff;border-right:4px solid #fff}
.av-btn.paused .av-pause{width:0;height:0;border-style:solid;border-width:8px 0 8px 13px;border-color:transparent transparent transparent #fff;margin-left:3px}
@media (max-width:540px){ .av-frame{width:min(100%,290px)} }
/* Top bar: best-fit button */
.tb-cta{display:inline-flex;align-items:center;gap:.5rem;background:#fff;color:var(--navy);font-family:var(--f-head);font-weight:600;font-size:.92rem;padding:.5rem 1.05rem;border-radius:999px;white-space:nowrap;transition:background .2s,color .2s}
.tb-cta .ic{color:var(--coral);font-size:1.1rem}
.tb-cta:hover{background:var(--coral);color:#fff}
.tb-cta:hover .ic{color:#fff}
.tb-ctas{display:flex;align-items:center;gap:.55rem}
.tb-ctas .tb-cta{background:var(--coral);color:#fff;box-shadow:0 6px 16px -8px rgba(0,0,0,.45);font-size:1.02rem;padding:.62rem 1.35rem;gap:.6rem}
.tb-ctas .tb-cta .ic{font-size:1.25rem}
.tb-ctas{gap:.7rem}
.tb-ctas .tb-cta .ic{color:#fff}
.tb-ctas .tb-cta.tb-gal{background:var(--navy)}
.tb-ctas .tb-cta:hover{background:#fff;color:var(--navy)}
.tb-ctas .tb-cta:hover .ic{color:var(--coral)}
@media (max-width:980px){ .tb-ctas .tb-cta{font-size:.95rem;padding:.55rem 1.1rem} }
@media (max-width:560px){ .tb-ctas{flex-wrap:wrap} .tb-ctas .tb-cta,.tb-ctas .tb-cta.tb-gal{flex:1 1 100%} }
@media (max-width:980px){ .tb-ctas .tb-cta{background:#fff;color:var(--navy)} .tb-ctas .tb-cta .ic{color:var(--coral)} .tb-ctas .tb-cta.tb-gal{background:var(--navy);color:#fff} .tb-ctas .tb-cta.tb-gal .ic{color:#fff} }
.eps-reg-box .nw{white-space:nowrap}
@media (max-width:980px){ .tb{flex-wrap:wrap} .tb-right{display:flex;width:100%;padding:0 0 .55rem} .tb-right .tb-item{display:none} .tb-ctas{width:100%;gap:.45rem} .tb-cta{flex:1 1 auto;justify-content:center;font-size:.88rem;padding:.45rem .9rem} .tb-cta.tb-gal{flex:0 1 auto} }
/* Best-fit finder */
.bf{display:grid;gap:2.4rem}
.bf-form{background:#fff;padding:1.4rem;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem;box-shadow:0 14px 30px -26px rgba(22,37,66,.45)}
.bf-q{border:0;margin:0;padding:1rem 1.1rem 1.1rem;background:var(--sky);border-radius:10px;min-width:0}
.bf-q.w2{grid-column:span 2}
.bf-q.w3{grid-column:span 3}
.bf-q legend{float:left;width:100%;display:flex;align-items:center;gap:.6rem;font-family:var(--f-head);font-weight:600;color:var(--navy);font-size:1.02rem;line-height:1.3;margin-bottom:.65rem;padding:0}
.bf-q legend + *{clear:both}
.bf-n{width:28px;height:28px;border-radius:50%;background:var(--coral);color:#fff;display:grid;place-items:center;font-size:.85rem;flex:none}
.bf-hint{font-size:.84rem;color:var(--muted);margin:0 0 .6rem;line-height:1.45}
.bf-btns{grid-column:span 2;align-self:center;justify-content:center}
.bf-q .chips{display:flex;flex-wrap:wrap;gap:.45rem;justify-content:flex-start;margin-top:0}
.chip{position:relative;cursor:pointer}
.chip input{position:absolute;opacity:0;inset:0;margin:0;cursor:pointer}
.chip span{display:inline-block;padding:.42rem .85rem;border:1px solid var(--line);background:#fff;color:var(--navy);font-size:.9rem;line-height:1.35;border-radius:999px;transition:background .15s,border-color .15s,color .15s}
.chip:hover span{border-color:var(--coral)}
.chip input:checked + span{background:var(--coral);border-color:var(--coral);color:#fff}
.chip input:focus-visible + span{outline:3px solid var(--coral-bright);outline-offset:2px}
#bf-age{max-width:7.5rem;padding:.5rem .8rem;background:#fff}
@media (max-width:1100px){ .bf-form{grid-template-columns:repeat(2,minmax(0,1fr))} .bf-q.w2,.bf-q.w3{grid-column:span 1} .bf-q.full2,.bf-btns{grid-column:1 / -1} }
@media (max-width:640px){ .bf-form{grid-template-columns:minmax(0,1fr);padding:1rem} .bf-q.w2,.bf-q.w3,.bf-q.full2,.bf-btns{grid-column:auto} }
.bf-res{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;align-items:stretch;min-width:0;scroll-margin-top:110px}
.bf-res > .bf-head,.bf-res > .bf-more,.bf-res > .bf-out,.bf-res > .bf-help,.bf-res > .bf-none{grid-column:1 / -1}
@media (max-width:1100px){ .bf-res{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:700px){ .bf-res{grid-template-columns:minmax(0,1fr)} }
.bf-head{text-align:center}
.bf-head h3{display:inline-flex;align-items:center;gap:.6rem;font-size:1.6rem}
.bf-head h3 span{background:var(--coral);color:#fff;font-size:.85rem;border-radius:999px;padding:.12rem .6rem}
.bf-head p{font-size:.95rem;color:var(--muted);margin-top:.3rem}
.bf-card{background:#fff;padding:1.3rem 1.35rem;display:flex;flex-direction:column;gap:.7rem;border-top:4px solid var(--coral);box-shadow:0 14px 30px -26px rgba(22,37,66,.45);min-width:0;transition:transform .25s,box-shadow .25s}
.bf-card:hover{transform:translateY(-4px);box-shadow:0 22px 40px -26px rgba(22,37,66,.5)}
.bf-top{display:flex;align-items:center;gap:.75rem}
.bf-top .icc{width:46px;height:46px;font-size:1.25rem}
.bf-kind{font-size:.74rem;text-transform:uppercase;letter-spacing:.07em;color:var(--muted);font-weight:500;line-height:1.3}
.bf-feat{display:block;width:max-content;font-style:normal;margin-top:.25rem;background:var(--coral);color:#fff;font-size:.66rem;letter-spacing:.06em;padding:.12rem .45rem;border-radius:3px}
.bf-card h4{font-size:1.12rem;line-height:1.3}
.bf-meta{font-size:.86rem;color:var(--muted);line-height:1.45;margin-top:-.3rem}
.bf-score{margin-left:auto;display:grid;justify-items:center;min-width:4.9rem;padding:.4rem .5rem;border-radius:10px;background:var(--sky);text-align:center;flex:none}
.bf-score b{font-family:var(--f-head);font-size:1.35rem;color:var(--navy);line-height:1}
.bf-score span{font-size:.68rem;color:var(--muted);margin-top:.2rem;white-space:nowrap}
.bf-score.hi{background:#dff1e6} .bf-score.hi b{color:#1d6b45}
.bf-score.mid{background:var(--coral-soft)} .bf-score.mid b{color:var(--coral)}
.bf-why,.bf-mind{display:grid;gap:.3rem;font-size:.87rem;line-height:1.45}
.bf-why li,.bf-mind li{position:relative;padding-left:1.4rem}
.bf-why li::before{content:"\2713";position:absolute;left:.1rem;color:#1d6b45;font-weight:700}
.bf-mind li{color:#6e3a29}
.bf-mind li::before{content:"!";position:absolute;left:.35rem;color:var(--coral);font-weight:700}
.bf-foot{margin-top:auto;display:flex;justify-content:space-between;align-items:center;gap:.6rem;flex-wrap:wrap;padding-top:.8rem;border-top:1px solid var(--line)}
.bf-foot .btn-row{gap:.5rem}
.bf-foot .btn.sm{padding:.6rem .9rem;font-size:.88rem}
.bf-fee{font-family:var(--f-head);font-weight:600;color:var(--navy)}
.bf-more{justify-self:center}
.bf-out{background:#fff;padding:1rem 1.2rem}
.bf-out summary{cursor:pointer;font-family:var(--f-head);font-weight:500;color:var(--navy)}
.bf-out ul{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,320px),1fr));gap:.55rem 1.4rem;margin-top:.8rem}
.bf-out li{display:flex;justify-content:space-between;gap:.3rem 1rem;font-size:.9rem;flex-wrap:wrap;padding-bottom:.5rem;border-bottom:1px solid var(--line)}
.bf-out li a{color:var(--navy);font-weight:500}
.bf-out li span{color:var(--muted)}
.bf-help{display:flex;gap:.8rem;align-items:flex-start;justify-content:center;background:var(--navy);color:#c8d3e3;padding:1rem 1.2rem;font-size:.92rem}
.bf-help .ic{color:var(--coral-bright);font-size:1.3rem;margin-top:.1rem}
.bf-help a{color:#fff;font-weight:500;text-decoration:underline;text-underline-offset:3px}
/* Benefits band (home) */
.benefits{background:radial-gradient(rgba(255,255,255,.07) 1.2px,transparent 1.7px) 0 0/18px 18px,var(--navy);color:#c3ccd8}
.benefits .sec-head h2{color:#fff}
.benefits .kicker{color:var(--coral-bright)}
.benefits .lede{color:#c8d3e3}
.ben-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1.2rem}
.ben{background:rgba(255,255,255,.05);border-top:4px solid var(--coral);padding:1.5rem 1.3rem;display:grid;gap:.65rem;align-content:start;transition:transform .25s,background .25s}
.ben:hover{transform:translateY(-4px);background:rgba(255,255,255,.08)}
.ben .icc{width:52px;height:52px;font-size:1.4rem}
.ben h3{color:#fff;font-size:1.1rem}
.ben p{font-size:.92rem;line-height:1.55}
@media (max-width:1100px){ .ben-grid{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:760px){ .ben-grid{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:480px){ .ben-grid{grid-template-columns:minmax(0,1fr)} }
/* Section scaffolding */
.sec{padding-block:clamp(4rem,9vw,6.8rem)}
.sec.sky{background:var(--sky)}
.sec.tight{padding-block:clamp(2.5rem,5vw,4rem)}
.kicker{display:inline-flex;align-items:center;gap:.5rem;color:var(--coral);font-family:var(--f-head);font-weight:500;font-size:1rem;margin-bottom:.75rem}
.kicker .ic{font-size:1.2rem}
.sec-head{max-width:760px;margin-bottom:2.8rem}
.sec-head.center{text-align:center;margin-inline:auto}
.sec-head .lede{margin-top:1rem}
.sec-head.center .lede{margin-inline:auto}
.lede-note{display:block;margin-top:.45rem;font-size:.95rem;color:var(--muted)}
.head-row{display:flex;justify-content:space-between;align-items:flex-end;gap:1.5rem;flex-wrap:wrap;margin-bottom:2.8rem}
.head-row .sec-head{margin-bottom:0}
.lede{font-size:1.07rem;max-width:68ch}
.prose p + p{margin-top:1rem}
.small{font-size:.9rem}
.muted{color:var(--muted)}

/* Banner (inner pages) */
.banner{position:relative;background-color:var(--navy);background-image:var(--img-dusk);background-size:cover;background-position:center 75%;color:#fff;text-align:center}
.banner::before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(14,25,44,.86),rgba(14,25,44,.72))}
.banner .wrap{position:relative;padding-block:clamp(4.2rem,9vw,6.8rem)}
.banner h1{color:#fff;font-size:clamp(2rem,4.5vw,3.2rem);max-width:26ch;margin-inline:auto}
.crumbs{display:inline-flex;flex-wrap:wrap;justify-content:center;gap:.5rem;margin-top:1.1rem;font-size:.97rem;color:rgba(255,255,255,.86)}
.crumbs .sep{color:var(--coral-bright)}
.crumbs a:hover{color:var(--coral-bright)}

/* Hero slider */
.hero{display:grid;background:var(--navy);color:#fff;overflow:hidden;position:relative}
.slide{grid-area:1/1;position:relative;background-size:cover;background-position:center;opacity:0;visibility:hidden;transition:opacity .9s ease,visibility .9s}
.slide.on{opacity:1;visibility:visible}
.slide::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,24,42,.92) 0%,rgba(13,24,42,.74) 46%,rgba(13,24,42,.2) 100%)}
.slide .wrap{position:relative;padding-block:clamp(4.5rem,10vw,8.5rem) clamp(9.5rem,15vw,12.5rem)}
.hero-copy{max-width:680px}
.hero-copy.wide{max-width:900px}
.hero-copy.wide .h1{font-size:clamp(2.1rem,4.4vw,3.45rem)}
@media (min-width:760px){ .hero-copy .nw{white-space:nowrap} }
.hero-eb{display:flex;align-items:center;gap:1rem;font-family:var(--f-head);font-weight:500;letter-spacing:.17em;text-transform:uppercase;font-size:.93rem;color:#fff}
.hero-eb::after{content:"";width:62px;height:2px;background:var(--coral-bright);flex:none}
@media (max-width:520px){ .hero-eb::after{display:none} .hero-eb{letter-spacing:.12em;font-size:.85rem} }
.hero .h1{font-family:var(--f-head);color:#fff;font-size:clamp(2.35rem,5.3vw,4rem);font-weight:600;line-height:1.12;margin:1.25rem 0 1.35rem}
.hero-p{font-size:1.1rem;color:rgba(255,255,255,.9);max-width:56ch}
.hero .btn-row{margin-top:2.2rem}
.hero-dots{position:absolute;left:0;right:0;margin-inline:auto;max-width:var(--wrap);bottom:clamp(7.4rem,12.5vw,10.2rem);display:flex;gap:.5rem;z-index:3}
.hero-dots button{width:36px;height:4px;border:0;background:rgba(255,255,255,.4);cursor:pointer;padding:0}
.hero-dots button[aria-pressed="true"]{background:var(--coral-bright)}

/* Feature boxes overlapping the hero */
.feat-row{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;margin-top:-104px;position:relative;z-index:5}
.feat{padding:2.1rem 2rem;color:#fff;display:flex;flex-direction:column;gap:.75rem;background:var(--navy);transition:transform .25s}
.feat:nth-child(2){background:var(--coral)}
.feat:hover{transform:translateY(-6px)}
.feat .fi{display:flex;align-items:center;gap:1rem}
@media (min-width:861px){ .feat-row .feat .fi{min-height:5.2rem} }
.feat .fi .ic{font-size:2.7rem;stroke-width:1.3}
.feat h3{color:#fff;font-size:1.35rem}
.feat p{color:rgba(255,255,255,.84);font-size:.96rem}
.feat .more{color:#fff;margin-top:auto}
@media (max-width:860px){ .feat-row{grid-template-columns:minmax(0,1fr);margin-top:-72px;gap:1rem} }

/* About */
.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(2.2rem,6vw,5rem);align-items:center}
.about-media{position:relative;min-height:540px}
.about-photos{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(0,1fr);grid-template-rows:minmax(0,1fr) minmax(0,1fr) minmax(0,.95fr);gap:1rem;height:clamp(480px,46vw,640px)}
.about-photos figure{position:relative;margin:0;border-radius:14px;overflow:hidden;border:5px solid var(--coral-bright);background:var(--sky-2)}
.about-photos figure:first-child{grid-row:span 2}
.about-photos figure:nth-child(2){border-color:var(--navy)}
.about-photos figure:nth-child(3){border-color:var(--steel)}
.about-photos figure.wide{grid-column:1 / -1;border-color:var(--navy)}
.about-photos img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.about-where{margin-top:1.2rem;background:#fff;border-left:4px solid var(--coral);padding:1.1rem 1.35rem;display:grid;gap:.35rem}
.about-where h4{font-size:1.2rem}
@media (max-width:540px){ .about-photos{height:440px;gap:.7rem} }
.cgal{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-auto-rows:clamp(150px,16vw,205px);grid-auto-flow:dense;gap:1rem}
.cgal.gal-grid{grid-template-columns:repeat(3,minmax(0,1fr));grid-auto-rows:clamp(200px,22vw,290px);gap:1.1rem}
@media (max-width:980px){ .cgal.gal-grid{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:clamp(190px,30vw,260px)} }
.mc-groups{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.3rem;align-items:stretch}
.mc-g{background:#fff;padding:1.35rem 1.4rem 1.2rem;border-top:3px solid var(--gc);box-shadow:0 14px 30px -26px rgba(22,37,66,.45);display:flex;flex-direction:column;min-width:0}
.mc-h{display:grid;grid-template-columns:auto 1fr;grid-template-rows:auto auto;column-gap:.8rem;align-items:center;padding-bottom:.9rem;margin-bottom:.3rem;border-bottom:1px solid var(--line)}
.mc-ic{grid-row:1 / 3;display:grid;place-items:center;width:42px;height:42px;border-radius:50%;background:color-mix(in srgb,var(--gc) 12%,#fff);color:var(--gc);font-size:1.2rem}
.mc-h h3{font-size:1.12rem;line-height:1.25}
.mc-n{font-size:.78rem;color:var(--muted);letter-spacing:.04em}
.mc-g ul{display:grid}
.mc-g li{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.6rem 0;border-bottom:1px dashed var(--line);font-size:.95rem;color:var(--navy);line-height:1.4}
.mc-g li:last-child{border-bottom:0}
.mc-g li b{flex:none;font-weight:500;font-size:.82rem;color:var(--gc);white-space:nowrap}
.mc-cta{background:var(--navy);border-top-color:var(--coral);color:#c8d3e3;justify-content:center;gap:.8rem}
.mc-cta h3{color:#fff;font-size:1.25rem}
.mc-cta p{font-size:.93rem;line-height:1.55}
.mc-cta .btn{align-self:flex-start;margin-top:.4rem}
@media (max-width:1000px){ .mc-groups{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:640px){ .mc-groups{grid-template-columns:minmax(0,1fr)} }
.cg{position:relative;margin:0;border-radius:14px;overflow:hidden;background:var(--sky-2);box-shadow:0 18px 40px -30px rgba(22,37,66,.45)}
.cg img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .6s ease}
.cg:hover img{transform:scale(1.04)}
.cg.big{grid-column:span 2;grid-row:span 2}
.cg.wide{grid-column:span 2}
.cg.tall{grid-row:span 2}
.cg figcaption{position:absolute;left:0;right:0;bottom:0;display:grid;gap:.1rem;padding:2.4rem 1rem .85rem;background:linear-gradient(180deg,rgba(13,24,42,0),rgba(13,24,42,.88));color:#d5dce6;font-size:.84rem;line-height:1.35}
.cg figcaption b{font-family:var(--f-head);font-weight:600;font-size:1.02rem;color:#fff}
@media (max-width:760px){ .cgal{grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:175px} }
@media (max-width:460px){ .cgal{grid-template-columns:minmax(0,1fr);grid-auto-rows:225px} .cg.big,.cg.wide,.cg.tall{grid-column:auto;grid-row:auto} }
#centre{scroll-margin-top:110px}
.frame{border-radius:14px;overflow:hidden;border:5px solid var(--coral-bright);background-size:cover;background-position:var(--pos,center)}
.frame.a{position:absolute;left:0;top:0;width:60%;height:82%}
.frame.b{position:absolute;right:0;bottom:0;width:62%;background:#fff;border-color:var(--navy);padding:1rem 1.05rem .9rem;display:grid;gap:.6rem}
.frame.b h4{font-size:.98rem}
.badge-round{position:absolute;right:6%;top:4%;width:132px;height:132px;border-radius:50%;background:var(--coral);color:#fff;display:grid;place-content:center;text-align:center;font-family:var(--f-head);box-shadow:0 0 0 10px rgba(255,255,255,.75)}
.badge-round b{font-size:2.2rem;line-height:1;font-weight:600}
.badge-round span{font-size:.8rem;line-height:1.25;padding-inline:.9rem;margin-top:.3rem}
.nums{display:grid;grid-template-columns:1fr 1fr;gap:1.4rem;margin-block:1.8rem 2rem}
.num{display:flex;gap:.9rem;align-items:flex-start}
.num-c{flex:none;width:50px;height:50px;border-radius:50%;background:var(--coral);color:#fff;display:grid;place-items:center;font-family:var(--f-head);font-weight:600;font-size:1.05rem}
.num h4{font-size:1.14rem;margin-bottom:.2rem}
.num p{font-size:.93rem}
@media (max-width:920px){ .about{grid-template-columns:minmax(0,1fr)} }
@media (max-width:540px){ .nums{grid-template-columns:1fr} .about-media{min-height:470px} .frame.a{width:78%;height:62%} .frame.b{width:92%} .badge-round{width:108px;height:108px} .badge-round b{font-size:1.6rem} .badge-round span{font-size:.68rem;padding-inline:.6rem} }

/* Illustrated covers */
.cover{position:relative;aspect-ratio:16/10;overflow:hidden;background:radial-gradient(rgba(255,255,255,.12) 1.2px,transparent 1.7px) 0 0/18px 18px,linear-gradient(135deg,var(--c1),var(--c2))}
.cover::after{content:"";position:absolute;left:0;right:0;bottom:0;height:52%;background-image:var(--sil, var(--img-sil));background-size:cover;background-position:center bottom;background-repeat:no-repeat;opacity:.17}
.cover.city::after{background-size:100% auto;opacity:.26}
.cover .cover-ic{position:absolute;right:8%;top:14%;width:30%;height:auto;color:rgba(255,255,255,.92);stroke-width:1.05}
.cover-lbl{position:absolute;left:1.2rem;top:1rem;font-family:var(--f-head);font-weight:600;color:#fff;font-size:.95rem;letter-spacing:.12em;text-transform:uppercase}
.cover.wide{aspect-ratio:16/7}
.cover.photo{background:var(--navy)}
.cover.photo::after{display:none}
.cover.photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.cover.photo::before{content:"";position:absolute;inset:0 0 auto 0;height:45%;background:linear-gradient(rgba(13,24,42,.6),rgba(13,24,42,0));z-index:1}
.cover.photo .cover-lbl{z-index:2;text-shadow:0 1px 8px rgba(0,0,0,.5)}

/* Cards */
.cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.9rem}
@media (max-width:980px){ .cards{gap:1.2rem} .cards .cover-lbl{font-size:.72rem;letter-spacing:.08em;left:.9rem;top:.8rem} .cards .cover .cover-ic{top:30%;width:26%} }
@media (min-width:521px) and (max-width:760px){ .cards{gap:.7rem} .cards .cover-lbl{display:none} .cards .cover .cover-ic{top:16%;width:34%;right:33%} .cards .cc-badge{font-size:.66rem;padding:.28rem .45rem;right:.45rem;bottom:-.8rem} .cards .cc-body{padding:1.5rem .8rem .9rem;gap:.4rem} .cards .cc h3{font-size:1rem} .cards .cc .t{font-size:.8rem;line-height:1.45} .cards .cc-meta{font-size:.62rem;letter-spacing:.04em} .cards .cc-foot{gap:.4rem;padding-top:.7rem} .cards .cc-foot .btn{padding:.45rem .6rem;font-size:.78rem} .cards .cc-foot .btn::after{display:none} }
@media (max-width:520px){ .cards{grid-template-columns:minmax(0,1fr)} }
.cc{display:flex;flex-direction:column;background:var(--sky);transition:transform .25s,box-shadow .25s;min-width:0}
.sec.sky .cc{background:#fff}
.cc:hover{transform:translateY(-6px);box-shadow:0 22px 44px rgba(22,37,66,.12)}
.cc-media{position:relative}
.cc-badge{position:absolute;right:1rem;bottom:-1rem;background:var(--coral);color:#fff;font-size:.8rem;font-weight:500;padding:.4rem .8rem;display:inline-flex;align-items:center;gap:.4rem;z-index:2;line-height:1.2}
.cc-body{padding:2.1rem 1.6rem 1.5rem;display:flex;flex-direction:column;gap:.55rem;flex:1}
.cc-meta{font-size:.8rem;color:var(--muted);text-transform:uppercase;letter-spacing:.07em;font-weight:500}
.cc h3{font-size:1.32rem;transition:color .2s}
.cc:hover h3{color:var(--coral)}
.cc .t{font-size:.95rem}
.cc-foot{margin-top:auto;padding-top:1rem;border-top:1px solid var(--line);display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap}
.cc-foot .fee{font-family:var(--f-head);font-weight:600;color:var(--navy)}
.up-two{align-items:start}
.up-h{display:flex;gap:.6rem;align-items:center;margin-bottom:1.1rem}
.up-grid{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,.8fr);gap:.8rem 1.1rem;align-items:stretch}
.up-grid .up-h{margin:0 0 .3rem}
.up-dl{background:var(--navy);color:#c8d3e3;padding:.9rem 1.2rem;display:grid;align-content:center;gap:.55rem;border-left:4px solid var(--coral)}
.up-dl div{display:grid;gap:.1rem}
.up-dl div + div{border-top:1px solid rgba(255,255,255,.14);padding-top:.55rem}
.up-dl span{font-size:.72rem;text-transform:uppercase;letter-spacing:.08em;color:var(--coral-bright);font-weight:600}
.up-dl b{color:#fff;font-weight:500;font-size:.95rem;line-height:1.35}
.up-foot{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:1rem;margin-top:1.4rem;background:var(--navy);padding:1rem 1.2rem}
.up-foot .cal-urge{margin:0;flex:1 1 280px}
@media (max-width:760px){ .up-grid{grid-template-columns:minmax(0,1fr);gap:0} .up-grid .up-h.r{display:none} .up-grid .up-h{margin-bottom:.9rem} .up-dl{margin-bottom:1rem} }
.up-h .ic{color:var(--coral);font-size:1.4rem}
.up-list{display:grid;gap:.8rem}
.up-item{display:grid;grid-template-columns:4.4rem minmax(0,1fr) auto;gap:1rem;align-items:center;background:#fff;padding:1rem 1.2rem;border-left:4px solid var(--coral);transition:transform .2s,box-shadow .2s}
.sec:not(.sky) .up-item{background:var(--sky)}
.up-item:hover{transform:translateX(4px);box-shadow:0 14px 30px -20px rgba(22,37,66,.35)}
.up-date{display:grid;justify-items:center;background:var(--navy);color:#fff;padding:.4rem .2rem .45rem;font-size:.72rem;letter-spacing:.06em;line-height:1.2}
.up-date b{font-family:var(--f-head);font-size:1.25rem;font-weight:600;letter-spacing:.04em}
.up-body{display:grid;gap:.2rem;min-width:0}
.up-body > b{font-family:var(--f-head);color:var(--navy);font-size:1.08rem;font-weight:600;line-height:1.3;transition:color .2s}
.up-item:hover .up-body > b{color:var(--coral)}
.up-body small{font-size:.88rem;line-height:1.5}
.up-meta{display:flex;align-items:center;gap:.35rem;font-size:.8rem;color:var(--muted)}
.up-meta .ic{color:var(--coral)}
.up-go::before{content:"\2192";color:var(--coral);font-size:1.2rem}
@media (max-width:520px){ .up-item{grid-template-columns:3.8rem minmax(0,1fr);padding:.9rem 1rem} .up-go{display:none} }
.ev .date{position:absolute;left:1.2rem;bottom:-1.5rem;background:var(--coral);color:#fff;text-align:center;font-family:var(--f-head);padding:.55rem .95rem;line-height:1.1;z-index:2}
.ev .date b{display:block;font-size:1.3rem;font-weight:600}
.ev .date span{font-size:.74rem;letter-spacing:.08em}
.ev .cc-body{padding-top:2.4rem}
.ev-meta{display:flex;gap:.4rem 1rem;flex-wrap:wrap;font-size:.87rem;color:var(--muted);margin-top:auto;padding-top:.8rem;border-top:1px solid var(--line)}
.ev-meta span{display:inline-flex;gap:.35rem;align-items:center}
.ev-meta .ic{color:var(--coral)}

/* Boxes, grids, lists */
.grid{display:grid;gap:1.6rem}
.g2{grid-template-columns:repeat(2,minmax(0,1fr))}
.g3{grid-template-columns:repeat(3,minmax(0,1fr))}
.g4{grid-template-columns:repeat(4,minmax(0,1fr))}
.offer-cards .cc h3{font-size:1.18rem}
.offer-cards .cover-lbl{max-width:60%}
.offer-cards .cc-body{padding:2rem 1.35rem 1.35rem}
@media (max-width:980px){ .g3,.g4{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:620px){ .g2,.g3,.g4{grid-template-columns:minmax(0,1fr)} }
.box{background:#fff;border:1px solid var(--line);padding:1.8rem 1.7rem;display:flex;flex-direction:column;gap:.7rem;min-width:0;transition:transform .25s,box-shadow .25s}
.sec:not(.sky) .box{background:var(--sky);border-color:transparent}
a.box:hover{transform:translateY(-5px);box-shadow:0 18px 38px rgba(22,37,66,.1)}
a.box:hover h3{color:var(--coral)}
.box h3{font-size:1.25rem;transition:color .2s}
.box p{font-size:.95rem}
.icc{width:62px;height:62px;border-radius:50%;background:var(--coral);color:#fff;display:grid;place-items:center;font-size:1.7rem;flex:none}
.icc.soft{background:var(--coral-soft);color:var(--coral)}
.box .tag{align-self:flex-start;font-size:.78rem;font-weight:500;color:var(--coral);background:var(--coral-soft);padding:.25rem .65rem;text-transform:uppercase;letter-spacing:.06em}
.check{display:grid;gap:.65rem}
.check li{position:relative;padding-left:2rem}
.check li::before{content:"";position:absolute;left:0;top:.28em;width:21px;height:21px;border-radius:50%;background:var(--coral) url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='3.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12.5l4.5 4.5L19 7.5'/%3E%3C/svg%3E") center/12px no-repeat}
.two{display:grid;grid-template-columns:minmax(0,1.18fr) minmax(0,.82fr);gap:clamp(2rem,5vw,4rem);align-items:start}
.two.even{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
@media (max-width:920px){ .two,.two.even{grid-template-columns:minmax(0,1fr)} }
.notice{display:flex;gap:.9rem;align-items:flex-start;background:var(--coral-soft);border:1px solid #f4d2c5;padding:1rem 1.2rem;font-size:.95rem;color:#6e3a29;max-width:900px}
.notice .ic{color:var(--coral);font-size:1.4rem;margin-top:.12rem}
.notice strong{color:#552817}
.tabs{display:flex;flex-wrap:wrap;gap:.5rem}
.tabs a,.tabs button{padding:.68rem 1.25rem;background:var(--sky);color:var(--navy);font-family:var(--f-head);font-weight:500;border:0;cursor:pointer;font-size:.98rem;transition:background .2s,color .2s}
.sec.sky .tabs a,.sec.sky .tabs button{background:#fff}
.tabs a:hover,.tabs button:hover{color:var(--coral)}
.tabs [aria-current="page"],.tabs [aria-pressed="true"]{background:var(--coral)!important;color:#fff!important}

/* Dark split */
.split{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);background:var(--dark)}
.split-text{padding-block:clamp(4rem,8vw,6.5rem);padding-right:clamp(1.5rem,5vw,4.5rem);padding-left:max(var(--gutter),calc((100vw - var(--wrap)) / 2 + var(--gutter)));color:#aeb9c6}
.split-text h2{color:#fff}
.split-img{background-size:cover;background-position:80% center;min-height:420px}
.feat-list{display:grid;gap:1.8rem;margin-top:2.2rem}
.fl{display:flex;gap:1.2rem}
.fl .icc{width:66px;height:66px}
.fl h3{color:#fff;font-size:1.28rem;margin-bottom:.3rem}
.fl p{font-size:.96rem}
@media (max-width:920px){ .split{grid-template-columns:minmax(0,1fr)} .split-text{padding-inline:var(--gutter)} .split-img{min-height:300px} }

/* Stats */
.stats-band{background:radial-gradient(rgba(255,255,255,.07) 1.2px,transparent 1.7px) 0 0/18px 18px,var(--navy);color:#c3ccd8;padding-block:clamp(2.6rem,5vw,3.8rem)}
.sb-grid{display:grid;grid-template-columns:repeat(6,minmax(0,1fr))}
.sb{display:grid;justify-items:center;align-content:start;text-align:center;gap:.3rem;padding:.4rem 1.1rem;border-right:1px solid rgba(255,255,255,.14)}
.sb:last-child{border-right:0}
.sb-ic{width:56px;height:56px;border-radius:50%;display:grid;place-items:center;background:rgba(240,114,79,.16);color:var(--coral-bright);font-size:1.55rem;margin-bottom:.35rem}
.sb b{font-family:var(--f-head);font-size:clamp(2.5rem,4.2vw,3.3rem);color:#fff;line-height:1;font-weight:600}
.sb-l{font-family:var(--f-head);color:#fff;font-weight:500;font-size:1.08rem}
.sb small{font-size:.86rem;color:#a9b6c8;line-height:1.45;max-width:26ch}
@media (max-width:1240px){ .sb{padding:.4rem .7rem} .sb-l{font-size:1rem} }
@media (max-width:1100px){ .sb-grid{grid-template-columns:repeat(3,minmax(0,1fr));row-gap:2.2rem} .sb:nth-child(3n){border-right:0} }
@media (max-width:860px){ .sb-grid{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:2rem} .sb:nth-child(3n){border-right:1px solid rgba(255,255,255,.14)} .sb:nth-child(2n){border-right:0} .sb:last-child:nth-child(odd){grid-column:1 / -1} }
@media (max-width:520px){ .sb{padding:.3rem .6rem} .sb-ic{width:46px;height:46px;font-size:1.3rem} .sb small{font-size:.8rem} }
.inhouse{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);background:var(--sky);box-shadow:0 22px 44px -32px rgba(22,37,66,.45)}
.sec.sky .inhouse{background:#fff}
.inhouse-photo{position:relative;margin:0;min-height:400px;background:var(--sky-2)}
.inhouse-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.inhouse-photo .cc-badge{bottom:1rem;right:1rem}
.inhouse-body{padding:clamp(1.6rem,4vw,2.9rem);display:grid;gap:1rem;align-content:center}
.inhouse-body h2{font-size:clamp(1.7rem,3vw,2.2rem)}
.inhouse-feats{display:grid;gap:1rem;margin:.3rem 0 .4rem}
.inhouse-feats > div{display:flex;gap:1rem;align-items:center}
.inhouse-feats .icc{width:52px;height:52px;font-size:1.4rem}
.inhouse-feats h4{font-size:1.04rem;margin-bottom:.1rem}
.inhouse-feats p{font-size:.93rem;line-height:1.5}
.inhouse-foot{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.6rem}
.inhouse-fee{display:inline-flex;align-items:center;gap:.45rem;font-weight:500;color:var(--navy)}
.inhouse-fee .ic{color:var(--coral)}
@media (max-width:860px){ .inhouse{grid-template-columns:minmax(0,1fr)} .inhouse-photo{min-height:250px} }
.stats{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem}
.stat{text-align:center;padding:1.8rem 1rem;background:#fff;border-bottom:3px solid var(--coral)}
.stat .ic{font-size:2.2rem;color:var(--coral);stroke-width:1.4}
.stat b{display:block;font-family:var(--f-head);font-size:2.5rem;color:var(--navy);line-height:1.1;font-weight:600;margin-top:.4rem}
.stat span{font-size:.94rem}
@media (max-width:860px){ .stats{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:420px){ .stats{grid-template-columns:minmax(0,1fr)} }

/* Accordion */
.acc{background:#fff;border:1px solid var(--line);margin-bottom:.8rem}
.acc summary{list-style:none;cursor:pointer;padding:1rem 1.3rem;display:flex;gap:1rem;align-items:center;font-family:var(--f-head);font-weight:500;font-size:1.06rem;color:var(--navy);line-height:1.35}
.acc summary::-webkit-details-marker{display:none}
.acc summary .n{color:var(--coral);font-weight:600;flex:none}
.acc summary::after{content:"+";margin-left:auto;font-size:1.45rem;color:var(--coral);line-height:1;flex:none}
.acc[open] summary{background:var(--navy);color:#fff}
.acc[open] summary .n{color:var(--coral-bright)}
.acc[open] summary::after{content:"\2212";color:#fff}
.acc .acc-b{padding:1rem 1.3rem 1.2rem;font-size:.97rem}

/* Navy card and sidebar */
.navy-card{background:var(--navy);color:#c3ccd8;padding:2.2rem 2rem;display:grid;gap:1rem;align-content:start}
.navy-card h3{color:#fff;font-size:1.5rem}
.navy-card .kicker{color:var(--coral-bright);margin:0}
.fee-line{display:flex;justify-content:space-between;align-items:baseline;gap:1rem;padding:.75rem 0;border-bottom:1px solid rgba(255,255,255,.12)}
.fee-line b{font-family:var(--f-head);color:#fff;font-weight:600;white-space:nowrap}
.side{background:#fff;box-shadow:0 14px 40px rgba(22,37,66,.1);position:sticky;top:110px}
.side h3{background:var(--navy);color:#fff;padding:1.1rem 1.5rem;font-size:1.2rem}
.side dl{margin:0;padding:.3rem 1.5rem 1rem}
.side dl div{display:flex;justify-content:space-between;gap:1rem;padding:.78rem 0;border-bottom:1px solid var(--line);font-size:.94rem}
.side dt{color:var(--navy);font-weight:500;display:flex;gap:.55rem;align-items:center;flex:none}
.side dt .ic{color:var(--coral);font-size:1.1rem}
.side dd{margin:0;text-align:right}
.side dd a{color:var(--coral)}
.side .btn{margin:0 1.5rem 1.5rem;justify-content:center;display:flex}
@media (max-width:920px){ .side{position:static} }

/* Image band (diplomacy) */
.band-img{position:relative;background-size:cover;background-position:center 70%;color:#fff;text-align:center}
.band-img::before{content:"";position:absolute;inset:0;background:rgba(13,24,42,.84)}
.band-img .wrap{position:relative}
.band-img h2{color:#fff}
.band-img p{color:rgba(255,255,255,.86)}
.ring{width:112px;height:112px;border-radius:50%;background:var(--coral);display:grid;place-content:center;margin:0 auto 2.2rem;box-shadow:0 0 0 14px rgba(240,114,79,.28),0 0 0 28px rgba(240,114,79,.12);font-family:var(--f-head);line-height:1.1}
.ring b{font-size:2.3rem;font-weight:600}
.ring span{font-size:.8rem}
.chips{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin-top:2rem}
.chips a{border:1px solid rgba(255,255,255,.42);padding:.55rem 1.05rem;font-size:.93rem;transition:background .2s,border-color .2s}
.chips a:hover{background:var(--coral);border-color:var(--coral)}

/* Finder */
.finder{background:var(--navy);padding:1.6rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1rem;align-items:end}
#fd-reset::after{content:"\21BA"}
.fd-btns{grid-column:1 / -1;display:flex;flex-wrap:wrap;justify-content:center;gap:.8rem;padding-top:.4rem}
@media (min-width:1100px){ .finder{grid-template-columns:repeat(6,minmax(0,1fr))} }
.finder label{display:block;color:#fff;font-size:.86rem;margin-bottom:.4rem;font-weight:500}
.finder select{width:100%;padding:.85rem .9rem;border:0;font:inherit;color:var(--navy);background:#fff;border-radius:0}
@media (max-width:860px){ .finder{grid-template-columns:1fr 1fr} }
@media (max-width:520px){ .finder{grid-template-columns:minmax(0,1fr)} }
.f-count{margin-top:1.4rem;font-size:.95rem}
.results{margin-top:1rem;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem;align-items:stretch}
@media (max-width:980px){ .results{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:620px){ .results{grid-template-columns:minmax(0,1fr)} }
.res{display:flex;flex-direction:column;background:#fff;box-shadow:0 16px 34px -26px rgba(22,37,66,.55);transition:transform .25s,box-shadow .25s;min-width:0;overflow:hidden;border-radius:6px}
.res:hover{transform:translateY(-4px);box-shadow:0 24px 44px -26px rgba(22,37,66,.6)}
.res-band{position:relative;display:flex;align-items:center;gap:.7rem;padding:.85rem 1.15rem;min-height:4.1rem;color:#fff;background:linear-gradient(120deg,var(--c1),var(--c2));overflow:hidden}
.res-band::before{content:"";position:absolute;inset:0;background-image:radial-gradient(rgba(255,255,255,.16) 1px,transparent 1.2px);background-size:14px 14px;pointer-events:none}
.res-ic{position:relative;display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:#fff;color:var(--ic);box-shadow:0 4px 10px -4px rgba(0,0,0,.35);font-size:1.32rem;flex:none}
.res-ic .ic{stroke-width:2}
.res-kind{position:relative;font-family:var(--f-head);font-weight:600;font-size:.78rem;letter-spacing:.1em;text-transform:uppercase;line-height:1.25}
.res-feat{position:relative;margin-left:auto;font-style:normal;background:#fff;color:var(--coral);font-size:.66rem;font-weight:600;letter-spacing:.07em;text-transform:uppercase;padding:.16rem .5rem;border-radius:3px;flex:none}
.res .res-bg{position:absolute;right:-.6rem;bottom:-1.1rem;width:4.6rem;height:4.6rem;color:rgba(255,255,255,.13);stroke-width:1.2;pointer-events:none}
.res-feat + .res-bg{right:auto;left:62%}
.res-body{display:flex;flex-direction:column;gap:.45rem;padding:1.05rem 1.2rem 1rem;flex:1;border:1px solid var(--line);border-top:0;border-radius:0 0 6px 6px}
.res b{display:block;font-family:var(--f-head);color:var(--navy);font-weight:600;font-size:1.1rem;line-height:1.3}
.res small{color:var(--muted);font-size:.86rem;line-height:1.45;display:block}
.res-go{margin-top:auto;padding-top:.7rem;color:var(--c2);font-weight:600;font-size:.9rem;display:flex;align-items:center;gap:.4rem}
.res-go::after{content:"\2192";transition:transform .2s}
.res:hover .res-go::after{transform:translateX(3px)}

/* Steps */
.steps{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:1rem;position:relative}
.steps::before{content:"";position:absolute;top:28px;left:10%;right:10%;border-top:2px dashed #c6d4e5}
.step{text-align:center;position:relative;display:grid;gap:.3rem;align-content:start}
.step .num-c{width:56px;height:56px;margin:0 auto .7rem;box-shadow:0 0 0 8px var(--sky)}
.sec:not(.sky) .step .num-c{box-shadow:0 0 0 8px #fff}
.step h4{font-size:1.08rem}
.step p{font-size:.9rem}
@media (max-width:860px){ .steps{grid-template-columns:1fr 1fr;row-gap:2rem} .steps::before{display:none} }
.steps.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:860px){ .steps.four{grid-template-columns:1fr 1fr} }
@media (max-width:480px){ .steps,.steps.four{grid-template-columns:minmax(0,1fr)} }
.flag{display:grid;grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr);background:var(--sky);border-top:4px solid var(--coral);margin-bottom:3rem}
.sec.sky .flag{background:#fff}
.flag-media{position:relative}
a.flag-media,a.cc-media{display:block;color:inherit}
a.flag-media .cover,a.cc-media .cover{transition:filter .25s}
a.flag-media .cover-ic,a.cc-media .cover-ic{transition:transform .35s ease}
a.flag-media:hover .cover,a.cc-media:hover .cover{filter:brightness(1.1)}
a.flag-media:hover .cover-ic,a.cc-media:hover .cover-ic{transform:scale(1.06)}
.t-link{color:inherit;transition:color .2s}
.t-link:hover{color:var(--coral)}
.flag-media .cover{aspect-ratio:auto;height:100%;min-height:300px}
.flag-media .cover .cover-ic{width:26%}
.flag .cc-badge{bottom:1.2rem}
.flag-body{padding:clamp(1.4rem,3vw,2.4rem);display:grid;gap:.85rem;align-content:start;min-width:0}
.flag-body h3{font-size:clamp(1.4rem,2.4vw,1.85rem);line-height:1.2}
.flag-sub{color:var(--steel);font-weight:500;margin-top:-.35rem}
.flag-foot{display:flex;justify-content:space-between;align-items:center;gap:1rem;flex-wrap:wrap;margin-top:.5rem}
.sub-h{font-size:1.35rem;margin:0 0 1.4rem}
@media (max-width:860px){ .flag{grid-template-columns:minmax(0,1fr)} .flag-media .cover{min-height:0;aspect-ratio:16/8} }
.ip{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));background:var(--navy);color:#c8d3e3;border-top:4px solid var(--coral);margin-bottom:3rem}
.ip > div{padding:1.6rem 1.7rem;display:grid;gap:.55rem;align-content:start;min-width:0}
.ip > div + div{border-left:1px solid rgba(255,255,255,.13)}
.ip h3{color:#fff;font-size:1.12rem;display:flex;align-items:center;gap:.6rem}
.ip h3 .ic{color:var(--coral-bright);font-size:1.45rem}
.ip p{font-size:.95rem;line-height:1.6}
.ip strong{color:#fff}
.ip.ip2{grid-template-columns:repeat(2,minmax(0,1fr))}
.ip h3.ip-sub{margin-top:.75rem;padding-top:1.05rem;border-top:1px solid rgba(255,255,255,.13)}
.dc-intro{display:grid;grid-template-columns:minmax(0,1.15fr) minmax(0,.85fr);gap:clamp(2rem,5vw,4rem);align-items:stretch;margin-bottom:2.4rem}
.dc-text h2{margin-bottom:1rem}
.dc-text p + p{margin-top:1rem}
.dc-text .lede{color:var(--navy);font-weight:500}
.dc-photo{position:relative;margin:0;min-height:420px;border-radius:14px;overflow:hidden;border:5px solid var(--coral-bright);background:var(--img-group,var(--img-dusk)) var(--pos,60% 60%)/cover}
.dc-photo figcaption{position:absolute;left:1rem;bottom:1rem;display:inline-flex;align-items:center;gap:.5rem;background:var(--navy);color:#fff;font-family:var(--f-head);font-weight:500;font-size:.95rem;padding:.55rem .9rem;border-radius:999px}
.dc-photo figcaption .ic{color:var(--coral-bright);font-size:1.15rem}
.kfig{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:1rem;margin-bottom:2.4rem}
.kfig > div{background:var(--sky);border-bottom:3px solid var(--coral);padding:1.2rem .9rem 1.1rem;text-align:center;display:grid;justify-items:center;gap:.25rem;min-width:0}
.kfig .ic{font-size:1.7rem;color:var(--coral);stroke-width:1.5}
.kfig b{font-family:var(--f-head);font-size:1.75rem;line-height:1.1;color:var(--navy);font-weight:600;white-space:nowrap}
.kfig span{font-size:.88rem;line-height:1.35}
@media (max-width:1100px){ .kfig{grid-template-columns:repeat(3,minmax(0,1fr))} }
@media (max-width:920px){ .dc-intro{grid-template-columns:minmax(0,1fr)} .dc-photo{min-height:300px} }
@media (max-width:480px){ .kfig{grid-template-columns:repeat(2,minmax(0,1fr))} .kfig b{font-size:1.45rem} }
@media (max-width:860px){ .ip,.ip.ip2{grid-template-columns:minmax(0,1fr)} .ip > div + div{border-left:0;border-top:1px solid rgba(255,255,255,.13)} }
.visit-head{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1rem}
.visit-head .price{white-space:nowrap;padding-top:1.1rem}
.flag-next{display:flex;align-items:center;gap:.5rem;font-weight:500;color:var(--navy)}
.flag-next .ic{color:var(--coral);font-size:1.15rem}
.fund{background:#fff;border:1px solid var(--line);border-left:4px solid var(--coral);padding:1.5rem 1.7rem;display:grid;gap:.6rem}
.sec:not(.sky) .fund{background:var(--sky);border-color:transparent;border-left-color:var(--coral)}
.fund h3{font-size:1.12rem;display:flex;align-items:center;gap:.55rem}
.fund h3 .ic{color:var(--coral);font-size:1.3rem}
.fund a{color:var(--coral);font-weight:500;text-decoration:underline;text-underline-offset:3px}
.date-rows{display:grid;gap:.5rem;margin-top:.55rem}
.date-row{display:flex;align-items:center;gap:.7rem;padding:.65rem .9rem;background:#fff;border:1px solid var(--line);color:var(--navy);font-weight:500;transition:border-color .2s,background .2s}
.sec:not(.sky) .flag .date-row{background:#fff}
.date-row .ic{color:var(--coral);font-size:1.1rem}
.date-row .more{margin-left:auto;font-size:.88rem}
.date-row:hover{border-color:var(--coral);background:var(--coral-soft)}
.date-row.is-full,.date-row.is-full:hover,.side .date-row.is-full{background:#f3f5f8;border-color:var(--line);color:var(--muted);cursor:default}
.date-row.is-full span:nth-of-type(1){text-decoration:line-through}
.full-tag{margin-left:auto;color:var(--coral);font-weight:600;font-size:.76rem;text-transform:uppercase;letter-spacing:.06em}
.full-note{display:flex;align-items:center;gap:.4rem;color:var(--coral);font-weight:500;font-size:.88rem;margin-top:.3rem}
.side .date-row{background:var(--sky)}
.gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:.8rem}
.gallery figure{margin:0}
.gallery .cover{aspect-ratio:4/3}
.gallery .cover .cover-lbl{font-size:.72rem;letter-spacing:.1em}
.gallery .cover .cover-ic{width:34%}
.dayplan{display:grid;grid-template-columns:minmax(0,1fr);gap:1rem;max-width:900px;margin-inline:auto;position:relative}
.dayplan::before{content:"";position:absolute;left:calc(1.4rem + 22px);top:1.5rem;bottom:1.5rem;border-left:2px dashed #c6d4e5}
.day{position:relative}
.day{display:flex;gap:1rem;align-items:flex-start;background:var(--sky);padding:1.4rem 1.4rem 1.5rem;border-top:3px solid var(--coral)}
.day .num-c{width:46px;height:46px;font-size:.95rem}
.day h3{font-size:1.12rem;margin-bottom:.5rem}
.day ul{display:grid;gap:.35rem;font-size:.93rem;list-style:disc;padding-left:1.1rem}
ul.plain{display:grid;gap:.5rem;list-style:disc;padding-left:1.1rem;font-size:.95rem}
.box.org{flex-direction:row;align-items:flex-start;gap:1rem;padding:1.3rem 1.3rem}
.box.org .icc{width:48px;height:48px;font-size:1.3rem}
.box.org h3{font-size:1.05rem;margin-bottom:.3rem}
.box.org p{font-size:.9rem}
@media (max-width:560px){ .gallery{grid-template-columns:repeat(2,minmax(0,1fr))} .gallery figure:last-child{display:none} }
.split-head{display:flex;justify-content:space-between;align-items:flex-end;gap:1rem 2rem;flex-wrap:wrap;margin-bottom:2.4rem}
.split-head .sec-head{margin-bottom:0}
.how{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr);gap:clamp(2rem,5vw,4.5rem);align-items:center}
.how .sec-head{margin-bottom:1.6rem}
.how .prose p{font-size:1.04rem}
.how .prose strong,.about .prose strong{color:var(--navy)}
.roles{display:grid;gap:.75rem}
.role-reg{display:flex;align-items:center;justify-content:space-between;gap:1rem 1.4rem;flex-wrap:wrap;margin-top:.6rem;padding:1.3rem 1.4rem;background:var(--coral);color:#fff}
.role-reg h3{color:#fff;font-size:1.22rem;margin-bottom:.25rem}
.role-reg p{font-size:.92rem;opacity:.95;max-width:38ch;line-height:1.5}
.role-reg .btn{background:#fff;border-color:#fff;color:var(--coral)}
.role-reg .btn:hover{background:var(--navy);border-color:var(--navy);color:#fff}
.eps-reg{display:grid;box-shadow:0 26px 50px -34px rgba(22,37,66,.6)}
.eps-reg .cc-media .cover{aspect-ratio:16/6.2}
.eps-reg-box{background:var(--navy);color:#c8d3e3;padding:1.5rem 1.6rem 1.6rem;border-left:5px solid var(--coral);display:grid;gap:.9rem}
.eps-reg-box .kicker{color:var(--coral-bright);margin:0}
.eps-reg-box h3{color:#fff;font-size:1.3rem;margin-top:-.3rem}
.eps-facts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.8rem 1.2rem}
.eps-facts li{display:flex;gap:.65rem;align-items:flex-start;font-size:.88rem;line-height:1.4}
.eps-facts .ic{color:var(--coral-bright);font-size:1.2rem;margin-top:.1rem}
.eps-facts b{display:block;color:#fff;font-family:var(--f-head);font-weight:600;font-size:1.05rem}
.eps-reg-foot{display:flex;align-items:center;gap:.8rem 1.2rem;flex-wrap:wrap;padding-top:1rem;border-top:1px solid rgba(255,255,255,.12)}
.eps-reg-foot p{font-size:.85rem;flex:1;min-width:14rem;line-height:1.45}
@media (max-width:460px){ .eps-facts{grid-template-columns:minmax(0,1fr)} }
.roles-h{font-size:1.3rem;margin-bottom:.35rem}
.role{display:flex;gap:1rem;align-items:center;background:var(--navy);color:#fff;padding:1rem 1.25rem;border-left:4px solid var(--coral);transition:transform .2s}
.role:hover{transform:translateX(4px)}
.role .ri{flex:none;width:46px;height:46px;border-radius:50%;background:var(--coral);display:grid;place-items:center;font-size:1.3rem}
.role b{display:block;font-family:var(--f-head);font-weight:600;font-size:1.06rem;line-height:1.3}
.role div span{display:block;font-size:.9rem;color:#c8d3e3;margin-top:.15rem;line-height:1.5}
.box.navy-box{background:var(--navy)!important;border-color:var(--navy)!important;color:#c8d3e3}
.box.navy-box h3{color:#fff}
@media (max-width:920px){ .how{grid-template-columns:minmax(0,1fr)} }
@media (prefers-reduced-motion:reduce){ .role{transition:none} .role:hover{transform:none} }

/* Newsletter band */
.news{background:var(--coral);color:#fff}
.news .wrap{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:2rem;align-items:center;padding-block:3.3rem}
.news h2{color:#fff;font-size:clamp(1.6rem,3vw,2.2rem)}
.news p{opacity:.92;margin-top:.4rem}
.news form{display:flex;background:#fff;padding:.4rem;gap:.4rem}
.news input{flex:1;border:0;padding:.9rem 1rem;font:inherit;min-width:0;color:var(--navy);outline:none}
.news .btn{background:var(--navy);border-color:var(--navy)}
.news .btn:hover{background:var(--dark);border-color:var(--dark)}
.news .err{color:#fff;font-weight:500;font-size:.85rem;margin-top:.5rem}
@media (max-width:820px){ .news .wrap{grid-template-columns:minmax(0,1fr)} }
@media (max-width:440px){ .news form{flex-direction:column} .news .btn{justify-content:center} }

/* Tables */
.tbl{overflow-x:auto;background:#fff;border:1px solid var(--line)}
table{border-collapse:collapse;width:100%;font-size:.95rem}
th{background:var(--navy);color:#fff;font-family:var(--f-head);font-weight:500;text-align:left;padding:.85rem 1rem;white-space:nowrap}
td{padding:.8rem 1rem;border-bottom:1px solid var(--line);vertical-align:top}
tr:last-child td{border-bottom:0}
tbody tr:nth-child(even) td{background:#f8fbff}
td.num,th.num{display:table-cell;text-align:right;font-variant-numeric:tabular-nums;white-space:nowrap}
td b{color:var(--navy);font-weight:500}

/* Block-model month grid */
.mgrid{display:grid;grid-template-columns:auto repeat(7,minmax(0,1fr)) 10px repeat(7,minmax(0,1fr)) 10px repeat(7,minmax(0,1fr));gap:3px;align-items:center;font-size:.6rem;color:var(--muted)}
.mgrid .gt{grid-column:span 7;font-family:var(--f-head);font-size:.8rem;font-weight:600;color:var(--navy);padding-bottom:.15rem;border-bottom:1px solid var(--line);margin-bottom:.15rem;white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.mgrid .dl{text-align:center}
.mgrid .wl{padding-right:.35rem;white-space:nowrap}
.cell{aspect-ratio:1;border:1px solid var(--line);position:relative;background:#fff}
.cell.campus{background:var(--navy);border-color:var(--navy)}
.cell.practice{background:repeating-linear-gradient(135deg,var(--coral-bright) 0 2px,#fff 2px 5px);border-color:var(--coral-bright)}
.cell.evening::after{content:"";position:absolute;inset:25%;border-radius:50%;background:var(--coral)}
.mgrid.big{font-size:.72rem}
.mgrid.big .gt{font-size:.92rem}
.legend{display:flex;flex-wrap:wrap;gap:.45rem 1.1rem;font-size:.8rem;color:var(--text)}
.legend span{display:inline-flex;align-items:center;gap:.45rem}
.legend i{width:13px;height:13px;display:inline-block;border:1px solid var(--line);position:relative;background:#fff}
.mcard{background:#fff;border:1px solid var(--line);padding:1.4rem;display:grid;gap:1rem}

/* ECTS bar and curriculum wall */
.ects-bar{display:flex;height:50px;overflow:hidden;border:1px solid var(--line)}
.ects-bar span{display:flex;align-items:center;justify-content:center;font-family:var(--f-head);font-weight:600;font-size:.85rem;color:var(--navy);min-width:0;overflow:hidden;white-space:nowrap}
.ects-legend{display:grid;grid-template-columns:repeat(auto-fill,minmax(230px,1fr));gap:.55rem 1.6rem;margin-top:1.1rem;font-size:.92rem}
.ects-legend div{display:flex;gap:.55rem;align-items:baseline}
.ects-legend i{width:13px;height:13px;flex:none;border:1px solid var(--line);transform:translateY(1px)}
.ects-legend b{font-family:var(--f-head);font-weight:600;color:var(--navy);margin-left:auto;padding-left:.5rem}
.t-core{background:var(--sky-2)}
.t-shared{background:var(--sky-2)}
.t-spec.ai{background:#dde6f6}
.t-spec.inn{background:#d9efe9}
.t-spec.edu{background:#f1e0ec}
.t-prog{background:linear-gradient(90deg,#dde6f6 0 33.3%,#d9efe9 33.3% 66.6%,#f1e0ec 66.6%)}
.t-practice,.t-project{background:var(--coral-soft)}
.t-mobility{background:repeating-linear-gradient(135deg,#d5e2f1 0 5px,#fff 5px 10px)}
.t-mooc,.t-elective{background:#fff;border-style:dashed!important}
.t-intern{background:#eceff3}
.t-thesis{background:var(--navy);color:#fff!important}
.wall-wrap{display:grid;gap:1.2rem}
.wall{display:grid;grid-template-columns:repeat(var(--cols),minmax(0,1fr));gap:8px;align-items:start}
.sem{display:flex;flex-direction:column;gap:4px;min-width:0}
.sem-h{display:flex;flex-wrap:wrap;gap:0 .5rem;justify-content:space-between;align-items:baseline;font-family:var(--f-head);font-weight:600;font-size:.85rem;color:var(--navy);padding-bottom:.35rem;border-bottom:2px solid var(--coral);margin-bottom:.2rem}
.sem-h span{white-space:nowrap}
.sem-h span + span{color:var(--muted);font-weight:500}
.mod{appearance:none;-webkit-appearance:none;margin:0;font:inherit;text-align:left;display:flex;flex-direction:column;justify-content:space-between;gap:2px;height:calc(var(--e) * 12px - 4px);padding:4px 8px;border:1px solid var(--line);font-size:.76rem;line-height:1.22;cursor:pointer;overflow:hidden;color:var(--navy)}
.mod:hover{border-color:var(--coral)}
.mod[aria-pressed="true"]{outline:2px solid var(--coral);outline-offset:1px}
.mod .mn{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.mod .me{font-size:.64rem;opacity:.75}
.mod.short{flex-direction:row;align-items:center;padding-block:2px}
.mod.short .mn{-webkit-line-clamp:1}
.mod.short .me{margin-left:auto;white-space:nowrap}
.detail{background:#fff;border:1px solid var(--line);border-top:3px solid var(--coral);padding:1.3rem 1.4rem;display:grid;gap:.55rem;max-width:780px}
.detail h4{font-size:1.25rem}
.detail .dk{font-size:.82rem;text-transform:uppercase;letter-spacing:.07em;color:var(--coral);font-weight:500}
@media (max-width:760px){
  .wall{grid-template-columns:minmax(0,1fr)}
  .mod{height:auto;flex-direction:row;align-items:baseline;gap:.75rem;padding:.6rem .75rem;font-size:.88rem}
  .mod .mn{-webkit-line-clamp:3}
  .mod .me{margin-left:auto;white-space:nowrap}
  .sem{gap:5px;margin-bottom:.9rem}
}

/* Session plan and day programmes */
.months{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.2rem}
.months.four{grid-template-columns:repeat(4,minmax(0,1fr))}
@media (max-width:1100px){ .months.four{grid-template-columns:repeat(2,minmax(0,1fr))} }
.months > div{background:#fff;padding:1.3rem 1.3rem 1.1rem;border-top:3px solid var(--navy);min-width:0}
.months > .async{border-top:3px dashed var(--coral)}
.months .async .check{display:grid;gap:.6rem}
.months .async .check li{display:block;font-size:.94rem;line-height:1.45;color:var(--navy)}
.months h4{font-size:1rem;text-transform:uppercase;letter-spacing:.08em;color:var(--coral);margin-bottom:.7rem}
.months ol{display:grid;gap:.6rem}
.months li{display:grid;grid-template-columns:2.2rem minmax(0,1fr);gap:.4rem;font-size:.94rem;line-height:1.45;color:var(--navy)}
.months li .no{font-family:var(--f-head);font-weight:600;color:var(--coral)}
.pill{display:inline-block;font-size:.66rem;text-transform:uppercase;letter-spacing:.07em;background:var(--coral-soft);color:var(--coral);padding:.05rem .45rem;margin-left:.3rem;vertical-align:.1em;font-weight:500}
.pill.g{background:#ebe7fb;color:#4b3f9e}
.pill.w{background:#fbeccb;color:#7a4e00}
.pill.v{background:#dcf1e7;color:#16633f}
.sess-at{display:flex;align-items:center;gap:.3rem;margin-top:.2rem;font-size:.82rem;color:#16633f;line-height:1.35}
.sess-at .ic{flex:none}
.fmt-key{display:flex;flex-wrap:wrap;gap:.6rem 1.6rem;margin:-1.4rem 0 1.6rem;font-size:.9rem;color:var(--navy)}
.fmt-key span{display:inline-flex;align-items:center;gap:.1rem}
.fmt-key .pill{font-style:normal;margin:0 .45rem 0 0}
@media (max-width:860px){ .months{grid-template-columns:repeat(2,minmax(0,1fr))} }
@media (max-width:540px){ .months{grid-template-columns:minmax(0,1fr)} }
.days{display:grid;border-top:1px solid var(--line)}
.days li{display:grid;grid-template-columns:4.8rem minmax(0,1fr);gap:.8rem;padding:.6rem 0;border-bottom:1px solid var(--line);font-size:.94rem;line-height:1.45}
.days li span:first-child{font-family:var(--f-head);font-weight:600;color:var(--coral)}
.days.wide li{grid-template-columns:5.6rem minmax(0,1fr)}
.upsell{grid-column:1 / -1;display:flex;flex-wrap:wrap;justify-content:space-between;align-items:center;gap:1.1rem 2rem;background:#fff;border:1px solid var(--line);border-left:5px solid var(--coral);padding:1.4rem 1.6rem}
.upsell > div:first-child{flex:1 1 380px;display:grid;gap:.4rem;min-width:0}
.upsell h3{font-size:1.2rem;display:flex;align-items:center;gap:.55rem}
.upsell h3 .ic{color:var(--coral);font-size:1.3rem}
.upsell p a{color:var(--coral);font-weight:500}
.part .icc{width:54px;height:54px;font-size:1.45rem}
.part-head{display:flex;align-items:center;justify-content:space-between;gap:1rem}
.part .check li{font-size:.94rem;line-height:1.5}
.part-foot{display:flex;justify-content:space-between;align-items:center;gap:.5rem 1rem;flex-wrap:wrap;margin-top:auto;padding-top:.9rem;border-top:1px solid var(--line);font-size:.9rem}
.part-foot b{color:var(--navy);font-weight:500}
.yr-box{background:#fff;border:1px solid var(--line);border-top:3px solid var(--navy);padding:1.5rem 1.5rem 1.2rem;display:grid;gap:.7rem;align-content:start;min-width:0}
.yr-box h3{font-size:1.2rem}
.yr-box .yr-sub{font-size:.9rem;color:var(--muted);margin-top:-.4rem}
.tbl tr.tot td{background:var(--sky);font-weight:500;color:var(--navy)}
.tbl tr.hl td{background:var(--coral-soft);font-weight:500;color:var(--navy)}
.price{font-family:var(--f-head);font-weight:600;font-size:1.7rem;color:var(--navy);line-height:1}
.price small{font-size:.85rem;font-weight:500;color:var(--muted)}

/* Pathways */
.paths{display:grid;gap:1rem}
.path{display:grid;grid-template-columns:minmax(0,1fr) 56px minmax(0,1fr);align-items:stretch}
.path .arrow{display:grid;place-items:center;color:var(--coral);font-size:1.5rem}
.path a{display:grid;gap:.35rem;background:#fff;padding:1.15rem 1.3rem;min-width:0;border-bottom:3px solid transparent;transition:border-color .2s,box-shadow .2s}
.sec:not(.sky) .path a{background:var(--sky)}
.path a:hover{border-color:var(--coral);box-shadow:0 12px 28px rgba(22,37,66,.08)}
.path a b{font-family:var(--f-head);font-weight:600;font-size:1.13rem;line-height:1.25;color:var(--navy)}
.path a small{font-size:.86rem;color:var(--muted)}
.path .lvl{font-size:.75rem;text-transform:uppercase;letter-spacing:.08em;color:var(--coral);font-weight:500}
@media (max-width:640px){ .path{grid-template-columns:minmax(0,1fr)} .path .arrow{height:30px;transform:rotate(90deg)} }

/* Forms */
.form{display:grid;gap:1.1rem}
.field{display:grid;gap:.4rem}
.field label{font-weight:500;font-size:.95rem;color:var(--navy)}
input,select,textarea{font:inherit;color:var(--navy);background:#fff;border:1px solid var(--line);padding:.85rem .95rem;width:100%;min-width:0;border-radius:0}
.sec.sky input,.sec.sky select,.sec.sky textarea{border-color:#d3dfee}
input:focus,select:focus,textarea:focus{border-color:var(--coral);outline:2px solid rgba(205,76,42,.2);outline-offset:0}
textarea{min-height:120px;resize:vertical}
.cbx{display:flex;gap:.65rem;align-items:flex-start;font-size:.92rem}
.cbx input{width:18px;height:18px;margin-top:.22rem;flex:none;accent-color:var(--coral)}
.err{color:#b3261e;font-size:.82rem;font-weight:500}
.field.invalid input,.field.invalid select{border-color:#b3261e}
.summary-box{font-family:ui-monospace,Menlo,Consolas,monospace;font-size:.84rem;white-space:pre-wrap;background:var(--sky);border:1px solid var(--line);padding:1rem;max-height:320px;overflow:auto;color:var(--navy)}
.contact-list{display:grid;gap:1.2rem}
.contact-list li{display:flex;gap:1rem;align-items:flex-start}
.contact-list .icc{width:52px;height:52px;font-size:1.3rem}
.one-line{white-space:nowrap}
@media (min-width:1000px){ .sec-head.wide{max-width:none} .sec-head.wide .lede{max-width:none} .sec-head:has(.one-line-h){max-width:none} .sec-head:has(.one-line-h) .lede{max-width:none} .one-line-h{white-space:nowrap;font-size:clamp(1.6rem,2.5vw,2.25rem)} }
@media (max-width:1279px){ .one-line{white-space:normal} }
.contact-list b{display:block;color:#fff;font-family:var(--f-head);font-weight:500}
.copy-btn{font:inherit;font-size:.78rem;font-weight:500;padding:.2rem .55rem;border:1px solid rgba(255,255,255,.4);background:transparent;color:#fff;cursor:pointer;margin-left:.5rem}

/* Footer */
.footer{background:var(--dark);color:#98a4b3;font-size:.95rem}
.f-top{display:grid;grid-template-columns:minmax(0,1.4fr) minmax(0,1fr) minmax(0,1fr);gap:2.5rem;padding-block:5rem 3.4rem}
@media (max-width:980px){ .f-top{grid-template-columns:repeat(2,minmax(0,1fr))} .f-top > div:first-child{grid-column:1/-1} }
@media (max-width:560px){ .f-top{grid-template-columns:minmax(0,1fr)} }
.footer h4{color:#fff;font-size:1.22rem;margin-bottom:1.4rem;padding-bottom:.8rem;position:relative}
.footer h4::after{content:"";position:absolute;left:0;bottom:0;width:42px;height:2px;background:var(--coral-bright)}
.footer ul{display:grid;gap:.55rem}
.footer a{transition:color .2s}
.footer a:hover{color:var(--coral-bright)}
.footer .lw b{color:#fff}
.footer .lw em{color:var(--coral-bright)}
.footer .lw small{color:#9fb0c6}
.f-contact li{display:flex;gap:.8rem;align-items:flex-start}
.f-contact .ic{color:var(--coral-bright);font-size:1.2rem;margin-top:.25rem}
.f-bottom{border-top:1px solid rgba(255,255,255,.08)}
.f-bottom .wrap{padding-block:1.5rem 2rem;display:grid;gap:.7rem;font-size:.82rem;color:#7d8a99}
.f-bottom .row{display:flex;justify-content:space-between;gap:1rem;flex-wrap:wrap;color:#a3aebb;font-size:.88rem}
.to-top{position:fixed;right:20px;bottom:calc(20px + env(safe-area-inset-bottom,0px));width:48px;height:48px;background:var(--coral);color:#fff;border:0;display:grid;place-items:center;cursor:pointer;z-index:40;opacity:0;visibility:hidden;transition:opacity .25s,visibility .25s,background .2s;font-size:1.3rem}
.to-top.show{opacity:1;visibility:visible}
.to-top:hover{background:var(--navy)}
#accreditation,#about,#offer{scroll-margin-top:110px}
.fade{animation:fade .45s ease both}
@keyframes fade{from{opacity:.4;transform:translateY(8px)}to{opacity:1;transform:none}}
@media (prefers-reduced-motion: reduce){ *,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important} }
