:root{
  --purple:#6d2c91;
  --deep-purple:#35144f;
  --green:#6ea53a;
  --lime:#a7cb4b;
  --cream:#fffaf2;
  --ink:#2d2431;
  --muted:#6f6a74;
  --white:#fff;
  --shadow:0 18px 45px rgba(38,21,47,.12);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;font-family:Arial,Helvetica,sans-serif;color:var(--ink);background:var(--cream);line-height:1.6}
a{color:inherit}
.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:16px clamp(18px,4vw,56px);background:rgba(255,250,242,.96);backdrop-filter:blur(14px);border-bottom:1px solid rgba(109,44,145,.10)}
.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font-weight:800;text-transform:uppercase;letter-spacing:.08em;color:var(--deep-purple)}
.brand-mark{display:grid;place-items:center;width:44px;height:44px;border-radius:50%;background:linear-gradient(145deg,var(--purple),var(--green));color:white;font-family:Georgia,serif;font-size:1.25rem}
.nav{display:flex;gap:22px;align-items:center}
.nav a{text-decoration:none;font-weight:700;font-size:.94rem;color:var(--deep-purple)}
.nav a:hover{color:var(--purple)}
.menu-toggle{display:none;border:0;background:transparent;font-size:1.6rem;color:var(--deep-purple)}
.hero{min-height:82vh;display:grid;place-items:center;position:relative;overflow:hidden;padding:90px 20px;text-align:center;background:
radial-gradient(circle at 15% 20%,rgba(167,203,75,.45),transparent 28%),
radial-gradient(circle at 85% 20%,rgba(109,44,145,.45),transparent 30%),
linear-gradient(135deg,#1c6c72 0%,#67b6a5 35%,#f1cc77 70%,#7d3b8f 100%)}
.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(2px);opacity:.35}
.hero:before{width:420px;height:420px;left:-100px;bottom:-120px;background:var(--green)}
.hero:after{width:360px;height:360px;right:-70px;top:-80px;background:var(--purple)}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(to bottom,rgba(53,20,79,.08),rgba(53,20,79,.32))}
.hero-content{position:relative;z-index:2;max-width:900px;color:white}
.eyebrow{font-size:.78rem;font-weight:900;letter-spacing:.24em;color:var(--purple);margin:0 0 12px}
.eyebrow.light{color:#efffd8}
.hero h1{font-family:Georgia,serif;font-size:clamp(3rem,8vw,6.4rem);line-height:.98;margin:0 0 22px;text-shadow:0 3px 18px rgba(53,20,79,.22)}
.hero-copy{font-size:clamp(1.08rem,2vw,1.35rem);max-width:740px;margin:0 auto 30px}
.hero-actions{display:flex;flex-wrap:wrap;gap:14px;justify-content:center}
.button{display:inline-block;border:0;border-radius:999px;padding:14px 24px;text-decoration:none;font-weight:800;cursor:pointer;transition:.2s ease}
.button:hover{transform:translateY(-2px)}
.primary{background:linear-gradient(135deg,var(--purple),#8c48a8);color:white;box-shadow:0 10px 24px rgba(82,32,105,.25)}
.secondary{background:rgba(255,255,255,.20);border:1px solid rgba(255,255,255,.55);color:white}
.music-button{margin-top:24px;border:1px solid rgba(255,255,255,.60);background:rgba(109,44,145,.35);color:white;border-radius:999px;padding:11px 18px;font-weight:800;cursor:pointer}
.music-note{font-size:.82rem;opacity:.86}
.section{padding:88px clamp(20px,6vw,90px)}
.section h2{font-family:Georgia,serif;font-size:clamp(2.3rem,5vw,4rem);line-height:1.05;margin:0 0 18px;color:var(--deep-purple)}
.section-lead{max-width:720px;color:var(--muted);font-size:1.08rem;margin-bottom:34px}
.cards{display:grid;gap:24px}
.cards.three{grid-template-columns:repeat(3,minmax(0,1fr))}
.feature-card,.destination-card,.flyer-placeholder,.review-card{background:white;border-radius:24px;padding:28px;box-shadow:var(--shadow);border:1px solid rgba(74,45,77,.06)}
.feature-card{min-height:270px;display:flex;flex-direction:column;justify-content:flex-end;overflow:hidden;position:relative}
.feature-card:before{content:"";position:absolute;width:170px;height:170px;border-radius:50%;top:-55px;right:-45px;opacity:.18}
.tropical-card:before{background:var(--green)} .resort-card:before{background:#ffb654}.group-card:before{background:var(--purple)}
.card-icon{font-size:2.1rem}
.feature-card h3,.destination-card h3,.flyer-placeholder h3{margin:8px 0 6px;font-size:1.35rem;color:var(--deep-purple)}
.feature-card a{margin-top:12px;font-weight:800;color:var(--purple);text-decoration:none}
.dark-section{background:linear-gradient(135deg,#6d2c91 0%,#8f55a6 48%,#6ea53a 100%);color:white}
.dark-section h2{color:white}
.split-section{display:grid;grid-template-columns:1.2fr .8fr;gap:42px;align-items:center}
.action-panel{background:rgba(255,255,255,.16);padding:34px;border-radius:26px;border:1px solid rgba(255,255,255,.25)}
.panel-icon{font-size:2.6rem}
.compact .destination-card{text-align:center}
.destination-card span{font-size:2.2rem}
.accent-section{display:flex;justify-content:space-between;align-items:center;gap:30px;background:linear-gradient(110deg,#eef6dc,#f8eafc)}
.section-heading{max-width:760px}
.flyer-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}
.flyer-art{height:260px;border-radius:18px;display:grid;place-items:center;font-size:4rem;color:white}
.flyer-art.purple{background:linear-gradient(135deg,#6d2c91,#a45cb8)}
.flyer-art.green{background:linear-gradient(135deg,#5d8f36,#a7cb4b)}
.flyer-art.sunset{background:linear-gradient(135deg,#d99a52,#7b3d91)}
.booking-section{text-align:center;background:linear-gradient(120deg,#6ea53a,#8ab75c 46%,#6d2c91);color:white}
.booking-section h2{color:white}
.booking-section p{max-width:700px;margin:0 auto 28px}
.light-button{background:white;color:var(--purple)}
.outline-light{border:1px solid white;color:white}
.review-card{max-width:720px;margin:22px 0}
.stars{color:#e0a52a;font-size:1.4rem;letter-spacing:.15em}
.contact-section{display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:start}
.quote-form{display:grid;grid-template-columns:1fr 1fr;gap:18px;background:white;padding:30px;border-radius:26px;box-shadow:var(--shadow)}
.quote-form label{display:flex;flex-direction:column;gap:7px;font-weight:800;font-size:.9rem;color:var(--deep-purple)}
.quote-form label:nth-child(6){grid-column:1/-1}
input,textarea{width:100%;border:1px solid #ddd1df;border-radius:12px;padding:12px 13px;font:inherit;background:#fff;color:var(--ink)}
.quote-form .button,.form-message{grid-column:1/-1}
.form-message{margin:0;font-weight:700;color:var(--purple)}
.footer{padding:46px clamp(20px,6vw,90px);background:linear-gradient(135deg,#4f1f68,#6d2c91 55%,#5f8f37);color:white;display:grid;grid-template-columns:1fr auto;gap:20px}
.footer p{margin:.4rem 0;color:#f2e8f7}
.footer-links{display:flex;gap:18px;flex-wrap:wrap}
.footer-links a{text-decoration:none;font-weight:800}
.facebook-link{display:inline-flex;align-items:center;gap:10px;width:max-content;max-width:100%;margin-top:12px;padding:8px 15px 8px 9px;border:1px solid rgba(255,255,255,.42);border-radius:999px;background:rgba(255,255,255,.12);color:#fff;text-decoration:none;font-weight:800;transition:background .2s ease,transform .2s ease}
.facebook-link svg{width:22px;height:22px;flex-shrink:0}
.facebook-link:hover,.facebook-link:focus-visible{background:rgba(255,255,255,.24);transform:translateY(-1px)}
.facebook-link:focus-visible{outline:2px solid white;outline-offset:3px}
.copyright{grid-column:1/-1;border-top:1px solid rgba(255,255,255,.22);padding-top:18px}
@media(max-width:900px){
  .menu-toggle{display:block}
  .nav{display:none;position:absolute;left:16px;right:16px;top:76px;flex-direction:column;align-items:stretch;background:white;padding:20px;border-radius:18px;box-shadow:var(--shadow)}
  .nav.open{display:flex}
  .cards.three,.flyer-grid,.split-section,.contact-section{grid-template-columns:1fr}
  .accent-section{flex-direction:column;align-items:flex-start}
}
@media(max-width:620px){
  .hero{min-height:74vh}
  .quote-form{grid-template-columns:1fr}
  .quote-form label:nth-child(6),.quote-form .button,.form-message{grid-column:auto}
  .footer{grid-template-columns:1fr}
  .copyright{grid-column:auto}
}
.cards.two{grid-template-columns:repeat(2,minmax(0,1fr))}
.traveler-forms-section{background:linear-gradient(120deg,#fbf7fd,#f2f7e8)}
.form-cards{max-width:980px}
.form-card{background:white;border-radius:24px;padding:32px;box-shadow:var(--shadow);border:1px solid rgba(109,44,145,.08)}
.form-card h3{font-size:1.45rem;color:var(--deep-purple);margin:10px 0 8px}
.form-card-icon{font-size:2.3rem}
.secure-card{border-top:5px solid var(--green)}
.soft-button{background:#eef6dc;color:var(--deep-purple);border:1px solid rgba(110,165,58,.35)}
.application-page{min-height:100vh;background:linear-gradient(180deg,#fffaf2,#f7f0fa)}
.application-shell{max-width:1050px;margin:0 auto;padding:48px 20px 80px}
.application-intro{background:linear-gradient(135deg,#6d2c91,#7f4d9c 55%,#6ea53a);color:white;border-radius:28px;padding:34px;margin-bottom:28px}
.application-intro h1{font-family:Georgia,serif;font-size:clamp(2.4rem,6vw,4.2rem);line-height:1.05;margin:0 0 10px}
.application-intro p{max-width:760px;margin:0}
.application-card{background:white;border-radius:26px;padding:30px;box-shadow:var(--shadow);margin-bottom:24px}
.application-card h2{font-family:Georgia,serif;color:var(--deep-purple);font-size:2rem;margin:0 0 18px}
.application-form-grid{display:grid;grid-template-columns:1fr 1fr;gap:18px}
.application-form-grid label{display:flex;flex-direction:column;gap:7px;font-weight:800;color:var(--deep-purple);font-size:.92rem}
.application-form-grid .full{grid-column:1/-1}
.application-form-grid select{width:100%;border:1px solid #ddd1df;border-radius:12px;padding:12px 13px;font:inherit;background:#fff;color:var(--ink)}
.application-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:20px}
.security-note{background:#eef6dc;border-left:5px solid var(--green);padding:16px 18px;border-radius:14px;color:var(--deep-purple);font-weight:700}
.back-home{display:inline-flex;align-items:center;gap:8px;margin-bottom:18px;text-decoration:none;color:var(--purple);font-weight:800}
@media(max-width:900px){
  .cards.two{grid-template-columns:1fr}
}
@media(max-width:620px){
  .application-form-grid{grid-template-columns:1fr}
  .application-form-grid .full{grid-column:auto}
}
@media print{
  .site-header,.footer,.application-actions,.back-home{display:none!important}
  .application-shell{padding:0}
  .application-intro{background:white!important;color:var(--ink)!important;border:2px solid #ddd}
  .application-card{box-shadow:none;border:1px solid #ddd}
}

.current-trips-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
.flyer-card{background:white;border-radius:24px;padding:18px;box-shadow:var(--shadow);border:1px solid rgba(109,44,145,.08)}
.flyer-card a{display:block;border-radius:16px;overflow:hidden;background:#f6f0f7}
.flyer-card img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:top}
.flyer-card h3{margin:16px 0 6px;color:var(--deep-purple);font-size:1.3rem}
.flyer-card p{margin:0;color:var(--muted)}
.trip-update{display:inline-block;margin-top:12px;padding:7px 11px;border-radius:999px;background:#eef6dc;color:var(--deep-purple);font-size:.82rem;font-weight:800}
@media(max-width:760px){.current-trips-grid{grid-template-columns:1fr}}

.booking-link-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:18px}
.booking-link-grid .button{text-align:center}
.resort-cta{margin-top:28px;display:flex;align-items:center;justify-content:space-between;gap:24px;background:white;border-radius:22px;padding:24px;box-shadow:var(--shadow);border:1px solid rgba(109,44,145,.08)}
.resort-cta strong{display:block;color:var(--deep-purple);font-size:1.2rem}
.resort-cta p{margin:.35rem 0 0;color:var(--muted);max-width:680px}
@media(max-width:760px){
  .booking-link-grid{grid-template-columns:1fr}
  .resort-cta{flex-direction:column;align-items:flex-start}
}

.site-header{padding-top:8px;padding-bottom:8px}
.brand{min-width:150px}
.site-logo{display:block;width:150px;height:90px;object-fit:contain;object-position:left center}
@media(max-width:900px){
  .site-logo{width:118px;height:72px}
  .nav{top:88px}
}


/* Separate guest reviews and secure-authorization requests */
.review-section .review-card,.authorization-request-card{max-width:720px}
.review-section .review-card h3{margin-top:0;color:var(--deep-purple)}
.review-form{display:grid;gap:17px}
.review-form label{display:flex;flex-direction:column;gap:7px;font-weight:800;font-size:.92rem;color:var(--deep-purple)}
.review-form input,.review-form select,.review-form textarea{width:100%;border:1px solid #ddd1df;border-radius:12px;padding:12px 13px;font:inherit;background:#fff;color:var(--ink)}
.review-form textarea{resize:vertical}
.review-form .review-consent{display:flex;flex-direction:row;align-items:flex-start;gap:10px;font-weight:500}
.review-form .review-consent input{width:auto;margin:5px 0 0;flex-shrink:0}
.review-form .button{justify-self:start}
.form-actions{display:flex;flex-wrap:wrap;gap:12px;margin-top:18px}
.form-actions .button{text-align:center}
.review-form .form-message{margin:0;min-height:1.5em}
@media(max-width:620px){
  .review-card{padding:22px}
  .form-actions{flex-direction:column}
  .form-actions .button{width:100%}
}

/* Facebook customer recommendations */
.facebook-reviews-highlight{display:flex;align-items:center;gap:22px;flex-wrap:wrap;margin:28px 0 22px;padding:28px;border:1px solid rgba(109,44,145,.12);border-radius:24px;background:linear-gradient(110deg,#f8f0fb 0%,#f5faed 100%);box-shadow:0 10px 30px rgba(53,20,79,.06)}
.facebook-reviews-icon{display:grid;place-items:center;flex:0 0 32px;width:32px;height:32px;color:var(--purple)}
.facebook-reviews-icon svg{display:block;width:28px;height:28px}
.facebook-reviews-copy{flex:1 1 310px;min-width:0}
.facebook-reviews-kicker{margin:0 0 5px;color:var(--purple);font-size:.78rem;letter-spacing:.11em;font-weight:800}
.facebook-reviews-copy h3{margin:0 0 6px;color:var(--deep-purple);font-size:clamp(1.3rem,2.6vw,1.7rem);line-height:1.25}
.facebook-reviews-copy h3 span{font-size:.85em;font-weight:600;color:var(--green)}
.facebook-reviews-copy>p:last-child{margin:0;color:var(--muted);font-size:.92rem}
.facebook-reviews-button{flex-shrink:0;text-align:center}
.review-invite{margin:22px 0 12px}
@media(max-width:620px){.facebook-reviews-highlight{padding:22px;gap:15px}.facebook-reviews-button{width:100%}}

/* Featured traveler feedback: four cards in a balanced 2-by-2 grid */
.traveler-testimonials{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:18px;margin:28px 0 12px}
.traveler-testimonial{display:flex;flex-direction:column;gap:16px;min-width:0;padding:24px;border-radius:22px;background:#fff;border:1px solid rgba(109,44,145,.13);border-top:4px solid var(--green);box-shadow:0 10px 28px rgba(53,20,79,.07)}
.testimonial-topline{display:flex;flex-direction:column;align-items:flex-start;gap:6px}
.testimonial-trip{color:var(--deep-purple);font-size:1.04rem;font-weight:800}
.testimonial-recommended{color:#477b25;font-size:.78rem;font-weight:800}
.traveler-testimonial blockquote{margin:0;color:var(--ink);font-size:.98rem;line-height:1.7;flex:1}
.testimonial-author{margin:0;padding-top:12px;border-top:1px solid #eee4f1;color:var(--deep-purple);font-weight:800;font-size:.88rem}
.testimonial-author span{font-weight:500;color:var(--muted)}
.testimonial-note{font-size:.85rem;color:var(--muted);margin:0 0 26px}
@media(max-width:920px){.traveler-testimonials{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:650px){.traveler-testimonials{grid-template-columns:1fr;gap:14px}.traveler-testimonial{padding:21px}}
