/* ===================== Section header ===================== */
.sec-head{ max-width:720px; }
.sec-head--center{ margin-inline:auto; text-align:center; }
.sec-head .sp-h2{ margin-top:18px; }
.sec-head .sp-lede{ margin-top:18px; }
.sec-head--center .sp-lede{ margin-inline:auto; }
.sec-head__rule{ display:block; height:3px; width:0; border-radius:3px; background:linear-gradient(90deg,var(--purple),var(--teal)); margin-top:20px; transition:width .9s var(--ease-out) .15s; }
.sec-head--center .sec-head__rule{ margin-inline:auto; }
.sec-head.is-in .sec-head__rule{ width:64px; }

/* ===================== Why (compact strip near footer) ===================== */
.why{ padding-block:clamp(40px,5vw,64px); background:var(--surface); border-top:1px solid var(--line-soft); }
.why__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:36px; }
@media (max-width:780px){ .why__grid{ grid-template-columns:1fr; gap:24px; } }
.why__item{ display:flex; gap:16px; align-items:flex-start; }
.why__ic{ width:46px; height:46px; flex:none; border-radius:var(--r); display:grid; place-items:center; font-size:22px; background:var(--purple-50); color:var(--purple); }
.why__item:nth-child(2) .why__ic{ background:var(--teal-50); color:var(--teal); }
.why__item h3{ font-size:17px; margin-bottom:5px; }
.why__item p{ color:var(--ink-soft); font-size:14.5px; line-height:1.5; }

/* ===================== Packages ===================== */
.pkg{ background:var(--bg); }
.pkg__tabs{ display:inline-flex; gap:4px; padding:5px; background:var(--surface-2); border-radius:var(--r); border:1px solid var(--line-soft); margin:30px auto 0; }
.pkg__tab{ border:0; background:transparent; font-size:15px; font-weight:600; color:var(--muted); padding:11px 22px; border-radius:7px; transition:.25s var(--ease); display:flex; align-items:center; gap:8px; }
.pkg__tab.is-on{ background:var(--surface); color:var(--ink); box-shadow:var(--sh-2); }
.pkg__tab .b{ font-size:11px; background:var(--teal-50); color:var(--teal); padding:2px 7px; border-radius:6px; font-weight:700; }
.pkg__grid{ display:grid; gap:18px; margin-top:42px; grid-template-columns:repeat(4,minmax(0,1fr)); }
.pkg__grid--n2{ grid-template-columns:repeat(2,minmax(0,1fr)); max-width:760px; margin-inline:auto; }
.pkg__grid--n3{ grid-template-columns:repeat(3,minmax(0,1fr)); }
@media (max-width:1040px){ .pkg__grid, .pkg__grid--n3{ grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media (max-width:560px){ .pkg__grid, .pkg__grid--n2, .pkg__grid--n3{ grid-template-columns:1fr; } }
.pcard{ padding:26px 24px; display:flex; flex-direction:column; position:relative; overflow:hidden; }
.pcard--pop{ box-shadow:0 0 0 2px var(--purple), var(--sh-3); padding-top:40px; overflow:visible; }
.pcard--pop:hover{ box-shadow:0 0 0 2px var(--purple), var(--sh-4); }
.pcard__pop{ position:absolute; top:-2px; left:50%; transform:translateX(-50%); font-size:11px; font-weight:700; letter-spacing:.05em; text-transform:uppercase; color:#fff; background:var(--purple); padding:8px 14px 6px; border-radius:var(--r) var(--r) var(--r) var(--r); border-top-left-radius:8px; border-top-right-radius:8px; display:flex; align-items:center; gap:5px; box-shadow:var(--sh-accent); white-space:nowrap; z-index:2; }
.pcard__eco{ position:absolute; top:18px; right:18px; }
.pcard__name{ font-size:21px; }
.pcard__tag{ font-size:14.5px; color:var(--muted); margin-top:6px; min-height:2.6em; }
.pcard__price{ display:flex; align-items:baseline; gap:7px; margin:20px 0 4px; }
.pcard__price .amt{ font-family:var(--font-head); font-size:37px; font-weight:700; color:var(--ink); letter-spacing:-.02em; animation:priceIn .55s var(--ease-out) both; }
@keyframes priceIn{ 0%{ opacity:0; transform:translateY(10px) scale(.96); } 100%{ opacity:1; transform:none; } }
.pcard__price .from{ font-size:13px; color:var(--muted); }
.pcard__meta{ display:flex; gap:8px; margin:14px 0 20px; flex-wrap:wrap; }
.pcard__feats{ list-style:none; margin:0 0 26px; padding:18px 0 0; border-top:1px solid var(--line-soft); display:flex; flex-direction:column; gap:12px; flex:1; }
.pcard__feats li{ display:flex; gap:11px; font-size:14.5px; color:var(--ink-soft); align-items:flex-start; }
.pcard__feats svg{ color:var(--teal); flex:none; font-size:19px; margin-top:1px; }
.pcard .sp-btn{ width:100%; }
.pkg__note{ text-align:center; color:var(--muted); font-size:14.5px; margin-top:30px; }
.pkg__note b{ color:var(--ink-soft); }

/* ===================== Add-ons ===================== */
.addons{ background:var(--surface); }
.addons__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin-top:50px; }
@media (max-width:900px){ .addons__grid{ grid-template-columns:1fr 1fr; } }
@media (max-width:560px){ .addons__grid{ grid-template-columns:1fr; } }
.acard{ overflow:hidden; display:flex; flex-direction:column; }
.acard__media{ aspect-ratio:16/11; position:relative; overflow:hidden; }
.acard__media img{ width:100%; height:100%; object-fit:cover; transition:transform .6s var(--ease-out); }
.acard:hover .acard__media img{ transform:scale(1.06); }
.acard__media .sp-ph{ position:absolute; inset:0; border-radius:0; }
.acard__price{ position:absolute; bottom:12px; left:12px; background:var(--surface); border-radius:var(--r); padding:7px 13px; box-shadow:var(--sh-2); font-weight:700; font-size:15px; }
.acard__price .u{ font-size:12px; color:var(--muted); font-weight:500; }
.acard__body{ padding:22px 24px 26px; }
.acard__body h3{ font-size:19px; margin-bottom:9px; }
.acard__body p{ font-size:14.5px; color:var(--ink-soft); line-height:1.55; }

/* ===================== Gallery marquee ===================== */
.gallery{ padding-block:clamp(40px,5vw,64px); overflow:hidden; background:var(--surface); }
.marquee{ display:flex; width:max-content; animation:scrollx 171s linear infinite; }
.marquee:hover{ animation-play-state:paused; }
.gallery__row:nth-child(2) .marquee{ animation-direction:reverse; animation-duration:204s; }
@keyframes scrollx{ to{ transform:translateX(-50%); } }
.gallery__row{ margin-bottom:18px; }
.mph{ width:300px; height:210px; margin-right:18px; border-radius:var(--r); overflow:hidden; flex:none; box-shadow:var(--sh-1); }
.mph img{ width:100%; height:100%; object-fit:cover; }

/* ===================== Blog teaser ===================== */
.bteaser{ background:var(--bg); }
.bteaser__head{ display:flex; justify-content:space-between; align-items:flex-end; gap:24px; flex-wrap:wrap; }
.bteaser__grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin-top:48px; }
@media (max-width:880px){ .bteaser__grid{ grid-template-columns:1fr; } }

/* ===================== Blog card (shared) ===================== */
.bcard{ overflow:hidden; display:flex; flex-direction:column; }
.bcard__media{ aspect-ratio:16/10; position:relative; overflow:hidden; }
.bcard__media img{ width:100%; height:100%; object-fit:cover; transition:transform .7s var(--ease-out); }
.bcard:hover .bcard__media img{ transform:scale(1.07); }
.bcard__media .sp-ph{ position:absolute; inset:0; border-radius:0; }
.bcard__cat{ position:absolute; top:14px; left:14px; background:var(--surface); color:var(--purple-700); font-size:12px; font-weight:700; letter-spacing:.03em; padding:6px 12px; border-radius:var(--r);pill); box-shadow:var(--sh-1); }
.bcard__body{ padding:24px 26px 28px; display:flex; flex-direction:column; flex:1; }
.bcard__meta{ font-family:var(--font-mono); font-size:11.5px; letter-spacing:.08em; text-transform:uppercase; color:var(--muted); margin-bottom:12px; }
.bcard__body h3{ font-size:21px; line-height:1.18; }
.bcard__body p{ color:var(--ink-soft); font-size:15px; line-height:1.55; margin-top:11px; flex:1; }
.bcard__more{ display:inline-flex; align-items:center; gap:8px; color:var(--purple); font-weight:600; font-size:15px; margin-top:18px; }
.bcard:hover .bcard__more{ color:var(--purple-700); }

/* ===================== FAQ ===================== */
.faq{ background:var(--surface); }
.faq__wrap{ display:grid; grid-template-columns:.8fr 1.2fr; gap:clamp(32px,5vw,72px); margin-top:20px; align-items:start; }
@media (max-width:840px){ .faq__wrap{ grid-template-columns:1fr; } }
.faq__list{ display:flex; flex-direction:column; }
.fitem{ border-bottom:1px solid var(--line); }
.fitem__q{ width:100%; text-align:left; background:transparent; border:0; padding:22px 8px 22px 0; display:flex; justify-content:space-between; gap:20px; align-items:center; font-family:var(--font-head); font-size:18px; font-weight:600; color:var(--ink); letter-spacing:-.01em; transition:color .2s var(--ease); }
.fitem__q:hover{ color:var(--purple); }
.fitem__ic{ flex:none; width:34px; height:34px; border-radius:50%; background:var(--surface-2); display:grid; place-items:center; color:var(--purple); transition:.3s var(--ease); font-size:18px; }
.fitem.is-open .fitem__ic{ background:var(--purple); color:#fff; transform:rotate(180deg); animation:faqBreathe 2.6s ease-in-out infinite; }
@keyframes faqBreathe{ 0%,100%{ box-shadow:0 0 0 0 rgba(124,63,196,0); } 50%{ box-shadow:0 0 0 7px rgba(124,63,196,.10); } }
@media (prefers-reduced-motion:reduce){ .fitem.is-open .fitem__ic{ animation:none; } }
.fitem__a{ overflow:hidden; max-height:0; transition:max-height .4s var(--ease); }
.fitem__a-in{ padding:0 40px 24px 0; color:var(--ink-soft); font-size:15.5px; line-height:1.6; }
.faq__aside{ position:sticky; top:110px; }

/* ===================== Contact ===================== */
.contact{ background:var(--bg); }
.contact__wrap{ display:grid; grid-template-columns:1fr 1.15fr; gap:clamp(28px,4vw,56px); margin-top:30px; align-items:center; }
@media (max-width:880px){ .contact__wrap{ grid-template-columns:1fr; } }
.contact__info{ position:static; }
.contact__points{ display:flex; flex-direction:column; gap:20px; margin-top:32px; }
.cpoint{ display:flex; gap:16px; align-items:center; min-height:48px; }
.cpoint__ic{ width:48px; height:48px; flex:none; border-radius:14px; background:var(--surface); box-shadow:var(--sh-2); display:grid; place-items:center; color:var(--purple); font-size:21px; }
.cpoint > div:last-child{ display:flex; flex-direction:column; justify-content:center; }
.cpoint h4{ font-size:16px; margin:0 0 2px; line-height:1.2; }
.cpoint p{ color:var(--ink-soft); font-size:15px; line-height:1.25; }
.cpoint a{ color:var(--purple); font-weight:600; white-space:nowrap; }
.form{ background:var(--surface); border-radius:var(--r-lg); padding:clamp(26px,3vw,40px); box-shadow:var(--sh-3); border:1px solid var(--line-soft); }
.form__row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
@media (max-width:560px){ .form__row{ grid-template-columns:1fr; } }
.field{ margin-bottom:16px; }
.field label{ display:block; font-size:13.5px; font-weight:600; color:var(--ink-soft); margin-bottom:7px; }
.field input, .field select, .field textarea{
  width:100%; font-family:inherit; font-size:15.5px; color:var(--ink);
  padding:13px 15px; border-radius:var(--r-sm); border:1.5px solid var(--line);
  background:var(--bg); transition:.2s; }
.field input:focus, .field select:focus, .field textarea:focus{ outline:none; border-color:var(--purple); background:var(--surface); box-shadow:0 0 0 4px var(--purple-50); }
.field textarea{ resize:vertical; min-height:96px; }
.field .opt{ font-weight:400; color:var(--faint); font-size:12px; }
.field.has-err input, .field.has-err select{ border-color:#D64545; background:#FEF6F6; }
.field.has-err input:focus{ border-color:#D64545; box-shadow:0 0 0 4px rgba(214,69,69,.12); }
.field__err{ display:flex; align-items:center; gap:5px; margin-top:6px; font-size:12.5px; color:#C23B3B; font-weight:500; }
.field__err::before{ content:"!"; flex:none; width:15px; height:15px; border-radius:50%; background:#D64545; color:#fff; font-size:10px; font-weight:700; display:grid; place-items:center; }

/* ===== Country-code phone ===== */
.cphone{ position:relative; }
.cphone__row{ display:flex; gap:8px; }
.cphone__cc{ display:flex; align-items:center; gap:6px; flex:none; padding:0 11px; height:48px; border:1.5px solid var(--line); border-radius:var(--r-sm); background:var(--bg); font-size:15px; color:var(--ink); transition:.2s; }
.cphone__cc:hover{ border-color:var(--faint); }
.cphone__cc .fl{ font-size:18px; line-height:1; }
.cphone__cc .dl{ font-weight:600; }
.cphone__cc .chv{ color:var(--muted); }
.cphone__num{ flex:1; min-width:0; }
.cphone.has-err .cphone__cc{ border-color:#D64545; }
.cphone__menu{ position:absolute; z-index:30; top:54px; left:0; width:min(320px,84vw); max-height:264px; overflow-y:auto; margin:0; padding:6px; list-style:none;
  background:var(--surface); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-3); }
.cphone__opt{ display:flex; align-items:center; gap:10px; padding:9px 11px; border-radius:var(--r-sm); cursor:pointer; font-size:14.5px; }
.cphone__opt:hover{ background:var(--surface-2); }
.cphone__opt.is-on{ background:var(--purple-50); }
.cphone__opt .fl{ font-size:18px; }
.cphone__opt .nm{ flex:1; color:var(--ink); }
.cphone__opt .dl{ color:var(--muted); font-weight:600; }

/* ===== Date field + calendar ===== */
.cdate{ position:relative; }
.cdate__row{ position:relative; display:flex; }
.cdate__row input{ width:100%; padding-right:46px; }
.cdate__btn{ position:absolute; right:6px; top:50%; transform:translateY(-50%); width:36px; height:36px; border-radius:var(--r-sm); border:0; background:transparent; color:var(--purple); display:grid; place-items:center; transition:.2s; }
.cdate__btn:hover{ background:var(--purple-50); }
.cdate.has-err .cdate__btn{ color:#D64545; }
.cal{ position:absolute; z-index:30; top:54px; left:0; width:288px; max-width:92vw; padding:14px; background:var(--surface); border:1px solid var(--line); border-radius:var(--r); box-shadow:var(--sh-3); }
.cal__head{ display:flex; align-items:center; justify-content:space-between; margin-bottom:10px; }
.cal__head button{ width:32px; height:32px; border-radius:var(--r-sm); border:0; background:var(--surface-2); color:var(--ink-soft); display:grid; place-items:center; transition:.2s; }
.cal__head button:hover{ background:var(--purple-50); color:var(--purple); }
.cal__title{ font-family:var(--font-head); font-weight:700; font-size:15.5px; text-transform:capitalize; }
.cal__wd{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; margin-bottom:4px; }
.cal__wd span{ text-align:center; font-family:var(--font-mono); font-size:10.5px; letter-spacing:.04em; color:var(--muted); text-transform:uppercase; padding:4px 0; }
.cal__grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:2px; }
.cal__empty{ aspect-ratio:1; }
.cal__day{ aspect-ratio:1; border:0; background:transparent; border-radius:var(--r-sm); font-size:13.5px; color:var(--ink); cursor:pointer; transition:.15s; display:grid; place-items:center; }
.cal__day:hover{ background:var(--purple-50); color:var(--purple-700); }
.cal__day.is-today{ box-shadow:inset 0 0 0 1.5px var(--purple-100); font-weight:700; }
.cal__day.is-sel{ background:var(--purple); color:#fff; font-weight:700; }
.cal__day.is-past{ color:var(--faint); cursor:not-allowed; }
.cal__day.is-past:hover{ background:transparent; color:var(--faint); }
.cal__foot{ display:flex; justify-content:space-between; margin-top:10px; padding-top:10px; border-top:1px solid var(--line-soft); }
.cal__foot button{ border:0; background:transparent; font-size:13px; font-weight:600; color:var(--muted); padding:4px 6px; border-radius:6px; }
.cal__foot button:hover{ color:var(--purple); background:var(--purple-50); }
.cal__today{ color:var(--purple) !important; }
.form__progress{ height:4px; background:var(--surface-3); border-radius:var(--r-pill); overflow:hidden; margin-bottom:24px; }
.form__progress span{ display:block; height:100%; background:linear-gradient(90deg,var(--purple),var(--teal)); border-radius:var(--r-pill); transition:width .5s var(--ease-out); }
.form__sent{ text-align:center; padding:40px 20px; }
.form__sent .ic{ width:72px; height:72px; border-radius:50%; background:var(--teal-50); color:var(--teal); display:grid; place-items:center; font-size:36px; margin:0 auto 20px; }
.form__sent h3{ font-size:26px; margin-bottom:10px; }
.form__sent p{ color:var(--ink-soft); }

/* confetti canvas */
.sp-confetti{ position:fixed; inset:0; pointer-events:none; z-index:9999; }

/* CTA band */
.ctaband{ background:linear-gradient(135deg, var(--purple-700), var(--purple) 60%, #8B52D6); color:#fff; border-radius:var(--r-xl); padding:clamp(40px,6vw,72px); position:relative; overflow:hidden; box-shadow:var(--sh-4); text-align:center; }
.ctaband::after{ content:""; position:absolute; inset:-22px; background-image:radial-gradient(rgba(255,255,255,.13) 1px, transparent 1px); background-size:22px 22px; opacity:.5; animation:ctaDots 26s linear infinite; transform:translateY(var(--cta-par,0)); }
.ctaband::before{ content:""; position:absolute; width:360px; height:360px; border-radius:50%; background:radial-gradient(circle, rgba(255,255,255,.16), transparent 70%); top:-140px; left:-90px; z-index:1; animation:ctaGlow 15s ease-in-out infinite; pointer-events:none; }
@keyframes ctaDots{ to{ background-position:44px 44px; } }
@keyframes ctaGlow{ 0%,100%{ transform:translate(0,0) scale(1); } 50%{ transform:translate(70px,46px) scale(1.15); } }
@media (prefers-reduced-motion:reduce){ .ctaband::after, .ctaband::before{ animation:none; } }
.ctaband > *{ position:relative; z-index:2; }
.ctaband h2{ color:#fff; font-size:clamp(28px,4vw,46px); }
.ctaband p{ color:rgba(255,255,255,.85); max-width:50ch; margin:18px auto 30px; font-size:18px; }
.ctaband .sp-btn--primary{ background:#fff; color:var(--purple-700); }
.ctaband .sp-btn--primary:hover{ background:#fff; color:var(--purple-700); transform:translateY(-2px); }
