
  html{-webkit-text-size-adjust:100%; scroll-behavior:smooth;}
  html,body{margin:0; padding:0;}
  [hidden]{display:none !important;}

  :root{
    --bg:#faf5e8;
    --bg-alt:#f2e9d3;
    --surface:#ffffff;
    --surface-2:#fffcf6;
    --ink:#241c12;
    --ink-soft:#6b6150;
    --line:#e7dcbf;
    --gold:#93712f;
    --gold-deep:#6d5220;
    --gold-bright:#a9803f;
    --green:#3c5a41;
    --green-soft:#eaf0ea;
    --shadow:0 18px 40px -22px rgba(36,28,18,.35);

    --header-bg:#1a130c;
    --header-bg-2:#241a10;
    --on-dark:#f5ecd8;
    --on-dark-soft:#c9b998;
    --on-dark-gold:#d9b876;
    --on-dark-line:#3d301d;

    padding-top:env(safe-area-inset-top,0px);
    padding-bottom:env(safe-area-inset-bottom,0px);
    color-scheme:light;
  }
  @media (prefers-color-scheme: dark){
    :root:not([data-theme="light"]){
      --bg:#14100a;
      --bg-alt:#1a140c;
      --surface:#1e170f;
      --surface-2:#241c12;
      --ink:#f1e8d5;
      --ink-soft:#c3b294;
      --line:#392e1c;
      --gold:#c9a35f;
      --gold-deep:#e2c184;
      --gold-bright:#d9b876;
      --green:#78ac82;
      --green-soft:#1c2a1e;
      --shadow:0 18px 44px -20px rgba(0,0,0,.6);
      color-scheme:dark;
    }
  }
  :root[data-theme="dark"]{
    --bg:#14100a;
    --bg-alt:#1a140c;
    --surface:#1e170f;
    --surface-2:#241c12;
    --ink:#f1e8d5;
    --ink-soft:#c3b294;
    --line:#392e1c;
    --gold:#c9a35f;
    --gold-deep:#e2c184;
    --gold-bright:#d9b876;
    --green:#78ac82;
    --green-soft:#1c2a1e;
    --shadow:0 18px 44px -20px rgba(0,0,0,.6);
    color-scheme:dark;
  }

  *{box-sizing:border-box;}
  body{
    margin:0;
    background:var(--bg);
    color:var(--ink);
    font-family:'Jost', system-ui, -apple-system, "Segoe UI", sans-serif;
    -webkit-font-smoothing:antialiased;
    padding-inline:0;
  }
  img{max-width:100%; display:block;}
  h1,h2,h3,h4{
    font-family:'Cormorant Garamond', Georgia, 'Times New Roman', serif;
    font-weight:700;
    line-height:1.08;
    margin:0;
    text-wrap:balance;
    color:var(--ink);
  }
  p{margin:0; color:var(--ink-soft); line-height:1.65;}
  a{color:inherit; text-decoration:none;}
  ul{margin:0; padding:0; list-style:none;}
  button{font-family:inherit;}
  [hidden]{display:none !important;}

  .wrap{max-width:1180px; margin:0 auto; padding-inline:20px;}
  @media (min-width:640px){.wrap{padding-inline:32px;}}

  .eyebrow{
    font-family:'Jost', sans-serif;
    font-size:.72rem;
    letter-spacing:.22em;
    text-transform:uppercase;
    font-weight:600;
    color:var(--gold);
  }
  .section-head{max-width:660px; margin-bottom:36px;}
  .section-head h2{font-size:clamp(1.7rem,3.6vw,2.5rem); margin-top:8px;}
  .section-head p{margin-top:14px; font-size:1.02rem;}
  .section-head.center{margin-inline:auto; text-align:center;}

  section{padding-block:clamp(52px,8vw,92px);}

  /* ---------- Header ---------- */
  header.site{
    position:sticky;
    top:env(safe-area-inset-top,0px);
    z-index:50;
    background:var(--header-bg);
    border-bottom:1px solid var(--on-dark-line);
  }
  .header-inner{
    display:flex; align-items:center; justify-content:space-between;
    gap:16px; padding-block:12px;
  }
  .brand{display:flex; align-items:center; gap:12px; min-width:0;}
  .brand img{height:44px; width:auto; flex:none;}
  .brand-text{display:flex; flex-direction:column; line-height:1.05; min-width:0;}
  .brand-text .name{
    font-family:'Cormorant Garamond', serif; font-weight:700;
    font-size:1.45rem; color:var(--on-dark); letter-spacing:.02em;
    white-space:nowrap;
  }
  .brand-text .tag{
    font-size:.62rem; letter-spacing:.2em; text-transform:uppercase;
    color:var(--on-dark-gold); font-weight:600; margin-top:2px;
    white-space:nowrap;
  }
  nav.main-nav{display:none; align-items:center; gap:26px;}
  nav.main-nav a{
    font-size:.86rem; font-weight:500; color:var(--on-dark-soft);
    transition:color .15s ease;
  }
  nav.main-nav a:hover{color:var(--on-dark-gold);}
  .header-cta{display:none; align-items:center; gap:10px;}
  @media (min-width:980px){
    nav.main-nav{display:flex;}
    .header-cta{display:flex;}
  }
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    padding:12px 22px; border-radius:3px; font-weight:600; font-size:.88rem;
    border:1px solid transparent; cursor:pointer; white-space:nowrap;
    transition:transform .15s ease, box-shadow .15s ease, background .15s ease, border-color .15s ease, color .15s ease;
  }
  .btn:active{transform:translateY(1px);}
  .btn-gold{
    background:linear-gradient(180deg, var(--gold-bright), var(--gold-deep));
    color:#1a1409; box-shadow:0 10px 24px -12px rgba(147,113,47,.6);
  }
  .btn-gold:hover{filter:brightness(1.06); box-shadow:0 14px 28px -12px rgba(147,113,47,.75);}
  .btn-outline{
    background:transparent; border-color:var(--on-dark-line); color:var(--on-dark);
  }
  .btn-outline:hover{border-color:var(--on-dark-gold); color:var(--on-dark-gold);}
  .btn-line{
    background:transparent; border-color:var(--line); color:var(--ink);
  }
  .btn-line:hover{border-color:var(--gold); color:var(--gold-deep);}
  .btn-sm{padding:9px 16px; font-size:.8rem;}

  .menu-toggle{
    display:inline-flex; width:40px; height:40px; align-items:center; justify-content:center;
    background:transparent; border:1px solid var(--on-dark-line); border-radius:3px; color:var(--on-dark);
  }
  @media (min-width:980px){.menu-toggle{display:none;}}
  .mobile-nav{
    display:flex; flex-direction:column; gap:2px; padding:10px 20px 18px;
    border-top:1px solid var(--on-dark-line); background:var(--header-bg);
  }
  .mobile-nav a{
    padding:12px 4px; color:var(--on-dark-soft); font-size:.95rem;
    border-bottom:1px solid var(--on-dark-line);
  }
  .mobile-nav .btn{margin-top:10px;}

  /* ---------- Hero ---------- */
  .hero{position:relative; background:var(--header-bg); color:var(--on-dark); overflow:hidden;}
  .hero-media{position:relative; width:100%; min-height:560px; max-height:640px; overflow:hidden;}
  @media (min-width:760px){.hero-media{aspect-ratio:16/9; min-height:0;}}
  .hero-media img{width:100%; height:100%; object-fit:cover; object-position:center 62%;}
  .hero-scrim{
    position:absolute; inset:0;
    background:
      linear-gradient(180deg, rgba(20,15,9,.86) 0%, rgba(20,15,9,.42) 32%, rgba(20,15,9,.18) 52%, rgba(20,15,9,.72) 100%),
      linear-gradient(90deg, rgba(12,9,5,.55) 0%, rgba(12,9,5,0) 46%);
  }
  .hero-content{
    position:absolute; inset:0; display:flex; align-items:flex-end;
    padding-bottom:clamp(24px,5vw,56px);
  }
  .hero-inner{max-width:680px;}
  .hero-badges{display:flex; flex-wrap:wrap; gap:8px 10px; margin-bottom:16px;}
  .chip{
    display:inline-flex; align-items:center; gap:6px;
    font-size:.72rem; letter-spacing:.05em; font-weight:600;
    padding:6px 12px; border-radius:999px;
    border:1px solid rgba(217,184,118,.45); color:var(--on-dark-gold);
    background:rgba(20,15,9,.35); backdrop-filter:blur(2px);
  }
  .hero h1{
    font-size:clamp(2rem,5.4vw,3.4rem); color:#fff; font-weight:700;
    text-shadow:0 4px 24px rgba(0,0,0,.35);
  }
  .hero p.lead{
    margin-top:16px; max-width:56ch; color:#e9dfc9; font-size:1.02rem;
  }
  .hero-actions{display:flex; flex-wrap:wrap; gap:12px; margin-top:26px;}

  .stat-strip{background:var(--header-bg-2); border-top:1px solid var(--on-dark-line); border-bottom:1px solid var(--on-dark-line);}
  .stat-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:1px;
    background:var(--on-dark-line);
  }
  @media (min-width:760px){.stat-grid{grid-template-columns:repeat(4,1fr);}}
  .stat-cell{background:var(--header-bg-2); padding:22px 18px; text-align:center;}
  .stat-cell .num{
    font-family:'Cormorant Garamond', serif; font-weight:700; font-size:clamp(1.5rem,3vw,2.1rem);
    color:var(--on-dark-gold);
  }
  .stat-cell .lbl{
    margin-top:4px; font-size:.72rem; letter-spacing:.08em; text-transform:uppercase;
    color:var(--on-dark-soft); font-weight:500;
  }

  /* ---------- About + form ---------- */
  .about-grid{display:grid; grid-template-columns:1fr; gap:44px;}
  @media (min-width:960px){.about-grid{grid-template-columns:1.1fr .9fr; align-items:start;}}
  .about-copy p{margin-top:14px; font-size:1.02rem;}
  .about-copy .framed{
    margin-top:28px; border:1px solid var(--line); border-radius:4px; overflow:hidden; box-shadow:var(--shadow);
  }
  .about-copy .framed img{width:100%; height:auto;}

  .enquiry-card{
    background:var(--surface); border:1px solid var(--line); border-radius:6px;
    padding:28px; box-shadow:var(--shadow);
  }
  .enquiry-card h3{font-size:1.4rem;}
  .enquiry-card .sub{margin-top:6px; font-size:.92rem;}
  .field{margin-top:16px;}
  .field label{
    display:block; font-size:.74rem; letter-spacing:.06em; text-transform:uppercase;
    font-weight:600; color:var(--ink-soft); margin-bottom:6px;
  }
  .field input, .field select{
    width:100%; padding:11px 12px; border:1px solid var(--line); border-radius:3px;
    background:var(--surface-2); color:var(--ink); font-size:.95rem; font-family:inherit;
  }
  .field input:focus, .field select:focus{outline:2px solid var(--gold); outline-offset:1px;}
  .enquiry-card .btn{width:100%; margin-top:20px; padding-block:13px;}
  .enquiry-note{margin-top:12px; font-size:.78rem; color:var(--ink-soft); text-align:center;}
  .form-ok{
    margin-top:14px; padding:10px 12px; border-radius:3px; font-size:.85rem;
    background:var(--green-soft); color:var(--green); border:1px solid var(--green);
  }

  /* ---------- Amenities ---------- */
  .amenity-grid{
    display:grid; grid-template-columns:repeat(2,1fr); gap:14px;
  }
  @media (min-width:640px){.amenity-grid{grid-template-columns:repeat(3,1fr);}}
  @media (min-width:960px){.amenity-grid{grid-template-columns:repeat(4,1fr);}}
  .amenity-card{
    background:var(--surface); border:1px solid var(--line); border-radius:5px;
    padding:22px 16px; text-align:center;
  }
  .amenity-card .ic{
    width:46px; height:46px; margin:0 auto 12px; border-radius:50%;
    display:flex; align-items:center; justify-content:center;
    background:var(--green-soft); color:var(--green); font-size:1.3rem;
  }
  .amenity-card .lbl{font-size:.88rem; font-weight:600; color:var(--ink);}

  /* ---------- Location ---------- */
  .bg-alt{background:var(--bg-alt);}
  .framed-photo{
    border:1px solid var(--line); border-radius:4px; overflow:hidden; box-shadow:var(--shadow); margin-bottom:40px;
  }
  .conn-grid{display:grid; grid-template-columns:1fr; gap:14px;}
  @media (min-width:640px){.conn-grid{grid-template-columns:repeat(2,1fr);}}
  @media (min-width:960px){.conn-grid{grid-template-columns:repeat(3,1fr);}}
  .conn-card{background:var(--surface); border:1px solid var(--line); border-radius:5px; padding:20px;}
  .conn-card .head{display:flex; align-items:center; gap:10px; margin-bottom:12px;}
  .conn-card .head .ic{font-size:1.2rem;}
  .conn-card .head .t{font-weight:600; font-size:.95rem; color:var(--ink);}
  .conn-card li{
    display:flex; gap:8px; font-size:.87rem; color:var(--ink-soft); padding-block:5px;
    border-top:1px dashed var(--line);
  }
  .conn-card li:first-child{border-top:none;}
  .conn-card li b{color:var(--ink); font-weight:600; white-space:nowrap;}

  .map-block{margin-top:44px;}
  .map-block .framed-photo{margin-bottom:16px;}
  .map-caption{display:flex; flex-wrap:wrap; align-items:center; justify-content:space-between; gap:14px;}
  .map-caption p{font-size:.88rem; max-width:52ch;}

  /* ---------- Site plan (dark) ---------- */
  .plan-section{background:var(--header-bg); color:var(--on-dark);}
  .plan-section .section-head p{color:var(--on-dark-soft);}
  .plan-section .eyebrow{color:var(--on-dark-gold);}
  .plan-section h2{color:#fff;}
  .plan-frame{
    border:1px solid var(--on-dark-line); border-radius:4px; overflow:hidden;
    background:#0e0b06; box-shadow:0 30px 60px -30px rgba(0,0,0,.7);
  }
  .plan-legend{display:flex; flex-wrap:wrap; gap:10px 22px; margin-top:22px;}
  .legend-item{display:flex; align-items:center; gap:8px; font-size:.82rem; color:var(--on-dark-soft);}
  .legend-swatch{width:14px; height:14px; border-radius:3px; flex:none;}
  .plan-caption{margin-top:18px; font-size:.85rem; color:var(--on-dark-soft); max-width:70ch;}

  /* ---------- Specs table ---------- */
  .specs-table{
    width:100%; border-collapse:collapse; background:var(--surface);
    border:1px solid var(--line); border-radius:5px; overflow:hidden;
  }
  .specs-table tr{border-top:1px solid var(--line);}
  .specs-table tr:first-child{border-top:none;}
  .specs-table td{padding:14px 18px; font-size:.92rem; vertical-align:top;}
  .specs-table td:first-child{
    width:38%; color:var(--ink-soft); font-weight:600; font-size:.78rem;
    letter-spacing:.05em; text-transform:uppercase;
  }
  .specs-table td:last-child{color:var(--ink); font-weight:500;}
  .table-wrap{overflow-x:auto;}

  /* ---------- FAQ ---------- */
  .faq-item{border-bottom:1px solid var(--line);}
  .faq-item:first-child{border-top:1px solid var(--line);}
  .faq-q{
    width:100%; text-align:left; background:none; border:none; cursor:pointer;
    display:flex; align-items:center; justify-content:space-between; gap:16px;
    padding:18px 2px; font-size:1rem; font-weight:600; color:var(--ink);
  }
  .faq-q .plus{
    flex:none; width:22px; height:22px; border-radius:50%; border:1px solid var(--gold);
    color:var(--gold); display:flex; align-items:center; justify-content:center;
    font-size:1rem; transition:transform .18s ease;
  }
  .faq-item[data-open="true"] .plus{transform:rotate(45deg);}
  .faq-a{max-width:70ch; padding:0 2px 18px; font-size:.92rem;}

  /* ---------- Contact ---------- */
  .contact-grid{display:grid; grid-template-columns:1fr; gap:16px;}
  @media (min-width:760px){.contact-grid{grid-template-columns:repeat(2,1fr);}}
  .contact-card{
    background:var(--surface); border:1px solid var(--line); border-radius:5px;
    padding:22px; display:flex; gap:14px; align-items:flex-start;
  }
  .contact-card .ic{
    width:42px; height:42px; border-radius:50%; flex:none;
    background:var(--green-soft); color:var(--green);
    display:flex; align-items:center; justify-content:center; font-size:1.15rem;
  }
  .contact-card .t{font-size:.72rem; text-transform:uppercase; letter-spacing:.06em; color:var(--ink-soft); font-weight:600;}
  .contact-card .v{margin-top:4px; font-size:1rem; font-weight:600; color:var(--ink);}
  .contact-card .v a:hover{color:var(--gold-deep);}
  .social-row{display:flex; gap:10px; margin-top:6px;}
  .social-btn{
    width:38px; height:38px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    background:var(--green-soft); color:var(--green); font-size:1.05rem; border:1px solid var(--line);
  }
  .social-btn:hover{background:var(--gold); color:#fff;}

  /* ---------- Footer ---------- */
  footer.site{background:var(--header-bg); color:var(--on-dark-soft); border-top:1px solid var(--on-dark-line);}
  .footer-top{
    display:grid; grid-template-columns:1fr; gap:32px; padding-block:48px;
  }
  @media (min-width:760px){.footer-top{grid-template-columns:1.3fr 1fr 1fr;}}
  .footer-brand{display:flex; align-items:center; gap:12px;}
  .footer-brand img{height:38px;}
  .footer-brand .name{font-family:'Cormorant Garamond',serif; font-weight:700; font-size:1.25rem; color:var(--on-dark);}
  .footer-desc{margin-top:14px; font-size:.86rem; max-width:38ch;}
  .footer-col h4{
    font-family:'Jost',sans-serif; font-size:.78rem; letter-spacing:.08em; text-transform:uppercase;
    font-weight:600; color:var(--on-dark); margin-bottom:14px;
  }
  .footer-col a, .footer-col p{display:block; font-size:.87rem; margin-bottom:10px; color:var(--on-dark-soft);}
  .footer-col a:hover{color:var(--on-dark-gold);}
  .footer-bottom{
    border-top:1px solid var(--on-dark-line); padding-block:22px;
    display:flex; flex-wrap:wrap; gap:12px; align-items:center; justify-content:space-between;
    font-size:.78rem;
  }
  .footer-disclaimer{
    font-size:.76rem; color:var(--on-dark-soft); opacity:.85; line-height:1.6;
    padding-top:18px; border-top:1px solid var(--on-dark-line); margin-top:6px;
  }

  /* ---------- Floating actions ---------- */
  .float-actions{
    position:fixed; right:18px; bottom:calc(18px + env(safe-area-inset-bottom,0px));
    display:flex; flex-direction:column; gap:12px; z-index:60;
  }
  .float-btn{
    width:54px; height:54px; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-size:1.5rem; color:#fff; box-shadow:0 12px 26px -8px rgba(0,0,0,.45);
    border:none; cursor:pointer;
  }
  .float-btn.wa{background:#25D366;}
  .float-btn.call{background:linear-gradient(180deg, var(--gold-bright), var(--gold-deep));}

  @media (prefers-reduced-motion: reduce){
    *{transition:none !important; animation:none !important;}
  }
