:root{
    --bg:#fff8ee;
    --surface:#fffdf8;
    --surface-2:#f2f1ed;
    --surface-3:#f6e8d7;
    --surface-warm:#fff1da;
    --text:#2c2926;
    --muted:#756e67;
    --line:#e5ded5;
    --primary:#b92d22;
    --primary-strong:#8e2119;
    --primary-soft:#f8ddd7;
    --orange:#e86d25;
    --orange-soft:#fde3ce;
    --gold:#f2b544;
    --gold-soft:#fff0bf;
    --dark:#3a241e;
    --dark-2:#251815;
    --success:#4f7a59;
    --danger:#a43b32;
    --shadow:0 20px 55px rgba(79,49,34,.11);
    --shadow-soft:0 10px 28px rgba(79,49,34,.08);
    --radius:26px;
    --radius-sm:14px;
    --container:1240px;
    --header:86px;
}
html[data-theme="dark"]{
    --bg:#211916;
    --surface:#2d211d;
    --surface-2:#382a25;
    --surface-3:#4b352b;
    --surface-warm:#472b22;
    --text:#fff8ec;
    --muted:#c6b9ad;
    --line:#503a32;
    --primary:#f06b54;
    --primary-strong:#ff8a63;
    --primary-soft:#55302b;
    --orange:#f58a45;
    --orange-soft:#543326;
    --gold:#f3c15c;
    --gold-soft:#4b3b25;
    --dark:#160f0d;
    --dark-2:#0f0a09;
    --shadow:0 20px 55px rgba(0,0,0,.26);
    --shadow-soft:0 10px 28px rgba(0,0,0,.2);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;max-width:100%;overflow-x:clip}
body{
    margin:0;
    max-width:100%;
    overflow-x:hidden;
    font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;
    background:var(--bg);
    color:var(--text);
    line-height:1.65;
    text-rendering:optimizeLegibility;
}
body:before{
    content:"";
    position:fixed;
    inset:0;
    pointer-events:none;
    z-index:-1;
    background:
        radial-gradient(circle at 12% 8%,rgba(242,181,68,.13),transparent 24%),
        radial-gradient(circle at 88% 18%,rgba(232,109,37,.09),transparent 25%);
}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
img{max-width:100%;height:auto}
.container{width:min(calc(100% - 40px),var(--container));margin:0 auto}
.container.narrow{max-width:860px}
.center{text-align:center}
.skip-link{position:fixed;left:16px;top:-70px;background:var(--dark);color:#fff;padding:10px 14px;z-index:999;border-radius:10px}
.skip-link:focus{top:16px}

.site-header{
    position:sticky;
    top:0;
    z-index:100;
    background:rgba(255,253,248,.94);
    backdrop-filter:blur(18px);
    border-bottom:1px solid rgba(185,45,34,.10);
    box-shadow:0 7px 24px rgba(73,41,29,.04);
}
html[data-theme="dark"] .site-header{background:rgba(45,33,29,.94)}
.header-inner{min-height:var(--header);display:flex;align-items:center;gap:26px}
.brand{display:flex;align-items:center;gap:12px;flex:0 0 auto}
.brand-symbol{
    width:46px;height:46px;border-radius:14px;
    background:linear-gradient(145deg,var(--primary),var(--orange));
    position:relative;display:block;overflow:hidden;
    box-shadow:0 9px 22px rgba(185,45,34,.22);
}
.brand-symbol:after{
    content:"";
    position:absolute;
    width:24px;height:24px;
    right:-8px;bottom:-8px;
    border-radius:50%;
    background:var(--gold);
    opacity:.9;
}
.brand-symbol .roof{
    position:absolute;width:25px;height:25px;left:10px;top:7px;
    border-left:3px solid white;border-top:3px solid white;
    transform:rotate(45deg);border-radius:2px;z-index:1;
}
.brand-symbol .door{position:absolute;left:19px;bottom:7px;width:8px;height:14px;background:white;border-radius:4px 4px 0 0;z-index:2}
.brand-copy{display:flex;flex-direction:column;line-height:1.05}
.brand-copy strong{font-family:Georgia,"Times New Roman",serif;font-size:19px;color:var(--dark)}
html[data-theme="dark"] .brand-copy strong{color:var(--text)}
.brand-copy small{margin-top:5px;color:var(--primary);font-size:10px;font-weight:900;letter-spacing:.19em;text-transform:uppercase}
.desktop-nav{display:flex;align-items:center;gap:2px;margin-left:auto}
.nav-link{
    position:relative;border:0;background:none;color:var(--text);cursor:pointer;
    padding:12px 10px;border-radius:12px;font-weight:750;font-size:14px;white-space:nowrap;
    transition:background .18s,color .18s,transform .18s;
}
.nav-link:hover,.nav-dropdown.open>.nav-link{background:var(--surface-warm);color:var(--primary)}
.nav-trigger{display:inline-flex;align-items:center;gap:8px}
.nav-chevron,
.language-chevron{
    width:16px;
    height:16px;
    display:inline-grid;
    place-items:center;
    color:var(--primary);
    font-size:0;
    flex:0 0 16px;
}
.nav-chevron:before,
.language-chevron:before{
    content:"";
    width:7px;
    height:7px;
    border-right:2px solid currentColor;
    border-bottom:2px solid currentColor;
    border-radius:1px;
    transform:translateY(-2px) rotate(45deg);
    transition:transform .18s ease;
}
.nav-dropdown.open .nav-chevron:before,
.language-picker.open .language-chevron:before{
    transform:translateY(2px) rotate(225deg);
}
.nav-dropdown{position:relative}
.dropdown-panel{
    display:none;position:absolute;top:calc(100% + 9px);left:0;z-index:130;
    width:340px;background:var(--surface);border:1px solid var(--line);
    box-shadow:var(--shadow);border-radius:20px;padding:10px;
}
.nav-dropdown.open .dropdown-panel{display:block}
.dropdown-panel a{display:flex;flex-direction:column;padding:13px 14px;border-radius:13px}
.dropdown-panel a:hover{background:var(--surface-warm);color:var(--primary)}
.dropdown-panel small{color:var(--muted);font-size:12px;margin-top:3px}
.dropdown-panel.compact-menu{width:200px}
.dropdown-panel.compact-menu a{display:block;font-weight:750}
.desktop-nav > .nav-dropdown:last-child .dropdown-panel{
    left:auto;
    right:0;
}

.header-actions{display:flex;align-items:center;gap:8px}
.language-picker{position:relative}
.language-picker-trigger{
    min-height:42px;border:1px solid var(--line);background:var(--surface);color:var(--text);
    border-radius:13px;padding:0 11px;display:flex;align-items:center;gap:8px;cursor:pointer;font-weight:800;
    box-shadow:0 5px 15px rgba(79,49,34,.04);
}
.language-picker-trigger:hover{border-color:#d8c9bd;background:var(--surface-warm)}
.language-current-name{font-size:12px;white-space:nowrap}
.language-picker .language-chevron{color:var(--muted)}
.language-picker-menu{
    display:none;position:absolute;right:0;top:calc(100% + 8px);z-index:150;
    min-width:245px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow);
    border-radius:18px;padding:8px;
}
.language-picker.open .language-picker-menu{display:flex;flex-direction:column}
.language-picker-searchable{width:min(340px,calc(100vw - 28px));max-height:min(72vh,610px);padding:10px}
.language-search-field{display:block;position:sticky;top:0;z-index:1;padding:1px 1px 10px;background:var(--surface)}
.language-search-label{display:block;margin:0 0 5px 2px;color:var(--muted);font-size:10px;font-weight:900;letter-spacing:.08em;text-transform:uppercase}
.language-search-field input{display:block;width:100%;border:1px solid var(--line);border-radius:10px;background:var(--surface-warm);color:var(--text);padding:10px 12px;font:inherit;font-size:13px;outline:none}
.language-search-field input:focus{border-color:var(--orange);box-shadow:0 0 0 3px rgba(232,109,37,.14)}
.language-search-results{overflow:auto;max-height:min(58vh,470px);padding-right:2px}
.language-search-results .language-option{margin-bottom:2px}
.language-search-empty{margin:9px 7px;color:var(--muted);font-size:13px}
.language-option{display:flex;align-items:center;gap:10px;padding:10px 11px;border-radius:11px;font-size:14px;font-weight:750}
a.language-option:hover,a.language-option.is-active{background:var(--surface-warm);color:var(--primary)}
.language-option small{margin-left:auto;color:var(--muted);font-size:10px;font-weight:700}
.language-option.is-disabled{color:var(--muted);cursor:not-allowed;opacity:.76}
.language-flag{
    width:24px;height:18px;display:inline-grid;place-items:center;position:relative;overflow:hidden;flex:0 0 auto;
    border-radius:2px;font-size:18px;line-height:1;background:transparent;
}
.language-flag:after{content:"";display:none}
.flag-de{background:linear-gradient(to bottom,#000 0 33.333%,#dd0000 33.333% 66.666%,#ffce00 66.666%)}
.flag-fr{background:linear-gradient(to right,#0055a4 0 33.333%,#fff 33.333% 66.666%,#ef4135 66.666%)}
.flag-it{background:linear-gradient(to right,#009246 0 33.333%,#fff 33.333% 66.666%,#ce2b37 66.666%)}
.flag-es{background:linear-gradient(to bottom,#aa151b 0 25%,#f1bf00 25% 75%,#aa151b 75%)}
.flag-de:after,.flag-fr:after,.flag-it:after,.flag-es:after,.flag-gb:after,.flag-at:after,.flag-us:after{content:""}
.flag-gb{background:linear-gradient(33deg,transparent 43%,#fff 43% 57%,transparent 57%),linear-gradient(-33deg,transparent 43%,#fff 43% 57%,transparent 57%),linear-gradient(to right,transparent 39%,#c8102e 39% 61%,transparent 61%),linear-gradient(to bottom,transparent 35%,#c8102e 35% 65%,transparent 65%),#012169}
.flag-at{background:linear-gradient(to bottom,#c8102e 0 33.333%,#fff 33.333% 66.666%,#c8102e 66.666%)}
.flag-ch{background:#d52b1e}
.flag-ch:before{content:"";position:absolute;left:9px;top:3px;width:4px;height:9px;background:#fff}
.flag-ch:after{content:"";position:absolute;left:6px;top:6px;width:10px;height:3px;background:#fff}
.flag-us{background:repeating-linear-gradient(to bottom,#b22234 0 1.2px,#fff 1.2px 2.4px)}
.flag-us:before{content:"";position:absolute;left:0;top:0;width:9px;height:8px;background:#3c3b6e}

.mobile-language-section{display:none}
.mobile-language-label{display:block;font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--muted);font-weight:800;margin-bottom:8px}
.language-picker-mobile .language-picker-trigger{width:100%;justify-content:flex-start}
.language-picker-mobile .language-chevron{margin-left:auto}
.language-picker-mobile .language-picker-menu{position:static;margin-top:8px;min-width:0;width:100%;box-shadow:none}
.icon-btn{
    width:42px;height:42px;border:1px solid var(--line);background:var(--surface);
    color:var(--text);border-radius:13px;cursor:pointer;transition:.18s;
}
.icon-btn:hover{background:var(--surface-warm);color:var(--primary);border-color:#d8c9bd}
.mobile-menu-toggle{display:none;width:42px;height:42px;border:0;background:none;cursor:pointer}
.mobile-menu-toggle span{display:block;width:22px;height:2px;background:var(--text);margin:5px auto}

.btn{
    display:inline-flex;align-items:center;justify-content:center;gap:8px;
    min-height:46px;padding:0 19px;border:1px solid transparent;
    border-radius:14px;font-weight:850;cursor:pointer;transition:transform .18s,box-shadow .18s,background .18s,border-color .18s;
}
.btn:hover{transform:translateY(-2px)}
.btn-primary{
    background:linear-gradient(135deg,var(--primary),var(--orange));
    color:#fff;
    box-shadow:0 11px 25px rgba(185,45,34,.22);
}
.btn-primary:hover{box-shadow:0 15px 30px rgba(185,45,34,.28)}
.btn-secondary{background:var(--surface);border-color:#dacfc5;color:var(--text);box-shadow:var(--shadow-soft)}
.btn-secondary:hover{border-color:var(--gold);background:var(--surface-warm)}
.btn-light{background:#fff8ed;color:var(--dark);box-shadow:0 10px 24px rgba(30,14,8,.15)}
.btn-lg{min-height:56px;padding:0 26px;border-radius:16px}

.mobile-drawer{
    position:fixed;right:0;top:0;height:100vh;width:min(430px,92vw);
    background:var(--surface);z-index:180;
    transform:scale(.985);transform-origin:right center;
    opacity:0;visibility:hidden;pointer-events:none;
    transition:transform .25s ease,opacity .2s ease,visibility 0s linear .25s;
    padding:24px;overflow:auto;border-left:1px solid var(--line);
}
.mobile-drawer.open{
    transform:scale(1);opacity:1;visibility:visible;pointer-events:auto;
    transition:transform .25s ease,opacity .2s ease;
}
.mobile-drawer-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:20px}
.mobile-close{border:0;background:none;color:var(--text);font-size:34px;cursor:pointer}
.mobile-nav-group{padding:18px 0;border-bottom:1px solid var(--line);display:flex;flex-direction:column;gap:10px}
.mobile-nav-group>span{font-size:11px;text-transform:uppercase;letter-spacing:.14em;color:var(--primary);font-weight:900}
.mobile-nav-group a{font-weight:750}
.mobile-nav-group a:hover{color:var(--primary)}
.mobile-auth{padding-top:22px}
.drawer-backdrop{
    position:fixed;inset:0;background:rgba(44,25,19,.5);z-index:170;
    opacity:0;pointer-events:none;transition:.2s;
}
.drawer-backdrop.open{opacity:1;pointer-events:auto}

.hero{
    position:relative;
    padding:82px 0 74px;
    overflow:hidden;
}
.hero:before{
    content:"";
    position:absolute;
    width:520px;height:520px;
    border-radius:50%;
    right:-180px;top:-230px;
    background:radial-gradient(circle,var(--gold-soft) 0 34%,rgba(242,181,68,.14) 35% 58%,transparent 59%);
    z-index:-1;
}
.hero:after{
    content:"";
    position:absolute;
    left:-190px;bottom:-300px;
    width:500px;height:500px;border-radius:50%;
    background:rgba(232,109,37,.06);
    z-index:-1;
}
.hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}
.eyebrow{
    display:inline-flex;align-items:center;gap:8px;color:var(--primary);font-size:12px;font-weight:950;
    text-transform:uppercase;letter-spacing:.18em;margin-bottom:14px;
}
.eyebrow:before{content:"";width:28px;height:3px;border-radius:99px;background:linear-gradient(90deg,var(--primary),var(--gold))}
.eyebrow.light{color:#ffe7c6}
.eyebrow.light:before{background:var(--gold)}
.hero h1,.page-hero h1{
    font-family:Georgia,"Times New Roman",serif;
    font-weight:500;line-height:1.02;letter-spacing:-.038em;margin:0;
    color:var(--dark);
}
html[data-theme="dark"] .hero h1,
html[data-theme="dark"] .page-hero h1{color:var(--text)}
.hero h1{font-size:clamp(50px,6vw,80px)}
.hero h1 em{font-style:italic;color:var(--primary)}
.lead{font-size:19px;color:var(--muted);max-width:720px;line-height:1.72}
.hero-copy .lead{max-width:640px}
.hero-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:30px}
.quick-facts{
    display:flex;gap:0;margin-top:40px;flex-wrap:wrap;
    background:rgba(255,253,248,.72);
    border:1px solid var(--line);border-radius:18px;
    box-shadow:var(--shadow-soft);
    width:max-content;max-width:100%;
}
html[data-theme="dark"] .quick-facts{background:rgba(45,33,29,.78)}
.quick-facts div{display:flex;flex-direction:column;padding:13px 20px;min-width:135px}
.quick-facts div+div{border-left:1px solid var(--line)}
.quick-facts b{font-size:17px;color:var(--dark)}
html[data-theme="dark"] .quick-facts b{color:var(--text)}
.quick-facts span{font-size:11px;color:var(--muted);margin-top:2px}

.hero-visual{position:relative;min-height:515px}
.visual-main{
    height:485px;border-radius:40px;
    background:
        radial-gradient(circle at 76% 20%,rgba(255,255,255,.30),transparent 18%),
        radial-gradient(circle at 18% 82%,rgba(242,181,68,.35),transparent 24%),
        linear-gradient(145deg,var(--primary-strong) 0%,var(--primary) 44%,var(--orange) 76%,var(--gold) 118%);
    box-shadow:0 28px 65px rgba(115,47,25,.24);
    position:relative;overflow:hidden;padding:36px;color:#fff;
    border:6px solid rgba(255,255,255,.55);
}
.visual-main:before{
    content:"";
    position:absolute;inset:16px;
    border:1px solid rgba(255,255,255,.18);
    border-radius:30px;
}
.visual-label{position:relative;z-index:2;font-size:11px;text-transform:uppercase;letter-spacing:.19em;font-weight:950}
.window-shape{
    width:61%;aspect-ratio:1.05;position:absolute;right:8%;top:17%;
    border:7px solid rgba(255,255,255,.90);border-radius:190px 190px 18px 18px;
    display:grid;grid-template-columns:1fr 1fr;grid-template-rows:1fr 1fr;overflow:hidden;
    box-shadow:0 12px 28px rgba(57,24,14,.16);
}
.window-shape span{border:1px solid rgba(255,255,255,.55);background:linear-gradient(rgba(255,255,255,.08),rgba(255,255,255,.20))}
.visual-caption{position:absolute;left:36px;right:36px;bottom:36px;display:flex;flex-direction:column;max-width:390px}
.visual-caption b{font-family:Georgia,"Times New Roman",serif;font-size:33px;font-weight:500}
.visual-caption span{opacity:.9}
.floating-card{
    position:absolute;left:-32px;bottom:14px;background:var(--surface);color:var(--text);
    border:1px solid var(--line);box-shadow:var(--shadow);border-radius:20px;
    padding:17px 19px;display:flex;align-items:center;gap:13px;
}
.floating-card .mini-icon{
    width:44px;height:44px;border-radius:13px;
    background:linear-gradient(145deg,var(--gold-soft),var(--orange-soft));
    display:grid;place-items:center;color:var(--primary);font-size:22px;
}
.floating-card div{display:flex;flex-direction:column}
.floating-card b{color:var(--dark)}
html[data-theme="dark"] .floating-card b{color:var(--text)}
.floating-card small{color:var(--muted)}

.section{padding:86px 0}
.section-soft{
    background:
        linear-gradient(180deg,rgba(242,241,237,.96),rgba(246,232,215,.72));
    border-top:1px solid rgba(229,222,213,.7);
    border-bottom:1px solid rgba(229,222,213,.7);
}
html[data-theme="dark"] .section-soft{background:var(--surface-2)}
.section-head{margin-bottom:36px}
.section-head.split{display:grid;grid-template-columns:1fr .8fr;gap:52px;align-items:end}
.section-head h2,.section h2,.cta-card h2{
    font-family:Georgia,"Times New Roman",serif;font-size:clamp(33px,4vw,49px);
    line-height:1.08;font-weight:500;letter-spacing:-.028em;margin:0 0 14px;color:var(--dark);
}
html[data-theme="dark"] .section-head h2,
html[data-theme="dark"] .section h2,
html[data-theme="dark"] .cta-card h2{color:var(--text)}
.section-head p,.section p{color:var(--muted)}
.feature-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:17px}
.feature-card{
    position:relative;
    background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
    padding:27px;min-height:245px;box-shadow:0 9px 26px rgba(79,49,34,.055);
    overflow:hidden;transition:transform .18s,box-shadow .18s,border-color .18s;
}
.feature-card:after{
    content:"";position:absolute;width:90px;height:90px;border-radius:50%;
    right:-35px;top:-35px;background:var(--gold-soft);opacity:.72;
}
.feature-card:hover{transform:translateY(-4px);box-shadow:var(--shadow-soft);border-color:#dac9bb}
.feature-card>span{font-size:12px;font-weight:950;color:var(--primary);letter-spacing:.08em}
.feature-card h3{font-family:Georgia,"Times New Roman",serif;font-size:25px;font-weight:500;margin:42px 0 10px;color:var(--dark)}
html[data-theme="dark"] .feature-card h3{color:var(--text)}
.two-col{display:grid;grid-template-columns:1fr 1fr;gap:58px;align-items:center}
.room-visual{
    height:440px;border-radius:34px;
    background:linear-gradient(145deg,var(--surface-warm),var(--surface));
    border:1px solid var(--line);position:relative;overflow:hidden;box-shadow:var(--shadow-soft);
}
.room-visual:before{
    content:"";position:absolute;inset:0;
    background:radial-gradient(circle at 82% 18%,rgba(242,181,68,.22),transparent 22%);
}
.room-shape{position:absolute;border-radius:22px;background:#ead9c7;box-shadow:inset 0 0 0 1px rgba(112,72,50,.06)}
.room-one{left:8%;top:10%;width:56%;height:44%;background:linear-gradient(145deg,#f7dabc,#ebc69e)}
.room-two{right:8%;top:18%;width:26%;height:58%;background:linear-gradient(180deg,var(--gold-soft),var(--orange-soft))}
.room-three{left:14%;bottom:10%;width:64%;height:23%;background:linear-gradient(135deg,var(--primary),var(--orange))}
.room-caption{position:absolute;right:18px;bottom:16px;background:var(--surface);padding:9px 13px;border-radius:11px;font-size:12px;color:var(--muted);box-shadow:var(--shadow-soft)}
.check-list{padding:0;list-style:none;margin:24px 0}
.check-list li{position:relative;padding:9px 0 9px 31px}
.check-list li:before{
    content:"✓";position:absolute;left:0;top:7px;
    width:21px;height:21px;border-radius:50%;
    display:grid;place-items:center;
    background:var(--gold-soft);color:var(--primary);font-weight:950;font-size:12px;
}
.text-link{font-weight:900;color:var(--primary)}
.text-link:hover{color:var(--orange)}
.location-strip{
    display:flex;align-items:center;justify-content:space-between;gap:40px;
    background:linear-gradient(135deg,var(--surface),var(--surface-warm));
    border:1px solid var(--line);border-radius:30px;padding:40px;box-shadow:var(--shadow-soft);
}
.location-strip>div{max-width:720px}
.cta-section{padding:24px 0 94px}
.cta-card{
    position:relative;overflow:hidden;
    background:linear-gradient(125deg,var(--primary-strong) 0%,var(--primary) 48%,var(--orange) 100%);
    color:#fff;border-radius:36px;padding:50px;
    display:flex;align-items:center;justify-content:space-between;gap:30px;
    box-shadow:0 26px 60px rgba(137,38,26,.22);
}
.cta-card:after{
    content:"";position:absolute;width:240px;height:240px;border-radius:50%;
    right:-80px;top:-120px;border:34px solid rgba(255,221,147,.20);
}
.cta-card>div,.cta-card>a{position:relative;z-index:1}
.cta-card h2{color:#fff}
.cta-card p{color:#ffe8d4;margin-bottom:0}

.page-hero{
    position:relative;
    padding:92px 0 54px;
    background:
        radial-gradient(circle at 85% 20%,rgba(242,181,68,.17),transparent 23%),
        linear-gradient(180deg,var(--surface-warm),rgba(255,248,238,.20));
    border-bottom:1px solid rgba(229,222,213,.65);
}
html[data-theme="dark"] .page-hero{background:linear-gradient(180deg,var(--surface-2),var(--bg))}
.page-hero.compact{padding-bottom:25px}
.page-hero h1{font-size:clamp(48px,6vw,73px)}
.page-hero .lead{font-size:20px}
.stats-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:13px}
.stats-grid div{
    background:var(--surface);border:1px solid var(--line);border-radius:20px;padding:27px;
    display:flex;flex-direction:column;box-shadow:var(--shadow-soft);
}
.stats-grid b{font-family:Georgia,"Times New Roman",serif;font-size:36px;font-weight:500;color:var(--primary)}
.stats-grid span{color:var(--muted);font-size:13px}
.content-card{
    background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);
    padding:35px;box-shadow:var(--shadow-soft);
}
.content-card h2,.content-card h3{color:var(--dark)}
html[data-theme="dark"] .content-card h2,
html[data-theme="dark"] .content-card h3{color:var(--text)}
.amenities-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}
.amenity-card{
    background:var(--surface);border:1px solid var(--line);border-radius:22px;padding:28px;
    box-shadow:var(--shadow-soft);transition:.18s;
}
.amenity-card:hover{transform:translateY(-3px);border-color:#d8c7ba}
.amenity-card h2{font-size:28px}
.amenity-card ul{padding-left:20px;color:var(--muted)}
.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}
.gallery-placeholder{
    min-height:250px;border-radius:24px;
    background:
        radial-gradient(circle at 75% 22%,rgba(242,181,68,.26),transparent 20%),
        linear-gradient(145deg,var(--surface-3),var(--surface-warm));
    border:1px solid var(--line);display:flex;align-items:flex-end;padding:23px;
    font-weight:900;color:var(--dark);box-shadow:var(--shadow-soft);
}
html[data-theme="dark"] .gallery-placeholder{color:var(--text)}
.gallery-placeholder.large{grid-column:span 2;grid-row:span 2;min-height:515px}
.pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}
.price-card{
    position:relative;
    background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:34px;
    box-shadow:var(--shadow-soft);overflow:hidden;
}
.price-card:before{
    content:"";position:absolute;left:0;top:0;width:100%;height:5px;
    background:linear-gradient(90deg,var(--gold),var(--orange));
    opacity:.45;
}
.price-card.featured{
    border-color:rgba(185,45,34,.45);
    box-shadow:0 20px 48px rgba(185,45,34,.13);
    transform:translateY(-5px);
}
.price-card.featured:before{height:7px;opacity:1;background:linear-gradient(90deg,var(--primary),var(--orange),var(--gold))}
.price-card>span{color:var(--primary);font-weight:950;text-transform:uppercase;letter-spacing:.08em;font-size:12px}
.price-card h2{font-family:Georgia,"Times New Roman",serif;font-size:34px;margin:25px 0 8px}
.price-card-detail{margin:14px 0 0;color:var(--muted);line-height:1.55;font-size:15px}
.map-placeholder{
    min-height:410px;border-radius:30px;border:1px solid var(--line);
    background:
        linear-gradient(90deg,transparent 49%,rgba(185,45,34,.07) 50%,transparent 51%),
        linear-gradient(0deg,transparent 49%,rgba(185,45,34,.07) 50%,transparent 51%),
        linear-gradient(145deg,var(--surface-warm),var(--surface-2));
    background-size:52px 52px,52px 52px,auto;
    display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;padding:22px;
    box-shadow:var(--shadow-soft);
}
.map-pin{
    width:66px;height:66px;border-radius:50%;display:grid;place-items:center;
    background:linear-gradient(135deg,var(--primary),var(--orange));color:#fff;font-size:29px;
    margin-bottom:16px;box-shadow:0 12px 25px rgba(185,45,34,.21);
}
.map-placeholder span{color:var(--muted);max-width:320px}
.faq-list details{
    background:var(--surface);border:1px solid var(--line);border-radius:18px;
    margin-bottom:11px;padding:0 21px;box-shadow:0 6px 18px rgba(79,49,34,.045);
}
.faq-list details[open]{border-color:#dcc6b6;background:linear-gradient(180deg,var(--surface),var(--surface-warm))}
.faq-list summary{
    cursor:pointer;list-style:none;color:var(--dark);font-weight:850;
    padding:20px 70px 20px 4px;position:relative;min-height:70px;
    display:flex;align-items:center;
}
.faq-list summary::-webkit-details-marker{display:none}
html[data-theme="dark"] .faq-list summary{color:var(--text)}
.faq-list summary:after{
    content:"+";position:absolute;right:12px;top:50%;transform:translateY(-50%);
    width:44px;height:44px;border-radius:13px;display:grid;place-items:center;
    color:var(--primary);background:var(--orange-soft);border:1px solid var(--line);
    font-size:30px;font-weight:500;line-height:1;transition:transform .18s,background .18s;
}
.faq-list details[open] summary:after{content:"−";background:var(--gold-soft);transform:translateY(-50%) rotate(180deg)}
.faq-list details p{padding:0 4px 19px;margin:0}
.host-placeholder{
    min-height:440px;border-radius:34px;
    background:
        radial-gradient(circle at 20% 25%,rgba(242,181,68,.28),transparent 24%),
        linear-gradient(145deg,var(--orange-soft),var(--surface-3));
    border:1px solid var(--line);display:grid;place-items:center;color:var(--muted);font-weight:900;
    box-shadow:var(--shadow-soft);
}
.contact-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:17px}
.contact-card{
    position:relative;
    background:var(--surface);border:1px solid var(--line);border-radius:24px;padding:30px;
    box-shadow:var(--shadow-soft);overflow:hidden;
}
.contact-card:after{
    content:"";position:absolute;width:85px;height:85px;border-radius:50%;right:-32px;bottom:-32px;
    background:var(--gold-soft);opacity:.65;
}
.contact-card h2{font-size:25px;overflow-wrap:anywhere}
.booking-layout{display:grid;grid-template-columns:1fr 340px;gap:38px;align-items:start}
.booking-form{
    background:var(--surface);border:1px solid var(--line);border-radius:28px;padding:34px;
    box-shadow:var(--shadow);
}
.form-grid.two{display:grid;grid-template-columns:1fr 1fr;gap:15px}
.booking-form label{display:flex;flex-direction:column;gap:7px;margin-bottom:16px;font-weight:800}
.booking-form input,.booking-form textarea,.booking-form select{
    width:100%;border:1px solid #ddd4cc;background:#fffaf3;color:var(--text);
    padding:14px 15px;border-radius:13px;outline:none;transition:.16s;
}
html[data-theme="dark"] .booking-form input,
html[data-theme="dark"] .booking-form textarea,
html[data-theme="dark"] .booking-form select{background:var(--surface-2);border-color:var(--line)}
.booking-form input:focus,.booking-form textarea:focus,.booking-form select:focus{
    border-color:var(--orange);
    box-shadow:0 0 0 4px rgba(232,109,37,.12);
}
.checkbox-line{flex-direction:row!important;align-items:flex-start;font-weight:500!important}
.checkbox-line input{width:auto;margin-top:4px;accent-color:var(--primary)}
.checkbox-line a{color:var(--primary);font-weight:800}
.form-note{display:block;color:var(--muted);margin-top:10px}
.booking-aside{
    position:sticky;top:calc(var(--header) + 24px);
    background:linear-gradient(145deg,var(--dark),#5a3024);
    color:#fff;border-radius:27px;padding:30px;display:flex;flex-direction:column;gap:10px;
    box-shadow:0 22px 48px rgba(53,29,22,.20);
}
.booking-aside p{color:#ead8cb}
.booking-aside a{font-weight:800;overflow-wrap:anywhere;color:#ffe5b8}
.legal-copy h2{font-size:30px;margin-top:38px}
.legal-copy a{color:var(--primary);text-decoration:underline;text-underline-offset:3px}
.notice-box{
    background:linear-gradient(135deg,var(--gold-soft),var(--orange-soft));
    border:1px solid #ecd294;padding:19px;border-radius:15px;color:var(--dark);
}
.settings-card{background:var(--surface);border:1px solid var(--line);border-radius:26px;padding:30px;box-shadow:var(--shadow-soft)}
.consent-row{
    display:flex;align-items:center;justify-content:space-between;gap:20px;
    border-bottom:1px solid var(--line);padding:18px 0;
}
.consent-row span{display:flex;flex-direction:column}
.consent-row small{color:var(--muted)}
.consent-row input{width:20px;height:20px;accent-color:var(--primary)}

.site-footer{
    position:relative;
    background:linear-gradient(145deg,var(--dark-2),var(--dark));
    color:#fff8ef;padding:72px 0 28px;margin-top:42px;overflow:hidden;
}
.site-footer:before{
    content:"";position:absolute;width:360px;height:360px;border-radius:50%;
    right:-160px;top:-210px;border:50px solid rgba(242,181,68,.10);
}
.footer-grid{position:relative;display:grid;grid-template-columns:1.4fr 1fr 1fr 1.2fr;gap:40px}
.footer-brand{font-family:Georgia,"Times New Roman",serif;font-size:28px;color:#fff}
.footer-intro{color:#d5c4b8;max-width:350px}
.site-footer h3{font-size:12px;text-transform:uppercase;letter-spacing:.15em;color:#f3bb63}
.site-footer a{display:block;color:#f8eee7;margin:8px 0}
.site-footer a:hover{color:#ffd78c}
.site-footer p{color:#d5c4b8}
.footer-bottom{
    position:relative;border-top:1px solid rgba(255,255,255,.12);
    margin-top:42px;padding-top:23px;display:flex;justify-content:space-between;gap:20px;
    color:#bfaea3;font-size:13px;
}
.footer-legal{display:flex;gap:16px;flex-wrap:wrap}
.footer-legal a{margin:0;color:#bfaea3}
.footer-legal a:hover{color:#ffd78c}

.cookie-banner{
    position:fixed;left:18px;right:18px;bottom:18px;z-index:200;
    max-width:980px;margin:0 auto;background:var(--surface);border:1px solid #dccfc3;
    box-shadow:0 24px 65px rgba(60,31,21,.18);border-radius:22px;padding:21px;
    display:flex;align-items:center;justify-content:space-between;gap:20px;
}
.cookie-banner[hidden]{display:none}
.cookie-banner p{margin:5px 0 0;color:var(--muted)}
.cookie-actions{display:flex;gap:8px;flex:0 0 auto}
.cookie-modal{
    position:fixed;inset:0;background:rgba(42,23,17,.58);z-index:210;
    display:none;align-items:center;justify-content:center;padding:20px;
}
.cookie-modal.open{display:flex}
.cookie-dialog{width:min(620px,100%);background:var(--surface);border-radius:26px;padding:28px;box-shadow:var(--shadow)}
.dialog-head{display:flex;justify-content:space-between;gap:20px}
.dialog-head h2{font-family:Georgia,"Times New Roman",serif;font-size:35px;margin:0}
.dialog-close{border:0;background:none;color:var(--text);font-size:32px;cursor:pointer}
.dialog-actions{display:flex;justify-content:flex-end;gap:8px;margin-top:20px}

.form-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.form-success,.form-errors{
    padding:16px 18px;margin:0 0 20px;border:1px solid var(--line);
    border-radius:var(--radius-sm);background:var(--surface);box-shadow:var(--shadow-soft);
}
.form-success{border-left:5px solid var(--success);background:#f3fbf5}
.form-errors{border-left:5px solid var(--danger);background:#fff3f0}
html[data-theme="dark"] .form-success,
html[data-theme="dark"] .form-errors{background:var(--surface)}
.form-errors ul{margin:8px 0 0;padding-left:20px}

.language-picker-groups{width:min(580px,calc(100vw - 32px));max-height:min(72vh,640px);overflow:auto;padding:10px}
.language-group-block{padding:8px 0}
.language-group-block+.language-group-block{border-top:1px solid var(--line)}
.language-group-title{display:block;padding:2px 10px 7px;font-size:11px;font-weight:950;text-transform:uppercase;letter-spacing:.12em;color:var(--primary)}
.language-group-options{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:4px}
.language-option-copy{min-width:0;display:flex;flex-direction:column;align-items:flex-start}
.language-option-copy b{font-size:13px;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;max-width:100%}
.language-option-copy small{margin:2px 0 0!important;font-size:9px!important;letter-spacing:.06em}
.language-option.is-region{box-shadow:inset 3px 0 0 var(--orange);background:rgba(232,109,37,.045)}
.flag-be{background:linear-gradient(to right,#000 0 33.333%,#fae042 33.333% 66.666%,#ed2939 66.666%)}
.flag-ie{background:linear-gradient(to right,#169b62 0 33.333%,#fff 33.333% 66.666%,#ff883e 66.666%)}
.flag-ca{background:linear-gradient(to right,#d80621 0 25%,#fff 25% 75%,#d80621 75%)}
.flag-ca:before{content:"◆";position:absolute;inset:0;display:grid;place-items:center;color:#d80621;font-size:8px}
.flag-au{background:#012169}
.flag-au:before{content:"✦";position:absolute;right:3px;bottom:1px;color:#fff;font-size:7px}
.flag-be:after,.flag-ie:after,.flag-ca:after,.flag-au:after{content:""}
.language-picker-mobile .language-picker-groups{max-height:420px}
.language-picker-mobile .language-group-options{grid-template-columns:1fr}

@media (max-width:1080px){
    .desktop-nav{display:none}
    .header-inner{gap:16px}
    .header-actions{margin-left:auto}
    .mobile-menu-toggle{display:block}
    .booking-link{display:none}
    .feature-grid{grid-template-columns:repeat(2,1fr)}
    .amenities-grid,.contact-grid{grid-template-columns:repeat(2,1fr)}
    .footer-grid{grid-template-columns:repeat(2,1fr)}
}
@media (max-width:760px){
    .container{width:min(calc(100% - 28px),var(--container))}
    .header-inner{min-height:74px}
    .brand-symbol{width:42px;height:42px}
    .brand-copy strong{font-size:16px}
    .language-picker-desktop{display:none}
    .mobile-language-section{display:block;padding:18px 0;border-bottom:1px solid var(--line)}
    .hero{padding:52px 0 58px}
    .hero-grid,.two-col,.section-head.split,.booking-layout{grid-template-columns:1fr}
    .hero h1{font-size:clamp(43px,13vw,62px)}
    .hero-visual{min-height:405px}
    .visual-main{height:395px;border-radius:31px;padding:28px}
    .visual-caption{left:28px;right:28px;bottom:28px}
    .visual-caption b{font-size:28px}
    .floating-card{left:14px;right:14px;bottom:-5px}
    .quick-facts{width:100%}
    .quick-facts div{flex:1;min-width:100px;padding:12px 14px}
    .feature-grid,.stats-grid,.amenities-grid,.pricing-grid,.contact-grid{grid-template-columns:1fr}
    .gallery-grid{grid-template-columns:1fr}
    .gallery-placeholder.large{grid-column:auto;grid-row:auto;min-height:330px}
    .location-strip,.cta-card,.footer-bottom,.cookie-banner{flex-direction:column;align-items:flex-start}
    .location-strip{padding:28px}
    .cta-card{padding:34px 28px;border-radius:28px}
    .footer-grid{grid-template-columns:1fr}
    .form-grid.two{grid-template-columns:1fr}
    .section{padding:64px 0}
    .page-hero{padding:64px 0 40px}
    .page-hero h1{font-size:clamp(42px,12vw,60px)}
    .booking-form{padding:24px}
    .booking-aside{position:static}
    .cookie-actions{width:100%;flex-wrap:wrap}
    .cookie-actions .btn{flex:1}
    .language-picker-groups{width:100%;max-height:55vh}
    .language-group-options{grid-template-columns:1fr}
}
@media (max-width:480px){
    .brand-copy small{display:none}
    .theme-toggle{display:none}
    .quick-facts{display:grid;grid-template-columns:1fr}
    .quick-facts div+div{border-left:0;border-top:1px solid var(--line)}
    .hero-actions .btn{width:100%}
}

/* Real apartment photography */
.visual-main{background:var(--dark);isolation:isolate}
.hero-photo{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;
    z-index:0;transform:scale(1.01)
}
.hero-photo-overlay{
    position:absolute;inset:0;z-index:1;
    background:
        linear-gradient(180deg,rgba(39,20,14,.12) 0%,rgba(39,20,14,.03) 40%,rgba(39,20,14,.70) 100%),
        linear-gradient(90deg,rgba(142,33,25,.18),transparent 58%);
}
.visual-main .visual-label,.visual-main .visual-caption{z-index:2}
.visual-main .visual-label{
    display:inline-flex;background:rgba(39,20,14,.48);backdrop-filter:blur(8px);
    border:1px solid rgba(255,255,255,.23);padding:8px 11px;border-radius:999px
}
.visual-main .visual-caption{
    text-shadow:0 2px 12px rgba(0,0,0,.28)
}
.room-photo-card{background:var(--dark)}
.room-photo{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center
}
.room-photo-shade{
    position:absolute;inset:0;background:linear-gradient(180deg,transparent 58%,rgba(35,20,15,.42))
}
.room-photo-card .room-caption{
    z-index:2;color:#fff;background:rgba(35,20,15,.62);border:1px solid rgba(255,255,255,.18);
    backdrop-filter:blur(7px)
}

.gallery-item{
    position:relative;margin:0;min-height:260px;border-radius:26px;overflow:hidden;
    border:1px solid var(--line);background:var(--surface-2);box-shadow:var(--shadow-soft)
}
.gallery-item.large{grid-column:span 2;grid-row:span 2;min-height:535px}
.gallery-item img{
    position:absolute;inset:0;width:100%;height:100%;object-fit:cover;
    transition:transform .45s ease
}
.gallery-item:hover img{transform:scale(1.035)}
.gallery-item:after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg,transparent 58%,rgba(35,20,15,.68));
    pointer-events:none
}
.gallery-item figcaption{
    position:absolute;left:20px;right:20px;bottom:17px;z-index:2;color:#fff;
    font-family:Georgia,"Times New Roman",serif;font-size:23px;
    text-shadow:0 2px 10px rgba(0,0,0,.34)
}

.host-photo-card{
    position:relative;margin:0;height:520px;border-radius:34px;overflow:hidden;
    border:1px solid var(--line);background:var(--surface-2);box-shadow:var(--shadow)
}
.host-photo-card:after{
    content:"";position:absolute;inset:0;
    box-shadow:inset 0 -95px 100px -90px rgba(48,24,16,.42);pointer-events:none
}
.host-photo-card img{
    width:100%;height:100%;object-fit:cover;object-position:center 34%
}

.apartment-photo-section{padding:6px 0 78px}
.apartment-photo-grid{
    display:grid;grid-template-columns:1.45fr .8fr;grid-template-rows:230px 230px;gap:16px
}
.apartment-photo{
    margin:0;border-radius:25px;overflow:hidden;border:1px solid var(--line);
    background:var(--surface-2);box-shadow:var(--shadow-soft)
}
.apartment-photo-wide{grid-row:1 / span 2}
.apartment-photo img{
    display:block;width:100%;height:100%;object-fit:cover;transition:transform .45s ease
}
.apartment-photo:hover img{transform:scale(1.025)}

@media (max-width:760px){
    .gallery-item.large{grid-column:auto;grid-row:auto;min-height:340px}
    .gallery-item{min-height:300px}
    .host-photo-card{height:480px}
    .apartment-photo-section{padding:0 0 58px}
    .apartment-photo-grid{grid-template-columns:1fr;grid-template-rows:none}
    .apartment-photo,.apartment-photo-wide{grid-row:auto;height:300px}
    .apartment-photo-wide{height:360px}
}

/* Brand, consent-controlled maps and form security */
.brand-with-logo{
    flex:0 0 auto;
    min-width:0;
}
.brand-logo{
    display:block;
    width:235px;
    max-width:24vw;
    height:auto;
    border-radius:10px;
    box-shadow:0 6px 18px rgba(44,25,19,.08);
}
html[data-theme="dark"] .brand-logo{
    box-shadow:0 6px 18px rgba(0,0,0,.26);
}

.captcha-block{
    margin:8px 0 22px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
    gap:8px;
}
.captcha-block small{
    color:var(--muted);
    max-width:620px;
    line-height:1.45;
}
.cf-turnstile{min-height:65px}

.map-consent{
    min-height:430px;
    border-radius:30px;
    border:1px solid var(--line);
    background:var(--surface-2);
    overflow:hidden;
    box-shadow:var(--shadow-soft);
    position:relative;
}
.map-consent-placeholder{
    min-height:430px;
    padding:42px;
    display:flex;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    text-align:center;
    background:
        linear-gradient(90deg,transparent 49%,rgba(185,45,34,.06) 50%,transparent 51%),
        linear-gradient(0deg,transparent 49%,rgba(185,45,34,.06) 50%,transparent 51%),
        linear-gradient(145deg,var(--surface-warm),var(--surface-2));
    background-size:52px 52px,52px 52px,auto;
}
.map-consent-placeholder[hidden]{display:none}
.map-consent-placeholder strong{
    font-family:Georgia,"Times New Roman",serif;
    font-size:28px;
    color:var(--dark);
    margin-bottom:7px;
}
html[data-theme="dark"] .map-consent-placeholder strong{color:var(--text)}
.map-consent-placeholder>span{
    color:var(--muted);
    max-width:500px;
}
.map-consent-actions{
    display:flex;
    flex-wrap:wrap;
    justify-content:center;
    gap:10px;
    margin-top:22px;
}
.map-frame-shell{
    width:100%;
    min-height:430px;
}
.map-frame-shell[hidden]{display:none}
.map-frame-shell iframe{
    display:block;
    width:100%;
    height:430px;
    border:0;
}
.footer-cookie-settings{
    appearance:none;
    border:0;
    padding:0;
    margin:0;
    background:none;
    color:#bfaea3;
    font:inherit;
    cursor:pointer;
}
.footer-cookie-settings:hover,
.footer-cookie-settings:focus-visible{
    color:#ffd78c;
    text-decoration:underline;
    text-underline-offset:3px;
}
.cookie-actions .btn{white-space:nowrap}

@media (max-width:1180px){
    .brand-logo{width:205px;max-width:30vw}
}
@media (max-width:760px){
    .brand-logo{width:188px;max-width:56vw;border-radius:8px}
    .map-consent,.map-consent-placeholder,.map-frame-shell{min-height:390px}
    .map-consent-placeholder{padding:28px 20px}
    .map-frame-shell iframe{height:390px}
    .map-consent-actions{width:100%}
    .map-consent-actions .btn{width:100%}
}
@media (max-width:420px){
    .brand-logo{width:165px;max-width:54vw}
}

/* Shared icons, contact cards, carousel, floorplan and WhatsApp */
.ui-icon{
    width:1.35em;
    height:1.35em;
    display:inline-block;
    flex:0 0 auto;
    fill:none;
}

.contact-grid-four{grid-template-columns:repeat(4,minmax(0,1fr))}
.contact-card-icon{padding-top:76px}
.contact-icon{
    position:absolute;
    top:22px;
    left:24px;
    width:42px;
    height:42px;
    border-radius:13px;
    display:grid;
    place-items:center;
    color:var(--primary);
    background:linear-gradient(145deg,var(--gold-soft),var(--orange-soft));
    box-shadow:0 8px 20px rgba(185,45,34,.09);
}
.contact-icon .ui-icon{width:21px;height:21px}
.contact-card-icon h2{font-size:21px;line-height:1.25}

.whatsapp-float{
    position:fixed;
    right:22px;
    bottom:22px;
    z-index:165;
    min-height:54px;
    padding:0 18px;
    border-radius:999px;
    background:#25d366;
    color:#fff;
    display:flex;
    align-items:center;
    gap:9px;
    font-weight:900;
    box-shadow:0 14px 34px rgba(20,120,62,.28);
    transition:transform .18s,box-shadow .18s,background .18s;
}
.whatsapp-float:hover{
    transform:translateY(-3px);
    background:#1fbd5a;
    box-shadow:0 18px 38px rgba(20,120,62,.34);
}
.whatsapp-float .ui-icon{width:24px;height:24px}

.back-to-top{
    position:fixed;
    right:24px;
    bottom:94px;
    z-index:164;
    width:50px;
    height:50px;
    border:1px solid rgba(185,45,34,.16);
    border-radius:16px;
    background:var(--surface);
    color:var(--primary);
    box-shadow:0 12px 28px rgba(79,49,34,.16);
    font-size:25px;
    font-weight:800;
    line-height:1;
    cursor:pointer;
    opacity:0;
    visibility:hidden;
    transform:translateY(12px);
    transition:opacity .18s,visibility .18s,transform .18s,background .18s;
}
.back-to-top:hover{background:var(--orange-soft);transform:translateY(8px)}
.back-to-top.is-visible{opacity:1;visibility:visible;transform:none}

.gallery-carousel-section{overflow:hidden}
.gallery-carousel{
    background:var(--surface);
    border:1px solid var(--line);
    border-radius:32px;
    padding:28px;
    box-shadow:var(--shadow);
}
.gallery-carousel-head{
    display:flex;
    align-items:flex-end;
    justify-content:space-between;
    gap:24px;
    margin-bottom:20px;
}
.gallery-carousel-head h2{margin-bottom:0}
.carousel-controls{display:flex;gap:8px}
.carousel-arrow,
.lightbox-arrow,
.lightbox-close{
    border:0;
    display:grid;
    place-items:center;
    cursor:pointer;
}
.carousel-arrow{
    width:46px;
    height:46px;
    border-radius:14px;
    background:var(--surface-warm);
    color:var(--primary);
    border:1px solid var(--line);
}
.carousel-arrow:hover{background:var(--orange-soft)}
.carousel-viewport{position:relative;overflow:hidden;border-radius:24px}
.carousel-track{
    display:flex;
    gap:16px;
    overflow-x:auto;
    scroll-snap-type:x mandatory;
    scrollbar-width:none;
    scroll-behavior:smooth;
}
.carousel-track::-webkit-scrollbar{display:none}
.carousel-slide{
    position:relative;
    flex:0 0 min(72%,720px);
    aspect-ratio:16/9;
    border:0;
    border-radius:24px;
    overflow:hidden;
    padding:0;
    background:var(--surface-2);
    cursor:zoom-in;
    scroll-snap-align:center;
    box-shadow:var(--shadow-soft);
}
.carousel-slide img{
    width:100%;
    height:100%;
    object-fit:cover;
    display:block;
    transition:transform .4s ease;
}
.carousel-slide:hover img{transform:scale(1.025)}
.carousel-slide:after{
    content:"";
    position:absolute;
    inset:0;
    background:linear-gradient(180deg,transparent 62%,rgba(30,18,14,.72));
}
.carousel-inline-controls{
    position:absolute;
    inset:0;
    z-index:4;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:0 14px;
    pointer-events:none;
}
.carousel-arrow-overlay{
    width:54px;
    height:54px;
    border-radius:50%;
    background:rgba(255,253,248,.92);
    box-shadow:0 10px 25px rgba(44,25,19,.18);
    pointer-events:auto;
}
html[data-theme="dark"] .carousel-arrow-overlay{background:rgba(45,33,29,.92)}
.carousel-arrow-overlay:hover{background:var(--orange-soft)}
.carousel-caption{
    position:absolute;
    z-index:2;
    left:22px;
    right:22px;
    bottom:18px;
    color:#fff;
    font-family:Georgia,"Times New Roman",serif;
    font-size:25px;
    text-align:left;
    text-shadow:0 2px 10px rgba(0,0,0,.32);
}
.carousel-progress{
    height:5px;
    border-radius:99px;
    background:var(--surface-2);
    margin-top:18px;
    overflow:hidden;
}
.carousel-progress span{
    display:block;
    width:11%;
    height:100%;
    border-radius:inherit;
    background:linear-gradient(90deg,var(--primary),var(--orange),var(--gold));
    transition:width .2s,transform .2s;
}

.media-lightbox{
    position:fixed;
    inset:0;
    z-index:240;
    display:none;
}
.media-lightbox.open{display:block}
.media-lightbox-backdrop{
    position:absolute;
    inset:0;
    background:rgba(18,11,9,.90);
    backdrop-filter:blur(9px);
}
.media-lightbox-dialog{
    position:relative;
    width:min(94vw,1500px);
    height:min(90vh,980px);
    margin:5vh auto;
    z-index:2;
    display:grid;
    place-items:center;
}
.media-lightbox figure{
    margin:0;
    width:100%;
    height:100%;
    display:grid;
    grid-template-rows:minmax(0,1fr) auto;
    align-items:center;
    justify-items:center;
}
.media-lightbox img{
    max-width:100%;
    max-height:calc(90vh - 70px);
    width:auto;
    height:auto;
    object-fit:contain;
    border-radius:18px;
    box-shadow:0 28px 70px rgba(0,0,0,.38);
    background:#fff;
}
.media-lightbox figcaption{
    color:#fff;
    padding:14px 20px 0;
    font-size:16px;
    text-align:center;
}
.lightbox-close{
    position:absolute;
    right:6px;
    top:6px;
    width:46px;
    height:46px;
    border-radius:50%;
    background:rgba(255,255,255,.12);
    color:#fff;
    z-index:4;
}
.lightbox-arrow{
    position:absolute;
    top:50%;
    width:52px;
    height:52px;
    border-radius:50%;
    background:rgba(255,255,255,.12);
    color:#fff;
    z-index:4;
}
.lightbox-prev{left:4px}
.lightbox-next{right:4px}
.lightbox-arrow:hover,.lightbox-close:hover{background:rgba(255,255,255,.22)}
.lightbox-arrow[hidden]{display:none}

.floorplan-section{background:linear-gradient(180deg,var(--surface-warm),var(--bg))}
.floorplan-card{
    margin:0;
    background:#fff;
    border:1px solid var(--line);
    border-radius:28px;
    padding:16px;
    box-shadow:var(--shadow);
}
.floorplan-image-button{
    width:100%;
    border:0;
    padding:0;
    background:none;
    cursor:zoom-in;
    display:block;
    border-radius:20px;
    overflow:hidden;
}
.floorplan-image-button img{
    width:100%;
    height:auto;
    display:block;
    transition:transform .35s ease;
}
.floorplan-image-button:hover img{transform:scale(1.015)}

.faq-list details{overflow:hidden}
.faq-list details[open] summary{color:var(--primary)}
.faq-list details p{animation:faqFade .18s ease}
@keyframes faqFade{from{opacity:0;transform:translateY(-4px)}to{opacity:1;transform:none}}

@media(max-width:1100px){
    .contact-grid-four{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media(max-width:760px){
    .contact-grid-four{grid-template-columns:1fr}
    .gallery-carousel{padding:18px;border-radius:24px}
    .gallery-carousel-head{align-items:flex-start}
    .carousel-slide{flex-basis:92%;aspect-ratio:4/3}
    .carousel-caption{font-size:21px}
    .lightbox-arrow{width:44px;height:44px}
    .whatsapp-float{
        right:14px;
        bottom:14px;
        width:54px;
        height:54px;
        min-height:54px;
        padding:0;
        justify-content:center;
    }
    .whatsapp-float span{display:none}
}

/* Equipment category icons + compact home booking entry */
.amenity-card-head{
    display:flex;
    align-items:center;
    gap:14px;
    margin-bottom:18px;
}
.amenity-card-head h2{
    margin:0;
    font-size:25px;
    line-height:1.2;
}
.amenity-icon{
    width:46px;
    height:46px;
    flex:0 0 46px;
    display:grid;
    place-items:center;
    border-radius:14px;
    color:var(--primary);
    background:linear-gradient(145deg,var(--gold-soft),var(--orange-soft));
    border:1px solid rgba(210,169,102,.28);
}
.amenity-icon .ui-icon{
    width:23px;
    height:23px;
}
.amenity-card ul{
    margin-bottom:0;
}

.home-booking-strip{
    position:relative;
    z-index:12;
    margin-top:-31px;
    padding-bottom:8px;
}
.home-booking-bar{
    display:grid;
    grid-template-columns:1fr 1fr .82fr auto;
    gap:10px;
    align-items:stretch;
    padding:10px;
    border:1px solid var(--line);
    border-radius:24px;
    background:var(--surface);
    box-shadow:0 20px 50px rgba(93,52,31,.14);
}
.home-booking-field{
    min-width:0;
    min-height:70px;
    margin:0;
    padding:10px 14px;
    display:flex;
    align-items:center;
    gap:12px;
    border:1px solid var(--line);
    border-radius:17px;
    background:var(--surface-warm);
    transition:border-color .16s,box-shadow .16s,background .16s;
}
.home-booking-field:focus-within{
    border-color:var(--orange);
    box-shadow:0 0 0 4px rgba(232,109,37,.10);
    background:var(--surface);
}
.home-booking-icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    border-radius:12px;
    display:grid;
    place-items:center;
    color:var(--primary);
    background:var(--orange-soft);
}
.home-booking-icon .ui-icon{
    width:20px;
    height:20px;
}
.home-booking-control{
    min-width:0;
    width:100%;
    display:flex;
    flex-direction:column;
    gap:3px;
}
.home-booking-control>span{
    color:var(--muted);
    font-size:11px;
    line-height:1.1;
    font-weight:900;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.home-booking-control input,
.home-booking-control select{
    appearance:auto;
    width:100%;
    min-width:0;
    border:0;
    outline:0;
    padding:2px 0;
    background:transparent;
    color:var(--text);
    font:inherit;
    font-size:16px;
    font-weight:850;
}
.home-booking-control input[type="date"]{
    min-height:27px;
}
.home-booking-submit{
    min-width:184px;
    border-radius:17px;
    padding-inline:24px;
    white-space:nowrap;
}
.home-after-booking{
    padding-top:72px;
}

/* Explicit contrast for the direct-contact card in light and dark mode */
.booking-aside h2{
    color:#fff8ef;
}
.booking-aside .eyebrow{
    color:#ff7957;
}
.booking-aside p{
    color:#f0ddd1;
}
.booking-aside a{
    color:#ffe8b8;
}

@media(max-width:1000px){
    .home-booking-bar{
        grid-template-columns:1fr 1fr;
    }
    .home-booking-submit{
        grid-column:1 / -1;
        min-height:56px;
    }
}
@media(max-width:760px){
    .amenity-card{
        padding:22px;
    }
    .amenity-card-head{
        gap:12px;
        margin-bottom:15px;
    }
    .amenity-card-head h2{
        font-size:22px;
    }
    .amenity-icon{
        width:42px;
        height:42px;
        flex-basis:42px;
        border-radius:13px;
    }
    .amenity-icon .ui-icon{
        width:21px;
        height:21px;
    }
    .home-booking-strip{
        margin-top:-20px;
    }
    .home-booking-bar{
        grid-template-columns:1fr;
        border-radius:21px;
        padding:9px;
    }
    .home-booking-field{
        min-height:66px;
    }
    .home-booking-submit{
        grid-column:auto;
        width:100%;
        min-width:0;
        min-height:54px;
    }
    .home-after-booking{
        padding-top:52px;
    }
}
@media(max-width:420px){
    .home-booking-field{
        padding:9px 11px;
        gap:10px;
    }
    .home-booking-icon{
        width:35px;
        height:35px;
        flex-basis:35px;
    }
    .home-booking-control input,
    .home-booking-control select{
        font-size:15px;
    }
}

/* Localized availability calendar */
.fw-date-picker{
    position:relative;
    min-width:0;
}
.fw-date-trigger{
    width:100%;
    min-width:0;
    border:0;
    margin:0;
    padding:0;
    background:none;
    color:var(--text);
    display:flex;
    align-items:center;
    gap:12px;
    text-align:left;
    cursor:pointer;
    font:inherit;
}
.fw-date-trigger:focus-visible{
    outline:3px solid rgba(232,109,37,.24);
    outline-offset:2px;
}
.fw-date-icon{
    width:38px;
    height:38px;
    flex:0 0 38px;
    border-radius:12px;
    display:grid;
    place-items:center;
    color:var(--primary);
    background:var(--orange-soft);
}
.fw-date-icon .ui-icon{
    width:20px;
    height:20px;
}
.fw-date-copy{
    min-width:0;
    display:flex;
    flex-direction:column;
    gap:4px;
}
.fw-date-label{
    color:var(--muted);
    font-size:11px;
    line-height:1.1;
    font-weight:900;
    letter-spacing:.07em;
    text-transform:uppercase;
}
.fw-date-display{
    min-width:0;
    color:var(--text);
    font-size:16px;
    font-weight:850;
    white-space:nowrap;
    overflow:hidden;
    text-overflow:ellipsis;
}
.fw-date-trigger:not(.has-value) .fw-date-display{
    color:var(--muted);
    font-weight:720;
}
.fw-date-picker.is-invalid .fw-date-trigger{
    box-shadow:0 0 0 3px rgba(164,59,50,.15);
}
.home-booking-field.fw-date-picker{
    position:relative;
    display:block;
    padding:0;
    gap:0;
}
.home-booking-field.fw-date-picker .fw-date-trigger{
    min-height:68px;
    padding:10px 14px;
    border-radius:inherit;
}
.home-booking-field.fw-date-picker.is-open{
    z-index:35;
    border-color:var(--orange);
    background:var(--surface);
    box-shadow:0 0 0 4px rgba(232,109,37,.10);
}
.booking-date-grid{
    align-items:start;
}
.booking-date-picker{
    margin-bottom:16px;
}
.booking-date-picker .fw-date-trigger{
    min-height:61px;
    padding:10px 14px;
    border:1px solid #ddd4cc;
    border-radius:13px;
    background:#fffaf3;
    transition:border-color .16s,box-shadow .16s,background .16s;
}
.booking-date-picker .fw-date-trigger:hover{
    border-color:#d5c4b6;
}
.booking-date-picker.is-open .fw-date-trigger,
.booking-date-picker .fw-date-trigger:focus-visible{
    border-color:var(--orange);
    box-shadow:0 0 0 4px rgba(232,109,37,.12);
    outline:0;
}
html[data-theme="dark"] .booking-date-picker .fw-date-trigger{
    background:var(--surface-2);
    border-color:var(--line);
}

.fw-calendar-popover{
    position:absolute;
    top:calc(100% + 12px);
    left:0;
    z-index:230;
    width:min(700px,calc(100vw - 32px));
    border:1px solid #e3d6ca;
    border-radius:26px;
    background:var(--surface);
    color:var(--text);
    box-shadow:0 28px 70px rgba(62,34,24,.22);
    overflow:hidden;
}
.fw-calendar-popover[hidden]{
    display:none!important;
}
[data-mode="departure"]>.fw-calendar-popover{
    left:auto;
    right:0;
}
html[data-theme="dark"] .fw-calendar-popover{
    border-color:var(--line);
    box-shadow:0 28px 70px rgba(0,0,0,.42);
}
.fw-calendar-shell{
    padding:18px;
}
.fw-calendar-header{
    display:grid;
    grid-template-columns:48px minmax(0,1fr) 48px;
    align-items:center;
    gap:8px;
    margin-bottom:8px;
}
.fw-calendar-heading{
    text-align:center;
    color:var(--primary);
    font-size:11px;
    font-weight:950;
    text-transform:uppercase;
    letter-spacing:.12em;
}
.fw-calendar-nav{
    width:48px;
    height:48px;
    display:grid;
    place-items:center;
    border:1px solid var(--line);
    border-radius:12px;
    background:var(--surface-warm);
    color:var(--primary);
    font-size:28px;
    line-height:1;
    cursor:pointer;
}
.fw-calendar-nav:hover:not(:disabled){
    background:var(--orange-soft);
}
.fw-calendar-nav:disabled{
    opacity:.35;
    cursor:not-allowed;
}
.fw-calendar-months{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:22px;
}
.fw-calendar-month{
    min-width:0;
}
.fw-calendar-month-title{
    margin:8px 0 13px;
    color:var(--dark);
    font-family:Georgia,"Times New Roman",serif;
    font-size:20px;
    font-weight:600;
    text-align:center;
    text-transform:none;
}
html[data-theme="dark"] .fw-calendar-month-title{
    color:var(--text);
}
.fw-calendar-weekdays,
.fw-calendar-days{
    display:grid;
    grid-template-columns:repeat(7,minmax(0,1fr));
}
.fw-calendar-weekdays{
    margin-bottom:4px;
}
.fw-calendar-weekdays span{
    padding:6px 2px;
    color:var(--muted);
    font-size:10px;
    font-weight:900;
    text-align:center;
    text-transform:uppercase;
    letter-spacing:.04em;
}
.fw-calendar-day{
    position:relative;
    aspect-ratio:1;
    min-width:0;
    min-height:37px;
    border:0;
    border-radius:11px;
    background:transparent;
    color:var(--text);
    font:inherit;
    font-size:13px;
    font-weight:760;
    cursor:pointer;
    transition:background .14s,color .14s,transform .14s,box-shadow .14s;
}
.fw-calendar-day:hover:not(:disabled):not(.is-selected){
    background:var(--surface-warm);
    color:var(--primary);
    transform:translateY(-1px);
}
.fw-calendar-day.is-outside{
    visibility:hidden;
    pointer-events:none;
}
.fw-calendar-day.is-today:after{
    content:"";
    position:absolute;
    left:50%;
    bottom:4px;
    width:4px;
    height:4px;
    border-radius:50%;
    background:var(--orange);
    transform:translateX(-50%);
}
.fw-calendar-day.is-in-range:not(.is-selected){
    border-radius:8px;
    background:var(--gold-soft);
}
.fw-calendar-day.is-selected{
    background:linear-gradient(135deg,var(--primary),var(--orange));
    color:#fff;
    box-shadow:0 7px 16px rgba(185,45,34,.22);
}
.fw-calendar-day.is-selected.is-today:after{
    background:#fff;
}
.fw-calendar-day.is-occupied{
    color:#9f8f84;
    background:
        repeating-linear-gradient(
            -45deg,
            rgba(185,45,34,.055) 0 4px,
            rgba(185,45,34,.12) 4px 8px
        );
    text-decoration:line-through;
    cursor:not-allowed;
}
.fw-calendar-day:disabled:not(.is-occupied):not(.is-outside){
    color:#c7bdb5;
    cursor:not-allowed;
}
.fw-calendar-legend{
    display:flex;
    align-items:center;
    gap:16px;
    flex-wrap:wrap;
    padding:15px 2px 8px;
    border-top:1px solid var(--line);
    margin-top:14px;
}
.fw-calendar-legend span{
    display:inline-flex;
    align-items:center;
    gap:6px;
    color:var(--muted);
    font-size:11px;
    font-weight:760;
}
.fw-calendar-legend-dot{
    width:10px;
    height:10px;
    border-radius:3px;
    display:inline-block;
}
.fw-calendar-legend-dot.is-available{
    background:var(--surface-warm);
    border:1px solid #dfc9b9;
}
.fw-calendar-legend-dot.is-occupied{
    background:repeating-linear-gradient(-45deg,#f4d9d4 0 3px,#e9aaa0 3px 6px);
}
.fw-calendar-legend-dot.is-selected{
    background:var(--primary);
}
.fw-calendar-status{
    margin:8px 0 0;
    padding:9px 11px;
    border-radius:11px;
    font-size:11px;
    line-height:1.45;
    color:var(--muted);
    background:var(--surface-2);
}
.fw-calendar-status.is-live{
    color:#3f6849;
    background:#eff8f1;
}
.fw-calendar-status.is-stale{
    color:#8b5b12;
    background:#fff6dc;
}
.fw-calendar-status.is-unknown,
.fw-calendar-status.is-loading{
    color:var(--muted);
    background:var(--surface-2);
}
html[data-theme="dark"] .fw-calendar-status.is-live,
html[data-theme="dark"] .fw-calendar-status.is-stale{
    color:var(--text);
    background:var(--surface-2);
}
.fw-calendar-footer{
    display:flex;
    align-items:center;
    justify-content:flex-end;
    gap:6px;
    padding-top:12px;
}
.fw-calendar-text-btn{
    min-height:38px;
    border:0;
    border-radius:10px;
    padding:0 12px;
    background:transparent;
    color:var(--primary);
    font:inherit;
    font-size:12px;
    font-weight:900;
    cursor:pointer;
}
.fw-calendar-text-btn:hover:not(:disabled){
    background:var(--surface-warm);
}
.fw-calendar-text-btn.is-primary{
    background:var(--primary);
    color:#fff;
}
.fw-calendar-text-btn.is-primary:hover{
    background:var(--primary-strong);
}
.fw-calendar-text-btn:disabled{
    opacity:.35;
    cursor:not-allowed;
}
.booking-calendar-status{
    margin:-4px 0 18px;
    padding:10px 12px 10px 30px;
    position:relative;
    border-radius:12px;
    color:var(--muted);
    background:var(--surface-2);
    font-size:12px;
    line-height:1.45;
}
.booking-calendar-status:before{
    content:"";
    position:absolute;
    left:13px;
    top:16px;
    width:7px;
    height:7px;
    border-radius:50%;
    background:#aaa;
}
.booking-calendar-status.is-live:before{
    background:var(--success);
}
.booking-calendar-status.is-stale:before{
    background:var(--gold);
}
.booking-calendar-status.is-unknown:before{
    background:var(--muted);
}

@media(max-width:759px){
    .fw-calendar-popover,
    [data-mode="departure"]>.fw-calendar-popover{
        position:fixed;
        left:12px;
        right:12px;
        top:auto;
        bottom:12px;
        width:auto;
        max-height:calc(100dvh - 24px);
        overflow:auto;
        border-radius:28px;
    }
    .fw-calendar-shell{
        padding:16px;
    }
    .fw-calendar-months{
        grid-template-columns:1fr;
        gap:0;
    }
    .fw-calendar-day{
        min-height:42px;
        font-size:14px;
    }
    .fw-calendar-weekdays span{
        font-size:11px;
    }
    .fw-calendar-legend{
        gap:12px;
    }
    .home-booking-field.fw-date-picker .fw-date-trigger{
        min-height:64px;
        padding:9px 11px;
    }
    .fw-date-icon{
        width:35px;
        height:35px;
        flex-basis:35px;
    }
    .fw-date-display{
        font-size:15px;
    }
}

/* Navigation clarity and simplified language selection */
.nav-link.is-active,
.nav-dropdown.is-active > .nav-link{
    color:var(--primary);
    background:transparent;
    font-weight:900;
}
.nav-link.is-active:after,
.nav-dropdown.is-active > .nav-link:after{
    content:"";
    position:absolute;
    left:50%;
    bottom:5px;
    width:18px;
    height:4px;
    transform:translateX(-50%);
    border-radius:99px;
    background:linear-gradient(90deg,var(--primary),var(--orange));
    box-shadow:0 3px 8px rgba(185,45,34,.22);
}
.nav-link.is-active:hover,
.nav-dropdown.is-active > .nav-link:hover{
    background:rgba(232,109,37,.07);
}
.dropdown-panel a.is-active,
.mobile-nav-group a.is-active{
    color:var(--primary);
    font-weight:900;
}
.mobile-nav-group a.is-active{
    padding-left:11px;
    border-left:3px solid var(--orange);
}
.language-picker-simple{
    width:min(360px,calc(100vw - 32px));
    max-height:min(72vh,640px);
    overflow:auto;
    padding:8px;
}
.language-picker-simple .language-option{
    min-height:46px;
}
.language-picker-simple .language-option-copy b{
    font-size:14px;
}
.experience-intro-card{
    max-width:760px;
    margin-inline:auto;
    padding:42px;
}
@media(max-width:760px){
    .faq-list details{padding-inline:16px}
    .faq-list summary{padding-right:62px}
    .faq-list summary:after{right:2px;width:40px;height:40px;font-size:27px}
    .fw-calendar-header{grid-template-columns:44px minmax(0,1fr) 44px}
    .fw-calendar-nav{width:44px;height:44px}
    .experience-intro-card{padding:28px 23px}
}

/* Header: never allow navigation labels to create horizontal scrolling */
.header-inner,
.desktop-nav,
.header-actions{
    min-width:0;
}
.desktop-nav{
    flex:1 1 auto;
    margin-left:0;
    justify-content:center;
}
.header-actions{
    flex:0 0 auto;
    margin-left:auto;
}
.language-picker-trigger{
    max-width:min(245px,22vw);
}
.language-current-name{
    min-width:0;
    overflow:hidden;
    text-overflow:ellipsis;
}

/* A second, complete navigation row is preferable to an empty header. */
.site-header.is-condensed .header-inner{
    min-height:0;
    flex-wrap:wrap;
    column-gap:20px;
    row-gap:4px;
    padding:10px 0 12px;
}
.site-header.is-condensed .desktop-nav{
    display:flex;
    order:3;
    flex:0 0 100%;
    margin:0;
    justify-content:space-between;
    flex-wrap:wrap;
    gap:0 2px;
}
.site-header.is-condensed .nav-link{
    padding:8px 10px;
    font-size:13px;
}
.site-header.is-condensed .header-actions{margin-left:auto}
.site-header.is-condensed .mobile-menu-toggle{display:none}
.site-header.is-condensed .booking-link{display:inline-flex;min-height:42px;padding-inline:15px}

/* Last-resort fallback for exceptionally narrow viewports or very long labels. */
.site-header.is-compact .desktop-nav{display:none}
.site-header.is-compact .header-actions{margin-left:auto}
.site-header.is-compact .mobile-menu-toggle{display:block;flex:0 0 auto}
.site-header.is-compact .booking-link{display:none}

@media(max-width:760px){
    .header-inner{gap:10px}
    .language-picker-trigger{max-width:calc(100vw - 260px)}
    .brand-logo{width:188px;max-width:56vw}
}

.location-guide-grid{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:17px;
}
.location-guide-card{
    display:block;
    padding:30px;
    transition:transform .18s,box-shadow .18s,border-color .18s;
}
.location-guide-card:hover{
    transform:translateY(-4px);
    border-color:#d8c7ba;
    box-shadow:var(--shadow);
}
.location-guide-card h3{
    margin:9px 0 8px;
    font-size:27px;
}
.location-guide-card p{margin:0 0 16px;color:var(--muted)}
@media(max-width:760px){
    .location-guide-grid{grid-template-columns:1fr}
    .location-guide-card{padding:25px}
    .carousel-slide{flex-basis:86%;aspect-ratio:4/3}
    .carousel-inline-controls{padding-inline:10px}
    .carousel-arrow-overlay{width:44px;height:44px}
    .back-to-top{right:16px;bottom:88px;width:46px;height:46px}
}


/* Mobility and shopping guide */
.mobility-grid{
    display:grid;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:18px;
}
.mobility-card{
    min-height:100%;
    padding:32px;
    display:flex;
    flex-direction:column;
    align-items:flex-start;
}
.mobility-card h2{
    margin:9px 0 10px;
    font-size:25px;
    line-height:1.2;
}
.mobility-card p{
    margin:0 0 21px;
    color:var(--muted);
}
.mobility-card .text-link{margin-top:16px}
.mobility-phone{
    color:var(--primary);
    font-size:25px;
    line-height:1.1;
    font-weight:900;
    letter-spacing:.01em;
}
.mobility-phone:hover{text-decoration:underline}
.mobility-phone-note{
    margin-top:5px;
    color:var(--muted);
    font-size:12px;
    font-weight:700;
}
.shopping-map-layout{
    display:grid;
    grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
    align-items:stretch;
    gap:34px;
}
.shopping-map-copy{
    padding:16px 0;
}
.shopping-map-copy h2{
    margin:10px 0;
    font-size:clamp(30px,3vw,43px);
    line-height:1.08;
}
.shopping-map-copy>p{
    max-width:560px;
    color:var(--muted);
}
.shopping-category-list{
    display:flex;
    flex-wrap:wrap;
    gap:9px;
    margin:25px 0 20px;
}
.shopping-category{
    min-height:42px;
    padding:0 15px;
    border:1px solid var(--line);
    border-radius:999px;
    background:var(--surface);
    color:var(--text);
    font:inherit;
    font-weight:800;
    cursor:pointer;
    transition:background .18s,border-color .18s,color .18s,transform .18s;
}
.shopping-category:hover{
    border-color:var(--orange);
    transform:translateY(-1px);
}
.shopping-category.is-active{
    border-color:var(--primary);
    background:var(--primary);
    color:#fff;
    box-shadow:0 8px 16px rgba(185,45,34,.18);
}
.shopping-route-actions{
    display:flex;
    flex-wrap:wrap;
    gap:10px;
}
.shopping-qr{
    display:flex;
    align-items:center;
    gap:18px;
    margin-top:22px;
    padding:15px;
    border:1px solid var(--line);
    border-radius:18px;
    background:var(--surface);
}
.shopping-qr img{
    width:144px;
    height:144px;
    padding:6px;
    border-radius:12px;
    background:#fff;
}
.shopping-qr p{
    max-width:210px;
    margin:0;
    color:var(--muted);
    font-weight:750;
    line-height:1.45;
}
.shopping-map,
.shopping-map .map-consent-placeholder,
.shopping-map .map-frame-shell{
    min-height:400px;
}
.shopping-map .map-frame-shell iframe{height:400px}
@media(max-width:980px){
    .mobility-grid{grid-template-columns:1fr}
    .shopping-map-layout{grid-template-columns:1fr;gap:16px}
}
@media(max-width:760px){
    .mobility-card{padding:26px}
    .shopping-map,
    .shopping-map .map-consent-placeholder,
    .shopping-map .map-frame-shell{min-height:320px}
    .shopping-map .map-frame-shell iframe{height:320px}
    .shopping-qr{align-items:flex-start}
}


.shopping-selection-hint{
    margin:16px 0 0;
    padding:12px 14px;
    border:1px dashed var(--line);
    border-radius:13px;
    background:var(--surface);
    color:var(--muted);
    font-size:14px;
    font-weight:700;
}
.shopping-selection-hint.is-error{
    border-color:rgba(185,45,34,.5);
    background:var(--primary-soft);
    color:var(--primary-strong);
}
.shopping-places{
    display:grid;
    grid-template-columns:repeat(2,minmax(0,1fr));
    gap:9px;
    margin:18px 0 0;
}
.shopping-place{
    min-height:76px;
    padding:12px 14px;
    border:1px solid var(--line);
    border-radius:14px;
    background:var(--surface);
    color:var(--text);
    text-align:left;
    font:inherit;
    cursor:pointer;
    transition:border-color .18s,background .18s,transform .18s;
}
.shopping-place:hover{
    border-color:var(--orange);
    background:var(--surface-warm);
    transform:translateY(-1px);
}
.shopping-place.is-selected{
    border-color:var(--primary);
    background:var(--primary-soft);
    box-shadow:0 7px 16px rgba(185,45,34,.12);
}
.shopping-place strong,
.shopping-place span{display:block}
.shopping-place strong{font-size:14px;line-height:1.25}
.shopping-place span{
    margin-top:4px;
    color:var(--muted);
    font-size:12px;
    line-height:1.35;
}
.btn-quiet{
    min-height:42px;
    padding:0 15px;
    border:1px solid transparent;
    border-radius:13px;
    background:transparent;
    color:var(--primary);
    font:inherit;
    font-weight:850;
    cursor:pointer;
}
.btn-quiet:hover{background:var(--primary-soft)}
.shopping-qr strong{
    display:block;
    color:var(--text);
    font-size:17px;
    line-height:1.35;
}
.shopping-qr div p{margin:7px 0 0}
@media(max-width:560px){
    .shopping-places{grid-template-columns:1fr}
    .shopping-route-actions{align-items:stretch}
    .shopping-route-actions .btn,
    .shopping-route-actions .btn-quiet{width:100%;justify-content:center}
}

/* The QR area is always present: it shows either the selection hint or the selected destination. */
.shopping-route-actions{margin-top:18px}
.shopping-qr{min-height:104px}
.shopping-qr .shopping-selection-hint{
    max-width:none;
    margin:7px 0 0;
    padding:0;
    border:0;
    border-radius:0;
    background:transparent;
}
.shopping-qr .shopping-selection-hint.is-error{
    background:transparent;
    color:var(--primary-strong);
}

/* Local map pins for shopping locations. Selected destination is deliberately dark blue. */
.shopping-leaflet-canvas{
    width:100%;
    height:400px;
    border-radius:inherit;
    overflow:hidden;
}
.shopping-map-marker{
    background:transparent;
    border:0;
}
.shopping-map-marker span{
    display:block;
    position:relative;
    width:25px;
    height:25px;
    border:3px solid #fff;
    border-radius:50% 50% 50% 0;
    background:var(--primary);
    box-shadow:0 3px 10px rgba(41,29,24,.32);
    transform:rotate(-45deg);
}
.shopping-map-marker span::after{
    content:"";
    position:absolute;
    inset:7px;
    border-radius:50%;
    background:#fff;
}
.shopping-map-marker.is-selected span{
    width:29px;
    height:29px;
    background:#18324f;
    box-shadow:0 5px 14px rgba(24,50,79,.48);
}
.shopping-map-marker.is-selected span::after{inset:8px}
.shopping-place.is-closed{
    background:#f0ede9;
    border-color:#ddd5ce;
    color:#887f77;
    opacity:.78;
}
.shopping-place.is-closed:hover{
    background:#ebe7e1;
    border-color:#c9bdb3;
}
.shopping-place.is-closed strong,
.shopping-place.is-closed span{color:#887f77}
.shopping-place-address{white-space:pre-line}
.shopping-place-distance{
    font-weight:700;
}
.shopping-place-status{
    font-weight:900;
}
.shopping-place-status.is-open{
    color:#35734c;
}
.shopping-place-status.is-closed,
.shopping-place-hours.is-closed{
    color:#9a544c!important;
}
.shopping-place-hours{
    font-weight:760;
}
.shopping-place-hours.is-unavailable{
    color:var(--muted);
    font-style:italic;
    font-weight:650;
}
.shopping-map-marker.is-closed span{background:#908a84}
.shopping-map-marker.is-selected span{background:#18324f}
@media(max-width:760px){
    .shopping-leaflet-canvas{height:320px}
}

/* Shopping results stay compact: QR action is always above the independently scrollable list. */
.shopping-map-layout{align-items:start}
.shopping-map{
    min-height:360px;
    height:360px;
    position:sticky;
    top:calc(var(--header) + 18px);
}
.shopping-map .map-consent-placeholder,
.shopping-map .map-frame-shell{min-height:360px}
.shopping-map .map-frame-shell iframe,
.shopping-leaflet-canvas{height:360px}
.shopping-places{
    max-height:440px;
    overflow-y:auto;
    overscroll-behavior:contain;
    align-content:start;
    padding:2px 7px 2px 1px;
    scrollbar-color:var(--primary) var(--surface-2);
    scrollbar-width:thin;
}
.shopping-places::-webkit-scrollbar{width:8px}
.shopping-places::-webkit-scrollbar-track{background:var(--surface-2);border-radius:99px}
.shopping-places::-webkit-scrollbar-thumb{background:var(--primary);border-radius:99px}
@media(max-width:980px){
    .shopping-map{position:static}
}
@media(max-width:760px){
    .shopping-map,
    .shopping-map .map-consent-placeholder,
    .shopping-map .map-frame-shell{min-height:300px;height:300px}
    .shopping-map .map-frame-shell iframe,
    .shopping-leaflet-canvas{height:300px}
    .shopping-places{max-height:390px}
}

/* Desktop composition: controls and map first, compact result browser across the full width below. */
.shopping-map-layout{
    grid-template-areas:
        "copy map"
        "places places";
    grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);
    row-gap:24px;
}
.shopping-map-copy{grid-area:copy}
.shopping-map{grid-area:map}
.shopping-places{
    grid-area:places;
    grid-template-columns:repeat(4,minmax(0,1fr));
    max-height:350px;
    margin:0;
}
.shopping-qr{
    min-height:0;
    margin-top:14px;
    padding:13px 15px;
}
.shopping-qr:has(img[hidden]){
    border-style:dashed;
    background:transparent;
}
.shopping-qr:has(img[hidden]) strong{display:none}
.shopping-qr:has(img[hidden]) .shopping-selection-hint{
    margin:0;
    font-size:13px;
}
@media(max-width:1240px){
    .shopping-places{grid-template-columns:repeat(3,minmax(0,1fr))}
}
@media(max-width:980px){
    .shopping-map-layout{
        grid-template-areas:
            "copy"
            "map"
            "places";
        grid-template-columns:1fr;
    }
    .shopping-places{grid-template-columns:repeat(2,minmax(0,1fr));max-height:410px}
}
@media(max-width:560px){
    .shopping-places{grid-template-columns:1fr;max-height:390px}
}

/* The map deliberately begins beside the filters, not beside the explanatory copy. */
.shopping-map-layout{
    grid-template-areas:
        "intro intro"
        "copy map"
        "places places";
}
.shopping-map-intro{
    grid-area:intro;
    align-self:end;
    padding-bottom:8px;
}
.shopping-map-copy{grid-area:copy}
.shopping-map{grid-area:map}
.shopping-places{grid-area:places}
.shopping-map,
.shopping-map .map-consent-placeholder,
.shopping-map .map-frame-shell{
    min-height:300px;
    height:300px;
}
.shopping-map .map-frame-shell iframe,
.shopping-leaflet-canvas,
.shopping-google-canvas{height:300px}

@media(max-width:980px){
    .shopping-map-layout{
        grid-template-areas:
            "intro"
            "copy"
            "map"
            "places";
    }
}

/* Live fuel prices */
.shopping-fuel-prices{
    display:grid !important;
    grid-template-columns:repeat(3,minmax(0,1fr));
    gap:4px;
    margin-top:9px !important;
    padding-top:8px;
    border-top:1px solid var(--line);
}
.shopping-place .shopping-fuel-prices span{
    margin:0;
    color:var(--text);
    font-size:11px;
    font-weight:800;
    line-height:1.3;
    white-space:pre-line;
}
@media(max-width:560px){
    .shopping-fuel-prices{grid-template-columns:1fr}
}
/* Dining finder */
.dining-finder-head{display:flex;justify-content:space-between;gap:28px;align-items:end}
.dining-finder-head h2{margin:7px 0 8px;font-size:clamp(28px,3vw,44px)}
.dining-finder-head p{margin:0;color:var(--muted)}
.dining-segments,.dining-cuisines{display:flex;gap:9px;flex-wrap:wrap}
.dining-segment,.dining-cuisine{
    border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);
    padding:11px 16px;font:inherit;font-weight:800;cursor:pointer;transition:.18s ease;
}
.dining-segment.is-active,.dining-cuisine.is-active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 10px 20px rgba(185,45,34,.18)}
.dining-cuisines{margin-top:28px;padding-top:22px;border-top:1px solid var(--line)}
.dining-cuisines[hidden]{display:none !important}
.dining-results{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:24px}
.dining-result-card{overflow:hidden;display:flex;flex-direction:column;min-height:315px;border:1px solid var(--line);border-radius:18px;background:var(--surface)}
.dining-result-visual{position:relative;isolation:isolate;display:grid;place-items:center;min-height:136px;padding:18px;text-decoration:none;background:linear-gradient(135deg,#593228,#c84526);background-size:cover;background-position:center}
.dining-result-visual[data-cuisine*="italian"]{background:linear-gradient(135deg,#2b5f44,#d9d3a6)}
.dining-result-visual[data-cuisine*="asian"],.dining-result-visual[data-cuisine*="chinese"],.dining-result-visual[data-cuisine*="japanese"]{background:linear-gradient(135deg,#7e1821,#d88533)}
.dining-result-visual[data-cuisine*="indian"]{background:linear-gradient(135deg,#733428,#e6b654)}
.dining-result-logo{position:relative;z-index:1;display:block;max-width:min(78%,240px);max-height:88px;object-fit:contain;filter:drop-shadow(0 4px 14px rgba(0,0,0,.25))}
.dining-result-monogram{position:relative;z-index:1;display:grid;place-items:center;width:66px;height:66px;border:2px solid rgba(255,255,255,.75);border-radius:50%;background:rgba(255,255,255,.18);color:#fff;font-family:var(--font-display);font-size:34px;font-weight:700;text-shadow:0 2px 8px rgba(0,0,0,.22)}
.dining-result-content{display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:18px 19px}
.dining-result-card h3{margin:0;font-size:19px;line-height:1.25}
.dining-result-card p{margin:9px 0 0;color:var(--muted);line-height:1.5}
.dining-result-card .dining-result-meta{font-weight:700;color:var(--primary-strong)}
.dining-result-links{display:flex;gap:14px;flex-wrap:wrap;margin-top:auto;padding-top:16px}
.dining-route,.dining-website{color:var(--primary);font-weight:850;text-decoration:none}
.dining-route:hover,.dining-website:hover{text-decoration:underline}
.dining-placeholder{grid-column:1/-1;margin:0;padding:22px;border:1px dashed var(--line);border-radius:15px;color:var(--muted);font-weight:700}
.dining-source-note{margin:16px 0 0;color:var(--muted);font-size:13px}
@media(max-width:900px){.dining-finder-head{align-items:start;flex-direction:column}.dining-results{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:560px){.dining-results{grid-template-columns:1fr}.dining-segment,.dining-cuisine{padding:10px 13px;font-size:14px}}
.dining-venue-kind{
    border:1px solid var(--line);border-radius:999px;background:var(--surface);color:var(--text);
    padding:11px 16px;font:inherit;font-weight:800;cursor:pointer;transition:.18s ease;
}
.dining-venue-kind.is-active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 10px 20px rgba(185,45,34,.18)}
@media(max-width:560px){.dining-venue-kind{padding:10px 13px;font-size:14px}}
/* Excursion guide */
.experience-hero{padding-bottom:54px}
.excursion-overview{padding-top:26px}
.excursion-filters{display:flex;gap:11px;flex-wrap:wrap;margin-bottom:30px}
.filter-chip{appearance:none;border:1px solid var(--line);background:var(--surface);color:var(--text);border-radius:999px;padding:12px 19px;font:inherit;font-weight:850;cursor:pointer;transition:.18s}
.filter-chip:hover{border-color:var(--orange);transform:translateY(-1px)}
.filter-chip.is-active{border-color:var(--primary);background:var(--primary);color:#fff;box-shadow:0 14px 25px rgba(185,45,34,.18)}
.excursion-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px}
.excursion-card{position:relative;display:block;min-height:390px;overflow:hidden;border-radius:25px;background:var(--surface-2);box-shadow:var(--shadow-soft);isolation:isolate;color:#fff}
.excursion-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .45s ease}
.excursion-card:hover img{transform:scale(1.05)}
.excursion-card-shade{position:absolute;inset:0;background:linear-gradient(180deg,rgba(23,17,14,.02) 35%,rgba(31,19,14,.8) 100%);z-index:1}
.excursion-card-meta{position:absolute;top:16px;left:16px;z-index:2;border:1px solid rgba(255,255,255,.25);background:rgba(42,25,18,.55);backdrop-filter:blur(7px);padding:7px 10px;border-radius:999px;font-size:12px;font-weight:850}
.excursion-card-copy{position:absolute;z-index:2;left:20px;right:20px;bottom:20px;display:flex;flex-direction:column;gap:3px}
.excursion-card-copy strong{font-family:Georgia,"Times New Roman",serif;font-size:27px;line-height:1.08}
.excursion-card-copy small{font-weight:750;color:#f2dfd2}
.excursion-card[hidden]{display:none}

.excursion-detail-hero{position:relative;min-height:470px;display:flex;align-items:flex-end;overflow:hidden;background:var(--dark);isolation:isolate;color:#fff}
.excursion-detail-hero>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.excursion-detail-hero-shade{position:absolute;inset:0;background:linear-gradient(90deg,rgba(34,17,12,.83),rgba(34,17,12,.22) 72%),linear-gradient(0deg,rgba(34,17,12,.64),transparent 52%)}
.excursion-detail-hero-content{position:relative;z-index:1;padding-top:80px;padding-bottom:58px}
.excursion-detail-hero h1{max-width:780px;margin:9px 0 12px;color:#fff;font-size:clamp(46px,6vw,76px)}
.excursion-detail-hero p{max-width:700px;color:#f2dfd2;font-size:20px}
.excursion-breadcrumb{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:30px;color:#fae5d6;font-size:14px}
.excursion-breadcrumb a{color:#fff;font-weight:800}
.excursion-detail-layout{display:grid;grid-template-columns:minmax(0,1fr) 335px;gap:48px;align-items:start}
.excursion-article{max-width:770px}
.excursion-article h2{font-size:30px;margin:36px 0 9px}
.excursion-article p{font-size:17px;line-height:1.7}
.excursion-lead{font-size:21px!important;color:var(--dark);font-weight:650}
.excursion-info-card{position:sticky;top:calc(var(--header) + 22px);padding:28px;border-radius:24px;background:var(--surface);border:1px solid var(--line);box-shadow:var(--shadow-soft)}
.excursion-info-card dl{margin:17px 0 23px}
.excursion-info-card dl div{padding:13px 0;border-top:1px solid var(--line)}
.excursion-info-card dt{font-size:12px;font-weight:900;text-transform:uppercase;letter-spacing:.09em;color:var(--muted)}
.excursion-info-card dd{margin:4px 0 0;font-weight:800}
.excursion-info-card .btn{width:100%;justify-content:center;text-align:center}
.excursion-info-card .text-link{display:block;margin-top:17px;text-align:center;color:var(--primary);font-weight:850}
.photo-credit{font-size:13px!important;color:var(--muted);border-top:1px solid var(--line);margin-top:40px;padding-top:16px}
.photo-credit a{color:var(--primary);font-weight:800}

@media (max-width:1080px){
    .excursion-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
}
@media (max-width:760px){
    .excursion-grid{grid-template-columns:1fr}
    .excursion-card{min-height:330px}
    .excursion-detail-hero{min-height:460px}
    .excursion-detail-hero-content{padding-top:70px;padding-bottom:42px}
    .excursion-detail-hero p{font-size:17px}
    .excursion-detail-layout{grid-template-columns:1fr;gap:30px}
    .excursion-info-card{position:static}
    .excursion-article h2{font-size:27px}
}
/* Bayreuth entdecken: lokale Highlights + Detailseiten */
.experience-intro-card{
    display:grid;
    grid-template-columns:1.05fr .95fr;
    gap:42px;
    align-items:end;
    margin-bottom:32px;
    padding:30px;
    border:1px solid var(--line);
    border-radius:26px;
    background:linear-gradient(135deg,var(--surface),var(--surface-warm));
    box-shadow:var(--shadow-soft);
}
.experience-intro-card h2{margin:0;font-size:clamp(31px,4vw,46px)}
.experience-intro-card p{margin:0;font-size:17px}
.excursion-card-placeholder{
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
    overflow:hidden;
    background:linear-gradient(145deg,#8e2119,#e86d25);
}
.excursion-card-placeholder:before{
    content:"";
    position:absolute;
    width:75%;
    aspect-ratio:1;
    border-radius:50%;
    background:rgba(255,255,255,.11);
    right:-28%;
    top:-20%;
}
.excursion-card-placeholder>span{
    font-family:Georgia,"Times New Roman",serif;
    font-size:72px;
    font-weight:700;
    letter-spacing:.04em;
    color:rgba(255,255,255,.88);
}
.excursion-card-type{color:#ffe5c8!important;text-transform:uppercase;letter-spacing:.08em;font-size:10px!important}
.experience-tone-park{background:linear-gradient(145deg,#425d3e,#a88f43)}
.experience-tone-culture{background:linear-gradient(145deg,#6d2020,#b88a42)}
.experience-tone-music{background:linear-gradient(145deg,#382446,#8e3e56)}
.experience-tone-palace{background:linear-gradient(145deg,#7d5832,#c6a15b)}
.experience-tone-underground{background:linear-gradient(145deg,#2a2421,#6a4a39)}
.experience-tone-beer{background:linear-gradient(145deg,#654019,#c1812f)}
.experience-tone-garden{background:linear-gradient(145deg,#315c44,#6f9d59)}
.excursion-detail-placeholder{
    position:absolute;
    inset:0;
    display:grid;
    place-items:center;
}
.excursion-detail-placeholder:before{
    content:"";
    position:absolute;
    width:46vw;
    height:46vw;
    min-width:380px;
    min-height:380px;
    border-radius:50%;
    border:1px solid rgba(255,255,255,.14);
    box-shadow:0 0 0 80px rgba(255,255,255,.035),0 0 0 160px rgba(255,255,255,.02);
}
.excursion-detail-placeholder>span{
    position:relative;
    font-family:Georgia,"Times New Roman",serif;
    font-size:clamp(90px,15vw,220px);
    font-weight:700;
    color:rgba(255,255,255,.13);
}
.experience-detail-tags{
    display:flex;
    flex-wrap:wrap;
    gap:8px;
    margin:25px 0 8px;
}
.experience-detail-tags span{
    padding:7px 11px;
    border-radius:999px;
    background:var(--surface-warm);
    border:1px solid var(--line);
    color:var(--primary);
    font-size:12px;
    font-weight:800;
    text-transform:capitalize;
}
.experience-detail-note{
    margin-top:36px;
    padding:18px 20px;
    border-radius:16px;
    border:1px solid #e5c67c;
    background:var(--gold-soft);
    color:var(--dark);
    display:grid;
    gap:4px;
}
html[data-theme="dark"] .experience-detail-note{color:var(--text)}
.experience-official-link{
    width:100%;
    justify-content:center;
    text-align:center;
    margin-top:10px;
}
@media(max-width:760px){
    .experience-intro-card{grid-template-columns:1fr;gap:15px;padding:24px}
    .excursion-card-placeholder>span{font-size:62px}
}

/* Homepage and address presentation refinements */
.hero-grid{
    grid-template-areas:"copy visual" "facts distance";
    column-gap:70px;row-gap:14px;align-items:end;
}
.hero-copy{grid-area:copy;align-self:center}
.hero-visual{grid-area:visual;min-height:0;display:block}
.quick-facts{
    grid-area:facts;height:auto;box-sizing:border-box;margin-top:0;
    align-self:stretch;
}
.floating-card{
    grid-area:distance;position:relative;left:auto;right:auto;bottom:auto;z-index:3;
    justify-self:start;align-self:stretch;margin:0;min-width:330px;height:auto;box-sizing:border-box;
}
.shopping-place-address,
.dining-result-address{white-space:pre-line}
@media(max-width:760px){
    .hero-grid{
        grid-template-columns:1fr;
        grid-template-areas:"copy" "visual" "facts" "distance";
        gap:14px;align-items:center;
    }
    .hero-copy{align-self:auto}
    .hero-visual{min-height:0}
    .quick-facts{height:auto}
    .floating-card{justify-self:stretch;left:auto;right:auto;bottom:auto;min-width:0;height:auto;margin:0 14px}
}

/* Curated lists are intentionally short, so they should expand with the document instead of creating a second scrollbar. */
.shopping-places{
    max-height:none;
    overflow:visible;
    overscroll-behavior:auto;
    padding:0;
}
