  :root{
    --ink:#1A1A1A;
    --ink-soft:#4A4A46;
    --paper:#FFFFFF;
    --paper-light:#FFFDF6;
    --marigold:#FFC629;
    --marigold-deep:#E8AC00;
    --coral:#1A1A1A;
    --moss:#8A7B00;
    --line: rgba(26,26,26,0.13);
  }
  *{box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{
    margin:0;
    background:var(--paper);
    color:var(--ink);
    font-family:'Inter',sans-serif;
    -webkit-font-smoothing:antialiased;
  }
  h1,h2,h3{
    font-family:'Fraunces',serif;
    margin:0;
    line-height:1.05;
    letter-spacing:-0.01em;
    font-weight:600;
  }
  p{margin:0;}
  a{color:inherit;text-decoration:none;}
  img{max-width:100%;display:block;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
  .eyebrow{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.14em;
    text-transform:uppercase;
    color:var(--moss);
  }

  /* ===== NAV ===== */
  header{
    position:sticky;top:0;z-index:50;
    background:var(--paper);
    border-bottom:1px solid var(--line);
  }
  nav.wrap{
    display:flex;align-items:center;justify-content:space-between;
    height:78px;
  }
  .logo{
    font-family:'Fraunces',serif;
    font-weight:700;
    font-size:24px;
    display:flex;align-items:center;gap:8px;
  }
  .logo .dot{
    width:10px;height:10px;border-radius:50%;
    background:var(--coral);
    display:inline-block;
  }
  .nav-links{display:flex;gap:36px;align-items:center;font-size:14.5px;font-weight:500;}
  .nav-links a{opacity:0.8;transition:opacity .2s;}
  .nav-links a:hover{opacity:1;}
  .btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    padding:12px 22px;
    border-radius:999px;
    font-weight:600;
    font-size:14.5px;
    border:1.5px solid var(--ink);
    cursor:pointer;
    transition:transform .15s ease, background .2s ease, color .2s ease;
  }
  .btn:hover{transform:translateY(-2px);}
  .btn-dark{background:var(--ink);color:var(--paper-light);}
  .btn-dark:hover{background:var(--ink-soft);}
  .btn-ghost{background:transparent;color:var(--ink);}
  .btn-marigold{background:var(--marigold);border-color:var(--marigold);color:var(--ink);}
  .btn-marigold:hover{background:var(--marigold-deep);border-color:var(--marigold-deep);}

  /* ===== HERO ===== */
  .hero{
    padding:88px 0 40px;
    position:relative;
    overflow:hidden;
  }
  .hero-grid{
    display:grid;
    grid-template-columns:1.15fr 0.85fr;
    gap:56px;
    align-items:center;
  }
  .hero h1{
    font-size:clamp(42px,5.4vw,72px);
    color:var(--ink);
  }
  .hero h1 em{
    font-style:italic;
    color:var(--marigold-deep);
    font-weight:500;
  }
  .hero-sub{
    margin-top:22px;
    font-size:18px;
    line-height:1.6;
    max-width:480px;
    color:var(--ink-soft);
  }
  .hero-stats{
    display:flex;gap:36px;margin-top:38px;
  }
  .hero-stats div{display:flex;flex-direction:column;}
  .hero-stats strong{font-family:'Fraunces',serif;font-size:30px;}
  .hero-stats span{font-size:12.5px;color:var(--ink-soft);font-family:'IBM Plex Mono',monospace;}

  .hero-art{
    position:relative;
    aspect-ratio:1/1.05;
    border-radius:28px;
    background:var(--ink);
    overflow:hidden;
  }
  .hero-art img{width:100%;height:100%;object-fit:cover;opacity:0.92;}
  .hero-art .badge{
    position:absolute;top:20px;right:20px;
    background:var(--marigold);
    color:var(--ink);
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    padding:8px 14px;
    border-radius:999px;
    font-weight:500;
  }
  .hero-art .caption{
    position:absolute;bottom:0;left:0;right:0;
    padding:20px 22px;
    background:linear-gradient(0deg, rgba(22,36,28,0.85), transparent);
    color:var(--paper-light);
    font-size:13.5px;
  }

  /* ===== TICKET SEARCH ===== */
  .ticket{
    margin-top:56px;
    background:var(--paper-light);
    border:1.5px solid var(--ink);
    border-radius:20px;
    display:grid;
    grid-template-columns:1fr 1fr 1fr auto;
    position:relative;
  }
  .ticket::before, .ticket::after{
    content:"";
    position:absolute;
    top:50%;transform:translateY(-50%);
    width:26px;height:26px;
    border-radius:50%;
    background:var(--paper);
    border:1.5px solid var(--ink);
  }
  .ticket::before{left:-13px;}
  .ticket::after{right:-13px;}
  .t-field{
    padding:20px 26px;
    border-right:1.5px dashed var(--line);
  }
  .t-field:last-of-type{border-right:none;}
  .t-field label{
    display:block;
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--moss);
    margin-bottom:6px;
  }
  .t-field select, .t-field input{
    border:none;background:transparent;
    font-family:'Fraunces',serif;
    font-size:19px;
    font-weight:500;
    color:var(--ink);
    width:100%;
    padding:0;
  }
  .t-field select:focus, .t-field input:focus{outline:none;}
  .t-cta{
    display:flex;align-items:center;padding:12px;
  }
  .t-cta button{
    width:100%;height:100%;
    background:var(--coral);
    color:#fff;
    border:none;
    border-radius:14px;
    font-family:'Inter',sans-serif;
    font-weight:700;
    font-size:15px;
    padding:0 30px;
    cursor:pointer;
    transition:background .2s ease;
  }
  .t-cta button:hover{background:#d94a63;}

  /* ===== MARQUEE ===== */
  .marquee-band{
    background:var(--ink);
    color:var(--paper);
    padding:14px 0;
    overflow:hidden;
    white-space:nowrap;
    margin-top:70px;
  }
  .marquee-track{
    display:inline-flex;
    gap:48px;
    animation:scroll 26s linear infinite;
  }
  .marquee-track span{
    font-family:'IBM Plex Mono',monospace;
    font-size:13px;
    letter-spacing:0.06em;
    display:inline-flex;align-items:center;gap:10px;
  }
  .marquee-track span::before{content:"✦";color:var(--marigold);}
  @keyframes scroll{
    from{transform:translateX(0);}
    to{transform:translateX(-50%);}
  }

  /* ===== SECTION HEADS ===== */
  section{padding:96px 0;}
  .sec-head{
    display:flex;justify-content:space-between;align-items:flex-end;
    gap:40px;margin-bottom:52px;
  }
  .sec-head h2{font-size:clamp(30px,3.4vw,46px);max-width:600px;}
  .sec-head p{max-width:340px;font-size:15px;color:var(--ink-soft);line-height:1.6;}

  /* ===== CITIES / PETAL CARDS ===== */
  .city-row{
    display:grid;
    grid-template-columns:repeat(4,1fr);
    gap:22px;
  }
  .city-card{
    position:relative;
    aspect-ratio:3/4;
    border-radius:40px 12px 40px 12px;
    overflow:hidden;
    background:var(--ink);
    transition:border-radius .35s ease, transform .3s ease;
  }
  .city-card:hover{
    border-radius:12px 40px 12px 40px;
    transform:translateY(-6px);
  }
  .city-card img{width:100%;height:100%;object-fit:cover;opacity:0.82;}
  .city-card .tag{
    position:absolute;inset:auto 16px 16px 16px;
    color:#fff;
  }
  .city-card .tag .name{font-family:'Fraunces',serif;font-size:22px;font-weight:600;}
  .city-card .tag .count{
    font-family:'IBM Plex Mono',monospace;
    font-size:11.5px;
    opacity:0.85;
  }
  .city-card .num{
    position:absolute;top:16px;left:16px;
    font-family:'IBM Plex Mono',monospace;
    color:var(--marigold);
    font-size:12px;
  }
  .city-more{
    margin-top:26px;text-align:center;
  }

  /* ===== FEATURES ===== */
  .feat-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:1px;
    background:var(--line);
    border:1px solid var(--line);
    border-radius:24px;
    overflow:hidden;
  }
  .feat-card{
    background:var(--paper-light);
    padding:38px 32px;
  }
  .feat-card .ico{
    width:48px;height:48px;
    border-radius:50%;
    background:var(--paper);
    display:flex;align-items:center;justify-content:center;
    font-family:'Fraunces',serif;
    font-size:18px;
    color:var(--coral);
    margin-bottom:22px;
    border:1px solid var(--line);
  }
  .feat-card h3{font-size:20px;margin-bottom:10px;}
  .feat-card p{font-size:14.5px;color:var(--ink-soft);line-height:1.6;}

  /* ===== BOOK DIRECT BANNER ===== */
  .banner{
    background:var(--marigold);
    border-radius:28px;
    padding:56px;
    display:grid;
    grid-template-columns:1.2fr 0.8fr;
    gap:40px;
    align-items:center;
  }
  .banner h2{font-size:clamp(28px,3vw,40px);color:var(--ink);}
  .banner p{margin-top:14px;font-size:15.5px;max-width:440px;color:var(--ink-soft);}
  .banner-cta{display:flex;gap:14px;flex-wrap:wrap;}
  .perk-list{display:flex;flex-direction:column;gap:16px;}
  .perk{
    display:flex;align-items:center;gap:14px;
    background:rgba(255,255,255,0.35);
    border:1px solid rgba(22,36,28,0.18);
    border-radius:14px;
    padding:14px 18px;
  }
  .perk .num{
    font-family:'Fraunces',serif;font-size:24px;font-weight:600;color:var(--ink);
    min-width:44px;
  }
  .perk span{font-size:13.5px;color:var(--ink-soft);}

  /* ===== ROOMS ===== */
  .room-scroll{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
  }
  .room-card{
    background:var(--paper-light);
    border:1px solid var(--line);
    border-radius:22px;
    overflow:hidden;
  }
  .room-img{
    aspect-ratio:4/3;
    background:var(--moss);
    position:relative;
    overflow:hidden;
  }
  .room-img img{width:100%;height:100%;object-fit:cover;}
  .room-body{padding:24px;}
  .room-body .eyebrow{margin-bottom:8px;}
  .room-body h3{font-size:21px;margin-bottom:8px;}
  .room-body p{font-size:13.5px;color:var(--ink-soft);line-height:1.55;margin-bottom:16px;}
  .room-foot{display:flex;justify-content:space-between;align-items:center;}
  .room-price{font-family:'IBM Plex Mono',monospace;font-size:14px;}
  .room-price strong{font-family:'Fraunces',serif;font-size:20px;color:var(--ink);}

  /* ===== TESTIMONIALS ===== */
  .quote-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
  }
  .quote-card{
    background:var(--ink);
    color:var(--paper-light);
    border-radius:22px;
    padding:30px 28px;
    display:flex;flex-direction:column;justify-content:space-between;
    min-height:230px;
  }
  .quote-card p.q{
    font-family:'Fraunces',serif;
    font-style:italic;
    font-size:18px;
    line-height:1.5;
  }
  .quote-foot{margin-top:22px;display:flex;justify-content:space-between;align-items:center;}
  .quote-foot .who{font-size:13px;font-weight:600;}
  .quote-foot .stars{color:var(--marigold);font-size:13px;font-family:'IBM Plex Mono',monospace;}

  /* ===== CTA STRIP ===== */
  .cta-strip{
    text-align:center;
    padding:70px 40px;
    border:1.5px solid var(--ink);
    border-radius:28px;
  }
  .cta-strip h2{font-size:clamp(30px,4vw,48px);}
  .cta-strip p{margin-top:16px;font-size:15.5px;color:var(--ink-soft);}
  .cta-strip .btn{margin-top:30px;}

  /* ===== FOOTER ===== */
  footer{
    background:var(--ink);
    color:var(--paper);
    padding:64px 0 30px;
  }
  .foot-grid{
    display:grid;
    grid-template-columns:1.4fr 1fr 1fr 1fr;
    gap:40px;
    padding-bottom:48px;
    border-bottom:1px solid rgba(243,236,216,0.15);
  }
  .foot-grid h4{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.1em;
    text-transform:uppercase;
    color:var(--marigold);
    margin-bottom:18px;
  }
  .foot-grid ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px;}
  .foot-grid a{font-size:14px;opacity:0.85;}
  .foot-grid a:hover{opacity:1;}
  .foot-logo{font-family:'Fraunces',serif;font-size:26px;font-weight:700;margin-bottom:14px;}
  .foot-tag{font-size:14px;opacity:0.75;max-width:280px;line-height:1.6;}
  .foot-bottom{
    display:flex;justify-content:space-between;align-items:center;
    padding-top:24px;font-size:12.5px;opacity:0.6;
    font-family:'IBM Plex Mono',monospace;
  }

  @media (max-width:980px){
    .hero-grid{grid-template-columns:1fr;}
    .hero-art{max-width:420px;}
    .ticket{grid-template-columns:1fr 1fr;}
    .t-cta{grid-column:span 2;}
    .city-row{grid-template-columns:repeat(2,1fr);}
    .feat-grid{grid-template-columns:1fr;}
    .banner{grid-template-columns:1fr;}
    .room-scroll{grid-template-columns:1fr;}
    .quote-grid{grid-template-columns:1fr;}
    .foot-grid{grid-template-columns:1fr 1fr;gap:32px;}
    .nav-links{display:none;}
  }

  /* ===== SHARED MULTIPAGE ADDITIONS ===== */
  .nav-links a.active{
    opacity:1;
    color:var(--marigold-deep);
  }

  /* Page header banner (used on inner pages) */
  .page-header{
    padding:64px 0 56px;
    border-bottom:1px solid var(--line);
    background:var(--paper-light);
  }
  .page-header .eyebrow{margin-bottom:14px;}
  .page-header h1{font-size:clamp(34px,4.4vw,56px);max-width:720px;}
  .page-header p{margin-top:16px;font-size:16.5px;line-height:1.6;max-width:560px;color:var(--ink-soft);}
  .breadcrumb{
    font-family:'IBM Plex Mono',monospace;
    font-size:12px;
    letter-spacing:0.06em;
    color:var(--ink-soft);
    margin-bottom:18px;
    display:flex;gap:8px;align-items:center;
  }
  .breadcrumb a{opacity:0.7;}
  .breadcrumb a:hover{opacity:1;text-decoration:underline;}

  /* Full city grid (9 cities page) */
  .city-row-full{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:22px;
  }

  /* Room detail page additions */
  .room-detail-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    margin-top:20px;
  }
  .room-amenities{
    list-style:none;padding:0;margin:14px 0 0;
    display:flex;flex-wrap:wrap;gap:8px;
  }
  .room-amenities li{
    font-family:'IBM Plex Mono',monospace;
    font-size:11.5px;
    color:var(--moss);
    background:var(--paper);
    border:1px solid var(--line);
    padding:5px 10px;
    border-radius:999px;
  }

  /* Loyalty tiers page */
  .tier-grid{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
    margin-top:52px;
  }
  .tier-card{
    background:var(--paper-light);
    border:1.5px solid var(--ink);
    border-radius:22px;
    padding:32px 28px;
    position:relative;
  }
  .tier-card.featured{background:var(--marigold);}
  .tier-card .tier-pct{font-family:'Fraunces',serif;font-size:38px;font-weight:700;margin-bottom:6px;}
  .tier-card h3{font-size:19px;margin-bottom:12px;}
  .tier-card p{font-size:14px;color:var(--ink-soft);line-height:1.6;}
  .tier-card .req{
    margin-top:18px;
    font-family:'IBM Plex Mono',monospace;
    font-size:11.5px;
    text-transform:uppercase;
    letter-spacing:0.06em;
    color:var(--moss);
  }

  /* Stories page full grid */
  .quote-grid-full{
    display:grid;
    grid-template-columns:repeat(3,1fr);
    gap:24px;
  }

  /* Contact page */
  .contact-grid{
    display:grid;
    grid-template-columns:1fr 0.85fr;
    gap:56px;
  }
  .contact-form{
    display:flex;flex-direction:column;gap:18px;
  }
  .form-row{display:flex;flex-direction:column;gap:8px;}
  .form-row label{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;letter-spacing:0.08em;text-transform:uppercase;
    color:var(--moss);
  }
  .form-row input, .form-row select, .form-row textarea{
    border:1.5px solid var(--ink);
    border-radius:12px;
    padding:13px 16px;
    font-family:'Inter',sans-serif;
    font-size:15px;
    color:var(--ink);
    background:var(--paper);
  }
  .form-row textarea{resize:vertical;min-height:120px;font-family:'Inter',sans-serif;}
  .form-row input:focus, .form-row select:focus, .form-row textarea:focus{
    outline:none;border-color:var(--marigold-deep);
  }
  .contact-info{
    background:var(--ink);
    color:var(--paper-light);
    border-radius:22px;
    padding:36px 32px;
  }
  .contact-info h3{font-size:20px;margin-bottom:18px;color:var(--paper-light);}
  .contact-info .row{
    display:flex;flex-direction:column;gap:4px;
    padding:16px 0;
    border-top:1px solid rgba(243,236,216,0.15);
  }
  .contact-info .row:first-of-type{border-top:none;}
  .contact-info .row .label{
    font-family:'IBM Plex Mono',monospace;
    font-size:11px;letter-spacing:0.06em;text-transform:uppercase;
    color:var(--marigold);
  }
  .contact-info .row .val{font-size:15px;}

  @media (max-width:980px){
    .city-row-full{grid-template-columns:repeat(2,1fr);}
    .room-detail-grid{grid-template-columns:1fr;}
    .tier-grid{grid-template-columns:1fr;}
    .quote-grid-full{grid-template-columns:1fr;}
    .contact-grid{grid-template-columns:1fr;}
  }
