/* ============================================================
   Yucatan Invitational -- consolidated stylesheet
   Merged from home.css, sponsors.css, gallery.css (Aug 2026).
   Shared rules live at the top, unscoped.
   Rules that differed between pages are scoped under the
   body.page-home / body.page-sponsors / body.page-gallery
   classes so every page renders exactly as it did before.
   ============================================================ */

:root{--navy:#0E2A3F; --navy-2:#16344B; --navy-3:#1E4562;
  --sand:#F6D74C; --sand-lt:#FBE795; --red:#EE342E;
  --cream:#FAF7F0; --cream-2:#F1EBDD;
  --jungle:#1E8A4B;
  --ink:#0d1b24; --muted:#5b5b5b;
  --serif:"Noto Serif",serif;
  --sans:"Inter",Helvetica,Arial,sans-serif;
  --maxw:1180px}

/* ---------- shared base, nav, footer, components ---------- */
*{box-sizing:border-box;margin:0;padding:0}
:focus-visible{outline:none!important}
html{scroll-behavior:smooth}
body{font-family:var(--sans);font-weight:400;color:var(--ink);background:var(--cream);line-height:1.65;-webkit-font-smoothing:antialiased}
.wrap{max-width:var(--maxw);margin:0 auto;padding:0 28px}
h1,h2,h3,.dsp{font-family:var(--serif);font-weight:500;line-height:1.12;letter-spacing:.01em}
a{color:inherit}
.eyebrow.dark{color:#A8801A}
.ph{position:relative;background:
  repeating-linear-gradient(135deg,rgba(30,69,98,.045) 0 12px,rgba(30,69,98,.085) 12px 24px),
  linear-gradient(160deg,#DCE6EC,#C3D3DC 60%,#AFC4CF);
  border:1px solid rgba(14,42,63,.16);display:flex;align-items:center;justify-content:center;
  text-align:center;overflow:hidden}
.ph span{font-family:var(--sans);font-size:.66rem;letter-spacing:.14em;text-transform:uppercase;
  color:#41616F;padding:10px 16px;background:rgba(250,247,240,.82);border:1px dashed rgba(14,42,63,.3);
  max-width:88%;line-height:1.5}
.nav{display:flex;align-items:center;justify-content:space-between;gap:20px;padding:14px 28px;max-width:var(--maxw);margin:0 auto}
.brand{font-family:var(--serif);color:#fff;font-size:1.12rem;letter-spacing:.09em;text-transform:uppercase;white-space:nowrap}
.brand small{display:block;font-family:var(--sans);font-size:.56rem;letter-spacing:.26em;color:var(--sand);margin-top:3px}
header{position:sticky;top:0;z-index:60;background:#fff;border-bottom:1px solid rgba(14,42,63,.10);box-shadow:0 6px 18px -10px rgba(14,42,63,.28)}
.navtoggle{display:none;align-items:center;gap:10px;background:var(--sand);border:1px solid var(--sand);color:#10222F;padding:13px 26px;font-size:.76rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;cursor:pointer;transition:.2s}
.navtoggle:hover{background:transparent;color:var(--navy)}
.navtoggle-icon{flex-shrink:0;display:block}
.menu{display:flex;align-items:center;gap:26px;list-style:none}
.menu a{color:#000;text-decoration:none;font-size:.79rem;letter-spacing:.05em;padding:6px 0;border-bottom:1px solid transparent;transition:.2s;white-space:nowrap}
.menu a:hover{color:var(--navy);border-color:var(--sand)}
.menu a.home-link{display:inline-flex;align-items:center;gap:7px}
.menu a.home-link img{display:block;width:18px;height:18px;object-fit:contain}
.menu li.home-item{display:none}
.btn{display:inline-block;background:var(--sand);color:#10222F;text-decoration:none;font-size:.76rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;padding:13px 26px;border:1px solid var(--sand);transition:.2s;white-space:nowrap}
.menu .btn{color:#10222F;font-size:.76rem;letter-spacing:.13em;padding:13px 26px;border:1px solid var(--sand)}
.btn:hover{background:transparent;color:var(--sand-lt)}
.btn.btn-invite:hover{background:var(--navy-2);color:var(--sand-lt);border-color:var(--sand)}
.btn.solid-dark{background:var(--navy);color:#fff;border-color:var(--navy)}
.btn.solid-dark:hover{background:transparent;color:var(--navy)}
.btn.ghost{background:transparent;color:var(--navy);border-color:rgba(14,42,63,.4)}
.btn.ghost:hover{background:var(--navy);color:#fff}
.btn.btn-outline-light{background:transparent;color:#DCE6EC;border-color:rgba(220,230,236,.45)}
.btn.btn-outline-light:hover{background:var(--navy-2);color:var(--sand-lt);border-color:var(--sand)}
.hero .ph{position:absolute;inset:0;border:0;opacity:.34}
.hero .yr{display:inline-block;color:var(--sand-lt);font-family:var(--serif);
  font-size:clamp(1.5rem,3vw,2.25rem);font-style:italic}
.hero .meta strong{color:#fff;font-weight:500}
.hero p.lede{color:#DCE6EC;font-size:1.06rem;max-width:560px;margin-top:26px;font-weight:400}
.hero .cta{margin-top:38px;display:flex;gap:14px;flex-wrap:wrap}
.rule{width:64px;height:2px;background:var(--sand)}
.proof{background:var(--navy-2);border-top:1px solid rgba(200,164,74,.3)}
.proof .grid{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}
.proof .cell{padding:34px 16px;border-right:1px solid rgba(255,255,255,.09)}
.proof .cell:last-child{border-right:0}
.proof .n{font-family:var(--serif);color:var(--sand-lt);font-size:1.7rem;line-height:1}
.proof .l{color:#B9C8D3;font-size:.68rem;letter-spacing:.17em;text-transform:uppercase;margin-top:10px}
.sec-head{max-width:760px}
.sec-head h2{font-size:clamp(2.1rem,4.2vw,2.7rem);margin:16px 0 0}
.sec-head p{color:var(--muted);margin-top:18px;font-size:1.05rem;font-weight:400}
.alt{background:var(--cream-2)}
.dark{background:var(--navy);color:#E7EEF3}
.dark h2,.dark h3{color:#fff}
.dark p{color:#B9C8D3}
.body-copy p{margin-top:18px;color:#3C4C56;font-size:1.05rem;font-weight:400}
.body-copy p:first-child{margin-top:0}
.body-list{margin-top:18px;padding-left:20px;color:#3C4C56;font-size:1.05rem;font-weight:400}
.body-list li{margin-top:9px;list-style:disc}
.days{display:grid;grid-template-columns:repeat(5,1fr);gap:1px;background:rgba(14,42,63,.16);margin-top:52px;border:1px solid rgba(14,42,63,.16)}
.day{background:var(--cream);padding:30px 22px;display:flex;flex-direction:column}
.day .dnum{font-size:.63rem;letter-spacing:.2em;text-transform:uppercase;color:var(--navy-3); font-weight: 500;}
.day h3{font-size:1.42rem;margin-top:8px}
.day .dsub{font-size:.74rem;letter-spacing:.1em;text-transform:uppercase;color:var(--muted);margin-top:4px}
.day .items{margin-top:20px;flex:1}
.day .it{padding:11px 0;border-top:1px solid rgba(14,42,63,.12);font-size:.87rem;font-weight:300;color:#3C4C56}
.day .it b{display:block;font-weight:600;color:var(--ink);font-size:.83rem;letter-spacing:.02em}
.day .dress{margin-top:16px;padding:10px 12px;background:rgba(200,164,74,.14);border-left:2px solid var(--sand);
  font-size:.72rem;color:#4A5A64;font-weight:300}
.day .dress b{display:block;font-weight:600;color:var(--ink);letter-spacing:.09em;text-transform:uppercase;font-size:.63rem;margin-bottom:3px}
.trk{margin-top:14px;margin-bottom:-2px}
.trk:first-child{margin-top:0}
.trk span{display:inline-block;font-size:.57rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase;padding:3px 9px}
.trk.golf span{background:rgba(30,69,98,.13);color:var(--navy-3)}
.trk.fam span{background:rgba(46,94,78,.15);color:var(--jungle)}
.trk.both span{background:rgba(200,164,74,.24);color:#7A6120}
.strip .ph:nth-child(1){aspect-ratio:1/1.35}
.strip .ph:nth-child(4){aspect-ratio:1/1.35}
.fees{display:grid;grid-template-columns:repeat(3,1fr);gap:22px;margin-top:52px}
.fee{background:#fff;border:1px solid rgba(14,42,63,.14);padding:38px 30px;display:flex;flex-direction:column}
.fee.feature{border:1px solid var(--sand);box-shadow:0 14px 42px -22px rgba(14,42,63,.5)}
.fee .ft{font-size:1rem;letter-spacing:.19em;text-transform:uppercase;color:var(--muted)}
.fee .amt{font-family:var(--serif);font-size:2.1rem;margin-top:12px;line-height:1;color:var(--navy)}
.fee .per{font-size:.74rem;color:var(--muted);letter-spacing:.09em;margin-top:8px}
.fee ul{list-style:none;margin-top:24px;flex:1}
.fee li{font-size:1rem;font-weight:400;color:#3C4C56;padding:9px 0 9px 22px;position:relative;border-top:1px solid rgba(14,42,63,.09)}
.fee li::before{content:"";position:absolute;left:0;top:16px;width:9px;height:9px;border:1px solid var(--sand);transform:rotate(45deg)}
.fee .newtag{display:inline-block;background:var(--red);color:#fff;font-size:.58rem;font-weight:600;
  letter-spacing:.18em;text-transform:uppercase;padding:4px 10px;margin-bottom:12px}
.note{margin-top:26px;font-size:.85rem;color:var(--muted);font-weight:400}
.duo{display:grid;grid-template-columns:1fr 1fr;gap:28px;margin-top:52px}
.card{background:#fff;border:1px solid rgba(14,42,63,.13);display:flex;flex-direction:column}
.card .ph{aspect-ratio:16/9.4}
.card .cbody{padding:32px 30px 34px}
.card h3{font-size:1.6rem;margin-top:6px}
.card p{margin-top:14px;color:#3C4C56;font-weight:400;font-size:.96rem}
.card .more{display:inline-block;margin-top:20px;font-size:.72rem;font-weight:600;letter-spacing:.15em;
  text-transform:uppercase;color:var(--navy);text-decoration:none;border-bottom:1px solid var(--sand);padding-bottom:3px}
.tiers{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:44px}
.tier{border:1px solid rgba(255,255,255,.18);padding:30px 26px;background:rgba(255,255,255,.035)}
.tier .tn{font-family:var(--serif);font-size:1.7rem;color:#fff}
.tier .tv{color:var(--sand-lt);font-size:1.02rem;margin-top:6px;letter-spacing:.05em}
.tier p{font-size:.87rem;margin-top:14px}
.charity{text-align:center;max-width:760px;margin:0 auto}
.close .cta{margin-top:34px;display:flex;gap:14px;justify-content:center;flex-wrap:wrap}
.fgrid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap}
footer a{color:#B9C8D3;text-decoration:none}
footer a:hover{color:var(--sand-lt)}
.concept b{color:var(--sand-lt);font-weight:600}
.back-to-top{position:fixed;right:28px;bottom:28px;width:48px;height:48px;border-radius:50%;
  background:var(--sand);border:3px solid #fff;padding:0;display:flex;align-items:center;justify-content:center;
  cursor:pointer;box-shadow:0 10px 26px -10px rgba(14,42,63,.6);
  opacity:0;visibility:hidden;transform:translateY(8px);transition:opacity .25s,transform .25s,visibility .25s,background .2s;z-index:80}
.back-to-top .btt-icon{width:22px;height:22px;fill:var(--navy);display:block}
.back-to-top.show{opacity:1;visibility:visible;transform:translateY(0)}
.back-to-top:hover{background:var(--sand-lt)}
.sp-aloha{background-image:url("../img/e31d4a0f8b29.png")}
.sp-aes{background-image:url("../img/9a4dc8a86af4.png")}
.sp-drillspec{background-image:url("../img/6df8e19f8e0a.png")}
.sp-valence{background-image:url("../img/e4d958e37b96.png")}
.sp-rocknroll{background-image:url("../img/039934518191.png")}
.sp-stewart{background-image:url("../img/3a7bfa91e658.png")}
.sp-paragon{background-image:url("../img/ba5b02447e6d.png")}
.wallsub{text-align:center;font-size:.82rem;color:#8FA3B0;font-weight:400;margin-top:8px}
.key span{display:flex;align-items:center;gap:9px;font-size:.78rem;color:#B9C8D3;font-weight:300}
.key i{width:11px;height:11px;flex:none;display:block}
.k-sold{background:#7E8B95}
.k-pending{background:var(--sand)}
.k-open{background:var(--jungle)}
.slot .who{margin-top:10px;font-size:.74rem;color:#DCE6EC;font-weight:500}
.slot.sold{background:rgba(255,255,255,.05);border-color:rgba(255,255,255,.16)}
.slot.sold .tag-sold{background:#7E8B95;color:#0E2A3F}
.slot.pending{background:rgba(246,215,76,.10);border-color:rgba(246,215,76,.45)}
.slot.pending .tag-pending{background:var(--sand);color:#10222F}
.slot.pending .sd{color:#C9BE94}
.slot.open{background:rgba(30,138,75,.16);border-color:rgba(30,138,75,.6)}
.slot.open .tag-open{background:var(--jungle);color:#fff}
.ph.shot{border:0}
.ph.shot span{display:none}
.hero .ph.shot{opacity:1}
.close .bg{position:absolute;inset:0;opacity:.30}
.close::after{content:"";position:absolute;inset:0;background:linear-gradient(140deg,rgba(11,34,51,.90),rgba(28,80,105,.82))}
.close .wrap{position:relative;z-index:3}
.sponsorstrip{grid-template-columns:repeat(3,1fr)!important}
.img-golf_hero{background:url("../img/59028067cdaf.jpg") center/cover no-repeat}
.img-sand_rm{background:url("../img/57175b58e09c.jpg") center/cover no-repeat}
.img-ev_intro{background:url("../img/8167bbf4011e.jpg") center/cover no-repeat}
.img-ev_junior{background:url("../img/040ed0b0ec5e.jpg") top center/cover no-repeat}
.img-ev_course{background:url("../img/6360838a35f0.jpg") top center/cover no-repeat}
.img-ev_beyond{background:url("../img/fc51c676758a.jpg") center/cover no-repeat}
.img-ev_g1{background:url("../img/4871b9a4c5d4.jpg") center/cover no-repeat}
.img-ev_g2{background:url("../img/a70254db89fa.jpg") center/cover no-repeat}
.img-ev_g3{background:url("../img/20ef79180b13.jpg") center/cover no-repeat}
.img-ev_g4{background:url("../img/3245d15d4163.jpg") center/cover no-repeat}
.img-ev_g5{background:url("../img/b08a2f8f6c19.jpg") center/cover no-repeat}
.img-ev_g6{background:url("../img/367933df1d9f.jpg") center/cover no-repeat}
.img-ev_s1{background:url("../img/cfca56bdcaa9.jpg") center/cover no-repeat}
.img-ev_s2{background:url("../img/782c1583bc5f.jpg") center/cover no-repeat}
.img-ev_s3{background:url("../img/4dafe3e6f530.jpg") center/cover no-repeat}
.img-ev_s4{background:url("../img/d20f72b1f26b.jpg") center/cover no-repeat}
.img-ev_s5{background:url("../img/1d08381b0127.jpg") center/cover no-repeat}
.img-ev_s6{background:url("../img/ef8d0ad967f9.jpg") center/cover no-repeat}
.img-sched_1{background:url("../img/7148548ee624.jpg") center/cover no-repeat}
.img-sched_2{background:url("../img/cd356f50db91.jpg") center/cover no-repeat}
.img-sched_3{background:url("../img/ebcda60edcdf.jpg") center/cover no-repeat}
.img-sched_4{background:url("../img/4403c87740a3.jpg") center/cover no-repeat}
.img-sched_5{background:url("../img/267f12155eec.jpg") center/cover no-repeat}
.img-sched_6{background:url("../img/e34c7a1469f1.jpg") center/cover no-repeat}
h1,h2,h3{font-family:var(--serif);font-weight:500;line-height:1.12}
.dark .sec-head p{color:#B9C8D3}
.brandmark{display:flex;align-items:center;gap:13px;text-decoration:none}
.brandmark .logo-img{display:block;height:75px;width:auto;flex:none}
.menu a:hover,.menu a.on{color:var(--navy);border-color:var(--sand)}
.hero .bg{position:absolute;inset:0;background:url("../img/4cdaa4fb7c2e.jpg") center/cover no-repeat;opacity:.42}
.hero p{color:#CBD8E1;max-width:620px;margin-top:20px;font-size:1.06rem;font-weight:400}
.band{background:var(--navy-2);border-top:1px solid rgba(246,215,76,.3)}
.band .grid{display:grid;grid-template-columns:repeat(4,1fr);text-align:center}
.band .cell{padding:30px 14px;border-right:1px solid rgba(255,255,255,.09)}
.band .cell:last-child{border-right:0}
.band .n{font-family:var(--serif);color:var(--sand-lt);font-size:2.2rem;line-height:1}
.band .l{color:#B9C8D3;font-size:.66rem;letter-spacing:.17em;text-transform:uppercase;margin-top:9px}
.lead p{font-size:1.14rem;font-weight:400;color:#3C4C56;margin-top:18px}
.lead p:first-child{margin-top:0}
.lead strong{font-weight:600;color:var(--ink)}
.inv{border:1px solid rgba(255,255,255,.16);background:rgba(255,255,255,.035);padding:28px 30px 30px;margin-top:24px}
.inv.feature{border-color:var(--sand);background:rgba(246,215,76,.07)}
.inv-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px;margin-top:24px}
.inv-grid .inv{margin-top:0}
body.page-home .inv{display:block;text-decoration:none;color:inherit;cursor:pointer;transition:.2s}
body.page-home .inv:hover{border-color:var(--sand);background:rgba(246,215,76,.09)}
body.page-home .inv.feature:hover{background:rgba(246,215,76,.13)}
.scarcity-row{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:30px;align-items:stretch}
.scarcity-row .scarcity{margin-top:0}
.sponsor-cta{display:flex;flex-direction:column;justify-content:center;gap:18px;padding:26px 30px;background:rgba(255,255,255,.035);border:1px solid rgba(255,255,255,.14)}
.sponsor-cta p{color:#C4D3DD;font-size:.95rem;font-weight:400}
.invhead{display:flex;justify-content:space-between;align-items:flex-start;gap:24px;flex-wrap:wrap}
.itn{font-family:var(--serif);font-size:1.85rem;color:#fff;line-height:1}
.itb{font-size:.9rem;color:#B9C8D3;font-weight:300;margin-top:8px;max-width:460px}
.itp{text-align:left;flex:none}
.itp .amt{display:block;font-family:var(--serif);font-size:2.1rem;color:var(--sand-lt);line-height:1}
.itp .cnt{display:block;font-size:.63rem;letter-spacing:.16em;text-transform:uppercase;color:#8FA3B0;margin-top:6px}
.ib{list-style:none;margin:20px 0 0;padding:16px 0 0;display:flex;flex-wrap:wrap;gap:6px 26px;border-top:1px solid rgba(255,255,255,.12)}
.ib li{font-size:.84rem;font-weight:300;color:#C4D3DD;position:relative;padding-left:16px}
.ib li::before{content:"";position:absolute;left:0;top:7px;width:7px;height:7px;border:1px solid var(--sand);transform:rotate(45deg)}
.ib b{color:#fff;font-weight:600}
.sgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;margin-top:22px}
.slot{border:1px solid rgba(255,255,255,.12);padding:14px 15px;display:flex;flex-direction:column;background:rgba(255,255,255,.05)}
.slot b{font-size:.88rem;color:#fff;font-weight:600}
.slot .sd{font-size:.75rem;color:#93A7B4;font-weight:300;margin-top:6px;flex:1;line-height:1.45}
.slot.open .sd{color:#B6D6C4}
.scarcity{display:flex;align-items:center;gap:26px;margin-top:30px;padding:26px 30px;border-left:3px solid var(--sand);background:rgba(255,255,255,.045)}
.scarcity .sc-n{font-family:var(--serif);font-size:3.4rem;line-height:1;color:var(--sand);flex:none}
.scarcity .sc-t{font-size:.95rem;font-weight:300;color:#C4D3DD}
.maths{display:grid;grid-template-columns:1fr 1fr;gap:26px;margin-top:40px}
.mcard{background:#fff;border:1px solid rgba(14,42,63,.14);padding:32px 30px}
.mcard.f{border-color:var(--sand);box-shadow:0 14px 42px -22px rgba(14,42,63,.5)}
.mcard .mt{font-size:.68rem;letter-spacing:.19em;text-transform:uppercase;color:var(--muted)}
.mrow{display:flex;justify-content:space-between;padding:11px 0;border-top:1px solid rgba(14,42,63,.1);font-size:.95rem;font-weight:300;color:#3C4C56}
.mrow:first-of-type{border-top:0}
.mrow.tot{border-top:2px solid var(--navy);font-weight:600;color:var(--ink);font-size:1.05rem;padding-top:14px;margin-top:4px}
.mrow .v{font-family:var(--serif);font-size:1.3rem;color:var(--navy)}
.wall{margin-top:46px;padding-top:34px;border-top:1px solid rgba(255,255,255,.14)}
.lgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:22px}
.lgrid-masonry{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:14px;margin-top:22px}
.lgrid-masonry img{height:165px;width:auto;display:block}
.lgrid-masonry img.logo-h{height:120px}
.sponsor-cta-band{width:100%;background:var(--sand);margin-top:22px;padding:16px 0}
.sponsor-cta-band p{text-align:left;text-transform:uppercase;color:#10222F;font-weight:600;letter-spacing:.03em;font-size:.8rem}
.sponsor-cta-band a{color:#10222F}
.contact{margin-top:30px;font-size:1.05rem;color:#fff;font-weight:300}
.contact a{color:var(--sand-lt);text-decoration:none;border-bottom:1px solid rgba(251,231,149,.4)}
.logo-foot{width:150px;aspect-ratio:620/469;background:url("../img/Yucatan-LOGO-WHITE.png") left center/contain no-repeat}
h1,h2{font-family:var(--serif);font-weight:400;line-height:1.12}
.filters{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;padding:30px 0 6px}
.chip{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.13em;text-transform:uppercase;
  padding:10px 20px;border:1px solid rgba(14,42,63,.25);background:transparent;color:var(--ink);cursor:pointer;transition:.18s}
.chip:hover{border-color:var(--navy)}
.chip.on{background:var(--navy);color:#fff;border-color:var(--navy)}
body.page-gallery .grid{columns:4 260px;column-gap:14px;padding:30px 0 90px}
.tile{break-inside:avoid;margin:0 0 14px;position:relative;cursor:zoom-in;background:#DCE6EC;outline:none}
.tile .gimg{aspect-ratio:var(--ar);background-position:center;background-size:cover;background-repeat:no-repeat;display:block}
.tile figcaption{position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;color:#fff;font-size:.78rem;font-weight:300;
  background:linear-gradient(to top,rgba(9,26,39,.85),rgba(9,26,39,0));opacity:0;transition:.22s}
.tile:hover figcaption,.tile:focus figcaption{opacity:1}
.tile.hide{display:none}
.count{text-align:center;color:var(--muted);font-size:.82rem;font-weight:300;padding-top:8px}
.lb{position:fixed;inset:0;z-index:200;background:rgba(6,18,27,.94);display:none;align-items:center;justify-content:center;padding:34px}
.lb.on{display:flex}
.lb img{max-width:92vw;max-height:82vh;object-fit:contain;box-shadow:0 30px 80px -30px #000}
.lb .cap{position:absolute;bottom:26px;left:0;right:0;text-align:center;color:#C4D3DD;font-size:.85rem;font-weight:300}
.lb button{position:absolute;background:none;border:0;color:#fff;font-size:2.4rem;line-height:1;cursor:pointer;padding:14px;opacity:.75}
.lb button:hover{opacity:1}
.lb .prev{left:10px;top:50%;transform:translateY(-50%)}
.lb .next{right:10px;top:50%;transform:translateY(-50%)}
.lb .close{top:8px;right:12px;font-size:2rem}
.gp22{background-image:url("../img/c5eabf0a7da5.jpg")}
.gp08{background-image:url("../img/7148548ee624.jpg")}
.gp16{background-image:url("../img/e34c7a1469f1.jpg")}
.gp04{background-image:url("../img/78836c5790a4.jpg")}
.gp03{background-image:url("../img/aec54e143ea7.jpg")}
.gp06{background-image:url("../img/c7645a1ed8b7.jpg")}
.gp07{background-image:url("../img/31d757f401fc.jpg")}
.gp14{background-image:url("../img/d0918e885d3d.jpg")}
.gp15{background-image:url("../img/20a6a6d4d21e.jpg")}
.gp21{background-image:url("../img/f34df1a9ed4d.jpg")}
.gp24{background-image:url("../img/bdd1fca39366.jpg")}
.gp13{background-image:url("../img/ebcda60edcdf.jpg")}
.gp01{background-image:url("../img/cd356f50db91.jpg")}
.gp12{background-image:url("../img/e7096cfeb82e.jpg")}
.gp11{background-image:url("../img/b601a4de7e77.jpg")}
.gp19{background-image:url("../img/6e82ee3099bd.jpg")}
.gp18{background-image:url("../img/6f7c284d02b3.jpg")}
.gp10{background-image:url("../img/7221bf7129c2.jpg")}
.gp17{background-image:url("../img/23074885ff74.jpg")}
.gp02{background-image:url("../img/46cf9267ec40.jpg")}
.gp09{background-image:url("../img/e6f23d6118c2.jpg")}
.gp27{background-image:url("../img/267f12155eec.jpg")}
.gp28{background-image:url("../img/919174a5fb0a.jpg")}
.gp20{background-image:url("../img/2f93405c5a4e.jpg")}
.gp05{background-image:url("../img/4403c87740a3.jpg")}
.gp00{background-image:url("../img/a44cae95f878.jpg")}
.gp23{background-image:url("../img/850fc975ee0d.jpg")}
.gp25{background-image:url("../img/cee94890507a.jpg")}

/* ---------- shared responsive rules ---------- */
@media(max-width:1000px){
  .split,.duo{grid-template-columns:1fr;gap:36px}
  .days{grid-template-columns:repeat(2,1fr)}
  .fees,.tiers{grid-template-columns:1fr}
  .proof .grid{grid-template-columns:repeat(2,1fr)}
  .proof .cell:nth-child(2){border-right:0}
  .menu{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;
    flex-direction:column;align-items:flex-start;gap:0;padding:14px 28px 22px;
    border-bottom:1px solid rgba(14,42,63,.10);box-shadow:0 12px 24px -12px rgba(14,42,63,.25)}
  .menu.open{display:flex}
  .menu li{width:100%}
  .menu li.home-item{display:block}
  .menu a{display:block;padding:11px 0;width:100%}
  .navtoggle{display:inline-flex}
  .sgrid{grid-template-columns:repeat(2,1fr)}
  .maths{grid-template-columns:1fr}
  .band .grid{grid-template-columns:repeat(2,1fr)}
  .lgrid{grid-template-columns:repeat(2,1fr)}
  .lgrid-masonry img{height:120px}
  .lgrid-masonry img.logo-h{height:90px}
  .inv-grid{grid-template-columns:1fr}
  .scarcity-row{grid-template-columns:1fr}
  .brandmark .logo-img{height:45px}
}
@media(max-width:620px){
  .days{grid-template-columns:1fr}
  section{padding:60px 0}
  .hero{min-height:520px}
  .strip{grid-template-columns:repeat(2,1fr)}
  h2{font-size:1.8rem!important}
  .lead p{font-size:1.05rem}
  .fee .amt,.itp .amt{font-size:1.8rem}
}
@media(max-width:600px){
  .sgrid,.strip{grid-template-columns:1fr}
  .itp{text-align:left}
  .scarcity{flex-direction:column;align-items:flex-start;gap:12px}
}

/* ============================================================
   HOME page -- rules unique to home.html
   ============================================================ */
body.page-home .eyebrow{font-family:var(--sans);font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sand);padding:8px 0 6px 10px}
body.page-home .hero .eyebrow{padding:0}
body.page-home .hero{position:relative;min-height:520px;display:flex;align-items:center;
  background:linear-gradient(150deg,#0B2233 0%,#12354E 45%,#1C5069 100%);overflow:hidden}
body.page-home .hero::after{content:"";position:absolute;inset:0;
  background:linear-gradient(to right,rgba(9,26,39,.93) 0%,rgba(9,26,39,.72) 48%,rgba(9,26,39,.35) 100%)}
body.page-home .hero .wrap{position:relative;z-index:3}
body.page-home .hero h1{color:#fff;font-size:clamp(2.6rem,6vw,3.4rem);margin-top:14px}
body.page-home .hero .meta{margin-top:22px;color:#CBD8E1;font-size:.94rem;letter-spacing:.07em;max-width:620px}
body.page-home section{padding:60px 0}
body.page-home .split{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}
body.page-home .split .ph{aspect-ratio:4/3.2}
body.page-home .strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px;margin-top:46px}
body.page-home .strip .ph{aspect-ratio:1/1.12}
body.page-home .charity .big{font-family:var(--serif);font-size:clamp(3rem,7vw,3.4rem);color:#C79A12;line-height:1}
body.page-home .close{background:linear-gradient(140deg,#0B2233,#1C5069);text-align:center;padding:60px 0}
body.page-home .close h2{color:#fff;font-size:clamp(2.2rem,4.6vw,3rem)}
body.page-home .close p{color:#C4D3DD;margin-top:18px;font-weight:400;max-width:540px;margin-left:auto;margin-right:auto}
body.page-home footer{background:#081A28;color:#8FA3B0;padding:56px 0 40px;font-size:.85rem;font-weight:300}
body.page-home .fnav{display:flex;gap:22px;flex-wrap:wrap}
body.page-home .fbot{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.09);font-size:.78rem;color:#6B808E}
body.page-home .concept{background:#2B2118;color:#F0E3D0;text-align:center;padding:11px 20px;font-size:.76rem;letter-spacing:.06em;font-weight:300}
body.page-home .lg .mark{display:block;width:100%;height:56px;background-position:center;background-repeat:no-repeat;background-size:contain}
body.page-home .key{display:flex;gap:26px;flex-wrap:wrap;margin-top:26px;padding:14px 18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
body.page-home .slot .tag-sold,
body.page-home .slot .tag-pending,
body.page-home .slot .tag-open{margin-top:11px;display:inline-block;align-self:flex-start;
  font-size:.6rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;padding:3px 9px}
body.page-home .lg{background:#fff;min-height:86px;display:flex;align-items:center;justify-content:center;padding:16px 14px}
body.page-home .close{position:relative;overflow:hidden}
body.page-home .split{align-items:center}
body.page-home .split .ph{aspect-ratio:16/11}
body.page-home .strip{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:46px}
body.page-home .strip .ph{aspect-ratio:1/1.25;cursor:zoom-in}
@media(max-width:1000px){
  body.page-home .strip{grid-template-columns:repeat(2,1fr)}
}
@media(max-width:1000px){
  body.page-home .strip{grid-template-columns:repeat(3,1fr)}
  body.page-home .split{grid-template-columns:1fr;gap:36px}
}

/* ============================================================
   SPONSORS page -- rules unique to sponsors.html
   ============================================================ */
body.page-sponsors .eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sand);padding:8px 0 6px 10px}
body.page-sponsors .hero .eyebrow{padding:0}
body.page-sponsors section{padding:60px 0}
body.page-sponsors .hero{position:relative;min-height:460px;display:flex;align-items:center;background:#0B2233;overflow:hidden}
body.page-sponsors .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,rgba(9,26,39,.94),rgba(9,26,39,.66) 60%,rgba(9,26,39,.35))}
body.page-sponsors .hero .wrap{position:relative;z-index:3;padding:86px 28px}
body.page-sponsors .hero h1{color:#fff;font-size:clamp(2.6rem,6vw,3.4rem);margin-top:14px}
body.page-sponsors .hero .meta{margin-top:20px;color:#9FB4C2;font-size:.85rem;letter-spacing:.09em}
body.page-sponsors .key{display:flex;gap:26px;flex-wrap:wrap;margin-top:30px;padding:14px 18px;background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.1)}
body.page-sponsors .slot .tag-sold,
body.page-sponsors .slot .tag-pending,
body.page-sponsors .slot .tag-open{margin-top:11px;align-self:flex-start;font-size:.6rem;font-weight:600;
letter-spacing:.15em;text-transform:uppercase;padding:3px 9px}
body.page-sponsors .strip{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin-top:44px}
body.page-sponsors .strip .ph{aspect-ratio:1/1.25;border:0}
body.page-sponsors .lg{background:#fff;min-height:86px;display:flex;align-items:center;justify-content:center;padding:16px 14px}
body.page-sponsors .lg .mark{display:block;width:100%;height:56px;background-position:center;background-repeat:no-repeat;background-size:contain}
body.page-sponsors .charity .big{font-family:var(--serif);font-size:clamp(3rem,7vw,3.4rem);color:#C79A12;line-height:1}
body.page-sponsors .close{background:linear-gradient(140deg,#0B2233,#1C5069);text-align:center;padding:60px 0}
body.page-sponsors .close h2{color:#fff;font-size:clamp(2.1rem,4.4vw,3.2rem)}
body.page-sponsors .close p{color:#C4D3DD;margin-top:18px;font-weight:400;max-width:560px;margin-left:auto;margin-right:auto}
body.page-sponsors footer{background:#081A28;color:#8FA3B0;padding:52px 0 38px;font-size:.85rem;font-weight:300}
body.page-sponsors .fnav{display:flex;flex-direction:column;gap:9px;margin-top:14px}
body.page-sponsors .fbot{margin-top:32px;padding-top:20px;border-top:1px solid rgba(255,255,255,.09);font-size:.78rem;color:#6B808E}
body.page-sponsors .concept{background:#2B2118;color:#F0E3D0;text-align:center;padding:11px 20px;font-size:.76rem;font-weight:300}

/* ============================================================
   GALLERY page -- rules unique to gallery.html
   ============================================================ */
body.page-gallery .eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sand);padding:8px 0 6px 10px}
body.page-gallery .hero .eyebrow{padding:0}
body.page-gallery .hero{position:relative;min-height:460px;display:flex;align-items:center;background:#0B2233;overflow:hidden}
body.page-gallery .hero .bg{background-image:url("../img/cee94890507a.jpg")}
body.page-gallery .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,rgba(9,26,39,.94),rgba(9,26,39,.66) 60%,rgba(9,26,39,.35))}
body.page-gallery .hero .wrap{position:relative;z-index:3;padding:86px 28px}
body.page-gallery .hero h1{color:#fff;font-size:clamp(2.6rem,6vw,3.4rem);margin-top:14px}
body.page-gallery .hero .meta{margin-top:20px;color:#9FB4C2;font-size:.85rem;letter-spacing:.09em}
body.page-gallery footer{background:#081A28;color:#8FA3B0;padding:52px 0 38px;font-size:.85rem;font-weight:300}
body.page-gallery .fnav{display:flex;flex-direction:column;gap:9px;margin-top:14px}
body.page-gallery .fbot{margin-top:32px;padding-top:20px;border-top:1px solid rgba(255,255,255,.09);font-size:.78rem;color:#6B808E}
body.page-gallery .concept{background:#2B2118;color:#F0E3D0;text-align:center;padding:11px 20px;font-size:.76rem;font-weight:300}

/* ============================================================
   SCHEDULE page -- rules unique to schedule.html
   ============================================================ */
body.page-schedule .eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sand);padding:8px 0 6px 10px}
body.page-schedule .hero .eyebrow{padding:0}
body.page-schedule section{padding:60px 0}
body.page-schedule .hero{position:relative;min-height:460px;display:flex;align-items:center;background:#0B2233;overflow:hidden}
body.page-schedule .hero .bg{background-image:url("../img/d0918e885d3d.jpg")}
body.page-schedule .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,rgba(9,26,39,.94),rgba(9,26,39,.66) 60%,rgba(9,26,39,.35))}
body.page-schedule .hero .wrap{position:relative;z-index:3;padding:86px 28px}
body.page-schedule .hero h1{color:#fff;font-size:clamp(2.6rem,6vw,3.4rem);margin-top:14px}
body.page-schedule .hero .meta{margin-top:20px;color:#9FB4C2;font-size:.85rem;letter-spacing:.09em}
body.page-schedule .strip{display:grid;grid-template-columns:repeat(6,1fr);gap:12px;margin-top:46px}
body.page-schedule .strip .ph{aspect-ratio:1/1.25;cursor:zoom-in}
body.page-schedule footer{background:#081A28;color:#8FA3B0;padding:56px 0 40px;font-size:.85rem;font-weight:300}
body.page-schedule .fnav{display:flex;gap:22px;flex-wrap:wrap}
body.page-schedule .fbot{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.09);font-size:.78rem;color:#6B808E}
@media(max-width:1000px){
  body.page-schedule .strip{grid-template-columns:repeat(3,1fr)}
}
@media(max-width:620px){
  body.page-schedule .strip{grid-template-columns:repeat(2,1fr)}
}

/* ============================================================
   REGISTRATION page -- rules unique to registration-room-rates.html
   ============================================================ */
body.page-registration .eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sand);padding:8px 0 6px 10px}
body.page-registration .hero .eyebrow{padding:0}
body.page-registration section{padding:60px 0}
body.page-registration .hero{position:relative;min-height:460px;display:flex;align-items:center;background:#0B2233;overflow:hidden}
body.page-registration .hero .bg{background-image:url("../img/Mayakoba-Fairmont-aerial.jpg")}
body.page-registration .hero::after{content:"";position:absolute;inset:0;background:linear-gradient(to right,rgba(9,26,39,.94),rgba(9,26,39,.66) 60%,rgba(9,26,39,.35))}
body.page-registration .hero .wrap{position:relative;z-index:3;padding:86px 28px}
body.page-registration .hero h1{color:#fff;font-size:clamp(2.6rem,6vw,3.4rem);margin-top:14px}
body.page-registration .hero .meta{margin-top:20px;color:#9FB4C2;font-size:.85rem;letter-spacing:.09em}
body.page-registration footer{background:#081A28;color:#8FA3B0;padding:56px 0 40px;font-size:.85rem;font-weight:300}
body.page-registration .fnav{display:flex;gap:22px;flex-wrap:wrap}
body.page-registration .fbot{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.09);font-size:.78rem;color:#6B808E}
.rates-wrap{margin-top:30px;overflow-x:auto}
.rates-table{width:100%;border-collapse:collapse;font-size:1rem;table-layout:fixed}
.rates-table thead tr{background:#0E2A3F;color:#fff;text-align:left}
.rates-table th,.rates-table td{padding:14px 18px}
.rates-table th{font-weight:600}
.rates-table tbody tr{border-bottom:1px solid rgba(14,42,63,.12)}
.rates-table th.col-cat,.rates-table td.col-cat{width:42%;white-space:normal;word-break:break-word}
.rates-table th:not(.col-cat),.rates-table td:not(.col-cat){width:29%}
@media(max-width:480px){
  .rates-table{font-size:.82rem}
  .rates-table th,.rates-table td{padding:10px 8px}
  .rates-table th.col-cat,.rates-table td.col-cat{width:38%}
}

/* ============================================================
   REQUEST AN INVITATION page -- rules unique to request-invitation.html
   ============================================================ */
body.page-request .eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sand);padding:8px 0 6px 10px}
body.page-request section{padding:60px 0}
body.page-request footer{background:#081A28;color:#8FA3B0;padding:56px 0 40px;font-size:.85rem;font-weight:300}
body.page-request .fnav{display:flex;flex-direction:column;gap:9px;margin-top:14px}
body.page-request .fbot{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.09);font-size:.78rem;color:#6B808E}

/* ============================================================
   SPONSOR FORM page -- rules unique to sponsor-form.html
   ============================================================ */
body.page-sponsor-form .eyebrow{font-size:.72rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase;color:var(--sand);padding:8px 0 6px 10px}
body.page-sponsor-form section{padding:60px 0}
body.page-sponsor-form footer{background:#081A28;color:#8FA3B0;padding:56px 0 40px;font-size:.85rem;font-weight:300}
body.page-sponsor-form .fnav{display:flex;flex-direction:column;gap:9px;margin-top:14px}
body.page-sponsor-form .fbot{margin-top:34px;padding-top:22px;border-top:1px solid rgba(255,255,255,.09);font-size:.78rem;color:#6B808E}
