:root{--ink:#1f2e22;--charcoal:#23262b;--steel:#5b6b78;--muted:#8b98a3;--white:#ffffff;--off-white:#fafaf8;--fuchsia:#e91e8c;--magenta:#d6336c;--orange:#ff8a00;--yellow:#ffd166;--leaf:#2f8f4e;--leaf-mid:#3fa85f;--bacalar-sky:#3fb6d8;--bacalar-deep:#0a6ebd;--bacalar-turq:#3ad6c0;--bacalar-teal:#1fb6a8;--section-alt:#f4f7f4;--z-nav:100;--z-hero:10;--z-overlay:200;--ease-out:cubic-bezier(0.22,1,0.36,1);--ease-spring:cubic-bezier(0.34,1.56,0.64,1)}*,:after,:before{box-sizing:border-box;margin:0;padding:0}html{scroll-behavior:smooth;font-size:16px;-webkit-text-size-adjust:100%}body{font-family:var(--font-raleway),Arial,sans-serif;background:var(--white);color:var(--charcoal);overflow-x:hidden;line-height:1.65}img,svg,video{display:block;max-width:100%}a{color:inherit;text-decoration:none}button{cursor:pointer;border:none;background:none;font:inherit}@media (prefers-reduced-motion:reduce){*,:after,:before{animation-duration:.01ms!important;transition-duration:.01ms!important}}.container{width:100%;max-width:1200px;margin:0 auto;padding:0 40px}.eyebrow{display:block;font-family:var(--font-raleway),sans-serif;font-size:11px;font-weight:700;letter-spacing:3px;color:var(--leaf);margin-bottom:14px;text-transform:uppercase}.eyebrow.light{color:var(--bacalar-turq)}.section-header{text-align:center;margin-bottom:60px}.section-title{font-family:var(--font-lora),Georgia,serif;font-size:clamp(36px,5vw,58px);font-weight:600;line-height:1.1;color:var(--ink)}.section-title.light{color:var(--white)}.nav{position:fixed;top:0;left:0;right:0;z-index:var(--z-nav);display:flex;align-items:center;justify-content:space-between;padding:22px 48px;background:linear-gradient(180deg,rgba(0,0,0,.45) 0,rgba(0,0,0,0));transition:background .4s ease,box-shadow .4s ease,padding .3s ease}.nav.scrolled{background:rgba(255,255,255,.96);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);box-shadow:0 1px 0 rgba(0,0,0,.1);padding:16px 48px}.logo{display:flex;flex-direction:row;align-items:center;gap:11px;line-height:1;cursor:pointer}.logo-mark{width:38px;height:38px;flex-shrink:0;filter:drop-shadow(0 2px 6px rgba(0,0,0,.25))}.logo-text{display:flex;flex-direction:column;line-height:1}.logo-line1,.logo-line2{font-family:var(--font-raleway),sans-serif;font-weight:800;font-size:17px;letter-spacing:2.5px;color:var(--white);transition:color .4s ease}.logo-sub{margin-top:4px;font-size:8.5px;letter-spacing:1.8px;color:rgba(255,255,255,.75);font-weight:500;transition:color .4s ease}.nav.scrolled .logo-line1,.nav.scrolled .logo-line2{color:var(--ink)}.nav.scrolled .logo-sub{color:var(--steel)}.nav-links{display:flex;gap:32px;list-style:none}.nav-links a{font-size:11px;font-weight:700;letter-spacing:1.6px;color:var(--white);transition:color .4s ease;position:relative}.nav.scrolled .nav-links a{color:var(--ink)}.nav.scrolled .nav-links a:hover{color:var(--magenta)}.nav-links a:after{content:"";position:absolute;bottom:-3px;left:0;right:0;height:1.5px;background:var(--fuchsia);transform:scaleX(0);transform-origin:left;transition:transform .25s var(--ease-out)}.nav-links a:hover{color:var(--magenta)}.nav-links a:hover:after{transform:scaleX(1)}.nav-right{gap:20px}.nav-right,.nav-social{display:flex;align-items:center}.nav-social{gap:6px}.nav-social-link{display:inline-flex;align-items:center;justify-content:center;width:34px;height:34px;border-radius:999px;color:rgba(255,255,255,.9);transition:color .4s ease,background .22s ease,transform .22s ease}.nav-social-link:hover{background:rgba(255,255,255,.16);transform:translateY(-1px)}.nav.scrolled .nav-social-link{color:var(--ink)}.nav.scrolled .nav-social-link:hover{background:rgba(31,46,34,.08)}.mobile-social{display:flex;gap:22px;margin-top:12px}.mobile-social .nav-social-link{color:var(--ink);width:44px;height:44px}.mobile-social .nav-social-link:hover{background:rgba(233,30,140,.1);color:var(--magenta)}.lang-switch{position:relative}.lang-current{display:flex;align-items:center;gap:6px;font-size:11px;font-weight:700;letter-spacing:1px;color:rgba(255,255,255,.85);cursor:pointer;padding:6px 10px;border:1.5px solid rgba(255,255,255,.5);border-radius:999px;background:rgba(255,255,255,.08);transition:color .4s ease,border-color .4s ease,background .25s ease}.lang-current:hover{background:rgba(255,255,255,.18);border-color:rgba(255,255,255,.85)}.lang-globe{opacity:.9}.lang-caret{transition:transform .25s ease}.lang-switch.open .lang-caret{transform:rotate(180deg)}.lang-menu{position:absolute;top:calc(100% + 8px);right:0;min-width:150px;list-style:none;margin:0;padding:6px;background:rgba(255,255,255,.98);backdrop-filter:blur(14px);-webkit-backdrop-filter:blur(14px);border-radius:14px;box-shadow:0 14px 40px rgba(0,0,0,.18);border:1px solid rgba(0,0,0,.06);z-index:var(--z-overlay)}.lang-item{font-size:13px;font-weight:600;letter-spacing:.3px;color:var(--ink);padding:9px 12px;border-radius:9px;cursor:pointer;transition:background .18s ease,color .18s ease}.lang-item:hover{background:rgba(233,30,140,.1);color:var(--magenta)}.lang-item.active{background:var(--ink);color:var(--white)}.nav.scrolled .lang-current{color:var(--ink);border-color:rgba(31,46,34,.35);background:transparent}.nav.scrolled .lang-current:hover{background:rgba(31,46,34,.06);border-color:var(--ink)}.nav-cta{border:1.5px solid rgba(255,255,255,.85);border-radius:999px;padding:10px 22px;font-size:11px;font-weight:700;letter-spacing:1.5px;color:var(--white);transition:background .25s ease,color .25s ease,border-color .4s ease;white-space:nowrap;cursor:pointer}.nav-cta:hover{background:rgba(255,255,255,.2);border-color:var(--white)}.nav.scrolled .nav-cta{border-color:var(--ink);color:var(--ink)}.nav.scrolled .nav-cta:hover{background:var(--ink);color:var(--white)}.hamburger{display:none;flex-direction:column;gap:5px;padding:6px;cursor:pointer}.hamburger span{display:block;width:22px;height:2px;background:var(--ink);border-radius:2px;transition:transform .3s ease,opacity .3s ease}.mobile-menu{position:fixed;inset:0;z-index:var(--z-overlay);background:var(--white);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:32px;transform:translateX(100%);transition:transform .4s var(--ease-out)}.mobile-menu.open{transform:translateX(0)}.mobile-menu nav{display:flex;flex-direction:column;align-items:center;gap:28px}.mobile-menu nav a{font-size:22px;font-weight:700;letter-spacing:2px;color:var(--ink)}.mobile-book{margin-top:16px;padding:14px 36px;border-radius:999px;background:var(--ink);color:var(--white)!important;font-size:13px!important}.mobile-close{position:absolute;top:24px;right:24px;color:var(--ink);padding:8px;cursor:pointer}.hero{position:relative;width:100%;height:100vh;min-height:680px;background:var(--white);display:flex;align-items:center;justify-content:center;overflow:hidden}.hero-bg{position:absolute;inset:0;background-size:cover;background-position:50%;z-index:0}.hero-bg--city{background-image:url(/assets/images/hero-city.jpg);animation:cityFadeOut .6s ease-out .7s forwards}.hero-bg--flowers{background-image:url(/assets/images/hero-flowers.jpg);opacity:0;animation:flowersFadeIn 1.2s ease-out .7s forwards,flowersBreeze 16s ease-in-out 1.9s infinite;will-change:transform}@keyframes cityFadeOut{0%{opacity:1}to{opacity:0}}@keyframes flowersFadeIn{0%{opacity:0;transform:scale(1.06)}to{opacity:1;transform:scale(1.06)}}@keyframes flowersBreeze{0%{transform:scale(1.06) translate(0) rotate(0deg)}25%{transform:scale(1.065) translate(-9px,5px) rotate(.25deg)}50%{transform:scale(1.075) translate(4px,-7px) rotate(-.2deg)}75%{transform:scale(1.065) translate(9px,4px) rotate(.3deg)}to{transform:scale(1.06) translate(0) rotate(0deg)}}.hero-type{position:absolute;left:50%;top:52%;transform:translate(-50%,-50%);width:100%;text-align:center;font-family:var(--font-raleway),sans-serif;font-weight:600;font-size:clamp(68px,13.5vw,196px);line-height:.9;letter-spacing:-2px;z-index:2;pointer-events:none;color:var(--white);text-shadow:0 4px 40px rgba(0,0,0,.25);animation:typeFadeIn 2s .8s var(--ease-out) both}.hero-type span{display:block}@keyframes typeFadeIn{0%{opacity:0;transform:translate(-50%,-46%)}to{opacity:1;transform:translate(-50%,-50%)}}.hero-copy{position:absolute;bottom:6%;left:0;right:0;text-align:center;z-index:4;pointer-events:none}.hero-copy .cta{pointer-events:all}.tagline{font-family:var(--font-lora),Georgia,serif;font-style:italic;font-size:clamp(16px,2.2vw,24px);letter-spacing:.5px;color:rgba(255,255,255,.92);text-shadow:0 2px 12px rgba(0,0,0,.3)}.divider{display:flex;align-items:center;justify-content:center;gap:16px;margin:12px auto;width:min(400px,68%);color:rgba(255,255,255,.7)}.divider span{flex:1;height:1px;background:rgba(255,255,255,.35)}.subtext{font-size:clamp(10px,1.2vw,13px);letter-spacing:2.5px;color:rgba(255,255,255,.75);font-weight:600}.cta{display:inline-flex;align-items:center;gap:10px;margin-top:22px;padding:14px 30px;border-radius:999px;background:rgba(255,255,255,.15);backdrop-filter:blur(10px);-webkit-backdrop-filter:blur(10px);border:1.5px solid rgba(255,255,255,.6);color:var(--white);font-family:var(--font-raleway),sans-serif;font-weight:700;font-size:12px;letter-spacing:1.8px;box-shadow:0 8px 24px rgba(0,0,0,.2);cursor:pointer;transition:background .25s ease,border-color .25s ease,box-shadow .25s ease}.cta:hover{background:rgba(255,255,255,.28);border-color:rgba(255,255,255,.9);box-shadow:0 12px 32px rgba(0,0,0,.3)}.cta-arrow{transition:transform .25s ease;flex-shrink:0}.cta:hover{background:#13201a;box-shadow:0 12px 28px rgba(31,46,34,.36)}.cta:hover .cta-arrow{transform:translateX(4px)}.tagline{animation:copyFadeIn 1s .6s var(--ease-out) both}.divider{animation:copyFadeIn 1s .8s var(--ease-out) both}.subtext{animation:copyFadeIn 1s 1s var(--ease-out) both}.cta{animation:copyFadeIn 1s 1.2s var(--ease-out) both}@keyframes copyFadeIn{0%{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.section-about{background:var(--off-white);padding:120px 0}.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:80px;align-items:center}.about-text h2{font-family:var(--font-lora),Georgia,serif;font-size:clamp(40px,5.5vw,64px);font-weight:600;line-height:1.08;color:var(--ink);margin-bottom:28px}.about-text p{font-size:17px;line-height:1.72;color:var(--charcoal);max-width:520px}.about-p2{margin-top:18px;color:var(--steel)}.about-cta{display:inline-flex;align-items:center;gap:10px;margin-top:40px;padding:15px 32px;border-radius:999px;background:var(--ink);color:var(--white);font-family:var(--font-raleway),sans-serif;font-size:12px;font-weight:700;letter-spacing:1.5px;cursor:pointer;box-shadow:0 8px 22px rgba(31,46,34,.22);transition:background .25s ease,box-shadow .25s ease,transform .2s ease}.about-cta:hover{background:#13201a;box-shadow:0 12px 28px rgba(31,46,34,.34);transform:translateY(-1px)}.about-cta svg{transition:transform .25s ease;flex-shrink:0}.about-cta:hover svg{transform:translateX(4px)}.about-stats{display:flex;gap:40px;margin-top:48px}.stat{display:flex;flex-direction:column;align-items:center;gap:4px}.stat strong{font-family:var(--font-lora),Georgia,serif;font-size:42px;font-weight:700;color:var(--ink);line-height:1}.stat span{font-size:11px;letter-spacing:1.2px;color:var(--steel);font-weight:600;text-align:center;text-transform:uppercase}.about-img-frame,.about-visual{position:relative}.about-img-frame{border-radius:20px;overflow:hidden}.about-img-placeholder{width:100%;aspect-ratio:4/5;background:linear-gradient(145deg,#0a2e14,#1f6b3a 50%,#0a6ebd);display:flex;align-items:center;justify-content:center;border-radius:20px}.img-placeholder-inner{text-align:center;color:rgba(255,255,255,.5);flex-direction:column;gap:10px;font-size:13px}.about-badge,.img-placeholder-inner{display:flex;align-items:center;letter-spacing:1px}.about-badge{position:absolute;bottom:24px;left:50%;transform:translateX(-50%);background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-radius:999px;padding:10px 22px;gap:8px;font-size:12px;font-weight:700;color:var(--ink);white-space:nowrap;box-shadow:0 4px 16px rgba(0,0,0,.12)}.about-badge svg{color:var(--leaf)}.about-img-btn{position:relative;display:block;width:100%;padding:0;border:none;background:none;border-radius:20px;overflow:hidden;cursor:zoom-in}.about-img-main{width:100%;aspect-ratio:4/5;background-size:cover;background-position:50%;transition:transform .5s var(--ease-out)}.about-img-btn:hover .about-img-main{transform:scale(1.05)}.about-img-count{top:16px;right:16px;z-index:2;display:inline-flex;gap:6px;padding:6px 12px;border-radius:999px;background:rgba(0,0,0,.45);backdrop-filter:blur(6px);letter-spacing:.5px}.about-img-count,.about-img-overlay{position:absolute;align-items:center;color:#fff;font-size:13px;font-weight:700}.about-img-overlay{inset:0;z-index:1;display:flex;flex-direction:column;justify-content:center;gap:10px;background:rgba(10,20,15,.38);opacity:0;transition:opacity .3s ease;font-family:var(--font-raleway),sans-serif;letter-spacing:1.5px;text-transform:uppercase}.about-img-btn:focus-visible .about-img-overlay,.about-img-btn:hover .about-img-overlay{opacity:1}.story-lightbox{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.92);justify-content:center;padding:24px;animation:lightboxIn .25s ease}.story-lb-stage,.story-lightbox{display:flex;flex-direction:column;align-items:center;gap:16px}.story-lb-stage{width:min(820px,92vw)}.story-lb-img{position:relative;width:100%;aspect-ratio:3/2;max-height:62vh;border-radius:14px;background-size:cover;background-position:50%;display:flex;align-items:flex-end;padding:22px;animation:imgSlideIn .3s var(--ease-out)}.story-lb-cap{font-family:var(--font-lora),Georgia,serif;font-size:22px;font-weight:600;color:#fff;text-shadow:0 2px 14px rgba(0,0,0,.45)}.story-lb-counter{font-size:13px;letter-spacing:1px;color:rgba(255,255,255,.7)}.story-lb-thumbs{display:flex;gap:10px;flex-wrap:wrap;justify-content:center}.story-lb-thumb{width:74px;height:54px;border-radius:9px;border:2px solid transparent;background-size:cover;background-position:50%;opacity:.5;cursor:pointer;transition:opacity .2s ease,border-color .2s ease,transform .2s ease}.story-lb-thumb:hover{opacity:.85;transform:translateY(-2px)}.story-lb-thumb.active{opacity:1;border-color:#fff}@media (max-width:680px){.story-lb-thumb{width:56px;height:42px}}.section-experience{background:var(--ink);padding:120px 0}.pillars-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:28px}.pillar-card{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:20px;padding:40px 32px;transition:background .3s ease,transform .3s ease,box-shadow .3s ease;cursor:default}.pillar-card:hover{background:rgba(255,255,255,.1);transform:translateY(-6px);box-shadow:0 16px 40px rgba(0,0,0,.25)}.pillar-icon{width:56px;height:56px;background:rgba(58,214,192,.12);border-radius:14px;display:flex;align-items:center;justify-content:center;margin-bottom:24px;color:var(--bacalar-turq)}.pillar-card h3{font-family:var(--font-lora),Georgia,serif;font-size:22px;font-weight:600;color:var(--white);margin-bottom:14px}.pillar-card p{font-size:15px;line-height:1.68;color:rgba(255,255,255,.65)}.section-retreats{padding:120px 0;background:var(--white)}.retreats-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;align-items:start}.retreat-card{border-radius:20px;overflow:hidden;border:1px solid rgba(0,0,0,.08);transition:transform .3s var(--ease-out),box-shadow .3s ease;background:var(--white)}.retreat-card:hover{transform:translateY(-8px);box-shadow:0 20px 50px rgba(0,0,0,.12)}.retreat-card--featured{box-shadow:0 12px 40px rgba(233,30,140,.14);border-color:var(--fuchsia);transform:scale(1.03)}.retreat-card--featured:hover{transform:scale(1.03) translateY(-8px)}.retreat-card-top{position:relative;padding:40px 36px 32px;min-height:180px;display:flex;flex-direction:column;justify-content:flex-end}.retreat-card-top--weekend{background:linear-gradient(0deg,rgba(8,30,15,.8) 0,rgba(8,30,15,.28) 55%,rgba(8,30,15,.45)),url(/assets/images/card-weekend.png) 50% /cover no-repeat}.retreat-card-top--week{background:linear-gradient(0deg,rgba(31,10,26,.8) 0,rgba(31,10,26,.28) 55%,rgba(31,10,26,.45)),url(/assets/images/card-week.png) 50% /cover no-repeat}.retreat-card-top--private{background:linear-gradient(0deg,rgba(10,29,46,.8) 0,rgba(10,29,46,.28) 55%,rgba(10,29,46,.45)),url(/assets/images/card-private.png) 50% /cover no-repeat}.retreat-card-top--private .retreat-duration{font-size:13px;font-weight:500;letter-spacing:.2px;line-height:1.5;max-width:34ch}.retreat-tag{position:absolute;top:20px;left:36px;font-size:9px;font-weight:800;letter-spacing:2px;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.2);color:var(--white);backdrop-filter:blur(8px)}.retreat-tag--featured{background:rgba(255,255,255,.95);color:var(--magenta)}.retreat-card-top h3{font-family:var(--font-lora),Georgia,serif;font-size:26px;font-weight:600;color:var(--white);margin-bottom:6px}.retreat-duration{font-size:12px;font-weight:600;letter-spacing:1px;color:rgba(255,255,255,.7)}.retreat-card-body{padding:32px 36px 36px}.retreat-price{font-size:15px;color:var(--steel);margin-bottom:22px}.retreat-price strong{font-family:var(--font-lora),Georgia,serif;font-size:28px;font-weight:700;color:var(--ink)}.retreat-addons-label{font-size:11px;font-weight:700;letter-spacing:1px;text-transform:uppercase;color:var(--muted);margin-top:-10px;margin-bottom:14px}.retreat-includes{list-style:none;display:flex;flex-direction:column;gap:10px;margin-bottom:28px}.retreat-includes li{display:flex;align-items:flex-start;gap:10px;font-size:14px;color:var(--charcoal);line-height:1.5}.retreat-includes li svg{margin-top:2px;flex-shrink:0}.retreat-btn{display:flex;align-items:center;justify-content:center;width:100%;padding:14px 24px;border-radius:999px;font-family:var(--font-raleway),sans-serif;font-size:12px;font-weight:700;letter-spacing:1.5px;cursor:pointer;transition:background .25s ease,box-shadow .25s ease,color .25s ease,transform .2s ease}.retreat-btn:active{transform:scale(.98)}.retreat-btn--primary{background:var(--ink);color:var(--white);box-shadow:0 6px 18px rgba(31,46,34,.2)}.retreat-btn--primary:hover{background:#13201a;box-shadow:0 10px 24px rgba(31,46,34,.32)}.retreat-btn--featured{background:linear-gradient(135deg,var(--magenta),var(--fuchsia));color:var(--white);box-shadow:0 8px 20px rgba(233,30,140,.3)}.retreat-btn--featured:hover{box-shadow:0 12px 28px rgba(233,30,140,.44)}.retreat-btn--outline{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}.retreat-btn--outline:hover{background:var(--ink);color:var(--white)}.retreat-btn--disabled{background:rgba(0,0,0,.06);color:var(--muted);cursor:not-allowed}.retreat-status{position:absolute;top:20px;right:36px;z-index:1;font-size:9px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase;padding:5px 12px;border-radius:999px;backdrop-filter:blur(8px)}.retreat-status.is-coming{background:rgba(255,255,255,.92);color:#b26b00}.retreat-status.is-sold{background:rgba(0,0,0,.5);color:rgba(255,255,255,.9)}.addons{margin-top:64px;text-align:center}.addons-title{font-size:13px;font-weight:700;letter-spacing:1px;color:var(--steel);margin-bottom:18px;text-transform:uppercase}.addons-row{display:flex;flex-wrap:wrap;justify-content:center;gap:12px;margin-bottom:14px}.addon-chip{display:inline-flex;align-items:center;gap:8px;padding:10px 20px;border-radius:999px;border:1.5px solid rgba(0,0,0,.12);font-size:13px;font-weight:600;color:var(--ink);cursor:pointer;transition:border-color .2s ease,background .2s ease,color .2s ease}.addon-chip:hover{border-color:var(--leaf);background:rgba(47,143,78,.06);color:var(--leaf)}.addons-note{font-size:11px;color:var(--muted);letter-spacing:.5px}.section-gallery{padding:120px 0;background:var(--section-alt)}.gallery-grid{display:grid;grid-template-columns:repeat(3,1fr);grid-template-rows:auto auto;gap:16px}.gallery-item{border-radius:16px;overflow:hidden;position:relative;cursor:zoom-in}.gallery-item--tall{grid-row:span 2}.gallery-item--wide{grid-column:span 2}.gallery-placeholder{width:100%;height:100%;min-height:240px;background:linear-gradient(145deg,#0a2e14,var(--bacalar-deep));display:flex;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:rgba(255,255,255,.45);font-size:12px;letter-spacing:1px;transition:transform .4s var(--ease-out)}.gallery-placeholder--teal{background:linear-gradient(145deg,#0a3d3a,var(--bacalar-turq))}.gallery-placeholder--flora{background:linear-gradient(145deg,#1a0a0a,var(--magenta))}.gallery-placeholder--sky{background:linear-gradient(145deg,#0a1a3a,var(--bacalar-sky))}.gallery-placeholder--dark{background:linear-gradient(145deg,#0a2e14,#1f6b3a)}.gallery-item:hover .gallery-placeholder{transform:scale(1.04)}.dates-marquee{width:100%}.dates-track{display:flex;gap:24px;padding:14px 24px;overflow-x:auto;overflow-y:hidden;-webkit-overflow-scrolling:touch;overscroll-behavior-x:contain;scrollbar-width:none;-ms-overflow-style:none;cursor:grab;-webkit-mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent);mask-image:linear-gradient(90deg,transparent,#000 5%,#000 95%,transparent)}.dates-track::-webkit-scrollbar{display:none}.dates-track.dragging{cursor:grabbing}.date-card{position:relative;flex:0 0 auto;width:290px;height:380px;border-radius:18px;overflow:hidden;cursor:zoom-in;border:none;padding:0;text-align:left;color:#fff;user-select:none;-webkit-user-select:none;box-shadow:0 14px 36px rgba(0,0,0,.18);transition:transform .35s var(--ease-out),box-shadow .35s ease}.date-card:hover{transform:translateY(-8px) scale(1.02);box-shadow:0 24px 54px rgba(0,0,0,.3)}.date-card-bg{position:absolute;inset:0;background-size:cover;background-position:50%;transition:transform .55s var(--ease-out)}.date-card:hover .date-card-bg{transform:scale(1.07)}.date-card-overlay{position:absolute;inset:0;background:linear-gradient(0deg,rgba(0,0,0,.8) 0,rgba(0,0,0,.12) 55%,rgba(0,0,0,.28))}.date-card-content{position:absolute;inset:0;z-index:1;display:flex;flex-direction:column;justify-content:flex-end;padding:24px}.date-card-tag{position:absolute;top:18px;left:18px;font-size:9px;font-weight:800;letter-spacing:2px;padding:5px 12px;border-radius:999px;background:rgba(255,255,255,.2);backdrop-filter:blur(8px);color:#fff}.date-card-zoom{position:absolute;top:14px;right:14px;width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,.18);backdrop-filter:blur(6px);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .25s ease}.date-card:hover .date-card-zoom{opacity:1}.date-type{font-family:var(--font-lora),Georgia,serif;font-size:22px;font-weight:600;line-height:1.15}.date-range{margin-top:6px;font-size:14px;font-weight:600;letter-spacing:.4px;color:rgba(255,255,255,.9)}.date-expand{margin-top:14px;display:inline-flex;align-items:center;gap:7px;font-size:10px;font-weight:700;color:rgba(255,255,255,.8)}.date-expand,.date-status{letter-spacing:1.5px;text-transform:uppercase}.date-status{align-self:flex-start;margin-bottom:10px;font-size:9px;font-weight:800;padding:4px 10px;border-radius:999px;backdrop-filter:blur(6px)}.date-status.is-coming{background:rgba(255,255,255,.92);color:#b26b00}.date-status.is-sold{background:rgba(0,0,0,.55);color:rgba(255,255,255,.9)}.date-lb-status{font-size:11px;font-weight:800;letter-spacing:1.5px;text-transform:uppercase}.date-lb-status.is-coming{color:#b26b00}.date-lb-status.is-sold{color:var(--muted)}.date-lightbox{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.9);display:flex;align-items:center;justify-content:center;padding:24px;animation:lightboxIn .25s ease}.date-lightbox-card{position:relative;width:min(1040px,94vw);max-height:88vh;display:grid;grid-template-columns:1fr 1fr;background:var(--white);border-radius:22px;overflow:hidden;box-shadow:0 30px 80px rgba(0,0,0,.5);animation:imgSlideIn .3s var(--ease-out)}.date-lightbox-img{background-size:cover;background-position:50%;min-height:420px}.date-lightbox-info{padding:44px 40px;display:flex;flex-direction:column;gap:14px;overflow-y:auto}.date-lightbox-desc{font-size:15px;line-height:1.65;color:var(--steel);margin:2px 0}.date-lightbox-info .eyebrow{margin-bottom:0}.date-lightbox-info h3{font-family:var(--font-lora),Georgia,serif;font-size:30px;font-weight:600;color:var(--ink);line-height:1.1}.date-lightbox-meta{display:flex;flex-direction:column;gap:6px;font-size:15px;color:var(--steel)}.date-lightbox-meta strong{color:var(--ink);font-weight:700}.date-lightbox-actions{margin-top:auto;display:flex;flex-direction:column;gap:10px;padding-top:8px}.ig-btn{display:inline-flex;align-items:center;justify-content:center;gap:9px;width:100%;padding:13px 24px;border-radius:999px;border:1.5px solid rgba(0,0,0,.15);font-family:var(--font-raleway),sans-serif;font-size:13px;font-weight:700;letter-spacing:.5px;color:var(--ink);transition:background .2s ease,border-color .2s ease,color .2s ease}.ig-btn:hover{background:rgba(233,30,140,.08);border-color:var(--fuchsia);color:var(--magenta)}.date-lightbox-close{position:absolute;top:14px;right:14px;z-index:2;width:40px;height:40px;border-radius:50%;background:rgba(255,255,255,.9);border:none;display:flex;align-items:center;justify-content:center;cursor:pointer;color:var(--ink);transition:background .2s ease}.date-lightbox-close:hover{background:#fff}@media (max-width:700px){.date-card{width:240px;height:330px}.date-lightbox-card{grid-template-columns:1fr;max-height:90vh;overflow-y:auto}.date-lightbox-img{min-height:200px}.date-lightbox-info{padding:28px 24px}}.section-contact{background:var(--ink);padding:120px 0}.contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:80px;align-items:start}.contact-info h2{font-family:var(--font-lora),Georgia,serif;font-size:clamp(36px,5vw,56px);font-weight:600;line-height:1.1;color:var(--white);margin-bottom:40px}.contact-details{display:flex;flex-direction:column;gap:18px;margin-bottom:40px}.contact-item{display:flex;align-items:flex-start;gap:14px;color:rgba(255,255,255,.75);font-size:15px;line-height:1.5}.contact-item svg{flex-shrink:0;margin-top:2px;opacity:.7}.contact-item a{color:var(--bacalar-turq);transition:color .2s}.contact-item a:hover{color:var(--white)}.map-placeholder{width:100%;aspect-ratio:16/9;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.1);border-radius:16px;justify-content:center}.map-inner,.map-placeholder{display:flex;align-items:center}.map-inner{text-align:center;color:rgba(255,255,255,.4);font-size:13px;flex-direction:column;gap:10px;letter-spacing:.5px}.map-embed{position:relative;width:100%}.map-embed iframe{width:100%;aspect-ratio:16/9;border:1px solid rgba(255,255,255,.12);border-radius:16px;display:block}.map-directions{position:absolute;bottom:14px;right:14px;display:inline-flex;align-items:center;gap:7px;padding:9px 16px;border-radius:999px;background:rgba(255,255,255,.95);color:var(--ink);font-family:var(--font-raleway),sans-serif;font-size:12px;font-weight:700;letter-spacing:.5px;box-shadow:0 4px 14px rgba(0,0,0,.22);transition:background .2s ease,transform .2s ease}.map-directions:hover{background:#fff;transform:translateY(-1px)}.map-directions svg{color:var(--magenta)}.contact-form{background:var(--white);border-radius:24px;padding:48px}.contact-form h3{font-family:var(--font-lora),Georgia,serif;font-size:26px;font-weight:600;color:var(--ink);margin-bottom:32px}.form-row{display:grid;grid-template-columns:1fr 1fr;gap:18px}.form-group{display:flex;flex-direction:column;gap:7px;margin-bottom:18px}.form-group label{font-size:12px;font-weight:700;letter-spacing:1px;color:var(--steel);text-transform:uppercase}.form-group input,.form-group select,.form-group textarea{width:100%;padding:13px 16px;border:1.5px solid rgba(0,0,0,.12);border-radius:12px;font-family:var(--font-raleway),sans-serif;font-size:15px;color:var(--ink);background:var(--white);outline:none;transition:border-color .2s ease,box-shadow .2s ease;appearance:none}.form-group input::placeholder,.form-group textarea::placeholder{color:var(--muted)}.form-group input:focus,.form-group select:focus,.form-group textarea:focus{border-color:var(--leaf);box-shadow:0 0 0 3px rgba(47,143,78,.12)}.form-group textarea{resize:vertical;min-height:110px}.form-submit{display:flex;align-items:center;justify-content:center;gap:10px;width:100%;padding:15px 28px;border-radius:999px;background:var(--ink);color:var(--white);font-family:var(--font-raleway),sans-serif;font-size:13px;font-weight:700;letter-spacing:1.5px;cursor:pointer;transition:background .25s ease,box-shadow .25s ease,transform .2s ease;box-shadow:0 8px 22px rgba(31,46,34,.22);border:none;margin-top:6px}.form-submit:hover{background:#13201a;box-shadow:0 12px 28px rgba(31,46,34,.34)}.form-submit:active{transform:scale(.98)}.form-submit:disabled{opacity:.6;cursor:not-allowed}.form-success{display:flex;align-items:center;gap:12px;padding:18px 20px;background:rgba(47,143,78,.08);border:1px solid rgba(47,143,78,.25);border-radius:12px;margin-top:16px;font-size:14px;color:var(--ink)}.form-success[hidden]{display:none}.form-error{display:flex;align-items:center;gap:12px;padding:18px 20px;background:rgba(214,51,108,.08);border:1px solid rgba(214,51,108,.28);border-radius:12px;margin-top:16px;font-size:14px;color:var(--ink)}.form-error svg{flex-shrink:0}.form-error[hidden]{display:none}.section-accom{padding:120px 0;background:var(--off-white)}.section-intro{max-width:600px;margin:0 auto;font-size:17px;line-height:1.7;color:var(--steel);text-align:center}.accom-grid{display:grid;grid-template-columns:repeat(2,minmax(0,400px));justify-content:center;gap:28px;margin-top:60px;align-items:start}.accom-card--featured{grid-column:span 1}.accom-card{background:var(--white);border-radius:20px;overflow:hidden;border:1px solid rgba(0,0,0,.07);transition:transform .3s var(--ease-out),box-shadow .3s ease}.accom-card:hover{transform:translateY(-6px);box-shadow:0 18px 44px rgba(0,0,0,.1)}.accom-card--featured{border-color:var(--leaf);box-shadow:0 8px 28px rgba(47,143,78,.12)}.accom-images{position:relative}.accom-img-btn{display:block;width:100%;position:relative;cursor:zoom-in;overflow:hidden;background:#e4ede6;border:none;padding:0}.accom-img-btn img{width:100%;aspect-ratio:4/3;object-fit:cover;display:block;transition:transform .5s var(--ease-out),opacity .3s ease}.accom-img-btn:hover img{transform:scale(1.04)}.accom-img-placeholder{position:absolute;inset:0;display:none;flex-direction:column;align-items:center;justify-content:center;gap:10px;color:rgba(0,0,0,.3);font-size:12px;letter-spacing:1px;background:linear-gradient(145deg,#0a2e14,#1a5c34);color:rgba(255,255,255,.5)}.accom-img-btn.img-missing img{opacity:0}.accom-img-btn.img-missing .accom-img-placeholder{display:flex}.accom-img-btn:not(.img-missing) .accom-img-placeholder{display:none}.accom-img-placeholder--jungle{background:linear-gradient(145deg,#0a1a0a,#1a4a1a)}.accom-img-placeholder--dorm{background:linear-gradient(145deg,#0a1a2e,#1a3a5c)}.accom-zoom-hint{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.9);backdrop-filter:blur(6px);border-radius:8px;padding:7px;color:var(--ink);opacity:0;transition:opacity .2s ease;pointer-events:none}.accom-img-btn:hover .accom-zoom-hint{opacity:1}.accom-thumbs{display:grid;grid-template-columns:1fr 1fr;gap:4px;margin-top:4px}.accom-thumb,.accom-thumb img{aspect-ratio:3/2}.accom-info{padding:28px 28px 32px}.accom-badge{display:inline-block;font-size:9px;font-weight:800;letter-spacing:2px;padding:5px 12px;border-radius:999px;background:rgba(47,143,78,.1);color:var(--leaf);margin-bottom:12px}.accom-info h3{font-family:var(--font-lora),Georgia,serif;font-size:22px;font-weight:600;color:var(--ink);margin-bottom:10px}.accom-info p{font-size:14px;line-height:1.68;color:var(--steel);margin-bottom:18px}.accom-amenities{list-style:none;display:flex;flex-direction:column;gap:9px;margin-bottom:18px}.accom-amenities li{display:flex;align-items:flex-start;gap:9px;font-size:13px;color:var(--charcoal);line-height:1.5}.accom-amenities li svg{flex-shrink:0;margin-top:1px;color:var(--leaf)}.accom-capacity{font-size:11px;font-weight:700;letter-spacing:1.2px;color:var(--muted);text-transform:uppercase;margin-bottom:0!important}.accom-upload-note{margin-top:48px;padding:16px 24px;background:rgba(47,143,78,.06);border:1px dashed rgba(47,143,78,.3);border-radius:12px;font-size:13px;color:var(--steel);text-align:center;line-height:1.6}.accom-upload-note code{background:rgba(0,0,0,.06);padding:2px 6px;border-radius:4px;font-size:12px;color:var(--ink)}.lightbox{position:fixed;inset:0;z-index:300;background:rgba(0,0,0,.92);display:flex;align-items:center;justify-content:center;padding:24px;animation:lightboxIn .25s ease}.lightbox[hidden]{display:none}@keyframes lightboxIn{0%{opacity:0}to{opacity:1}}.lightbox-stage{display:flex;flex-direction:column;align-items:center;gap:16px;max-width:min(900px,90vw);width:100%}.lightbox-img{width:100%;max-height:75vh;object-fit:contain;border-radius:12px;display:block;animation:imgSlideIn .3s var(--ease-out)}@keyframes imgSlideIn{0%{opacity:0;transform:scale(.96)}to{opacity:1;transform:scale(1)}}.lightbox-caption{font-size:14px;color:rgba(255,255,255,.7);text-align:center;letter-spacing:.3px}.lightbox-close{position:absolute;top:20px;right:20px;color:rgba(255,255,255,.8);background:rgba(255,255,255,.1);border:none;border-radius:50%;width:44px;height:44px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease}.lightbox-close:hover{background:rgba(255,255,255,.2)}.lightbox-next,.lightbox-prev{position:absolute;top:50%;transform:translateY(-50%);color:rgba(255,255,255,.8);background:rgba(255,255,255,.1);border:none;border-radius:50%;width:48px;height:48px;display:flex;align-items:center;justify-content:center;cursor:pointer;transition:background .2s ease}.lightbox-prev{left:16px}.lightbox-next{right:16px}.lightbox-next:hover,.lightbox-prev:hover{background:rgba(255,255,255,.22)}@media (max-width:1024px){.accom-grid{grid-template-columns:1fr 1fr}}@media (max-width:680px){.accom-grid{grid-template-columns:1fr}.lightbox-prev{left:6px}.lightbox-next{right:6px}}.footer{background:#101810;padding:80px 0 40px;color:rgba(255,255,255,.55)}.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:48px;padding-bottom:60px;border-bottom:1px solid rgba(255,255,255,.08)}.footer-logo{font-family:var(--font-raleway),sans-serif;font-weight:800;font-size:20px;letter-spacing:2px;color:var(--white);line-height:1.1;display:block;margin-bottom:16px}.footer-brand p{font-size:13px;line-height:1.7}.footer-brand a{color:var(--bacalar-turq)}.footer-brand a:hover{color:var(--white)}.footer-links{display:flex;flex-direction:column;gap:10px}.footer-links h4{font-size:11px;font-weight:700;letter-spacing:2px;color:var(--white);margin-bottom:6px;text-transform:uppercase}.footer-links a{font-size:14px;color:rgba(255,255,255,.5);transition:color .2s ease}.footer-links a:hover{color:var(--white)}.footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:28px;font-size:12px}.footer-bottom a{color:rgba(255,255,255,.55)}.footer-bottom a:hover{color:var(--white)}.reveal{opacity:0;transform:translateY(30px);transition:opacity .8s var(--ease-out),transform .8s var(--ease-out)}.reveal.visible{opacity:1;transform:translateY(0)}@media (max-width:1024px){.pillars-grid{grid-template-columns:repeat(2,1fr)}.retreats-grid{grid-template-columns:1fr;gap:24px}.retreat-card--featured{transform:none}.retreat-card--featured:hover{transform:translateY(-8px)}.about-grid{grid-template-columns:1fr;gap:48px}.about-visual{max-width:500px}.contact-grid{grid-template-columns:1fr;gap:48px}.footer-grid{grid-template-columns:1fr 1fr}}@media (max-width:768px){.container{padding:0 24px}.nav{padding:18px 24px}.nav.scrolled{padding:14px 24px}.nav-links,.nav-right{display:none}.hamburger{display:flex}.hero-type{font-size:clamp(50px,16vw,100px);letter-spacing:-2px}.centerpiece{width:88vw}.pillars-grid{grid-template-columns:1fr;gap:18px}.gallery-grid{grid-template-columns:1fr 1fr}.gallery-item--tall{grid-row:span 1}.gallery-item--wide{grid-column:span 2}.footer-grid{grid-template-columns:1fr;gap:32px}.footer-bottom{flex-direction:column;gap:8px;text-align:center}.form-row{grid-template-columns:1fr}.contact-form{padding:32px 24px}.section-about,.section-contact,.section-experience,.section-gallery,.section-retreats{padding:80px 0}}@media (max-width:480px){.hero-type{font-size:clamp(38px,17vw,80px)}.centerpiece{width:94vw}.gallery-grid{grid-template-columns:1fr}.gallery-item--wide{grid-column:span 1}}.footer-social{display:flex;align-items:center;gap:12px;margin-top:18px}.social-link{display:inline-flex;align-items:center;gap:8px;padding:9px 12px;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:rgba(255,255,255,.85);font-family:var(--font-raleway),sans-serif;font-size:12px;font-weight:600;letter-spacing:.5px;cursor:pointer;transition:background .22s ease,border-color .22s ease,color .22s ease,transform .22s ease}.social-link svg{display:block}.social-link:hover{background:rgba(233,30,140,.18);border-color:var(--fuchsia);color:#fff;transform:translateY(-1px)}.share-btn{background:none}.toast{position:fixed;left:50%;bottom:28px;transform:translateX(-50%) translateY(16px);background:var(--ink);color:#fff;font-family:var(--font-raleway),sans-serif;font-size:13px;font-weight:600;letter-spacing:.4px;padding:12px 22px;border-radius:999px;box-shadow:0 12px 32px rgba(0,0,0,.28);z-index:var(--z-overlay);opacity:0;pointer-events:none;transition:opacity .25s ease,transform .25s ease}.toast.show{opacity:1;transform:translateX(-50%) translateY(0)}#virgen-bg{position:fixed;inset:0;z-index:-1;background-image:url(/assets/images/virgen-wide.png);background-repeat:no-repeat;background-position:50%;background-size:cover;opacity:.07;pointer-events:none}.section-about,.section-accom,.section-gallery,.section-retreats{background:transparent}.section-arrive{padding:100px 0;background:var(--section-alt)}.arrive-head{max-width:640px}.arrive-head .section-title{text-align:left}.arrive-intro{margin-top:16px;font-size:18px;line-height:1.7;color:var(--steel)}.arrive-cards{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin-top:44px}.arrive-card{display:flex;gap:18px;padding:26px 28px;border-radius:18px;background:linear-gradient(135deg,#0a2e14,#10201a);border:1px solid rgba(58,214,192,.12);color:#fff;transition:transform .3s var(--ease-out),box-shadow .3s ease,border-color .3s ease}.arrive-card:hover{transform:translateY(-4px);box-shadow:0 18px 40px rgba(0,0,0,.25);border-color:rgba(58,214,192,.4)}.arrive-icon{flex-shrink:0;width:52px;height:52px;border-radius:14px;background:rgba(58,214,192,.12);display:flex;justify-content:center}.arrive-card-body h3,.arrive-icon{color:var(--bacalar-turq);align-items:center}.arrive-card-body h3{display:inline-flex;gap:7px;font-family:var(--font-raleway),sans-serif;font-size:18px;font-weight:700;letter-spacing:.2px}.arrive-card-body p{margin-top:8px;font-size:14px;line-height:1.62;color:rgba(255,255,255,.66)}.arrive-arrow{flex-shrink:0;transition:transform .25s ease}.arrive-card:hover .arrive-arrow{transform:translate(2px,-2px)}.arrive-routes{list-style:none;display:grid;grid-template-columns:1fr 1fr;gap:22px 44px;margin-top:36px}.arrive-route{display:flex;align-items:flex-start;gap:14px}.arrive-dot{position:relative;flex-shrink:0;width:34px;height:34px;border-radius:10px;background:rgba(47,143,78,.1);margin-top:2px}.arrive-dot:after{content:"";position:absolute;top:50%;left:50%;width:8px;height:8px;border-radius:50%;background:var(--leaf);transform:translate(-50%,-50%)}.arrive-route strong{display:block;font-size:15px;font-weight:700;color:var(--ink)}.arrive-route span{font-size:13.5px;line-height:1.5;color:var(--steel)}@media (max-width:768px){.arrive-cards,.arrive-routes{grid-template-columns:1fr}.arrive-routes{gap:18px}.section-arrive{padding:80px 0}}.policy{background:var(--off-white);min-height:100vh;color:var(--charcoal)}.policy-top{display:flex;align-items:center;justify-content:space-between;max-width:900px;margin:0 auto;padding:22px 40px;border-bottom:1px solid rgba(0,0,0,.08)}.policy-logo{display:inline-flex;align-items:center;gap:10px}.policy-logo-text{font-family:var(--font-raleway),sans-serif;font-weight:800;font-size:15px;letter-spacing:2px;color:var(--ink)}.policy-back{font-size:13px;font-weight:700;letter-spacing:.5px;color:var(--steel);transition:color .2s ease}.policy-back:hover{color:var(--magenta)}.policy-body{max-width:760px;margin:0 auto;padding:56px 40px 96px}.policy-body h1{font-size:clamp(34px,5vw,52px);line-height:1.1;margin-bottom:24px}.policy-body h1,.policy-body h2{font-family:var(--font-lora),Georgia,serif;font-weight:600;color:var(--ink)}.policy-body h2{font-size:24px;margin:44px 0 14px}.policy-body h3{font-family:var(--font-raleway),sans-serif;font-size:14px;font-weight:800;letter-spacing:1px;text-transform:uppercase;color:var(--leaf);margin:28px 0 12px}.policy-body p{font-size:16px;line-height:1.75;color:var(--charcoal);margin-bottom:16px}.policy-lead{font-size:18px;color:var(--steel)}.policy-body strong{color:var(--ink);font-weight:700}.policy-body ul{margin:0 0 18px;padding-left:22px;display:flex;flex-direction:column;gap:8px}.policy-body li{font-size:16px;line-height:1.6;color:var(--charcoal)}.policy-body a{color:var(--magenta);text-decoration:underline}.policy-footer{margin-top:56px;padding-top:28px;border-top:1px solid rgba(0,0,0,.08);display:flex;flex-direction:column;gap:14px}.policy-footer p{margin:0;color:var(--steel)}.footer-policy-link{font-size:12px;color:rgba(255,255,255,.55);transition:color .2s ease}.footer-policy-link:hover{color:var(--white)}.policy-note{font-size:12px;line-height:1.5;color:var(--muted);text-align:center;margin-top:14px}.policy-note a{color:var(--steel);text-decoration:underline;transition:color .2s ease}.policy-note a:hover{color:var(--magenta)}.retreats-policy-note{margin-top:24px}.date-lb-policy{text-align:left;margin-top:10px}@media (max-width:600px){.policy-top{padding:18px 22px}.policy-body{padding:40px 22px 72px}}