:root{
    --ink:#122A3C;
    --ink-2:#1C3D54;
    --gold:#C4922E;
    --gold-soft:#E6C378;
    --rust:#A8492D;
    --ivory:#FAF3E2;
    --card:#FFFFFF;
    --line:#E5D8B8;
    --text:#26313A;
    --text-soft:#5B6670;
    --shadow: 0 18px 40px -22px rgba(18,42,60,0.35);
    --radius-arch: 999px 999px 10px 10px;
  }
  [data-theme="dark"], :root:not([data-theme="light"]) {}
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --ivory:#0E1B24;
      --card:#152634;
      --text:#EDE6D6;
      --text-soft:#B7C1C8;
      --line:#2C3F4C;
    }
  }
  :root[data-theme="dark"]{
    --ivory:#0E1B24;
    --card:#152634;
    --text:#EDE6D6;
    --text-soft:#B7C1C8;
    --line:#2C3F4C;
  }

  *{box-sizing:border-box;}
  html{scroll-behavior:smooth; scroll-padding-top: calc(84px + env(safe-area-inset-top,0px));}
  body{
    margin:0;
    background:var(--ivory);
    color:var(--text);
    font-family:'Work Sans', sans-serif;
    -webkit-font-smoothing:antialiased;
    padding-top: env(safe-area-inset-top,0px);
    padding-bottom: env(safe-area-inset-bottom,0px);
    overflow-x:hidden;
  }
  h1,h2,h3,h4{
    font-family:'Cormorant Garamond', serif;
    font-weight:600;
    line-height:1.08;
    margin:0;
    color:var(--ink);
  }
  :root:not([data-theme="light"]) h1, :root:not([data-theme="light"]) h2, :root:not([data-theme="light"]) h3, :root:not([data-theme="light"]) h4{
    color:#F3E9CE;
  }
  @media (prefers-color-scheme: light){
    :root:not([data-theme="dark"]) h1, :root:not([data-theme="dark"]) h2, :root:not([data-theme="dark"]) h3, :root:not([data-theme="dark"]) h4{ color:var(--ink); }
  }
  :root[data-theme="light"] h1, :root[data-theme="light"] h2, :root[data-theme="light"] h3, :root[data-theme="light"] h4{ color:var(--ink) !important; }

  p{margin:0; color:var(--text-soft); line-height:1.7;}
  a{text-decoration:none; color:inherit;}
  img{max-width:100%; display:block;}
  button{font-family:inherit; cursor:pointer;}
  ul{margin:0; padding:0; list-style:none;}

  .wrap{max-width:1180px; margin:0 auto; padding:0 24px;}
  @media (max-width:640px){ .wrap{padding:0 18px;} }

  /* ---------- Ornamental arch divider ---------- */
  .arch-rule{
    display:flex; align-items:center; justify-content:center; gap:14px;
    margin: 10px 0 28px;
  }
  .arch-rule::before, .arch-rule::after{
    content:""; height:1px; width:52px; background:var(--line);
  }
  .arch-rule svg{ width:22px; height:22px; color:var(--gold); flex:none; }

  .eyebrow{
    font-family:'Cormorant Garamond', serif;
    font-style:italic;
    font-size:1.05rem;
    color:var(--gold);
    margin-bottom:6px;
    display:block;
  }

  /* ---------- Header / Nav ---------- */
  header{
    position:sticky; top:0; z-index:100;
    background:rgba(18,42,60,0.94);
    backdrop-filter:blur(6px);
    padding-top: env(safe-area-inset-top,0px);
    border-bottom:1px solid rgba(196,146,46,0.25);
  }
  .nav-inner{
    max-width:1180px; margin:0 auto; padding:14px 24px;
    display:flex; align-items:center; justify-content:space-between; gap:20px;
  }
  .brand{display:flex; align-items:center; gap:10px; color:#F7EFDA;}
  .brand-mark{
    width:38px; height:38px; flex:none;
    display:flex; align-items:center; justify-content:center;
  }
  .brand-name{
    font-family:'Cormorant Garamond', serif;
    font-size:1.28rem; font-weight:700; color:#F7EFDA; line-height:1.15;
  }
  .brand-name small{
    display:block; font-family:'Work Sans',sans-serif; font-weight:500;
    font-size:0.62rem; letter-spacing:0.06em; color:var(--gold-soft); margin-top:2px;
  }
  nav.links{display:flex; gap:32px;}
  nav.links a{
    color:#E7DEC7; font-size:0.94rem; font-weight:500; position:relative; padding:4px 0;
    transition:color .2s;
  }
  nav.links a::after{
    content:""; position:absolute; left:0; bottom:0; width:0; height:1px; background:var(--gold);
    transition:width .25s ease;
  }
  nav.links a:hover, nav.links a.is-active{color:#fff;}
  nav.links a.is-active::after, nav.links a:hover::after{width:100%;}
  .nav-cta{display:flex; align-items:center; gap:12px;}
  .btn{
    display:inline-flex; align-items:center; gap:8px;
    padding:12px 24px; border-radius:4px; border:1px solid transparent;
    font-weight:600; font-size:0.92rem; letter-spacing:0.01em;
    transition:transform .2s ease, box-shadow .2s ease, background .2s ease, color .2s ease;
  }
  .btn-gold{ background:var(--gold); color:#1B2A34; }
  .btn-gold:hover{ transform:translateY(-2px); box-shadow:0 14px 28px -12px rgba(196,146,46,0.6); }
  .btn-outline{ border-color:rgba(231,222,199,0.45); color:#F7EFDA; }
  .btn-outline:hover{ border-color:#F7EFDA; background:rgba(255,255,255,0.06); }
  .btn-line{ border-bottom:1px solid var(--gold); color:var(--ink); border-radius:0; padding:4px 0; font-size:0.9rem;}
  :root:not([data-theme="light"]) .btn-line{ color:#F3E9CE; }

  .hamburger{ display:none; width:40px; height:40px; border:none; background:none; position:relative; }
  .hamburger span{
    position:absolute; left:8px; right:8px; height:2px; background:#F7EFDA; transition:.25s;
  }
  .hamburger span:nth-child(1){top:14px;} .hamburger span:nth-child(2){top:20px;} .hamburger span:nth-child(3){top:26px;}
  .hamburger.open span:nth-child(1){transform:translateY(6px) rotate(45deg);}
  .hamburger.open span:nth-child(2){opacity:0;}
  .hamburger.open span:nth-child(3){transform:translateY(-6px) rotate(-45deg);}

  .mobile-panel{
    display:none; flex-direction:column; gap:2px; background:var(--ink);
    padding:6px 24px 20px;
  }
  .mobile-panel a{ color:#E7DEC7; padding:12px 0; border-bottom:1px solid rgba(231,222,199,0.12); font-size:1.02rem;}
  .mobile-panel.open{display:flex;}

  @media (max-width:900px){
    nav.links{display:none;}
    .nav-cta .btn-outline{display:none;}
    .hamburger{display:block;}
  }

  /* ---------- Pages ---------- */
  .page{display:none;}
  .page.is-active{display:block; animation: pageIn .5s ease;}
  @keyframes pageIn{ from{opacity:0; transform:translateY(8px);} to{opacity:1; transform:translateY(0);} }
  @media (prefers-reduced-motion: reduce){
    .page.is-active{animation:none;}
  }

  /* ---------- Hero ---------- */
  .hero{
    position:relative; min-height:min(92vh, 780px); display:flex; align-items:flex-end;
    overflow:hidden;
  }
  .hero-media{position:absolute; inset:0;}
  .hero-media img{width:100%; height:100%; object-fit:cover; transform:scale(1.04);}
  .hero-media::after{
    content:""; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(14,27,36,0.35) 0%, rgba(14,27,36,0.35) 35%, rgba(12,22,30,0.92) 100%);
  }
  .hero-content{position:relative; z-index:2; width:100%; padding:80px 0 56px;}
  .hero-tag{
    display:inline-flex; align-items:center; gap:10px; color:var(--gold-soft);
    font-family:'Cormorant Garamond',serif; font-style:italic; font-size:1.18rem; margin-bottom:18px;
    opacity:0; animation: riseIn .8s ease .15s forwards;
  }
  .hero h1{
    color:#FBF6E9; font-size:clamp(2.5rem, 6vw, 4.6rem); max-width:16ch;
    opacity:0; animation: riseIn .9s ease .3s forwards;
  }
  .hero p.lede{
    max-width:52ch; margin-top:20px; color:#D9CEB3; font-size:1.08rem;
    opacity:0; animation: riseIn .9s ease .5s forwards;
  }
  .hero-actions{ display:flex; gap:16px; margin-top:34px; flex-wrap:wrap;
    opacity:0; animation: riseIn .9s ease .68s forwards;
  }
  @keyframes riseIn{ from{opacity:0; transform:translateY(18px);} to{opacity:1; transform:translateY(0);} }
  @media (prefers-reduced-motion: reduce){
    .hero-tag,.hero h1,.hero p.lede,.hero-actions{animation:none; opacity:1;}
  }
  .hero-strip{
    position:relative; z-index:2; margin-top:44px; padding-top:26px; border-top:1px solid rgba(230,195,120,0.25);
    display:grid; grid-template-columns:repeat(4,1fr); gap:18px;
  }
  .hero-strip div{color:#E7DEC7; font-size:0.86rem; letter-spacing:.02em;}
  .hero-strip strong{display:block; font-family:'Cormorant Garamond',serif; font-size:1.5rem; color:#F7EFDA; font-weight:600;}
  @media (max-width:760px){ .hero-strip{grid-template-columns:repeat(2,1fr); row-gap:22px;} }

  /* ---------- Sections ---------- */
  section{padding:96px 0;}
  @media (max-width:760px){ section{padding:64px 0;} }
  .center{text-align:center;}
  .section-head{max-width:640px; margin:0 auto 52px;}
  .section-head h2{font-size:clamp(1.9rem,3.6vw,2.7rem);}
  .section-head p{margin-top:16px; font-size:1.04rem;}

  .band-ink{ background:var(--ink); }
  .band-ink p{ color:#C9BFA4; }
  .band-ink .eyebrow{color:var(--gold-soft);}

  /* Intro / welcome */
  .welcome{display:grid; grid-template-columns:1.05fr 0.95fr; gap:64px; align-items:center;}
  @media (max-width:900px){ .welcome{grid-template-columns:1fr;} }
  .welcome h2{font-size:clamp(1.9rem,3.4vw,2.5rem);}
  .welcome p{margin-top:18px; font-size:1.02rem;}
  .welcome-facts{display:flex; gap:28px; margin-top:32px; flex-wrap:wrap;}
  .welcome-facts div strong{display:block; font-family:'Cormorant Garamond',serif; font-size:2rem; color:var(--ink);}
  :root:not([data-theme="light"]) .welcome-facts div strong{color:#F3E9CE;}
  .welcome-facts div span{font-size:0.85rem; color:var(--text-soft);}
  .welcome-media{ position:relative; }
  .welcome-media img{
    border-radius: var(--radius-arch); width:100%; aspect-ratio:4/5; object-fit:cover;
    box-shadow:var(--shadow);
  }
  .welcome-media .float-card{
    position:absolute; left:-24px; bottom:-24px; background:var(--card);
    padding:18px 22px; border-radius:8px; box-shadow:var(--shadow);
    border:1px solid var(--line); max-width:230px;
  }
  @media (max-width:640px){ .welcome-media .float-card{left:0; right:0; margin:0 auto; bottom:-20px;} }
  .welcome-media .float-card strong{font-family:'Cormorant Garamond',serif; font-size:1.7rem; color:var(--ink); display:block;}

  /* Highlight cards */
  .grid-3{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
  @media (max-width:900px){ .grid-3{grid-template-columns:1fr;} }
  .feature{
    background:var(--card); border:1px solid var(--line); border-radius:8px;
    padding:32px 28px; transition: transform .25s ease, box-shadow .25s ease;
  }
  .feature:hover{ transform:translateY(-5px); box-shadow:var(--shadow); }
  .feature .icon{ width:44px; height:44px; color:var(--gold); margin-bottom:18px; }
  .feature h3{font-size:1.28rem; margin-bottom:10px;}
  .feature p{font-size:0.96rem;}

  /* Rooms */
  .room-card{
    background:var(--card); border:1px solid var(--line); border-radius:10px; overflow:hidden;
    display:flex; flex-direction:column; box-shadow:var(--shadow);
  }
  .room-media{position:relative; aspect-ratio:4/3; overflow:hidden;}
  .room-media img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
  .room-card:hover .room-media img{transform:scale(1.06);}
  .room-price{
    position:absolute; right:16px; bottom:-18px; background:var(--gold); color:#1B2A34;
    padding:10px 18px; border-radius:6px; font-family:'Cormorant Garamond',serif; font-weight:700; font-size:1.25rem;
    box-shadow:0 12px 22px -10px rgba(0,0,0,.4);
  }
  .room-price span{font-family:'Work Sans',sans-serif; font-weight:600; font-size:0.68rem; display:block; opacity:.75;}
  .room-body{padding:34px 26px 26px;}
  .room-body h3{font-size:1.5rem; margin-bottom:8px;}
  .room-body p.desc{font-size:0.95rem; margin-bottom:18px;}
  .room-tags{display:flex; flex-wrap:wrap; gap:8px; margin-bottom:22px;}
  .room-tags span{
    font-size:0.78rem; padding:6px 12px; border:1px solid var(--line); border-radius:20px; color:var(--text-soft);
  }
  .room-cta{ margin-top:auto; display:flex; }

  /* Story / About */
  .story{display:grid; grid-template-columns:0.9fr 1.1fr; gap:64px; align-items:center;}
  @media (max-width:900px){ .story{grid-template-columns:1fr;} }
  .story img{ border-radius:10px; box-shadow:var(--shadow); width:100%; }
  .story h2{font-size:clamp(1.9rem,3.4vw,2.6rem); margin-bottom:20px;}
  .story p + p{margin-top:16px;}

  .values-grid{display:grid; grid-template-columns:repeat(2,1fr); gap:26px; margin-top:20px;}
  @media (max-width:640px){ .values-grid{grid-template-columns:1fr;} }
  .value-item{display:flex; gap:14px;}
  .value-item .dot{
    width:8px; height:8px; border-radius:50%; background:var(--gold); margin-top:9px; flex:none;
  }
  .value-item h4{font-size:1.1rem; margin-bottom:4px;}
  .value-item p{font-size:0.92rem;}

  /* Quote band */
  .quote-band{ text-align:center; padding:90px 0; }
  .quote-mark{ font-family:'Cormorant Garamond',serif; font-size:4rem; color:var(--gold); line-height:1; opacity:.6;}
  .quote-band blockquote{
    font-family:'Cormorant Garamond',serif; font-style:italic; font-size:clamp(1.4rem,3vw,2rem);
    color:#F3E9CE; max-width:780px; margin:0 auto; line-height:1.5;
  }
  .quote-band cite{ display:block; margin-top:22px; font-style:normal; color:var(--gold-soft); font-size:0.9rem; letter-spacing:.03em;}

  /* Blog */
  .blog-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:28px;}
  @media (max-width:900px){ .blog-grid{grid-template-columns:1fr;} }
  .blog-card{
    background:var(--card); border:1px solid var(--line); border-radius:10px; overflow:hidden;
    display:flex; flex-direction:column;
  }
  .blog-media{aspect-ratio:16/10; overflow:hidden;}
  .blog-media img{width:100%; height:100%; object-fit:cover; transition:transform .5s ease;}
  .blog-card:hover .blog-media img{transform:scale(1.05);}
  .blog-body{padding:24px 22px 28px; display:flex; flex-direction:column; flex:1;}
  .blog-meta{font-size:0.78rem; color:var(--gold); letter-spacing:.03em; margin-bottom:10px;}
  .blog-body h3{font-size:1.28rem; margin-bottom:12px; line-height:1.25;}
  .blog-body p{font-size:0.93rem; flex:1;}
  .blog-body .btn-line{margin-top:18px; align-self:flex-start;}

  .blog-post{ display:none; }
  .blog-post.is-open{ display:block; }
  .blog-post-inner{
    max-width:760px; margin:0 auto; background:var(--card); border:1px solid var(--line);
    border-radius:12px; padding:48px 44px; box-shadow:var(--shadow);
  }
  @media (max-width:640px){ .blog-post-inner{padding:30px 22px;} }
  .blog-post-inner h2{font-size:clamp(1.6rem,3.4vw,2.3rem); margin-bottom:18px;}
  .blog-post-inner p{margin-bottom:16px; font-size:1rem;}
  .blog-post-inner .back-link{margin-bottom:26px; display:inline-flex; align-items:center; gap:6px; color:var(--gold); font-size:0.9rem; font-weight:600;}
  .blog-list-view.is-hidden{display:none;}

  /* Contact */
  .contact-grid{display:grid; grid-template-columns:1fr 1.15fr; gap:56px; align-items:flex-start;}
  @media (max-width:900px){ .contact-grid{grid-template-columns:1fr;} }
  .contact-info h2{font-size:clamp(1.9rem,3.4vw,2.5rem); margin-bottom:18px;}
  .info-row{display:flex; gap:16px; padding:20px 0; border-top:1px solid var(--line);}
  .info-row:last-of-type{border-bottom:1px solid var(--line);}
  .info-row .ic{width:22px; height:22px; color:var(--gold); flex:none; margin-top:3px;}
  .info-row h4{font-size:1rem; margin-bottom:4px;}
  .info-row p{font-size:0.94rem;}
  .info-row a{color:var(--text); font-weight:600;}
  .map-btn{margin-top:8px;}

  .form-card{
    background:var(--card); border:1px solid var(--line); border-radius:10px; padding:38px; box-shadow:var(--shadow);
  }
  @media (max-width:640px){ .form-card{padding:26px 22px;} }
  .form-row{display:grid; grid-template-columns:1fr 1fr; gap:18px;}
  @media (max-width:560px){ .form-row{grid-template-columns:1fr;} }
  .field{margin-bottom:18px;}
  .field label{display:block; font-size:0.82rem; font-weight:600; color:var(--text); margin-bottom:7px;}
  .field input, .field select, .field textarea{
    width:100%; padding:12px 14px; border:1px solid var(--line); border-radius:6px;
    background:var(--ivory); color:var(--text); font-family:inherit; font-size:0.94rem;
  }
  .field textarea{resize:vertical; min-height:90px;}
  .field input:focus, .field select:focus, .field textarea:focus{
    outline:2px solid var(--gold); outline-offset:1px;
  }
  .form-note{font-size:0.8rem; margin-top:14px; color:var(--text-soft);}
  .form-success{
    display:none; background:#e8f3ec; border:1px solid #b9dcc4; color:#1e5b39; padding:14px 16px;
    border-radius:8px; font-size:0.9rem; margin-bottom:18px;
  }
  :root:not([data-theme="light"]) .form-success{background:#173327; border-color:#2e5943; color:#a9e2c1;}
  .form-success.show{display:block;}

  /* CTA banner */
  .cta-banner{
    margin:0 auto; border-radius:14px; background:linear-gradient(120deg, var(--ink) 0%, #0E2029 100%);
    padding:56px 48px; display:flex; align-items:center; justify-content:space-between; gap:32px; flex-wrap:wrap;
  }
  @media (max-width:640px){ .cta-banner{padding:38px 26px;} }
  .cta-banner h3{color:#F7EFDA; font-size:clamp(1.5rem,3vw,2.1rem); max-width:20ch;}
  .cta-banner .btns{display:flex; gap:14px; flex-wrap:wrap;}

  /* FAQ */
  .faq-item{ border-top:1px solid var(--line); }
  .faq-item:last-child{border-bottom:1px solid var(--line);}
  .faq-q{
    width:100%; text-align:left; background:none; border:none; padding:22px 4px;
    display:flex; justify-content:space-between; align-items:center; gap:20px;
    font-family:'Cormorant Garamond',serif; font-size:1.18rem; color:var(--ink); font-weight:600;
  }
  :root:not([data-theme="light"]) .faq-q{color:#F3E9CE;}
  .faq-q .plus{ flex:none; width:20px; height:20px; position:relative; }
  .faq-q .plus::before,.faq-q .plus::after{ content:""; position:absolute; background:var(--gold); }
  .faq-q .plus::before{ left:0; top:9px; width:20px; height:2px; }
  .faq-q .plus::after{ left:9px; top:0; width:2px; height:20px; transition:transform .25s ease; }
  .faq-item.open .plus::after{ transform:rotate(90deg); }
  .faq-a{ max-height:0; overflow:hidden; transition:max-height .3s ease; }
  .faq-a p{ padding:0 4px 22px; font-size:0.95rem; }

  /* Footer */
  footer{ background:var(--ink); padding:64px 0 30px; }
  .footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:40px; }
  @media (max-width:820px){ .footer-grid{grid-template-columns:1fr 1fr;} }
  @media (max-width:520px){ .footer-grid{grid-template-columns:1fr;} }
  .footer-grid h4{ color:var(--gold-soft); font-size:0.82rem; letter-spacing:.03em; margin-bottom:18px; font-family:'Work Sans',sans-serif; font-weight:600; }
  .footer-grid p, .footer-grid a{ color:#C9BFA4; font-size:0.92rem; }
  .footer-grid ul li{margin-bottom:10px;}
  .footer-grid ul a:hover{color:#fff;}
  .footer-bottom{
    margin-top:50px; padding-top:26px; border-top:1px solid rgba(230,195,120,0.18);
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:12px;
    color:#8FA0AC; font-size:0.82rem;
  }

  /* Floating actions */
  .floaters{
    position:fixed; right:20px; bottom: calc(20px + env(safe-area-inset-bottom,0px)); z-index:90;
    display:flex; flex-direction:column; gap:12px;
  }
  .floaters a{
    width:52px; height:52px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    box-shadow:0 12px 24px -8px rgba(0,0,0,.4); color:#fff; transition:transform .2s ease;
  }
  .floaters a:hover{ transform:scale(1.08); }
  .fl-wa{ background:#3CBB55; }
  .fl-call{ background:var(--rust); }
  .floaters svg{width:24px; height:24px;}

  .reveal{ opacity:0; transform:translateY(22px); transition: opacity .7s ease, transform .7s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }
  @media (prefers-reduced-motion: reduce){ .reveal{opacity:1; transform:none; transition:none;} }

  ::selection{ background:var(--gold); color:#1B2A34; }
