/* =========================================================
   Liquid Section - exact-match reference implementation
   Fullscreen luxury hero + pointer liquid + gallery panel
   ========================================================= */
.liquid-section,
.lq-stage {
    position: relative;
    min-height: 100svh;
    overflow: hidden;
    isolation: isolate;
    color: var(--lq-text, #fff);
    background: #090806;
    --lq-mouse-x: 50%;
    --lq-mouse-y: 50%;
    --bgX: 0px;
    --bgY: 0px;
    --sigX: 0px;
    --sigY: 0px;
    --sigScale: 1;
    --sigAlpha: .42;
    --sigBlur: 0px;
    --panelX: 0px;
    --panelY: 0px;
    --panelRX: 0deg;
    --panelRY: 0deg;
    --titleX: 0px;
    --titleY: 0px;
    --copyX: 0px;
    --copyY: 0px;
    --glowX: 50%;
    --glowY: 50%;
    --glowAlpha: 0;
}

.liquid-section *,
.liquid-section *::before,
.liquid-section *::after { box-sizing: border-box; }

.lq-svg-filter { position:absolute; width:0; height:0; pointer-events:none; }

.lq-bg-wrap,
.lq-bg-wrap img,
.lq-overlay,
.lq-liquid-canvas,
.lq-glow,
.lq-rain { position:absolute; inset:0; }

.lq-bg-wrap { z-index:0; overflow:hidden; }
.lq-bg-wrap img {
    width:100%; height:100%; object-fit:cover;
    transform: translate3d(var(--bgX), var(--bgY), 0) scale(1.065);
    filter: saturate(.74) brightness(.72) contrast(1.02);
    animation: lqBgBreath 16s ease-in-out infinite alternate;
    will-change: transform, filter;
}

.lq-overlay {
    z-index:2;
    pointer-events:none;
    background:
        radial-gradient(circle at var(--glowX) var(--glowY), rgba(255,235,198,.11), transparent 26%),
        linear-gradient(180deg, rgba(0,0,0,.54), rgba(0,0,0,.14) 43%, rgba(0,0,0,.64)),
        linear-gradient(90deg, rgba(0,0,0,.58), rgba(0,0,0,.18) 31%, rgba(0,0,0,.32) 72%, rgba(0,0,0,.67)),
        var(--lq-overlay, rgba(0,0,0,.45));
}

.lq-liquid-canvas {
    z-index:3;
    width:100%; height:100%;
    pointer-events:none;
    mix-blend-mode:screen;
    opacity:.92;
    filter: blur(.35px) saturate(1.08);
}

.lq-glow {
    z-index:4;
    pointer-events:none;
    background:
        radial-gradient(circle at var(--glowX) var(--glowY),
            rgba(255, 239, 203, calc(var(--glowAlpha) * .84)) 0,
            rgba(213, 176, 106, calc(var(--glowAlpha) * .52)) 18%,
            rgba(255,255,255, calc(var(--glowAlpha) * .20)) 32%,
            transparent 48%);
    filter: blur(20px);
    mix-blend-mode: screen;
    opacity: 1;
    transition: background-position 120ms ease-out;
}

.lq-rain {
    z-index:5;
    pointer-events:none;
    opacity:.10;
    background-image: linear-gradient(92deg, transparent 0 94%, rgba(255,255,255,.28) 97%, transparent 100%);
    background-size: 22px 100%;
    transform: skewX(-7deg);
    animation: lqRainMove 1.55s linear infinite;
}

.lq-water-band {
    position:absolute;
    z-index:6;
    left:-4%; right:-4%; top:1%; height:76%;
    pointer-events:none;
    opacity:.36;
    background:
        radial-gradient(ellipse at var(--lq-mouse-x) var(--lq-mouse-y), rgba(255,255,255,.32), rgba(215,183,122,.15) 18%, transparent 39%),
        linear-gradient(105deg, transparent 2%, rgba(255,255,255,.08) 25%, rgba(214,178,106,.16) 50%, rgba(255,255,255,.04) 74%, transparent 100%);
    clip-path: polygon(7% 18%, 24% 3%, 42% 10%, 58% 24%, 78% 11%, 101% 35%, 90% 63%, 70% 55%, 54% 78%, 30% 65%, 12% 78%, 0 49%);
    mix-blend-mode: screen;
    backdrop-filter: blur(5px) contrast(1.18);
    transform-origin:center;
    animation: lqRibbonIdle 8.2s ease-in-out infinite;
    will-change: transform, opacity, clip-path, background;
}

.liquid-section.is-pointer-active .lq-water-band {
    opacity:.74;
    animation-play-state: paused;
}

.lq-copy-top,
.lq-copy {
    position:absolute;
    z-index:12;
    left:clamp(28px, 3.25vw, 64px);
    top:clamp(26px, 4.4vw, 62px);
    max-width: 545px;
    transform: translate3d(var(--copyX), var(--copyY), 0);
    will-change: transform;
}
.lq-copy-top p { margin:0; color:var(--lq-text,#fff); font-size:clamp(16px,1.1vw,21px); font-weight:800; line-height:1.42; text-shadow:0 4px 18px rgba(0,0,0,.55); }
.lq-copy-top a { margin-top:34px; display:inline-flex; align-items:center; justify-content:center; min-width:206px; height:63px; padding:0 30px; border-radius:9px; color:#fff; border:1px solid rgba(255,255,255,.23); background:rgba(118,95,75,.74); box-shadow:inset 0 1px 0 rgba(255,255,255,.11),0 18px 46px rgba(0,0,0,.24); backdrop-filter:blur(11px); font-size:16px; font-weight:900; text-decoration:none; text-transform:uppercase; letter-spacing:.01em; transition:transform .28s ease,background .28s ease,border-color .28s ease; }
.lq-copy-top a:hover { transform:translateY(-3px); background:rgba(161,130,95,.88); border-color:rgba(255,255,255,.44); }

.lq-signature-wrap {
    position:absolute;
    z-index:7;
    left:50%; top:48%;
    width:min(1040px,74vw);
    pointer-events:none;
    transform: translate3d(calc(-50% + var(--sigX)), calc(-50% + var(--sigY)), 0) scale(var(--sigScale));
    will-change: transform;
}
.lq-signature {
    color: rgba(255,255,255,.76);
    font-family: "Brush Script MT", "Segoe Script", "Snell Roundhand", "Lucida Handwriting", cursive;
    font-size: clamp(125px,18.4vw,342px);
    line-height:.69;
    letter-spacing:-.108em;
    white-space:nowrap;
    text-align:center;
    opacity:var(--sigAlpha);
    filter: blur(var(--sigBlur));
    text-shadow: 0 10px 42px rgba(0,0,0,.34);
    animation: lqSignatureIdle 7.4s ease-in-out infinite;
    transform-origin:center;
    will-change: transform, opacity, filter;
}
.liquid-section.is-pointer-active .lq-signature { animation-play-state:paused; }

.lq-title-block,
.lq-title {
    position:absolute;
    z-index:13;
    left:clamp(28px,3.45vw,72px);
    bottom:clamp(34px,7vw,106px);
    max-width:760px;
    transform: translate3d(var(--titleX), var(--titleY), 0);
    will-change: transform;
}
.lq-title-block h2 { margin:0; color:var(--lq-text,#fff); font-family:Georgia,"Times New Roman",serif; font-size:clamp(56px,5.72vw,112px); font-weight:400; line-height:.98; letter-spacing:-.047em; text-shadow:0 12px 38px rgba(0,0,0,.50); }
.lq-title-block h2 span { display:block; }

.lq-facilities-panel,
.lq-panel {
    position:absolute;
    z-index:14;
    width:min(868px,45vw);
    min-height:294px;
    padding:34px 36px 30px;
    border-radius:10px;
    background:var(--lq-panel-bg, rgba(35,32,30,.72));
    border:1px solid rgba(255,255,255,.085);
    box-shadow:0 32px 86px rgba(0,0,0,.38);
    backdrop-filter:blur(14px) saturate(1.14);
    transform: perspective(1200px) translate3d(var(--panelX), var(--panelY),0) rotateX(var(--panelRX)) rotateY(var(--panelRY));
    transform-style:preserve-3d;
    will-change: transform;
}
.lq-facilities-panel.bottom-right { right:clamp(28px,3.2vw,64px); bottom:clamp(32px,6.8vw,92px); }
.lq-facilities-panel.bottom-left { left:clamp(28px,3.2vw,64px); bottom:clamp(32px,6.8vw,92px); }
.lq-panel-head { display:flex; align-items:center; justify-content:space-between; gap:18px; margin-bottom:30px; }
.lq-panel-head h3 { margin:0; color:var(--lq-text,#fff); font-family:Georgia,"Times New Roman",serif; font-size:clamp(27px,2vw,38px); font-weight:400; letter-spacing:-.04em; }
.lq-dots { display:flex; gap:16px; align-items:center; }
.lq-dots button { width:11px; height:11px; border-radius:50%; border:0; padding:0; cursor:pointer; background:rgba(255,255,255,.74); opacity:.95; transition:transform .25s ease, background .25s ease; }
.lq-dots button.is-active { background:var(--lq-accent,#d7b77a); transform:scale(1.12); }
.lq-gallery-track { display:grid; grid-template-columns:repeat(3,1fr); gap:26px; }
.lq-gallery-item { min-width:0; opacity:.84; transform:translateY(8px) scale(.985); transition: opacity .36s ease, transform .36s ease; }
.lq-gallery-item.is-active { opacity:1; transform:translateY(-4px) scale(1); }
.lq-gallery-item img { width:100%; height:126px; border-radius:6px; object-fit:cover; display:block; box-shadow:0 11px 26px rgba(0,0,0,.27); }
.lq-gallery-item h4 { margin:20px 0 0; color:var(--lq-text,#fff); font-size:17px; font-weight:900; text-align:center; text-shadow:0 3px 12px rgba(0,0,0,.42); }

@keyframes lqBgBreath { from{ transform:translate3d(calc(var(--bgX) - 8px), var(--bgY),0) scale(1.055);} to{ transform:translate3d(calc(var(--bgX) + 9px), calc(var(--bgY) - 7px),0) scale(1.085);} }
@keyframes lqRainMove { from{ background-position:0 0;} to{ background-position:44px 128px;} }
@keyframes lqRibbonIdle { 0%,100%{ transform:translate3d(0,0,0) scale(1) skewX(0deg); opacity:.30;} 35%{ transform:translate3d(3.5%,5%,0) scale(1.04) skewX(-7deg); opacity:.47;} 70%{ transform:translate3d(-2%,7%,0) scale(1.02) skewX(5deg); opacity:.37;} }
@keyframes lqSignatureIdle { 0%,100%{ transform:translateY(0) scaleX(1); } 50%{ transform:translateY(-7px) scaleX(1.035); } }

@media(max-width:1280px){ .lq-facilities-panel{ width:min(760px,55vw); padding:28px;} .lq-gallery-track{gap:18px;} }
@media(max-width:980px){ .liquid-section{min-height:980px;} .lq-copy-top{max-width:calc(100% - 48px);} .lq-title-block{bottom:340px;} .lq-facilities-panel,.lq-facilities-panel.bottom-right,.lq-facilities-panel.bottom-left{left:24px; right:24px; bottom:40px; width:auto;} .lq-signature-wrap{top:46%; width:92vw;} }
@media(max-width:680px){ .liquid-section{min-height:980px;} .lq-copy-top{top:28px;left:20px;} .lq-copy-top p{font-size:15px;} .lq-copy-top a{height:50px;min-width:160px;font-size:13px;margin-top:20px;} .lq-title-block{left:20px;bottom:380px;} .lq-title-block h2{font-size:48px;} .lq-facilities-panel{padding:22px;} .lq-panel-head{align-items:flex-start;flex-direction:column;margin-bottom:20px;} .lq-gallery-track{grid-template-columns:1fr;gap:16px;} .lq-gallery-item img{height:150px;} .lq-gallery-item h4{margin-top:10px;} }
@media (prefers-reduced-motion: reduce){ .lq-liquid-canvas,.lq-glow,.lq-rain,.lq-water-band{display:none!important;} .lq-bg-wrap img,.lq-signature{animation:none!important;} }
