html { -webkit-font-smoothing: antialiased; }
body { background:#F9F8F6; }
::selection { background:#D4AF37; color:#0B132B; }
.grain::after{content:"";position:absolute;inset:0;pointer-events:none;opacity:.07;mix-blend-mode:overlay;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='n'%3E%3CfeTurbulence baseFrequency='.9'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E");}
@keyframes marquee { to { transform: translateX(-50%); } }
.marquee-track { animation: marquee 70s linear infinite; width:max-content; }
.marquee:hover .marquee-track { animation-play-state: paused; }
@keyframes heroZoom { from { transform: scale(1.15); } to { transform: scale(1); } }
.hero-img { animation: heroZoom 9s cubic-bezier(0.25,1,0.5,1) forwards; }
.reveal { opacity:0; transform: translateY(40px); transition: opacity 1.2s cubic-bezier(0.25,1,0.5,1), transform 1.2s cubic-bezier(0.25,1,0.5,1); }
.reveal.in { opacity:1; transform:none; }
.btn-fill { position:relative; overflow:hidden; isolation:isolate; }
.btn-fill::before { content:""; position:absolute; inset:0; background:#D4AF37; transform: translateY(101%); border-radius:inherit; transition: transform .6s cubic-bezier(0.25,1,0.5,1); z-index:-1; }
.btn-fill:hover::before { transform:none; }
.btn-fill:hover { color:#0B132B; border-color:#D4AF37; }
.opt input:checked + span { background:#0B132B; color:#F9F8F6; border-color:#0B132B; }
.opt input:checked + span .tick { opacity:1; }
.opt input:focus-visible + span { outline:2px solid #D4AF37; outline-offset:2px; }
.stop-row:hover .stop-img { opacity:1; }
input[type=date]::-webkit-calendar-picker-indicator { opacity:.5; cursor:pointer; }
@media (prefers-reduced-motion: reduce){ .marquee-track,.hero-img{animation:none} .reveal{opacity:1;transform:none} }
.skip-link { position:absolute; left:1rem; top:-4rem; z-index:100; background:#D4AF37; color:#0B132B; padding:.75rem 1.25rem; border-radius:999px; font-size:12px; letter-spacing:.2em; text-transform:uppercase; transition:top .3s; }
.skip-link:focus { top:1rem; }
:focus-visible { outline:2px solid #D4AF37; outline-offset:3px; }
details > summary::-webkit-details-marker { display:none; }
#siteHeader { will-change: transform; }

/* ---------- Journal article prose (legacy content mapped to the new palette) ---------- */
.prose-lux{--bg:#F2EFEA;--accent:#0B132B;--gold:#D4AF37;--text:#0B132B;--text-light:rgba(11,19,43,.6);--surface:#fff;--shadow:0 20px 50px -25px rgba(6,11,26,.35);
  color:rgba(11,19,43,.8);font-size:1.075rem;line-height:1.85;font-weight:300;min-width:0}
.prose-lux>*+*{margin-top:1.4em}
.prose-lux h2{font-family:"Playfair Display",serif;font-weight:400;color:#0B132B;font-size:clamp(1.9rem,3.4vw,2.75rem);line-height:1.1;letter-spacing:-.03em;margin-top:2.4em;padding-top:1.2em;border-top:1px solid rgba(11,19,43,.1)}
.prose-lux h3{font-family:"Playfair Display",serif;font-weight:400;color:#0B132B;font-size:clamp(1.4rem,2.2vw,1.75rem);line-height:1.2;letter-spacing:-.02em;margin-top:2em}
.prose-lux h4{font-weight:600;color:#0B132B;text-transform:uppercase;letter-spacing:.2em;font-size:.75rem;margin-top:2em}
.prose-lux strong,.prose-lux b{font-weight:600;color:#0B132B}
.prose-lux .lead{font-family:"Playfair Display",serif;font-size:clamp(1.3rem,2vw,1.6rem);line-height:1.5;color:#0B132B;font-weight:400}
.prose-lux a:not(.btn){color:#0B132B;text-decoration:none!important;background:linear-gradient(#D4AF37,#D4AF37) 0 100%/100% 1px no-repeat;transition:background-size .5s cubic-bezier(.25,1,.5,1),color .3s}
.prose-lux a:not(.btn):hover{color:#9c7f1e;background-size:100% 2px}
.prose-lux ul,.prose-lux ol{padding-left:1.4em}
.prose-lux ul{list-style:none}.prose-lux ul>li{position:relative}
.prose-lux ul>li::before{content:"";position:absolute;left:-1.2em;top:.8em;width:.45em;height:1px;background:#D4AF37}
.prose-lux ol{list-style:decimal}.prose-lux ol>li::marker{color:#D4AF37;font-family:"Playfair Display",serif}
.prose-lux li+li{margin-top:.5em}
.prose-lux img{display:block;width:100%;height:auto;border-radius:1.5rem;box-shadow:var(--shadow)}
.prose-lux figure figcaption{font-size:.8rem;color:var(--text-light);margin-top:.75em}
.prose-lux hr{border:0!important;border-top:1px solid rgba(11,19,43,.1)!important;margin:3em 0!important}
.prose-lux table{width:100%;border-collapse:collapse;font-size:.95rem;background:#fff}
.prose-lux th{background:#0B132B!important;color:#F9F8F6!important;font-weight:500;text-transform:uppercase;letter-spacing:.15em;font-size:.7rem;padding:1rem 1.1rem!important;text-align:left}
.prose-lux td{padding:1rem 1.1rem!important;border-bottom:1px solid rgba(11,19,43,.08)!important;vertical-align:top}
.prose-lux tr:nth-child(even) td{background:#F9F8F6}
.prose-lux div:has(>table){overflow-x:auto;border-radius:1.25rem!important}
.prose-lux iframe{border:0;border-radius:1.5rem}
.prose-lux blockquote{border-left:2px solid #D4AF37;padding-left:1.5rem;font-family:"Playfair Display",serif;font-style:italic;font-size:1.35rem;color:#0B132B}
.prose-lux .sge-block,.prose-lux .feature-box,.prose-lux .toc,.prose-lux .guarantee{background:#F2EFEA;border:0;border-left:2px solid #D4AF37;border-radius:1.25rem;padding:1.75rem 2rem}
.prose-lux .sge-block>*+*,.prose-lux .feature-box>*+*,.prose-lux .toc>*+*,.prose-lux .warning-box>*+*,.prose-lux .guarantee>*+*{margin-top:.75em}
.prose-lux .sge-block h2,.prose-lux .sge-block h3,.prose-lux .feature-box h2,.prose-lux .feature-box h3,.prose-lux .toc h2,.prose-lux .toc h3{margin-top:0;padding-top:0;border:0}
.prose-lux .toc{background:#0B132B;color:rgba(249,248,246,.75);border-left-color:#D4AF37}
.prose-lux .toc *{color:inherit}.prose-lux .toc a{color:#F9F8F6!important}
.prose-lux .warning-box{background:#fff8e6;border-left:2px solid #b8860b;border-radius:1.25rem;padding:1.5rem 2rem}
.prose-lux .guarantee{display:flex;gap:1.25rem;align-items:flex-start}
.prose-lux .guarantee-icon{flex:none;width:3rem;height:3rem;border-radius:999px;border:1px solid #D4AF37;display:flex;align-items:center;justify-content:center;color:#D4AF37}
.prose-lux .villa-gallery{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1rem}
.prose-lux .villa-gallery img{aspect-ratio:4/3;object-fit:cover}
.prose-lux .btn{display:inline-flex;align-items:center;justify-content:center;border-radius:999px;background:#0B132B;color:#F9F8F6!important;padding:1.1rem 2.2rem;font-size:11px;text-transform:uppercase;letter-spacing:.25em;font-weight:500;text-decoration:none!important;transition:background .5s,color .5s;margin:.25rem .5rem .25rem 0}
.prose-lux .btn:hover{background:#D4AF37;color:#0B132B!important}
.prose-lux .btn.whatsapp{background:transparent;color:#0B132B!important;border:1px solid rgba(11,19,43,.25)}
.prose-lux .btn.whatsapp:hover{border-color:#D4AF37;background:#D4AF37}
.prose-lux table{display:block;max-width:100%;overflow-x:auto;border-radius:1.25rem}
.prose-lux{overflow-wrap:break-word}
/* Mobile safety: never allow horizontal scroll (marquee, wide tables, zoomed hero) */
/* Note: never set overflow on <html> — it stops body's overflow propagating to the viewport and breaks position:sticky */
body { overflow-x: clip; max-width: 100%; }
.marquee { overflow: hidden; max-width: 100vw; contain: paint; }
