/*
Theme Name: The Wilbur
Theme URI: https://thewilburhotel.com/
Author: The Wilbur Lititz
Description: Luxury chocolate-factory heritage theme for The Wilbur Lititz, Tapestry Collection by Hilton. Every word and image is editable in the Customizer.
Version: 1.0.0
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: the-wilbur
*/
/* ============================================================
   THE WILBUR · LITITZ — luxury design system
   Fraunces (display) · Jost (body)
   ============================================================ */
:root{
  --espresso:#180b04;
  --cocoa:#241207;
  --mahogany:#331c0d;
  --walnut:#452817;
  --gold:#c29a5c;
  --gold-deep:#a37c3f;
  --gold-bright:#e5cb95;
  --champagne:#f0e5cc;
  --ivory:#f7f2e8;
  --porcelain:#fbf8f1;
  --ink:#26150a;
  --ink-soft:#5c4630;
  --taupe:#98836a;
  --line:rgba(194,154,92,.28);
  --line-dark:rgba(194,154,92,.2);
  --ease:cubic-bezier(.22,.9,.3,1);
}
*{margin:0;padding:0;box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  font-family:'Jost',sans-serif;
  background:var(--espresso);
  color:var(--champagne);
  line-height:1.65;
  font-weight:300;
  overflow-x:hidden;
}
::selection{background:var(--gold);color:var(--espresso)}
h1,h2,h3,h4,.serif{font-family:'Fraunces',serif;font-weight:400}
img{max-width:100%}
a{color:inherit}

.wrap{max-width:1220px;margin:0 auto;padding:0 30px}

/* ---------- foil + type helpers ---------- */
.foil{
  font-style:italic;
  background:linear-gradient(105deg,var(--gold-bright) 10%,var(--gold) 45%,#8f6a33 70%,var(--gold-bright) 95%);
  -webkit-background-clip:text;background-clip:text;color:transparent;
}
.kicker{
  display:flex;align-items:center;gap:16px;
  letter-spacing:.42em;text-transform:uppercase;
  font-size:.68rem;font-weight:500;color:var(--gold);
  margin-bottom:22px;
}
.kicker::before{content:'';width:44px;height:1px;background:var(--gold);opacity:.6}
.kicker.center{justify-content:center}
.kicker.center::after{content:'';width:44px;height:1px;background:var(--gold);opacity:.6}
.kicker .dia{font-size:.55rem;transform:translateY(-1px)}
h2{font-size:clamp(2.1rem,4.2vw,3.5rem);line-height:1.14;letter-spacing:.005em;margin-bottom:24px}
h3{font-size:1.45rem}
.lede{font-size:1.08rem;max-width:60ch;color:#e3d5b4}
.light .lede{color:var(--ink-soft)}
.measure{max-width:62ch}

/* ---------- buttons ---------- */
.btn{
  display:inline-block;
  border:1px solid var(--gold);
  color:var(--champagne);
  background:transparent;
  padding:15px 38px;
  font-family:'Jost',sans-serif;
  font-size:.74rem;font-weight:500;
  letter-spacing:.3em;text-transform:uppercase;
  text-decoration:none;cursor:pointer;
  transition:background .4s var(--ease),color .4s var(--ease),border-color .4s var(--ease),transform .4s var(--ease);
}
.btn:hover{background:var(--gold);color:var(--espresso)}
.btn.solid{
  background:linear-gradient(120deg,var(--gold-bright),var(--gold) 55%,var(--gold-deep));
  color:var(--espresso);border-color:transparent;font-weight:600;
}
.btn.solid:hover{transform:translateY(-2px);box-shadow:0 16px 40px rgba(194,154,92,.32)}
.light .btn{color:var(--ink);border-color:var(--gold-deep)}
.light .btn:hover{background:var(--gold-deep);color:var(--porcelain)}
.light .btn.solid{color:var(--espresso)}
.textlink{
  color:var(--gold-bright);text-decoration:none;
  font-size:.74rem;font-weight:500;letter-spacing:.28em;text-transform:uppercase;
  border-bottom:1px solid var(--line);padding-bottom:5px;
  transition:border-color .3s,color .3s;
}
.textlink:hover{color:#fff;border-color:var(--gold-bright)}
.light .textlink{color:var(--gold-deep)}
.light .textlink:hover{color:var(--ink)}

/* ---------- melt progress ---------- */
#melt{
  position:fixed;top:0;left:0;height:3px;width:0%;
  background:linear-gradient(90deg,var(--gold-deep),var(--gold),var(--gold-bright));
  z-index:2000;
}

/* ---------- utility bar + nav ---------- */
.utility{
  display:flex;justify-content:space-between;align-items:center;gap:20px;
  padding:9px 34px;
  font-size:.66rem;letter-spacing:.24em;text-transform:uppercase;font-weight:400;
  color:#b9a887;
  border-bottom:1px solid rgba(194,154,92,.16);
  background:rgba(16,8,3,.6);
  position:relative;z-index:1001;
}
.utility a{color:inherit;text-decoration:none}
.utility a:hover{color:var(--gold-bright)}
.navshell{position:fixed;top:0;left:0;right:0;z-index:1000;transition:transform .5s var(--ease)}
nav.main{
  display:flex;align-items:center;justify-content:space-between;
  padding:18px 34px;
  transition:background .45s var(--ease),box-shadow .45s var(--ease),padding .45s var(--ease);
}
.navshell.scrolled{transform:translateY(-32px)}
.navshell.scrolled nav.main{
  background:rgba(18,9,3,.94);
  backdrop-filter:blur(16px);-webkit-backdrop-filter:blur(16px);
  box-shadow:0 8px 40px rgba(0,0,0,.5);
  padding:12px 34px;
}
.nav-logo img{height:54px;display:block;filter:brightness(0) invert(1) sepia(.3) saturate(1.8) hue-rotate(-14deg);opacity:.95;transition:height .45s var(--ease)}
.navshell.scrolled .nav-logo img{height:44px}
.nav-links{display:flex;gap:34px;align-items:center;list-style:none}
.nav-links a{
  color:var(--champagne);text-decoration:none;
  font-size:.72rem;font-weight:500;letter-spacing:.26em;text-transform:uppercase;
  position:relative;padding:6px 0;
}
.nav-links a:not(.btn)::after{
  content:'';position:absolute;bottom:0;left:50%;transform:translateX(-50%);
  width:0;height:1px;background:var(--gold-bright);transition:width .35s var(--ease);
}
.nav-links a:not(.btn):hover::after,.nav-links a.active::after{width:100%}
.nav-links a.active{color:var(--gold-bright)}
.nav-links .btn{padding:12px 26px}
#burger{display:none;background:none;border:none;cursor:pointer;z-index:1102}
#burger span{display:block;width:26px;height:1.5px;background:var(--champagne);margin:7px 0;transition:.35s var(--ease)}

/* ---------- page hero (interior pages) ---------- */
.page-hero{
  position:relative;min-height:62vh;
  display:flex;flex-direction:column;justify-content:flex-end;
  padding:200px 30px 90px;
  overflow:hidden;
  background:
    radial-gradient(1100px 600px at 82% -10%,rgba(194,154,92,.16),transparent 60%),
    radial-gradient(700px 500px at 8% 110%,rgba(120,60,25,.28),transparent 60%),
    linear-gradient(175deg,#150a03 0%,#241207 55%,#331c0d 100%);
}
.page-hero .wrap{width:100%}
.page-hero h1{
  font-size:clamp(2.6rem,5.6vw,4.6rem);
  line-height:1.05;font-weight:400;max-width:18ch;
}
.page-hero .lede{margin-top:22px}
.crumbs{
  letter-spacing:.4em;text-transform:uppercase;font-size:.66rem;font-weight:500;
  color:var(--gold);margin-bottom:20px;
}
.crumbs a{color:inherit;text-decoration:none}
.crumbs a:hover{color:var(--gold-bright)}
.page-hero .hairline{margin-top:56px;height:1px;background:linear-gradient(90deg,var(--gold),transparent 70%);opacity:.5}

/* ---------- sections ---------- */
section{padding:120px 0;position:relative}
section.tight{padding:90px 0}
.light{background:var(--porcelain);color:var(--ink)}
.light .kicker{color:var(--gold-deep)}
.dark-soft{background:linear-gradient(180deg,#1d0e05,#2a1509)}

/* facts strip */
.facts-strip{
  border-top:1px solid var(--line-dark);
  border-bottom:1px solid var(--line-dark);
  background:#120902;
  padding:20px 30px;
  display:flex;justify-content:center;flex-wrap:wrap;gap:14px 0;
  font-size:.66rem;letter-spacing:.32em;text-transform:uppercase;color:#c3b18d;font-weight:400;
}
.facts-strip span{display:flex;align-items:center}
.facts-strip span+span::before{content:'◆';color:var(--gold);font-size:.5rem;margin:0 26px;opacity:.7}

/* editorial split */
.split{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}
.split.tight{gap:56px}
.split .art{position:relative}
.framed{
  position:relative;border:1px solid var(--line);padding:14px;
}
.framed::after{
  content:'';position:absolute;inset:14px;border:1px solid var(--line);pointer-events:none;
}
.framed svg,.framed img{display:block;width:100%;height:auto}

/* spec list */
.speclist{list-style:none;margin-top:30px}
.speclist li{
  display:flex;gap:16px;align-items:baseline;
  padding:14px 0;border-bottom:1px solid var(--line-dark);
  font-size:.95rem;
}
.light .speclist li{border-color:#e7dcc4}
.speclist li::before{content:'◆';color:var(--gold);font-size:.5rem}
.speclist b{font-weight:500}

/* cards */
.g2{display:grid;grid-template-columns:1fr 1fr;gap:26px}
.g3{display:grid;grid-template-columns:repeat(3,1fr);gap:26px}
.g4{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}
.card{
  border:1px solid var(--line-dark);
  background:linear-gradient(180deg,#2b1608,#20100595);
  padding:0;overflow:hidden;
  transition:transform .5s var(--ease),box-shadow .5s var(--ease),border-color .5s var(--ease);
}
.card:hover{transform:translateY(-6px);border-color:var(--gold);box-shadow:0 30px 70px rgba(0,0,0,.5)}
.card .art{height:230px;position:relative;overflow:hidden}
.card .art svg{position:absolute;inset:0;width:100%;height:100%}
.card .body{padding:30px 30px 36px}
.card .num{
  font-family:'Fraunces',serif;font-style:italic;color:var(--gold);
  font-size:.95rem;letter-spacing:.08em;display:block;margin-bottom:10px;
}
.card h3{font-size:1.5rem;margin-bottom:10px;color:var(--gold-bright)}
.card p{font-size:.94rem;color:#e6d9bb;margin-bottom:18px}
.card .meta{
  display:flex;flex-wrap:wrap;gap:8px 22px;margin-bottom:22px;
  font-size:.68rem;letter-spacing:.2em;text-transform:uppercase;color:var(--taupe);font-weight:500;
}
.light .card{background:#fff;border-color:#e7dcc4}
.light .card p{color:var(--ink-soft)}
.light .card h3{color:var(--ink)}

/* amenity tiles */
.tile{
  border:1px solid #e7dcc4;background:#fff;
  padding:34px 30px;
  transition:transform .4s var(--ease),border-color .4s var(--ease);
}
.tile:hover{transform:translateY(-5px);border-color:var(--gold)}
.tile .ic{margin-bottom:18px;display:block}
.tile .ic svg{width:34px;height:34px;stroke:var(--gold-deep);fill:none;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round}
.tile h3{font-size:1.05rem;font-weight:500;margin-bottom:6px;letter-spacing:.02em}
.tile p{font-size:.88rem;color:var(--ink-soft)}
.dark .tile,.tile.dark{background:rgba(255,255,255,.03);border-color:var(--line-dark);color:var(--champagne)}
.tile.dark p{color:#d9cba9}
.tile.dark:hover{border-color:var(--gold)}

/* quote band */
.quoteband{
  background:linear-gradient(120deg,#a37c3f,#c29a5c 45%,#b18a49);
  color:var(--espresso);text-align:center;padding:110px 30px;
}
.quoteband .stars{letter-spacing:.5em;font-size:.9rem;margin-bottom:28px}
.quoteband blockquote{
  font-family:'Fraunces',serif;font-style:italic;
  font-size:clamp(1.45rem,2.6vw,2.15rem);line-height:1.42;
  max-width:34ch;margin:0 auto 30px;
}
.quoteband .who{letter-spacing:.3em;text-transform:uppercase;font-size:.68rem;font-weight:600}

/* CTA band */
.cta-band{
  text-align:center;
  background:
    radial-gradient(900px 500px at 50% 130%,rgba(194,154,92,.28),transparent 65%),
    linear-gradient(180deg,#241207,#140a03);
  padding:140px 30px;
}
.cta-band h2{max-width:24ch;margin:0 auto 20px}
.cta-band p{color:#e3d5b4;max-width:52ch;margin:0 auto 40px}
.cta-band .btns{display:flex;gap:18px;justify-content:center;flex-wrap:wrap}

/* ---------- booking bar ---------- */
.bookbar{
  display:flex;align-items:stretch;
  background:rgba(18,9,3,.78);
  backdrop-filter:blur(18px);-webkit-backdrop-filter:blur(18px);
  border:1px solid var(--line);
  box-shadow:0 30px 80px rgba(0,0,0,.55);
}
.bookbar .field{
  display:flex;flex-direction:column;gap:3px;
  padding:18px 34px;border-right:1px solid var(--line-dark);
}
.bookbar label{
  font-size:.6rem;letter-spacing:.32em;text-transform:uppercase;color:var(--gold);font-weight:600;
}
.bookbar input,.bookbar select{
  background:transparent;border:none;color:var(--champagne);
  font-family:'Jost',sans-serif;font-size:.98rem;font-weight:300;outline:none;
  color-scheme:dark;
}
.bookbar .btn{border:none;align-self:stretch;display:flex;align-items:center}

/* ---------- footer ---------- */
footer{background:#100702;padding:90px 30px 46px;font-size:.9rem}
.foot-mark{text-align:center;margin-bottom:64px}
.foot-mark img{height:74px;filter:brightness(0) invert(1) sepia(.25) saturate(1.6) hue-rotate(-12deg);opacity:.92}
.foot-mark p{
  margin-top:18px;letter-spacing:.5em;text-transform:uppercase;
  font-size:.62rem;color:var(--taupe);font-weight:500;
}
.foot-grid{
  display:grid;grid-template-columns:repeat(4,1fr);gap:44px;
  max-width:1100px;margin:0 auto 70px;
  padding-top:56px;border-top:1px solid var(--line-dark);
}
.foot-grid h4{
  font-family:'Jost',sans-serif;
  font-size:.66rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold);
  margin-bottom:20px;font-weight:600;
}
.foot-grid ul{list-style:none}
.foot-grid li{margin-bottom:10px}
.foot-grid a,.foot-grid p{color:#cbbb97;text-decoration:none;font-weight:300}
.foot-grid a:hover{color:var(--gold-bright)}
.foot-bottom{
  border-top:1px solid var(--line-dark);
  padding-top:30px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap;
  color:#8a7a63;font-size:.76rem;max-width:1100px;margin:0 auto;
  letter-spacing:.06em;
}
.foot-bottom a{color:#b6a583;text-decoration:none}
.foot-bottom a:hover{color:var(--gold-bright)}

/* ---------- reveal ---------- */
.reveal{opacity:0;transform:translateY(34px);transition:opacity 1s var(--ease),transform 1s var(--ease)}
.reveal.in{opacity:1;transform:none}
.reveal.d1{transition-delay:.12s}
.reveal.d2{transition-delay:.24s}
.reveal.d3{transition-delay:.36s}

/* ---------- responsive ---------- */
@media(max-width:1080px){
  .g3{grid-template-columns:1fr 1fr}
  .g4{grid-template-columns:1fr 1fr}
  .split{grid-template-columns:1fr;gap:56px}
  .foot-grid{grid-template-columns:1fr 1fr}
  .utility{display:none}
  .navshell.scrolled{transform:none}
}
@media(max-width:1080px){
  .nav-links{
    position:fixed;inset:0;background:rgba(16,8,3,.98);
    flex-direction:column;justify-content:center;gap:36px;
    transform:translateY(-102%);transition:transform .55s var(--ease);
  }
  .nav-links.open{transform:none}
  #burger{display:block}
  #burger.open span:nth-child(1){transform:translateY(8.5px) rotate(45deg)}
  #burger.open span:nth-child(2){opacity:0}
  #burger.open span:nth-child(3){transform:translateY(-8.5px) rotate(-45deg)}
}
@media(max-width:860px){
  .g2,.g3,.g4{grid-template-columns:1fr}
  section{padding:84px 0}
  .bookbar{flex-direction:column}
  .bookbar .field{border-right:none;border-bottom:1px solid var(--line-dark)}
  .bookbar .btn{padding:16px;justify-content:center}
  .page-hero{padding-top:150px}
}
@media(prefers-reduced-motion:reduce){
  *,*::before,*::after{animation:none !important;transition:none !important}
  html{scroll-behavior:auto}
  .reveal{opacity:1;transform:none}
}

/* ============ home hero ============ */
.hero{position:relative;min-height:100vh;display:flex;flex-direction:column;justify-content:center;align-items:center;text-align:center;padding:170px 24px 170px;background:radial-gradient(1200px 700px at 78% -10%,rgba(194,154,92,.18),transparent 60%),radial-gradient(900px 600px at 12% 110%,rgba(110,55,22,.3),transparent 60%),linear-gradient(178deg,#130903 0%,#211106 44%,#301a0c 100%);overflow:hidden;isolation:isolate}
.hero-kicker{letter-spacing:.44em;text-transform:uppercase;font-size:.7rem;font-weight:500;color:var(--gold-bright);margin-bottom:30px;display:flex;align-items:center;gap:18px}
.hero-kicker::before,.hero-kicker::after{content:'';height:1px;width:60px;background:linear-gradient(90deg,transparent,var(--gold))}
.hero-kicker::after{background:linear-gradient(90deg,var(--gold),transparent)}
.hero h1{font-size:clamp(2.7rem,6.6vw,5.7rem);font-weight:300;line-height:1.05;letter-spacing:.005em;max-width:15ch}
.hero-sub{margin-top:30px;max-width:58ch;font-size:1.05rem;color:#e8dbbc}
.hero-ctas{margin-top:44px;display:flex;gap:18px;flex-wrap:wrap;justify-content:center}
.bud{position:absolute;pointer-events:none;opacity:.8;animation:floaty var(--dur,15s) ease-in-out infinite alternate;will-change:transform}
@keyframes floaty{from{transform:translateY(-12px) rotate(-4deg)}to{transform:translateY(14px) rotate(5deg)}}
.est-badge{position:absolute;top:140px;right:5.5%;width:120px;height:120px;border-radius:50%;display:grid;place-items:center;animation:spinSlow 30s linear infinite}
@keyframes spinSlow{to{transform:rotate(360deg)}}
.hero .bookwrap{position:absolute;left:50%;bottom:52px;transform:translateX(-50%);z-index:5;width:min(880px,92vw)}
.brickline{position:absolute;bottom:0;left:0;right:0;height:220px;pointer-events:none;opacity:.45}
@media(max-width:1080px){.est-badge{display:none}}
@media(max-width:860px){.hero{padding-bottom:80px}.hero .bookwrap{position:relative;left:auto;bottom:auto;transform:none;margin-top:52px}}
/* home sections */
.factlets{display:flex;gap:0;margin-top:38px;border:1px solid #e7dcc4;background:#fff}
.factlet{flex:1;padding:24px 20px;text-align:center;border-right:1px solid #e7dcc4}
.factlet:last-child{border-right:none}
.factlet b{font-family:'Fraunces',serif;font-weight:400;font-size:2rem;color:var(--gold-deep);display:block;line-height:1.15}
.factlet span{font-size:.66rem;letter-spacing:.22em;text-transform:uppercase;color:var(--taupe);font-weight:500}
.dinehome{border:1px solid var(--line-dark);padding:56px 50px;position:relative;overflow:hidden;display:flex;flex-direction:column;justify-content:flex-end;min-height:360px;transition:border-color .5s var(--ease),transform .5s var(--ease)}
.dinehome:hover{border-color:var(--gold);transform:translateY(-5px)}
.dinehome.fire{background:radial-gradient(700px 420px at 82% 0%,rgba(200,100,40,.35),transparent 60%),linear-gradient(160deg,#301508,#180b04)}
.dinehome.market{background:radial-gradient(700px 420px at 15% 0%,rgba(229,203,149,.28),transparent 60%),linear-gradient(200deg,#46280f,#221105)}
.dinehome .tag{font-size:.64rem;letter-spacing:.34em;text-transform:uppercase;color:var(--gold-bright);font-weight:600;margin-bottom:12px}
.dinehome h3{font-size:1.85rem;margin-bottom:12px}
.dinehome p{font-size:.96rem;color:#ecdfc2;max-width:46ch;margin-bottom:26px}
.flame{position:absolute;top:34px;right:38px;opacity:.9;animation:flick 2.6s ease-in-out infinite alternate}
@keyframes flick{from{transform:scale(.96) rotate(-2deg)}to{transform:scale(1.05) rotate(2deg)}}
/* story chapters */
.chapter{display:grid;grid-template-columns:200px 1fr;gap:60px;padding:80px 0;border-bottom:1px solid var(--line-dark)}
.light .chapter{border-color:#e7dcc4}
.chapter:last-of-type{border-bottom:none}
.chapter .no{font-family:'Fraunces',serif;font-style:italic;font-size:4.2rem;line-height:1;color:var(--gold);opacity:.85}
.chapter .no small{display:block;font-family:'Jost',sans-serif;font-style:normal;font-size:.66rem;letter-spacing:.34em;text-transform:uppercase;color:var(--taupe);margin-top:14px}
.chapter h3{font-size:1.9rem;margin-bottom:16px}
.chapter p{max-width:62ch;margin-bottom:14px;color:#e3d5b4}
.light .chapter p{color:var(--ink-soft)}
@media(max-width:860px){.chapter{grid-template-columns:1fr;gap:20px;padding:60px 0}.chapter .no{font-size:3rem}}
/* rooms page */
.roomsplit{padding:90px 0;border-bottom:1px solid var(--line-dark)}
.roomsplit:last-of-type{border-bottom:none}
.roomsplit .num{font-family:'Fraunces',serif;font-style:italic;color:var(--gold);font-size:1rem;display:block;margin-bottom:12px}
/* dine page */
.menuline{display:flex;align-items:baseline;gap:14px;padding:13px 0;border-bottom:1px solid var(--line-dark);font-size:.98rem}
.menuline .dots{flex:1;border-bottom:1px dotted rgba(194,154,92,.5);transform:translateY(-4px)}
.menuline i{font-family:'Fraunces',serif;color:var(--gold-bright)}
/* contact page */
.cform{display:grid;gap:18px}
.cform label{font-size:.62rem;letter-spacing:.3em;text-transform:uppercase;color:var(--gold-deep);font-weight:600;display:block;margin-bottom:7px}
.cform input,.cform select,.cform textarea{width:100%;background:#fff;border:1px solid #e0d3b4;color:var(--ink);padding:14px 16px;font-family:'Jost',sans-serif;font-size:.95rem;font-weight:300;outline:none;transition:border-color .3s}
.cform input:focus,.cform select:focus,.cform textarea:focus{border-color:var(--gold-deep)}
.cform textarea{min-height:130px;resize:vertical}
.cform .row{display:grid;grid-template-columns:1fr 1fr;gap:18px}
@media(max-width:700px){.cform .row{grid-template-columns:1fr}}
.infoline{display:flex;gap:18px;align-items:flex-start;padding:20px 0;border-bottom:1px solid #e7dcc4}
.infoline svg{width:22px;height:22px;stroke:var(--gold-deep);fill:none;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round;flex-shrink:0;margin-top:4px}
.infoline b{display:block;font-weight:500;letter-spacing:.06em}
.infoline a{color:var(--ink-soft);text-decoration:none}
.infoline a:hover{color:var(--gold-deep)}
/* wp adjustments */
body.admin-bar .navshell{top:32px}
@media(max-width:782px){body.admin-bar .navshell{top:46px}}
.framed img{display:block;width:100%;height:auto}

/* hero photo layer */
.hero-photo{position:absolute;inset:0;z-index:-1;background-position:center;background-size:cover}
