/* Requested additions keep the approved page composition. */
header,header.dark{position:fixed;z-index:30}
header nav{max-height:calc(100dvh - 110px);overflow-y:auto}
html{scroll-padding-top:125px}
.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}
.header-phone,.contact-link{display:grid;place-items:center;flex-shrink:0;width:46px;height:46px;border:1px solid #68102430;border-radius:50%;color:var(--wine);background:var(--paper);transition:background .3s,color .3s,transform .3s}
.header-phone:hover,.contact-link:hover{background:var(--wine);color:var(--paper);transform:translateY(-2px)}
.header-phone svg,.contact-link svg{width:21px;height:21px}
.contact-dock{position:fixed;bottom:max(24px,env(safe-area-inset-bottom));right:24px;display:grid;gap:10px;z-index:25}
.contact-link{width:48px;height:48px;box-shadow:0 4px 20px #251b1a12;position:relative}
.contact-link span{position:absolute;right:calc(100% + 10px);background:var(--wine);color:var(--paper);padding:5px 12px;font-size:12px;white-space:nowrap;opacity:0;pointer-events:none;transition:opacity .2s}
.contact-link:hover span,.contact-link:focus-visible span{opacity:1}
.carousel-controls .carousel-next{position:relative;margin:4px}
.timer-ring{position:absolute;inset:-5px;width:calc(100% + 10px);height:calc(100% + 10px);overflow:visible;transform:rotate(-90deg);pointer-events:none}
.timer-ring circle{fill:none;stroke:var(--wine);stroke-width:1.4;stroke-dasharray:100;stroke-dashoffset:100;stroke-linecap:round}
.carousel-controls .carousel-pause{width:36px;height:36px;font-size:16px;border-color:transparent;margin-right:auto}
/* Fabric lives in the picture and in a dedicated lower margin, clear of copy. */

.split-copy:has(.ribbon){padding-bottom:150px}
.split-copy :is(svg,canvas).ribbon{width:600px;right:-150px;bottom:-90px;height:auto;opacity:.48;clip-path:inset(0);mask-image:linear-gradient(transparent,#000 48%);-webkit-mask-image:linear-gradient(transparent,#000 48%)}
.reviews-section:has(.ribbon){padding-bottom:145px}
.reviews-section :is(svg,canvas).ribbon{width:530px;right:-100px;bottom:-100px;opacity:.35;mask-image:linear-gradient(transparent,#000 45%);-webkit-mask-image:linear-gradient(transparent,#000 45%)}
/* A quiet invitation, with a single entrance instead of repeating marquees. */
.wow-section{padding:32px 5% 70px;position:relative;text-align:center}
.wow-frame{max-width:1224px;margin:auto;padding:65px 30px 30px;position:relative;border:1px solid #bca69c66;background:linear-gradient(135deg,#f9f5f0,#efe5de70);overflow:hidden}
.wow-frame:before,.wow-frame:after{content:'';position:absolute;top:50%;width:85px;height:1px;background:#bda79b77}
.wow-frame:before{left:0}.wow-frame:after{right:0}
.wow-kicker{display:flex;align-items:center;justify-content:center;gap:18px;color:#8c7168;font:10px/1.6 'Manrope',sans-serif;letter-spacing:.18em;text-transform:uppercase;margin-bottom:31px}
.wow-kicker>span{height:1px;width:32px;background:#bca69c}
.wow-section h2{color:var(--wine);font-weight:400;letter-spacing:-.025em;line-height:1.03;font-size:clamp(48px,5.6vw,80px)}
.wow-title-line{display:block}.wow-section h2 em{display:block;font-weight:400;font-size:1.12em;line-height:1.1;margin-top:2px}
.wow-copy{font-size:13px;line-height:1.85;color:var(--muted);margin:25px auto 0;letter-spacing:.015em}
.wow-cta{display:inline-flex;align-items:center;gap:35px;margin:30px auto 0;padding:0 0 8px;border:0;border-bottom:1px solid #a8827c;background:none;color:var(--wine);font:11px/1.5 'Manrope',sans-serif;letter-spacing:.04em;transition:border-color .3s}
.wow-arrow{display:grid;place-items:center;width:30px;height:30px;font-size:25px;font-weight:400;transition:transform .4s cubic-bezier(.22,1,.36,1)}
.wow-cta:hover{border-color:var(--wine)}.wow-cta:hover .wow-arrow{transform:translate(3px,-3px)}
.wow-signature{font:9px/1.5 'Manrope',sans-serif;text-transform:uppercase;letter-spacing:.18em;color:#8c7168;margin-top:58px}
.wow-section.is-revealing .wow-kicker,.wow-section.is-revealing .wow-title-line,.wow-section.is-revealing h2 em,.wow-section.is-revealing .wow-copy,.wow-section.is-revealing .wow-cta{animation:wow-reveal 1.1s cubic-bezier(.22,1,.36,1) both}
.wow-section.is-revealing .wow-title-line{animation-delay:.1s}.wow-section.is-revealing h2 em{animation-delay:.2s}.wow-section.is-revealing .wow-copy{animation-delay:.3s}.wow-section.is-revealing .wow-cta{animation-delay:.4s}
@keyframes wow-reveal{from{opacity:0;transform:translateY(15px)}to{opacity:1;transform:translateY(0)}}
html.intro-pending:before{content:'';position:fixed;inset:0;z-index:100;background:#360f1c}
.logo-intro{position:fixed;inset:0;z-index:100;background:#360f1c;color:#f6f0eb;display:grid;place-items:center;overflow:hidden;isolation:isolate;cursor:pointer;animation:intro-curtain .85s 2.15s cubic-bezier(.4,0,.2,1) both}
.intro-glow{position:absolute;inset:-15%;z-index:-2;background:radial-gradient(ellipse at 55% 45%,#a66c6544,transparent 50%),radial-gradient(ellipse at 30% 65%,#79374d66,transparent 55%)}
.intro-stage{text-align:center;position:relative;width:min(76vw,650px)}
.intro-art{position:relative;width:100%;aspect-ratio:1593/327}
.intro-art img{position:absolute;width:100%;height:auto;inset:0}
.intro-word{clip-path:inset(0 0 25%);animation:intro-word 1.15s .05s cubic-bezier(.22,1,.36,1) both}
.intro-tagline{clip-path:inset(80% 0 0);animation:intro-tagline .8s .55s cubic-bezier(.22,1,.36,1) both}
.intro-rule{width:55px;height:1px;background:#f6e0ce66;margin:36px auto 22px;animation:intro-rule .8s .8s ease both}
.intro-caption{font:400 clamp(19px,2.2vw,27px)/1.3 'Cormorant Garamond',Georgia,serif;letter-spacing:.015em;margin:auto;color:#ead7d1;animation:intro-tagline .7s .95s ease both}
.intro-silk{position:absolute;pointer-events:none;width:125vw;height:44vw;background:url('assets/ribbon.png?v=c0a6d6dc07901592') center/contain no-repeat;transform-origin:center;opacity:.17}
.intro-silk-back{left:-20%;top:-12%;z-index:-1;animation:intro-silk-back 3s ease-out both}
.intro-silk-front{right:-25%;bottom:-15%;opacity:.12;animation:intro-silk-front 3s ease-out both}
.intro-skip{position:absolute;bottom:max(30px,env(safe-area-inset-bottom));font:9px/1.6 'Manrope',sans-serif;text-transform:uppercase;letter-spacing:.15em;color:#d5babc}
.logo-intro:not(.is-playing),.logo-intro:not(.is-playing) *{animation-play-state:paused!important}
@keyframes intro-word{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}
@keyframes intro-tagline{from{opacity:0;transform:translateY(7px)}to{opacity:1;transform:translateY(0)}}
@keyframes intro-rule{from{transform:scaleX(0);opacity:0}to{transform:scaleX(1);opacity:1}}
@keyframes intro-silk-back{from{transform:translate(-3%,7%) rotate(-12deg)}to{transform:translate(5%,-5%) rotate(-7deg)}}
@keyframes intro-silk-front{from{transform:translate(-5%,-8%) rotate(-12deg)}to{transform:translate(6%,8%) rotate(-7deg)}}
@keyframes intro-curtain{from{opacity:1;transform:translateY(0)}to{opacity:0;transform:translateY(-5%);visibility:hidden}}
@media(max-width:760px){.intro-stage{width:82vw}.intro-rule{margin:28px auto 20px;width:40px}.intro-silk{width:180vw;height:63vw}.intro-silk-back{left:-50%;top:8%}.intro-silk-front{right:-50%;bottom:8%}.intro-caption{font-size:21px}.intro-skip{font-size:8px}}
@media(max-width:1200px){header{gap:12px}header .brand{width:140px}header nav,header:not(.dark) nav,header.dark nav{gap:12px;font-size:10px}}
@media(max-width:760px){header,header.dark{gap:8px}header .brand{width:clamp(108px,35vw,146px);margin-right:auto}.header-phone{width:40px;height:40px;order:1}.menu-toggle{order:2;gap:8px;padding-left:3px}.menu-toggle>span:last-child{font-size:11px}header nav,header:not(.dark) nav,header.dark nav{font-size:14px;max-height:calc(100dvh - 110px)}.contact-dock{right:12px;bottom:max(16px,env(safe-area-inset-bottom));gap:8px}.contact-link{width:42px;height:42px}.split-copy:has(.ribbon){padding-bottom:130px}.split-copy :is(svg,canvas).ribbon{right:-200px;bottom:-100px;width:540px}.reviews-section:has(.ribbon){padding-bottom:125px}.wow-section{padding:12px 5% 48px}.wow-frame{padding:45px 15px 25px}.wow-frame:before,.wow-frame:after{display:none}.wow-kicker{font-size:8px;letter-spacing:.12em;gap:10px;margin-bottom:29px}.wow-kicker>span{width:16px}.wow-section h2{font-size:clamp(35px,9.8vw,64px)}.wow-section h2 em{font-size:1.06em;margin-top:5px}.wow-copy{font-size:12px;margin-top:24px}.wow-cta{font-size:10px;gap:23px;margin-top:25px}.wow-signature{font-size:8px;letter-spacing:.12em;margin-top:45px}}
@media(prefers-reduced-motion:reduce){.wow-section.is-revealing *{animation:none!important}.wow-arrow{transition:none}.logo-intro{display:none}}
.header-phone:disabled,.contact-link:disabled{cursor:default}
@media(min-width:1201px){header .header-phone{order:1}header>.button{order:2}}
/* The home film shares the existing hero frame with its still fallback. */
.hero .photo.home-video{background:#29161b url('assets/home-hero-poster.jpg?v=7c748e27572c6ed4') center/cover no-repeat;overflow:hidden}
.hero .photo.home-video video{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.hero:has(.home-video):after{background:linear-gradient(90deg,var(--paper) 0%,var(--paper) 27%,rgba(246,240,235,.83) 35%,rgba(246,240,235,.45) 43%,rgba(246,240,235,.04) 55%,transparent 65%)}
@media(max-width:760px){.hero .photo.home-video video{object-position:50% 50%}#about .split-photo{object-position:50% 50%}}
@media(max-width:760px){.hero:has(.home-video):after{background:linear-gradient(var(--paper) 0%,var(--paper) 35%,rgba(246,240,235,.76) 45%,rgba(246,240,235,.2) 61%,transparent 72%)}}
@media(prefers-reduced-motion:reduce){.hero .photo.home-video video{display:none}}
.header-actions{display:flex;align-items:center;gap:8px;flex-shrink:0}
.header-actions .header-phone{order:0}
.hero-sound-button{position:absolute;bottom:30px;right:104px;z-index:3;display:inline-flex;align-items:center;gap:10px;min-height:44px;padding:10px 15px;border:1px solid #f6f0eb80;border-radius:24px;background:#320d1dc9;color:var(--paper);backdrop-filter:blur(8px);-webkit-backdrop-filter:blur(8px);font:600 11px/1.3 'Manrope',Arial,sans-serif;letter-spacing:.02em;box-shadow:0 6px 25px #0003;transition:background .2s,transform .2s}
.hero-sound-button:hover{background:var(--wine);transform:translateY(-2px)}
.hero-sound-button svg{width:20px;height:20px;flex-shrink:0}
.hero-sound-button .sound-off{display:none}
.hero-sound-button.is-muted .sound-wave{display:none}
.hero-sound-button.is-muted .sound-off{display:block}
.theme-page .hero .photo.theme-video{background-color:#210d16;background-size:cover;overflow:hidden}
.theme-page .hero .photo.theme-video video{display:block;width:100%;height:100%;object-fit:cover;object-position:center;filter:brightness(1.28) saturate(1.08)}
.country-page .hero .photo.country-video{background-color:#1b2422;background-size:cover;overflow:hidden}
.country-page .hero .photo.country-video video{display:block;width:100%;height:100%;object-fit:cover;object-position:center}
.evening-banner video{position:absolute;inset:0 0 0 auto;width:75%;height:100%;object-fit:cover;object-position:center;z-index:-2}
.evening-banner:after{background:linear-gradient(90deg,#0c0b09 0%,#0c0b09e8 24%,#0c0b0980 60%,#0c0b0933 100%)}
@media(max-width:760px){.evening-banner video{width:100%}.evening-banner:after{background:linear-gradient(90deg,#0c0b09e8,#0c0b0999)}}
@media(prefers-reduced-motion:reduce){.evening-banner video{display:none}}
@media(prefers-reduced-motion:reduce){.theme-page .hero .photo.theme-video video{display:none}}
@media(prefers-reduced-motion:reduce){.country-page .hero .photo.country-video video{display:none}}
@media(max-width:760px){.header-actions{gap:6px}.header .header-actions .header-phone{order:0}.hero-sound-button{bottom:26px;right:68px;font-size:10px;padding:9px 12px}}
@media(max-width:390px){header .brand{width:108px}.menu-toggle>span:last-child{display:none}.menu-toggle{padding-left:0}}
/* Veils stay inside the text panel and stop at the photograph. */
body{overflow-x:clip}
.split-copy:has(> svg.ribbon){position:relative;isolation:isolate;overflow:hidden;padding-bottom:150px}
.split-copy:has(> svg.ribbon)>:not(.ribbon){position:relative;z-index:1}
.split-copy>:is(svg,canvas).ribbon{position:absolute;left:-5%;right:auto;bottom:-7%;width:110%;height:auto;z-index:0;opacity:.42;pointer-events:none;clip-path:none;mask-image:linear-gradient(to bottom,transparent,#000 38%);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 38%);animation-duration:32s;animation-delay:-8s}
.reviews-section:has(.ribbon){padding-bottom:145px}
.reviews-section :is(svg,canvas).ribbon{left:-4%;right:auto;bottom:-110px;width:108%;z-index:0;opacity:.35;mask-image:linear-gradient(to bottom,transparent,#000 40%);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 40%)}
.reviews-section>.wrap{position:relative;z-index:1}
@media(max-width:760px){.split-copy:has(> svg.ribbon),#about .split-copy:has(> svg.ribbon){padding-bottom:130px}.split-copy>:is(svg,canvas).ribbon{left:-5%;width:110%;bottom:-2%;opacity:.37}.reviews-section :is(svg,canvas).ribbon{left:-5%;width:110%;bottom:-60px}}
.ui-icon{display:inline-block;width:1.15em;height:1.15em;flex:none;vertical-align:-.18em;fill:none;stroke:currentColor;stroke-width:1.65;stroke-linecap:round;stroke-linejoin:round}
.button:has(>.ui-icon){gap:.75em}
.carousel-controls button>.ui-icon,.close>.ui-icon{width:20px;height:20px;vertical-align:middle}
.wow-arrow>.ui-icon{width:26px;height:26px}
