:root{
  --ink:#19140f;
  --cream:#f7f0e5;
  --paper:#fffaf1;
  --gold:#b88b39;
  --gold2:#e1c681;
  --brown:#302116;
  --line:rgba(50,36,24,.16);
  --shadow:0 18px 50px rgba(34,22,10,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:Inter,Arial,sans-serif}
a{color:inherit;text-decoration:none}
.serif{font-family:Georgia,'Times New Roman',serif}
.brand{letter-spacing:.32em;text-transform:uppercase;font-size:12px;font-weight:600}
.sprig{font-family:Georgia,serif;font-size:34px;line-height:1;color:var(--gold2)}

/* MOBILE / GENERAL */
.guest-app{min-height:100vh;background:var(--cream)}
/* The same palm wordmark and house caption used on the main Trésors du Sud site. */
.mobile-hero{position:relative;min-height:72vh;background:url('garden-hero.jpg') center 46%/cover no-repeat;color:var(--cream)}
.mobile-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(9,22,14,.32),transparent 34%,transparent 60%,rgba(9,22,14,.36) 100%)}
.mobile-top{position:absolute;left:0;right:0;top:0;z-index:2;padding:clamp(26px,3.5vw,60px) clamp(25px,5.4vw,100px)}
.mobile-top .brand{display:flex;align-items:center;gap:16px;font:400 clamp(20px,1.8vw,27px)/1.1 Georgia,'Times New Roman',serif;letter-spacing:.22em;white-space:nowrap;text-transform:uppercase;text-shadow:0 2px 12px rgba(0,0,0,.22)}
.mobile-top .brand-mark{width:38px;height:51px;flex:none;color:#e8d1a4}
.mobile-top .brand-name:after{content:"";display:block;width:56px;height:1px;background:#e8d1a4;margin-top:16px}
.house-caption{position:absolute;right:clamp(25px,5.4vw,100px);bottom:52px;z-index:2;color:#f8f3e9;text-align:right;text-shadow:0 2px 12px rgba(5,15,9,.65);pointer-events:none}
.house-caption__name{display:block;font:400 17px/1.3 Georgia,'Times New Roman',serif;letter-spacing:.015em}
.house-caption__type{display:block;margin-top:3px;font:italic 13px/1.4 Georgia,'Times New Roman',serif;color:rgba(248,243,233,.88)}
.house-caption__location{display:flex;align-items:center;justify-content:flex-end;gap:6px;margin-top:7px;font:400 11px/1.4 Arial,sans-serif;letter-spacing:.04em;color:rgba(248,243,233,.8);white-space:nowrap}
.house-caption__location svg{flex:none}
@media(max-width:700px){.mobile-hero{min-height:66vh}.mobile-top{padding:27px 25px}.mobile-top .brand{font-size:18px;letter-spacing:.15em;white-space:normal;gap:10px}.mobile-top .brand-mark{width:28px;height:40px}.mobile-top .brand-name:after{margin-top:12px}.house-caption{right:25px;bottom:48px}.house-caption__name{font-size:15px}.house-caption__type{font-size:12px}.house-caption__location{font-size:10px}}
.content-shell{position:relative;margin-top:-24px;background:var(--paper);border-radius:28px 28px 0 0;z-index:3;padding:26px 18px 44px}
.intro{text-align:center;margin:0 auto 24px;max-width:560px}
.intro:before{content:"";display:block;width:34px;height:2px;background:var(--gold);margin:0 auto 16px}
.intro h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:26px;margin:0}
.intro em{color:var(--gold);font-weight:400}
.mobile-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;max-width:760px;margin:0 auto}
.mobile-card{position:relative;display:block;width:100%;min-height:210px;padding:0;border-radius:18px;overflow:hidden;background:#ddd;box-shadow:var(--shadow);border:1px solid rgba(255,255,255,.55);text-align:left;cursor:pointer;color:white}
.mobile-card:focus-visible{outline:3px solid var(--gold);outline-offset:3px}
.mobile-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.mobile-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,0) 26%,rgba(16,10,6,.82) 100%)}
.mobile-card .meta{position:absolute;left:16px;right:14px;bottom:13px;z-index:2;color:white}
.mobile-card .symbol{display:block;font-size:25px;margin-bottom:6px}
.mobile-card .card-title{display:block;font-family:Georgia,'Times New Roman',serif;font-size:22px;font-weight:400;margin:0 0 4px}
.mobile-card small{display:block;font:10px/1.4 Arial,sans-serif;letter-spacing:.13em;text-transform:uppercase;max-width:calc(100% - 29px)}
.mobile-card .chev{position:absolute;right:12px;bottom:14px;z-index:3;width:34px;height:34px;border:1px solid rgba(255,255,255,.8);border-radius:50%;display:grid;place-items:center;color:white;font-size:20px}
.section-open{overflow:hidden}
.mobile-footer{max-width:760px;margin:28px auto 0;text-align:center;color:#6c5a49;font-size:12px;letter-spacing:.18em;text-transform:uppercase}

/* SECTION OVERLAY */
.section-view{position:fixed;inset:0;background:var(--paper);z-index:20;display:none;overflow:auto}
.section-view.open{display:block}
.section-header{min-height:38vh;background:url('garden-hero.jpg') center/cover;position:relative;color:white;display:flex;align-items:flex-end;padding:24px}
.section-header:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.12),rgba(0,0,0,.62))}
.section-header .back{position:absolute;left:18px;top:18px;z-index:2}
.section-header .text{position:relative;z-index:2;max-width:700px}
.section-header h2{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:46px;margin:0 0 8px}
.section-body{padding:28px 22px 60px;max-width:760px;margin:auto}
.section-body .eyebrow{color:var(--gold);font-size:11px;letter-spacing:.24em;text-transform:uppercase}
.section-body p{font-family:Georgia,'Times New Roman',serif;font-size:19px;line-height:1.55;color:#4f4135}
.placeholder-panel{margin-top:22px;border:1px solid var(--line);border-radius:18px;padding:22px;background:#fffdf8}
.placeholder-panel h3{font-family:Georgia,'Times New Roman',serif;font-size:28px;font-weight:400;margin:0 0 8px}
.placeholder-panel ul{margin:14px 0 0;padding-left:20px;color:#665646;line-height:1.7}

@media(max-width:480px){.mobile-hero{min-height:66vh}.mobile-card{min-height:178px}.mobile-card .card-title{font-size:19px}.mobile-card small{font-size:10px}}

/* TV */
body.tv-body{overflow:hidden;background:#0d0906;color:#fff}
.tv-app{position:relative;width:100vw;height:100vh;overflow:hidden;background:url('garden-hero.jpg') center/cover no-repeat}
.tv-app:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(13,9,6,.72) 0%,rgba(13,9,6,.18) 48%,rgba(13,9,6,.08) 100%),linear-gradient(180deg,rgba(0,0,0,.05) 45%,rgba(8,5,3,.55) 100%)}
.tv-brand{position:absolute;left:4.2vw;top:6.8vh;z-index:2}
.tv-brand .sprig{font-size:42px}
.tv-brand .brand{font-size:1.25vw;color:#fff;margin-top:6px}
.tv-title{position:absolute;left:4.2vw;top:22vh;z-index:2;text-shadow:0 3px 18px rgba(0,0,0,.42)}
.tv-title h1{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:4.6vw;line-height:.98;margin:0 0 1vh;letter-spacing:-.03em}
.tv-title .descriptor{font-size:1.05vw;letter-spacing:.34em;text-transform:uppercase;margin-bottom:1.4vh}
.tv-title .location{font-size:2vw}
.tv-menu{position:absolute;left:2vw;right:2vw;bottom:16.8vh;z-index:3;display:grid;grid-template-columns:repeat(5,1fr);gap:.7vw}
.tv-tile{position:relative;height:28vh;border-radius:1.1vw;overflow:hidden;background:#21170f;border:2px solid rgba(255,255,255,.48);box-shadow:0 10px 30px rgba(0,0,0,.24);outline:none;transition:.14s ease}
.tv-tile img{position:absolute;inset:0;width:100%;height:65%;object-fit:cover}
.tv-tile:after{content:"";position:absolute;inset:42% 0 0;background:linear-gradient(180deg,rgba(24,16,11,.25),rgba(24,16,11,.98))}
.tv-tile .tv-meta{position:absolute;z-index:2;left:1.25vw;right:1vw;bottom:1.55vh}
.tv-tile .tv-symbol{font-size:1.6vw;margin-bottom:.4vh}
.tv-tile h3{font-family:Georgia,'Times New Roman',serif;font-size:1.55vw;font-weight:400;margin:0 0 .45vh}
.tv-tile small{font-size:.62vw;letter-spacing:.25em;text-transform:uppercase;color:#e8ddcf}
.tv-tile.selected{border-color:#f0d894;box-shadow:0 0 0 3px rgba(240,216,148,.30),0 0 28px rgba(240,216,148,.45);transform:translateY(-.5vh)}
.tv-qrbar{position:absolute;left:2vw;right:2vw;bottom:2.6vh;height:11vh;z-index:3;border:1px solid rgba(255,255,255,.26);border-radius:1vw;background:rgba(39,25,15,.70);backdrop-filter:blur(9px);display:flex;align-items:center;padding:1.2vh 2vw;gap:1.4vw}
.tv-qrbar img{height:8.2vh;width:8.2vh;background:white;border-radius:.45vw;padding:.35vw}
.tv-qr-copy strong{font-family:Georgia,'Times New Roman',serif;font-weight:400;font-size:1.75vw;display:block}
.tv-qr-copy span{font-size:.65vw;letter-spacing:.25em;text-transform:uppercase;color:#e8ddcf}
.tv-foot-brand{margin-left:auto;border-left:1px solid rgba(255,255,255,.35);padding-left:2vw;display:flex;align-items:center;gap:1vw}
.tv-foot-brand .sprig{font-size:2vw}.tv-foot-brand .brand{font-size:.85vw}
.tv-detail{position:absolute;inset:0;z-index:10;background:linear-gradient(110deg,rgba(20,13,8,.97),rgba(28,19,12,.94));display:none;padding:5vh 5vw}
.tv-detail.open{display:block}
.tv-detail .back{display:inline-block;border:1px solid rgba(228,199,131,.55);border-radius:999px;padding:.75vh 1.3vw;font-size:1vw;color:white;background:rgba(255,255,255,.03)}
.tv-detail .eyebrow{margin-top:4vh;color:var(--gold2);font-size:.8vw;letter-spacing:.26em;text-transform:uppercase}
.tv-detail h2{font-family:Georgia,'Times New Roman',serif;font-size:4vw;font-weight:400;margin:1vh 0 1.3vh}
.tv-detail p{font-family:Georgia,'Times New Roman',serif;font-size:1.45vw;line-height:1.45;max-width:72vw;color:#eadfce}
.tv-detail-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1vw;margin-top:4vh}
.tv-detail-card{min-height:17vh;border:1px solid rgba(228,199,131,.28);border-radius:.8vw;background:rgba(255,255,255,.04);padding:1.5vw}
.tv-detail-card strong{font-family:Georgia,'Times New Roman',serif;font-size:1.7vw;font-weight:400;display:block;margin-bottom:.6vh}
.tv-detail-card span{font-size:.92vw;color:#d9cdbd;line-height:1.4}
