:root{
  --night:#1E2A45;
  --night-2:#152036;
  --clay:#B5574A;
  --clay-deep:#8C4A3B;
  --gold:#D3A039;
  --teal:#3E7A72;
  --paper:#F1E9DA;
  --paper-2:#E8DEC9;
  --ink:#241B14;
  --line:rgba(30,42,69,0.14);
}
*{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;}
body{
  background:var(--paper);
  color:var(--ink);
  font-family:'Sora',sans-serif;
  line-height:1.5;
  -webkit-font-smoothing:antialiased;
}
h1,h2,h3,.display{font-family:'Fraunces',serif;font-optical-sizing:auto;}
.mono{font-family:'IBM Plex Mono',monospace;letter-spacing:0.02em;}
a{color:inherit;}
img{display:block;max-width:100%;}

/* ---------- NAV ---------- */
nav{
  position:sticky;top:0;z-index:50;
  background:rgba(241,233,218,0.92);
  backdrop-filter:blur(8px);
  border-bottom:1px solid var(--line);
  padding:14px 24px;
  display:flex;align-items:center;justify-content:space-between;gap:16px;
  flex-wrap:wrap;
}
.brand{font-family:'Fraunces',serif;font-weight:600;font-size:1.05rem;letter-spacing:0.01em;text-decoration:none;}
.brand span{color:var(--clay);}
.pills{display:flex;gap:8px;flex-wrap:wrap;}
.pill{
  font-family:'IBM Plex Mono',monospace;font-size:0.72rem;font-weight:500;
  padding:7px 14px;border-radius:999px;border:1px solid var(--line);
  background:transparent;cursor:pointer;text-decoration:none;
  color:var(--night);white-space:nowrap;transition:all .15s ease;
}
.pill.tier-essential{border-color:var(--teal);}
.pill.tier-elevated{border-color:var(--gold);}
.pill.tier-signature{border-color:var(--clay);}
.pill:hover{background:var(--night);color:var(--paper);border-color:var(--night);}

/* ---------- HOME HERO ---------- */
.hero{
  position:relative;min-height:94vh;
  display:flex;flex-direction:column;justify-content:flex-end;
  background:linear-gradient(180deg, rgba(20,26,40,0.18) 0%, rgba(15,18,30,0.88) 90%), url('https://commons.wikimedia.org/wiki/Special:FilePath/Rainbow%20Mountain%20Peru.jpg?width=1800') center 62%/cover no-repeat;
  padding:64px 24px 56px;
  color:var(--paper);
}
.hero-eyebrow{
  font-family:'IBM Plex Mono',monospace;font-size:0.78rem;letter-spacing:0.14em;
  text-transform:uppercase;color:var(--gold);margin-bottom:18px;
  animation:fadeUp .7s ease both;
}
.hero h1.main-title{
  font-size:clamp(2.6rem,7.2vw,5.6rem);font-weight:700;line-height:1.02;
  max-width:920px;
  animation:fadeUp .8s ease .1s both;
}
.rainbow-rule{
  width:220px;height:6px;border-radius:4px;margin-top:22px;
  background:linear-gradient(90deg, var(--teal), var(--gold), var(--clay));
  animation:fadeUp .8s ease .25s both;
}
.hero-sub{
  margin-top:22px;font-size:clamp(1rem,2vw,1.25rem);max-width:560px;
  color:rgba(241,233,218,0.88);
  animation:fadeUp .8s ease .35s both;
}
.hero-meta{
  display:flex;gap:28px;margin-top:36px;flex-wrap:wrap;
  animation:fadeUp .8s ease .45s both;
}
.hero-meta div{font-family:'IBM Plex Mono',monospace;font-size:0.78rem;}
.hero-meta strong{display:block;font-family:'Fraunces',serif;font-size:1.5rem;font-weight:600;margin-bottom:2px;}
@keyframes fadeUp{from{opacity:0;transform:translateY(14px);}to{opacity:1;transform:translateY(0);}}
@media (prefers-reduced-motion: reduce){.hero-eyebrow,.hero h1.main-title,.rainbow-rule,.hero-sub,.hero-meta{animation:none;}}

/* ---------- DETAIL PAGE HERO ---------- */
.detail-hero{
  position:relative;min-height:62vh;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:56px 24px 44px;color:var(--paper);
  background-size:cover;background-position:center;
}
.detail-hero .hero-eyebrow{color:var(--gold);}
.detail-hero h1{font-size:clamp(2.2rem,6vw,4.4rem);font-weight:700;max-width:760px;}
.backlink{
  display:inline-flex;align-items:center;gap:6px;font-family:'IBM Plex Mono',monospace;
  font-size:0.78rem;color:var(--paper);opacity:0.85;text-decoration:none;margin-bottom:18px;
}
.backlink:hover{opacity:1;text-decoration:underline;}

/* ---------- SECTION SHELL ---------- */
section{padding:80px 24px;max-width:1180px;margin:0 auto;}
.section-tag{
  font-family:'IBM Plex Mono',monospace;font-size:0.75rem;letter-spacing:0.12em;
  text-transform:uppercase;color:var(--clay);margin-bottom:14px;
}
.section-title{font-size:clamp(1.8rem,4vw,2.6rem);font-weight:600;margin-bottom:18px;max-width:760px;}
.section-lede{font-size:1.05rem;max-width:680px;color:#4b4338;margin-bottom:12px;}
.narrative p{font-size:1.05rem;max-width:720px;color:#3a3328;margin-bottom:16px;}

/* ---------- BIRTHDAY CALLOUT ---------- */
.callout{
  background:var(--night);color:var(--paper);
  border-radius:18px;padding:40px clamp(24px,5vw,56px);
  display:grid;grid-template-columns:1fr 1fr;gap:36px;
}
@media(max-width:760px){.callout{grid-template-columns:1fr;}}
.callout h3{font-size:1.5rem;font-weight:600;margin-bottom:10px;color:var(--gold);}
.callout p{color:rgba(241,233,218,0.85);font-size:0.98rem;}
.callout-day{border-left:2px solid var(--clay);padding-left:18px;margin-top:16px;}
.callout-day .d{font-family:'IBM Plex Mono',monospace;font-size:0.78rem;color:var(--gold);}

/* ---------- DESTINATION CARDS (home) ---------- */
.dest-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(280px,1fr));gap:22px;margin-top:36px;}
.dest-card{
  background:#fff;border-radius:16px;overflow:hidden;border:1px solid var(--line);
  transition:transform .2s ease, box-shadow .2s ease;text-decoration:none;color:var(--ink);display:block;
}
.dest-card:hover{transform:translateY(-4px);box-shadow:0 16px 32px -18px rgba(30,42,69,0.35);}
.dest-card img{width:100%;height:190px;object-fit:cover;}
.dest-body{padding:20px 22px 24px;}
.dest-elev{font-family:'IBM Plex Mono',monospace;font-size:0.72rem;color:var(--teal);margin-bottom:6px;}
.dest-card h3{font-size:1.28rem;font-weight:600;margin-bottom:8px;}
.dest-card p{font-size:0.92rem;color:#5a5348;}
.dest-cta{font-family:'IBM Plex Mono',monospace;font-size:0.72rem;color:var(--clay);margin-top:10px;display:inline-block;}

/* ---------- GALLERY (detail pages) ---------- */
.gallery-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:14px;margin-top:32px;}
.gallery-grid img{width:100%;height:220px;object-fit:cover;border-radius:12px;}

/* ---------- QUICK FACTS STRIP ---------- */
.quickfacts{
  display:grid;grid-template-columns:repeat(auto-fit,minmax(160px,1fr));gap:20px;
  background:#fff;border:1px solid var(--line);border-radius:16px;padding:28px 30px;margin-top:8px;
}
.quickfacts div .k{font-family:'IBM Plex Mono',monospace;font-size:0.7rem;text-transform:uppercase;letter-spacing:0.06em;color:#8a8172;}
.quickfacts div .v{font-family:'Fraunces',serif;font-size:1.3rem;font-weight:600;margin-top:4px;}

/* ---------- PREV/NEXT ---------- */
.nextprev{display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;border-top:1px solid var(--line);padding-top:32px;margin-top:16px;}
.nextprev a{text-decoration:none;font-family:'IBM Plex Mono',monospace;font-size:0.82rem;color:var(--night);}
.nextprev a:hover{color:var(--clay);}
.nextprev .arrow{opacity:0.6;}

/* ---------- ELEVATION SPINE ---------- */
.spine-wrap{position:relative;padding-top:20px;}
.days{position:relative;display:flex;flex-direction:column;gap:0;}
.day-row{display:grid;grid-template-columns:1fr 120px 1fr;align-items:center;min-height:150px;position:relative;}
.day-row:nth-child(odd) .day-card{grid-column:1;justify-self:end;text-align:right;}
.day-row:nth-child(even) .day-card{grid-column:3;justify-self:start;text-align:left;}
.day-node{grid-column:2;justify-self:center;width:14px;height:14px;border-radius:50%;background:var(--paper);border:3px solid var(--clay);z-index:2;}
.day-card{max-width:400px;background:#fff;border:1px solid var(--line);border-radius:14px;padding:18px 22px;}
.day-card .num{font-family:'IBM Plex Mono',monospace;font-size:0.72rem;color:var(--clay);text-transform:uppercase;letter-spacing:0.08em;}
.day-card h4{font-family:'Fraunces',serif;font-size:1.15rem;font-weight:600;margin:4px 0 6px;}
.day-card p{font-size:0.88rem;color:#5a5348;}
.day-card .elev-tag{display:inline-block;margin-top:8px;font-family:'IBM Plex Mono',monospace;font-size:0.68rem;background:var(--paper-2);color:var(--night);padding:3px 9px;border-radius:999px;}
@media(max-width:720px){
  .day-row{grid-template-columns:40px 1fr;}
  .day-node{grid-column:1;}
  .day-row:nth-child(odd) .day-card,.day-row:nth-child(even) .day-card{grid-column:2;justify-self:start;text-align:left;max-width:100%;}
}

/* ---------- TIER PRICE CARDS ---------- */
.tier-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:36px;}
@media(max-width:900px){.tier-cards{grid-template-columns:1fr;}}
.tier-card{border-radius:18px;padding:32px 28px;color:var(--paper);position:relative;overflow:hidden;}
.tier-card.essential{background:var(--teal);}
.tier-card.elevated{background:var(--clay-deep);}
.tier-card.signature{background:var(--night);}
.tier-card .label{font-family:'IBM Plex Mono',monospace;font-size:0.75rem;letter-spacing:0.1em;text-transform:uppercase;opacity:0.75;}
.tier-card .price{font-family:'Fraunces',serif;font-size:clamp(2.2rem,5vw,3rem);font-weight:600;margin:10px 0 4px;}
.tier-card .price small{font-family:'IBM Plex Mono',monospace;font-size:0.95rem;font-weight:400;opacity:0.7;}
.tier-card .desc{font-size:0.9rem;opacity:0.85;margin-top:10px;}
.tier-card .headline{font-family:'Fraunces',serif;font-size:1.2rem;font-weight:600;margin-top:16px;}

/* ---------- TIER DETAIL SECTIONS ---------- */
.tier-detail{border-top:1px solid var(--line);padding-top:56px;margin-top:16px;}
.tier-flag{display:inline-block;font-family:'IBM Plex Mono',monospace;font-size:0.72rem;padding:5px 12px;border-radius:999px;margin-bottom:14px;color:#fff;}
.tier-flag.essential{background:var(--teal);}
.tier-flag.elevated{background:var(--clay-deep);}
.tier-flag.signature{background:var(--night);}

table{width:100%;border-collapse:collapse;margin-top:18px;font-size:0.92rem;}
th,td{text-align:left;padding:10px 14px;border-bottom:1px solid var(--line);}
th{font-family:'IBM Plex Mono',monospace;font-size:0.72rem;text-transform:uppercase;letter-spacing:0.06em;color:#7a7161;}
td.num,th.num{text-align:right;font-family:'IBM Plex Mono',monospace;}
tr.total td{font-weight:600;border-top:2px solid var(--ink);border-bottom:none;padding-top:14px;}

.two-col{display:grid;grid-template-columns:1.1fr 1fr;gap:40px;margin-top:24px;}
@media(max-width:800px){.two-col{grid-template-columns:1fr;}}

.addon-note{margin-top:18px;padding:14px 18px;border-radius:10px;background:var(--paper-2);font-size:0.85rem;color:#5a5348;}

footer{background:var(--night);color:rgba(241,233,218,0.7);padding:40px 24px;text-align:center;font-size:0.82rem;}
footer strong{color:var(--paper);}

/* ---------- OPEN DECISIONS (prominent) ---------- */
.decisions-callout{background:var(--clay-deep);}
.decisions-callout h3{color:var(--paper);font-size:1.4rem;}
.decisions-list{list-style:none;margin-top:14px;display:flex;flex-direction:column;gap:14px;}
.decisions-list li{
  font-size:1.05rem;color:rgba(241,233,218,0.92);padding-left:20px;
  position:relative;line-height:1.4;
}
.decisions-list li::before{
  content:"";position:absolute;left:0;top:0.55em;width:9px;height:9px;
  border-radius:50%;background:var(--gold);
}
.decisions-list li strong{color:var(--paper);font-family:'Fraunces',serif;font-weight:600;}
.estimate-note{font-size:1rem;color:rgba(241,233,218,0.9);margin-top:14px;line-height:1.6;}
.estimate-note strong{color:var(--gold);}
