:root{--ink:#5c4636;--soft:#7a6552;--muted:#8a7563;--green:#5f7552;--green-d:#3f5236;--cream:#fbf8ef;--card:#fffdf8;--line:#e0d1b6;--rule:#b9a384;--sand:#efe5d3;--sage:#8a9e78}
*{box-sizing:border-box}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'EB Garamond',Georgia,serif;font-size:17px;line-height:1.5}
img{max-width:100%;display:block}
a{color:var(--green)}a:hover{color:var(--green-d)}
p{margin:0}
h1,h2,h3{margin:0;font-weight:400}
.script{font-family:'Pinyon Script',cursive;font-weight:400;line-height:1.15;color:var(--ink)}
.cap{font-weight:500;font-size:13px;letter-spacing:.24em;text-transform:uppercase;color:var(--green)}
.cap.ink{color:var(--ink)}.cap.sm{font-size:11.5px}
.body{text-wrap:pretty}
.muted{color:var(--soft)}
.btn{display:inline-flex;align-items:center;justify-content:center;min-height:48px;padding:0 24px;border:1.5px solid var(--ink);border-radius:999px;font:500 15px 'EB Garamond',serif;letter-spacing:.16em;text-transform:uppercase;color:var(--ink);background:transparent;text-decoration:none;cursor:pointer;text-align:center}
.btn:hover{background:var(--sand);color:var(--ink)}
.btn-p{background:var(--green);border-color:var(--green);color:var(--cream)}
.btn-p:hover{background:var(--green-d);border-color:var(--green-d);color:var(--cream)}
.btn[aria-disabled="true"]{border-style:dashed;color:var(--muted);border-color:var(--rule);pointer-events:none}
.card{border:1px solid var(--line);border-radius:4px;background:var(--card);overflow:hidden}
.callout{border:1px solid #cdb999;border-radius:14px;padding:16px 20px;background:var(--sand)}
.hr{height:1px;background:var(--sage);border:0;margin:0}
.wrap{max-width:1180px;margin:0 auto;padding:0 56px}
.link{text-decoration:underline;text-underline-offset:3px}
[hidden]{display:none!important}

/* header */
.site-header{position:sticky;top:0;z-index:20;background:var(--cream);border-bottom:1px solid var(--rule)}
.hdr{display:flex;align-items:center;justify-content:space-between;gap:24px;padding:10px 40px;max-width:1280px;margin:0 auto}
.logo{font-family:'Pinyon Script',cursive;font-size:27px;color:var(--ink);text-decoration:none;white-space:nowrap;line-height:1.2}
.logo:hover{color:var(--ink)}
.logo-mono{display:none;width:52px;height:52px;flex:none;padding:0 4px 2px 0;border-radius:50%;background:#9c7a70;color:var(--cream);align-items:center;justify-content:center;font-family:'Pinyon Script',cursive;font-size:19px;line-height:1;box-shadow:inset 0 0 0 3px #8a6a61;text-decoration:none}
.logo-mono:hover{color:var(--cream)}
.nav{display:flex;gap:26px;align-items:center}
.nav a{font-weight:500;font-size:13px;letter-spacing:.18em;text-transform:uppercase;color:var(--ink);text-decoration:none;white-space:nowrap;padding:10px 0;border-bottom:1.5px solid transparent}
.nav a:hover{color:var(--green)}
.nav a[aria-current="page"]{border-bottom-color:var(--green);color:var(--green)}
.hdr .btn{min-height:44px;padding:0 22px}
.menu-btn{display:none;width:44px;height:44px;border:0;background:none;padding:12px 8px;cursor:pointer;flex-direction:column;justify-content:space-between}
.menu-btn span{display:block;height:2.5px;background:var(--ink)}
.menu-sheet{position:fixed;inset:0;z-index:40;background:var(--cream);display:flex;flex-direction:column}
.menu-top{display:flex;align-items:center;justify-content:space-between;padding:12px 16px;border-bottom:1px solid var(--rule)}
.menu-close{width:44px;height:44px;border:0;background:none;font-size:34px;line-height:1;color:var(--ink);cursor:pointer}
.menu-list{display:flex;flex-direction:column;padding:12px 24px}
.menu-list a{font-size:26px;padding:14px 0;min-height:56px;border-bottom:1.5px solid #e6dac6;color:var(--ink);text-decoration:none}
.menu-list a:last-child{border-bottom:0}
.menu-list a[aria-current="page"]{color:var(--green)}

/* footer */
.site-footer{padding:22px;border-top:1px solid var(--rule);text-align:center;font-size:15px;color:var(--soft)}

/* page header */
.page-head{padding:40px 24px 20px;text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}
.page-head h1{font-size:58px}
.page-head .body{max-width:640px}
.rsvp-cta{display:flex;justify-content:center;padding:8px 24px 56px}
.rsvp-cta .btn{width:300px;min-height:56px}

/* home */
.hero{position:relative}
.hero img{width:100%;max-width:1000px;height:auto;margin:0 auto}
.hero-card{position:relative;margin:-90px auto 0;width:min(600px,calc(100% - 48px));background:var(--cream);border:1px solid var(--ink);outline:1px solid var(--ink);outline-offset:-9px;padding:44px 48px 40px;display:flex;flex-direction:column;align-items:center;gap:14px;text-align:center}
.hero-card h1{font-size:50px}
.hero-card .btn{width:260px;min-height:56px;font-size:20px}
.home-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px;padding:44px 0}
.teasers{display:flex;flex-direction:column;gap:14px}
.teaser{display:flex;align-items:center;gap:16px;padding:14px 18px;color:var(--ink);text-decoration:none}
.teaser:hover{background:#f6efe2;color:var(--ink)}
.teaser b{display:block;font-weight:400;font-size:20px}
.teaser small{display:block;font-size:15px;color:var(--soft)}
.teaser i{margin-left:auto;font-style:normal;font-size:24px}

/* gate */
.gate{display:grid;grid-template-columns:1fr 1fr;min-height:100vh;min-height:100svh}
.gate img{width:100%;height:100%;max-height:100vh;object-fit:contain;padding:32px;mix-blend-mode:multiply}
.gate-panel{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:16px;padding:60px 40px;text-align:center}
.gate-panel h1{font-size:60px}
.gate form{width:100%;max-width:360px;display:flex;flex-direction:column;gap:14px;text-align:left}
.field-lbl{font-size:16px;margin-bottom:6px;display:block}
.pw-row{position:relative}
.input{width:100%;min-height:52px;border:1px solid #cdb999;border-radius:6px;padding:0 14px;font:17px 'EB Garamond',serif;color:var(--ink);background:#fff}
.input:focus{outline:2px solid var(--green);outline-offset:1px}
.pw-row .input{padding-right:70px}
.show-pw{position:absolute;right:6px;top:4px;height:44px;border:0;background:none;font:15px 'EB Garamond',serif;color:var(--green);cursor:pointer;padding:0 10px}
.gate .btn{width:100%}
.gate-err{color:#9a3b2a;font-size:16px}

/* events */
.events-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.event img{width:100%;height:200px;object-fit:contain;padding:12px 14px 0;mix-blend-mode:multiply}
.event-body{padding:18px 20px 20px;display:flex;flex-direction:column;gap:8px}
.event h2{font-size:32px}
.facts{display:grid;grid-template-columns:62px 1fr;gap:4px 10px;font-size:15.5px}
.facts dt{color:var(--muted)}.facts dd{margin:0}
.event .body{font-size:16.5px}
.event a{min-height:44px;display:flex;align-items:center;font-size:16px}
.section{border-top:1px solid var(--sage);padding:48px 0 36px;margin-top:48px;display:flex;flex-direction:column;gap:24px}
.section-head{text-align:center;display:flex;flex-direction:column;gap:10px;align-items:center}
.section-head h2{font-size:44px}
.section-head .body{max-width:640px}
.exp-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.exp{display:grid;grid-template-columns:120px minmax(0,1fr);align-items:center}
.exp img{width:100%;height:100%;min-height:180px;object-fit:contain;padding:8px;mix-blend-mode:multiply}
.exp-body{padding:18px;display:flex;flex-direction:column;gap:6px}
.exp h3{font-family:'Pinyon Script',cursive;font-size:28px;line-height:1.15}
.exp .when{font-size:15.5px;color:#6b5645}
.exp .body{font-size:16px}
.note-callout{max-width:720px;margin:8px auto 32px;text-align:center}

/* getting there */
.map-head{max-width:1180px;margin:0 auto;padding:32px 56px 12px;display:grid;grid-template-columns:minmax(0,1fr) minmax(0,380px);gap:48px;align-items:center}
.map-head img{width:100%;height:auto;order:2;mix-blend-mode:multiply}
.map-head .inner{display:flex;flex-direction:column;gap:10px;align-items:flex-start;max-width:520px}
.map-head h1{font-size:58px}
.jump{display:none}
.gt-block{display:flex;flex-direction:column;gap:14px;padding:12px 0 44px;scroll-margin-top:90px}
.airports{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:12px}
.airport{padding:18px;display:flex;flex-direction:column;gap:6px}
.airport b{font-weight:400;font-size:22px}
.airport b small{color:var(--muted);font-size:16px}
.airport span{font-size:16px;color:#6b5645}
.help-bar{display:flex;align-items:center;justify-content:space-between;gap:16px;background:var(--sand);border-radius:6px;padding:12px 16px;font-size:16px}
.help-bar a{flex:none}
.hotel-main{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,1fr)}
.hotel-main img{width:100%;height:auto;align-self:center}
.hotel-body{padding:28px 32px;display:flex;flex-direction:column;gap:10px}
.hotel-body h3,.hotel h3{font-family:'Pinyon Script',cursive;font-size:36px;line-height:1.15}
.hotel h3{font-size:30px}
.tagline{font-size:15px;color:var(--soft);font-style:italic}
.hotel-body .btn{align-self:flex-start;margin-top:6px}
.hotels{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.hotel{padding:20px;display:flex;flex-direction:column;gap:6px}
.hotel .body,.hotel-body .body{font-size:16px}
.hotel .tag{font-size:14.5px;font-style:italic;color:var(--green)}
.hotel .visit{min-height:44px;display:flex;align-items:center;font-size:15px;margin-top:auto}
.gt-two{border-top:1px solid var(--rule);padding:28px 0 40px;display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,1fr);gap:48px}
.col{display:flex;flex-direction:column;gap:10px}
.col .body{font-size:16px}
.parking{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 14px;background:var(--sand);border-radius:6px;padding:14px}
.parking a{display:flex;flex-direction:column;color:var(--ink);text-decoration:none;min-height:44px;padding:4px 0}
.parking a b{font-weight:400;font-size:17px}
.parking a small{font-size:14px;color:var(--soft)}
.parking a em{font-style:normal;font-size:14px;color:var(--green)}
.taxis a{display:flex;justify-content:space-between;gap:10px;align-items:center;min-height:44px;border-bottom:1px solid #e6dac6;color:var(--ink);text-decoration:none;font-size:16px}
.taxis a span:last-child{color:var(--green)}
.know{display:flex;flex-direction:column;gap:6px}

/* plan */
.partner{padding:32px 40px;display:flex;flex-direction:column;gap:10px}
.partner h2{font-size:40px}
.chips{display:flex;flex-wrap:wrap;gap:6px}
.chips span{border:1px solid var(--rule);border-radius:999px;padding:6px 12px;font-size:14.5px}
.partner .btn{align-self:flex-start;min-height:48px;margin-top:6px}
.routes{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.route{padding:20px;display:flex;flex-direction:column;gap:8px}
.route h3{font-family:'Pinyon Script',cursive;font-size:30px;line-height:1.15}
.route .line{font-size:16.5px;font-style:italic;line-height:1.4}
.route .stops{font-size:15px;color:#6b5645}
.route .btn{min-height:46px;margin-top:auto}
.guides{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px}
.guide{padding:18px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px}
.guide h3{font-family:'Pinyon Script',cursive;font-size:32px;line-height:1.15}
.guide span{font-size:15px;color:var(--muted);font-style:italic}
.custom{display:flex;align-items:center;justify-content:space-between;gap:20px}
.custom b{display:block;font-weight:400;font-size:20px}

/* questions */
.contacts{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.contact{padding:24px;display:flex;flex-direction:column;gap:8px}
.contact h2{font-size:34px}
.contact .body{font-size:16px;line-height:1.45}
.contact .btn{align-self:flex-start;min-height:46px;margin-top:6px}
.faq{display:grid;grid-template-columns:240px minmax(0,1fr);gap:40px;padding:48px 0 32px}
.faq details{border-top:1.5px solid #e6dac6;padding:6px 0}
.faq details:last-child{border-bottom:1.5px solid #e6dac6}
.faq summary{display:flex;justify-content:space-between;align-items:center;gap:12px;min-height:56px;font-size:19px;cursor:pointer;list-style:none}
.faq summary::-webkit-details-marker{display:none}
.faq summary::after{content:'+';font-size:24px;color:var(--muted)}
.faq details[open] summary::after{content:'–'}
.faq details .body{font-size:16.5px;padding:0 0 14px}

/* rsvp */
.rsvp-page{max-width:760px;margin:0 auto;padding:0 24px 56px}
.rsvp-soon{text-align:center}

@media (max-width:1000px){
  .airports{grid-template-columns:repeat(3,minmax(0,1fr))}
  .hotels,.routes,.guides,.exp-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .nav{gap:16px}
}
@media (max-width:860px){
  body{font-size:17px}
  .wrap{padding:0 20px}
  .hdr{padding:10px 16px}
  .nav,.logo{display:none}
  .menu-btn,.logo-mono{display:flex}
  .page-head{padding:30px 20px 12px}
  .page-head h1{font-size:52px}
  .hero img{max-width:100%}
  .hero-card{margin:0;width:100%;border:0;outline:0;padding:28px 24px 12px}
  .hero-card h1{font-size:44px}
  .hero-card .btn{width:100%}
  .home-grid{grid-template-columns:1fr;gap:28px;padding:20px 0 32px}
  .gate{grid-template-columns:1fr;min-height:0}
  .gate img{height:auto;max-height:none;padding:16px 16px 0}
  .gate-panel{padding:28px 28px 44px;justify-content:flex-start}
  .gate-panel h1{font-size:52px}
  .events-grid,.exp-grid,.hotels,.routes,.guides,.contacts,.gt-two,.faq{grid-template-columns:minmax(0,1fr)}
  .events-grid{gap:18px}
  .event img{height:150px}
  .event h2{font-size:32px}
  .section{margin-top:28px;padding-top:28px}
  .section-head h2{font-size:40px}
  .exp{grid-template-columns:104px minmax(0,1fr)}
  .exp img{min-height:140px}
  .exp h3{font-size:28px}
  .note-callout{margin:6px 0 22px;text-align:left}
  .map-head{grid-template-columns:minmax(0,1fr);gap:16px;padding:28px 20px 8px}
  .map-head img{max-width:340px;margin:0 auto}
  .map-head h1{font-size:52px}
  .jump{display:flex;gap:8px;overflow-x:auto;padding:12px 20px;position:sticky;top:73px;z-index:10;background:var(--cream);border-bottom:1px solid #e6dac6;margin-bottom:16px}
  .jump a{flex:none;border:1px solid var(--rule);border-radius:999px;padding:8px 14px;font-size:15px;color:var(--ink);text-decoration:none;min-height:40px;display:flex;align-items:center}
  .gt-block{scroll-margin-top:140px;padding-bottom:30px}
  .airports{grid-template-columns:minmax(0,1fr)}
  .help-bar{flex-direction:column;align-items:flex-start}
  .hotel-main{grid-template-columns:1fr}
  .hotel-body{padding:20px}
  .gt-two{gap:30px}
  .partner{padding:22px 20px}
  .partner h2{font-size:38px}
  .custom{flex-direction:column;align-items:flex-start}
  .faq{gap:6px;padding-top:32px}
  .contact h2{font-size:34px}
  .rsvp-cta .btn{width:100%}
}
@media (max-width:420px){.parking{grid-template-columns:1fr}}

html.locked .site-header,html.locked main,html.locked .site-footer,html.locked .menu-sheet{display:none!important}
