/*
Theme Name: Sakura Tour
Theme URI: https://sakuratur.md
Author: Sakura Tour
Description: Custom WooCommerce theme for Sakura Tour — matches the Sakura Tour.html prototype exactly. TranslatePress RO/RU, ACF tour details.
Version: 1.0.0
Text Domain: sakura-tour
*/

/* ==========================================================================
   Design tokens
   ========================================================================== */
:root{
  --st-bg:             #FAF6F0;
  --st-card:           #FFFCF7;
  --st-ink:            #3B2B22;
  --st-ink-hover:      #523A2E;
  --st-text:           #6E5B4E;
  --st-text-2:         #8A7568;
  --st-text-3:         #7A6A5E;
  --st-gold:           #A9803A;
  --st-gold-line:      #B4924F;
  --st-gold-light:     #E4C08F;
  --st-border:         rgba(180,146,79,.24);
  --st-border-soft:    rgba(180,146,79,.22);
  --st-border-strong:  rgba(180,146,79,.4);
  --st-cream:          #FFF9F1;
  --st-cream-2:        #FBF6EF;
  --st-larisa-bg:      #F4E9DA;
  --st-footer-bg:      #33241D;
  --st-footer-text:    #E9DED2;
  --st-green:          #7FCB8F;
  --st-cart-badge:     #C98A82;
  --st-star:           #D9A24A;
  --st-scrim:          #34241D;

  --st-font-serif: 'Cormorant Garamond', Georgia, serif;
  --st-font-sans:  'Manrope', system-ui, -apple-system, sans-serif;

  --st-maxw: 1240px;
  --st-pad: 26px;
  --st-radius-card: 18px;
  --st-radius-lg: 20px;
  --st-radius-xl: 24px;
  --st-radius-xxl: 26px;
}

/* Destination accent gradients — used as photo placeholders until real images are set */
.st-grad-japonia       { background: linear-gradient(150deg,#ECC9C4,#C98A82); }
.st-grad-thailanda     { background: linear-gradient(150deg,#ECD3A8,#C79A63); }
.st-grad-bali          { background: linear-gradient(150deg,#CFC3A6,#9AA585); }
.st-grad-coreea-de-sud { background: linear-gradient(150deg,#E6CFCB,#B7A6B0); }
.st-grad-maroc         { background: linear-gradient(150deg,#E8C6A2,#C08A5E); }
.st-grad-default       { background: linear-gradient(150deg,#EAD9C6,#D3B79E); }

/* ==========================================================================
   Reset / base
   ========================================================================== */
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: var(--st-bg);
  color: var(--st-ink);
  font-family: var(--st-font-sans);
  -webkit-font-smoothing: antialiased;
  overflow-x: clip;
}
img { max-width: 100%; display: block; }
a { color: inherit; text-decoration: none; }
button { font-family: inherit; }
::selection { background: #ECC9C4; color: var(--st-ink); }
.st-container { max-width: var(--st-maxw); margin: 0 auto; padding: 0 var(--st-pad); }

@keyframes skFade { from { opacity: 0; transform: translateY(14px); } to { opacity: 1; transform: none; } }
@keyframes skZoom { from { transform: scale(1.06); } to { transform: scale(1); } }
.st-fade { animation: skFade .8s ease both; }
.st-zoom { animation: skZoom 1.4s ease; }

.st-kicker {
  display: block;
  font: 600 12px/1 var(--st-font-sans);
  letter-spacing: .24em;
  text-transform: uppercase;
  color: var(--st-gold);
  margin-bottom: 14px;
}
.st-h2 {
  font: 500 clamp(30px,4vw,52px)/1.04 var(--st-font-serif);
  color: var(--st-ink);
  margin: 0;
  max-width: 560px;
  text-wrap: balance;
}
.st-section { max-width: var(--st-maxw); margin: 0 auto; padding: clamp(56px,7vw,110px) var(--st-pad) 40px; }
.st-section-head { display: flex; align-items: flex-end; justify-content: space-between; flex-wrap: wrap; gap: 18px; margin-bottom: 44px; }

.st-dot { width: 8px; height: 8px; border-radius: 999px; background: var(--st-green); flex: none; }

/* Placeholder markers shown only where a real photo/video hasn't been
   uploaded yet — matches the prototype's own editing-aid markers. */
.st-photo-tag {
  position: absolute; z-index: 2; font: 500 11px ui-monospace, monospace; letter-spacing: .08em;
  color: rgba(255,255,255,.8); background: rgba(52,36,29,.35); padding: 5px 10px; border-radius: 6px;
}
.st-photo-tag-sm { font-size: 10px; letter-spacing: .06em; padding: 4px 8px; }

/* Buttons */
.st-btn {
  display: inline-flex; align-items: center; gap: 11px;
  padding: 17px 30px; border-radius: 999px; border: none; cursor: pointer;
  font: 600 15px var(--st-font-sans); transition: transform .25s, box-shadow .25s, background .25s, border-color .25s;
  white-space: nowrap;
}
.st-btn-dark   { background: var(--st-ink); color: var(--st-cream-2); }
.st-btn-dark:hover   { background: var(--st-ink-hover); }
.st-btn-light  { background: var(--st-cream); color: var(--st-ink); }
.st-btn-light:hover  { transform: translateY(-2px); box-shadow: 0 16px 30px -14px rgba(52,36,29,.6); }
.st-btn-outline        { background: transparent; color: var(--st-ink); border: 1px solid rgba(59,43,34,.3); }
.st-btn-outline:hover   { background: #fff; }
.st-btn-outline-light  { background: rgba(255,249,241,.12); color: var(--st-cream); border: 1px solid rgba(255,249,241,.55); }
.st-btn-outline-light:hover { background: rgba(255,249,241,.22); }
.st-btn-sm { padding: 11px 18px; font-size: 13px; }

/* ==========================================================================
   Header
   ========================================================================== */
.st-header {
  position: sticky; top: 0; z-index: 60;
  background: rgba(250,246,240,.9);
  backdrop-filter: saturate(1.4) blur(14px);
  border-bottom: 1px solid var(--st-border-strong);
}
.st-header-inner {
  max-width: var(--st-maxw); margin: 0 auto; padding: 0 var(--st-pad);
  height: 74px; display: flex; align-items: center; gap: 26px;
}
.st-logo {
  background: none; border: none; cursor: pointer; padding: 0;
  display: flex; flex-direction: column; line-height: .92; text-align: left;
}
.st-logo-main { font: 600 27px var(--st-font-serif); letter-spacing: .01em; color: var(--st-ink); }
.st-logo-sub  { font: 600 10px var(--st-font-sans); letter-spacing: .44em; color: var(--st-gold); padding-left: 2px; }

.st-nav { display: flex; align-items: center; gap: 6px; margin-left: 14px; }
.st-nav-link {
  background: none; border: none; cursor: pointer; font: 500 14px var(--st-font-sans);
  color: var(--st-ink); padding: 9px 12px; border-radius: 8px; display: inline-flex; align-items: center; gap: 7px;
}
.st-nav-link:hover { background: rgba(180,146,79,.1); }
.st-nav-item { position: relative; }

.st-dropdown {
  position: absolute; top: 46px; left: 0; min-width: 238px;
  background: var(--st-card); border: 1px solid var(--st-border-strong);
  border-radius: 14px; box-shadow: 0 24px 60px -24px rgba(59,43,34,.4);
  padding: 10px; animation: skFade .22s ease; z-index: 5;
}
.st-dropdown[hidden] { display: none; }
.st-dropdown-item {
  width: 100%; text-align: left; background: none; border: none; cursor: pointer;
  padding: 11px 13px; border-radius: 9px; display: flex; align-items: center; gap: 12px;
  font: 500 15px var(--st-font-sans); color: var(--st-ink);
}
.st-dropdown-item:hover { background: #F6ECE0; }
.st-swatch { width: 26px; height: 26px; border-radius: 7px; flex: none; }

.st-header-actions { margin-left: auto; display: flex; align-items: center; gap: 14px; }

.st-lang-switch { display: flex; align-items: center; border: 1px solid var(--st-border-strong); border-radius: 999px; padding: 3px; gap: 2px; }
.st-lang-btn {
  padding: 6px 13px; border: none; border-radius: 999px; background: transparent;
  color: var(--st-text-3); font: 600 12px var(--st-font-sans); cursor: pointer;
}
.st-lang-btn.is-active { background: var(--st-ink); color: var(--st-cream-2); }

.st-cart-btn { position: relative; background: none; border: none; cursor: pointer; padding: 8px; display: flex; align-items: center; }
.st-cart-icon { font-size: 20px; color: var(--st-ink); }
.st-cart-count {
  position: absolute; top: -2px; right: -4px; min-width: 18px; height: 18px; padding: 0 4px;
  background: var(--st-cart-badge); color: #fff; border-radius: 999px; font: 700 10px var(--st-font-sans);
  display: flex; align-items: center; justify-content: center;
}

.st-burger {
  display: none; background: none; border: 1px solid var(--st-border-strong); border-radius: 9px;
  width: 40px; height: 40px; cursor: pointer; flex-direction: column; gap: 4px; align-items: center; justify-content: center;
}
.st-burger span { width: 17px; height: 1.5px; background: var(--st-ink); display: block; }

/* ==========================================================================
   Hero (home)
   ========================================================================== */
.st-hero { position: relative; min-height: min(90vh,780px); display: flex; align-items: flex-end; overflow: hidden; }
.st-hero-bg {
  position: absolute; inset: 0;
  background: linear-gradient(157deg,#EBD3C6 0%,#E6C1BB 46%,#C68C84 100%);
  background-size: cover; background-position: center;
}
.st-hero-scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(52,36,29,.62) 0%, rgba(52,36,29,.12) 46%, rgba(52,36,29,.05) 100%); }
.st-hero-content { position: relative; max-width: var(--st-maxw); width: 100%; margin: 0 auto; padding: 0 var(--st-pad) 74px; }
.st-hero-inner { max-width: 720px; }
.st-hero-kicker { font: 600 12px var(--st-font-sans); letter-spacing: .24em; text-transform: uppercase; color: #F2DFC9; margin-bottom: 22px; }
.st-hero-title { font: 500 clamp(44px,7vw,92px)/.98 var(--st-font-serif); color: var(--st-cream); margin: 0 0 22px; text-wrap: balance; }
.st-hero-sub { font: 400 clamp(16px,1.5vw,20px)/1.6 var(--st-font-sans); color: rgba(255,249,241,.9); max-width: 560px; margin: 0 0 34px; }
.st-hero-ctas { display: flex; flex-wrap: wrap; gap: 14px; }

/* ==========================================================================
   Trust strip
   ========================================================================== */
.st-trust {
  max-width: var(--st-maxw); margin: 0 auto; padding: 34px var(--st-pad);
  display: flex; flex-wrap: wrap; gap: 14px 40px; align-items: center; justify-content: center;
  border-bottom: 1px solid var(--st-border-soft);
}
.st-trust-item { display: flex; align-items: center; gap: 12px; }
.st-trust-num { font: 500 34px var(--st-font-serif); color: var(--st-gold); }
.st-trust-text { font: 500 14px var(--st-font-sans); color: var(--st-text); max-width: 120px; line-height: 1.3; }
.st-trust-line { font: 500 14px var(--st-font-sans); color: var(--st-text); display: flex; align-items: center; gap: 10px; }
.st-sep { width: 1px; height: 34px; background: rgba(180,146,79,.35); }

/* ==========================================================================
   Destination grid / card
   ========================================================================== */
.st-dest-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(255px,1fr)); gap: 24px; }
.st-dest-card { display: block; text-align: left; background: none; border: none; padding: 0; cursor: pointer; width: 100%; }
.st-dest-media { position: relative; height: 360px; border-radius: var(--st-radius-lg); overflow: hidden; }
.st-dest-img { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .7s ease; }
.st-dest-card:hover .st-dest-img { transform: scale(1.05); }
.st-dest-scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(52,36,29,.6), rgba(52,36,29,.05) 55%); }
.st-dest-caption { position: absolute; left: 20px; right: 20px; bottom: 18px; }
.st-dest-name { font: 500 30px var(--st-font-serif); color: var(--st-cream); margin: 0 0 4px; }
.st-dest-see { font: 600 12px var(--st-font-sans); letter-spacing: .14em; text-transform: uppercase; color: #F2DFC9; display: inline-flex; align-items: center; gap: 8px; }
.st-dest-phrase { font: 400 15px/1.55 var(--st-font-sans); color: var(--st-text); margin: 16px 4px 0; }

/* ==========================================================================
   Tour grid / card
   ========================================================================== */
.st-tour-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(320px,1fr)); gap: 26px; }
.st-tour-card {
  background: var(--st-card); border: 1px solid var(--st-border); border-radius: var(--st-radius-card);
  overflow: hidden; display: flex; flex-direction: column; transition: transform .3s, box-shadow .3s;
}
.st-tour-card:hover { transform: translateY(-4px); box-shadow: 0 26px 50px -30px rgba(59,43,34,.5); }
.st-tour-media { position: relative; height: 210px; background: linear-gradient(150deg,#EAD9C6,#D3B79E); background-size: cover; background-position: center; }
.st-tour-dest-badge {
  position: absolute; top: 13px; left: 13px; font: 600 11px var(--st-font-sans); letter-spacing: .1em;
  text-transform: uppercase; color: var(--st-ink); background: rgba(255,249,241,.9); padding: 5px 11px; border-radius: 999px;
}
.st-tour-body { padding: 22px 22px 24px; display: flex; flex-direction: column; flex: 1; }
.st-tour-name { font: 500 24px/1.15 var(--st-font-serif); color: var(--st-ink); margin: 0 0 14px; min-height: 56px; }
.st-tour-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; font: 500 13px var(--st-font-sans); color: var(--st-text); margin-bottom: 20px; }
.st-tour-meta span { display: inline-flex; align-items: center; gap: 6px; }
.st-tour-meta .st-ic { color: var(--st-gold); }
.st-tour-foot {
  margin-top: auto; display: flex; align-items: flex-end; justify-content: space-between; gap: 12px;
  padding-top: 16px; border-top: 1px solid var(--st-border-soft);
}
.st-tour-from { font: 500 11px var(--st-font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--st-gold); }
.st-tour-price { font: 500 26px var(--st-font-serif); color: var(--st-ink); }
.st-tour-price .woocommerce-Price-amount { font: inherit; color: inherit; }
.st-tour-actions { display: flex; gap: 9px; }
.st-tour-actions .st-btn { padding: 11px 16px; font-size: 13px; }

/* ==========================================================================
   Larisa / about section
   ========================================================================== */
.st-larisa { background: var(--st-larisa-bg); margin-top: clamp(56px,7vw,100px); }
.st-larisa-inner {
  max-width: var(--st-maxw); margin: 0 auto; padding: clamp(56px,7vw,100px) var(--st-pad);
  display: grid; grid-template-columns: 1fr 1.1fr; gap: clamp(30px,5vw,72px); align-items: center;
}
.st-larisa-media { position: relative; border-radius: var(--st-radius-lg); overflow: hidden; aspect-ratio: 4/5; background: linear-gradient(155deg,#E7CFC6,#C99089); background-size: cover; background-position: center; }
.st-larisa-title { font: 500 clamp(30px,3.6vw,50px)/1.05 var(--st-font-serif); color: var(--st-ink); margin: 0 0 24px; text-wrap: balance; }
.st-larisa-text { font: 400 clamp(16px,1.4vw,19px)/1.7 var(--st-font-sans); color: var(--st-text); margin: 0 0 30px; max-width: 560px; }

/* ==========================================================================
   Reviews
   ========================================================================== */
.st-review-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(290px,1fr)); gap: 24px; }
.st-review-card {
  background: var(--st-card); border: 1px solid var(--st-border); border-radius: var(--st-radius-lg);
  padding: 30px 28px; margin: 0; display: flex; flex-direction: column; gap: 18px;
}
.st-review-stars { color: var(--st-star); font-size: 15px; letter-spacing: 3px; }
.st-review-quote { font: 400 19px/1.55 var(--st-font-serif); color: var(--st-ink); margin: 0; flex: 1; }
.st-review-author { display: flex; align-items: center; gap: 12px; }
.st-review-avatar { width: 40px; height: 40px; border-radius: 999px; background: linear-gradient(150deg,#E7CFC6,#C99089) center/cover; flex: none; }
.st-review-name { font: 600 14px var(--st-font-sans); color: var(--st-ink); }

/* ==========================================================================
   Final CTA
   ========================================================================== */
.st-cta { max-width: var(--st-maxw); margin: clamp(30px,5vw,70px) auto 0; padding: 0 var(--st-pad); }
.st-cta-inner {
  position: relative; border-radius: var(--st-radius-xl); overflow: hidden;
  background: linear-gradient(150deg,#3B2B22,#5A4034); padding: clamp(44px,6vw,84px); text-align: center;
}
.st-cta-kicker { font: 600 12px var(--st-font-sans); letter-spacing: .24em; text-transform: uppercase; color: var(--st-gold-light); margin-bottom: 18px; }
.st-cta-title { font: 500 clamp(32px,4.4vw,58px)/1.05 var(--st-font-serif); color: var(--st-cream); margin: 0 auto 20px; max-width: 640px; text-wrap: balance; }
.st-cta-text { font: 400 clamp(16px,1.4vw,19px)/1.65 var(--st-font-sans); color: rgba(255,249,241,.82); max-width: 520px; margin: 0 auto 34px; }
.st-cta-actions { display: flex; flex-wrap: wrap; gap: 14px; justify-content: center; }

/* ==========================================================================
   Footer
   ========================================================================== */
.st-footer { background: var(--st-footer-bg); color: var(--st-footer-text); margin-top: clamp(60px,8vw,120px); }
.st-footer-inner { max-width: var(--st-maxw); margin: 0 auto; padding: clamp(48px,6vw,80px) var(--st-pad) 40px; display: grid; grid-template-columns: 1.4fr 1fr 1fr; gap: 44px; }
.st-footer-logo { font: 600 26px var(--st-font-serif); margin-bottom: 2px; }
.st-footer-logo span { font: 600 11px var(--st-font-sans); letter-spacing: .4em; color: var(--st-gold-light); vertical-align: middle; }
.st-footer-about { font: 400 15px/1.65 var(--st-font-sans); color: rgba(233,222,210,.72); max-width: 340px; margin: 16px 0 0; }
.st-footer-h4 { font: 600 12px var(--st-font-sans); letter-spacing: .18em; text-transform: uppercase; color: var(--st-gold-light); margin: 0 0 18px; }
.st-footer-links { display: flex; flex-direction: column; gap: 11px; }
.st-footer-links a, .st-footer-links button {
  background: none; border: none; text-align: left; color: rgba(233,222,210,.82); font: 400 15px var(--st-font-sans); cursor: pointer; padding: 0;
}
.st-footer-links a:hover, .st-footer-links button:hover { color: #fff; }
.st-footer-whats {
  margin-top: 6px; align-self: flex-start; background: transparent; border: 1px solid rgba(233,222,210,.35);
  color: var(--st-footer-text); border-radius: 999px; padding: 10px 18px; font: 600 13px var(--st-font-sans);
  cursor: pointer; display: inline-flex; align-items: center; gap: 9px;
}
.st-footer-whats:hover { background: rgba(233,222,210,.1); }
.st-footer-bottom { max-width: var(--st-maxw); margin: 0 auto; padding: 20px var(--st-pad) 30px; border-top: 1px solid rgba(233,222,210,.14); font: 400 13px var(--st-font-sans); color: rgba(233,222,210,.55); }

/* ==========================================================================
   Cart drawer
   ========================================================================== */
.st-drawer-overlay { position: fixed; inset: 0; background: rgba(52,36,29,.42); z-index: 80; animation: skFade .25s ease; }
.st-drawer-overlay[hidden] { display: none; }
.st-cart-drawer {
  position: fixed; top: 0; right: 0; height: 100%; width: min(420px,92vw); background: var(--st-bg); z-index: 81;
  box-shadow: -30px 0 80px -30px rgba(52,36,29,.6); display: flex; flex-direction: column; animation: skFade .3s ease;
  transform: translateX(0);
}
.st-cart-drawer[hidden] { display: none; }
.st-drawer-head { display: flex; align-items: center; justify-content: space-between; padding: 26px 26px 20px; border-bottom: 1px solid var(--st-border); }
.st-drawer-title { font: 500 26px var(--st-font-serif); color: var(--st-ink); margin: 0; }
.st-drawer-close { background: none; border: none; font-size: 22px; color: var(--st-text-2); cursor: pointer; line-height: 1; }
.st-drawer-body { flex: 1; overflow-y: auto; padding: 22px 26px; }
.st-cart-item { display: flex; gap: 14px; align-items: center; background: var(--st-card); border: 1px solid var(--st-border); border-radius: 14px; padding: 14px; margin-bottom: 14px; }
.st-cart-item-thumb { width: 52px; height: 52px; border-radius: 10px; background: linear-gradient(150deg,#EAD9C6,#D3B79E) center/cover; flex: none; }
.st-cart-item-name { font: 500 16px/1.25 var(--st-font-serif); color: var(--st-ink); }
.st-cart-item-price { font: 600 13px var(--st-font-sans); color: var(--st-gold); margin-top: 3px; }
.st-cart-item-remove { background: none; border: none; color: #B79A88; cursor: pointer; font-size: 16px; text-decoration: none; }
.st-cart-empty { text-align: center; padding: 60px 20px; color: var(--st-text-2); }
.st-cart-empty-icon { font-size: 40px; color: rgba(180,146,79,.5); margin-bottom: 16px; }
.st-cart-empty-text { font: 400 17px/1.5 var(--st-font-serif); color: var(--st-text); margin: 0; }
.st-drawer-foot { padding: 22px 26px 28px; border-top: 1px solid var(--st-border); display: flex; flex-direction: column; gap: 11px; }
.st-drawer-foot .st-btn { width: 100%; justify-content: center; padding: 16px; }
.st-drawer-foot .st-btn-outline { padding: 15px; }

/* ==========================================================================
   Mobile drawer
   ========================================================================== */
.st-mobile-nav {
  position: fixed; top: 0; right: 0; height: 100%; width: min(360px,88vw); background: var(--st-bg); z-index: 91;
  padding: 26px; display: flex; flex-direction: column; gap: 6px; animation: skFade .3s ease;
}
.st-mobile-nav[hidden] { display: none; }
.st-mobile-close { align-self: flex-end; background: none; border: none; font-size: 24px; color: var(--st-text-2); cursor: pointer; margin-bottom: 14px; }
.st-mobile-lang-switch {
  display: flex; align-items: center; gap: 8px; border: 1px solid var(--st-border-strong);
  border-radius: 999px; padding: 4px; margin-bottom: 18px; align-self: flex-start;
}
.st-mobile-lang-switch .st-lang-btn { padding: 9px 20px; font-size: 13px; }
.st-mobile-link {
  text-align: left; background: none; border: none; font: 500 20px var(--st-font-serif); color: var(--st-ink);
  padding: 13px 4px; cursor: pointer; display: block; width: 100%;
}
.st-mobile-link + .st-mobile-link { border-top: 1px solid rgba(180,146,79,.2); }
.st-mobile-dest {
  text-align: left; background: none; border: none; font: 500 19px var(--st-font-serif); color: var(--st-ink);
  padding: 11px 4px 11px 20px; cursor: pointer; display: flex; align-items: center; gap: 12px; width: 100%;
}
.st-mobile-swatch { width: 20px; height: 20px; border-radius: 6px; flex: none; }
.st-mobile-cta { margin-top: 18px; padding: 16px; background: var(--st-ink); color: var(--st-cream-2); border: none; border-radius: 12px; font: 600 15px var(--st-font-sans); cursor: pointer; display: flex; align-items: center; justify-content: center; gap: 10px; }
.st-mobile-overlay { position: fixed; inset: 0; background: rgba(52,36,29,.42); z-index: 90; animation: skFade .2s ease; }
.st-mobile-overlay[hidden] { display: none; }

/* ==========================================================================
   WhatsApp float
   ========================================================================== */
.st-whats-float {
  position: fixed; bottom: 24px; right: 24px; z-index: 70; width: 58px; height: 58px; border-radius: 999px;
  background: var(--st-ink); color: var(--st-cream); border: none; cursor: pointer;
  box-shadow: 0 16px 34px -14px rgba(52,36,29,.7); display: flex; align-items: center; justify-content: center;
  font-size: 24px; transition: transform .25s;
}
.st-whats-float:hover { transform: scale(1.08); }
.st-whats-float .st-dot { position: absolute; top: 12px; right: 12px; box-shadow: 0 0 0 3px var(--st-ink); }

/* ==========================================================================
   Breadcrumb (destination + tour pages)
   ========================================================================== */
.st-breadcrumb { display: flex; gap: 9px; font: 500 13px var(--st-font-sans); }
.st-breadcrumb a, .st-breadcrumb button { background: none; border: none; color: inherit; cursor: pointer; font: inherit; padding: 0; }
.st-breadcrumb a:hover, .st-breadcrumb button:hover { text-decoration: underline; }

/* ==========================================================================
   Destination archive page
   ========================================================================== */
.st-dest-hero { position: relative; min-height: min(64vh,520px); display: flex; align-items: flex-end; overflow: hidden; }
.st-dest-hero-bg { position: absolute; inset: 0; background-size: cover; background-position: center; }
.st-dest-hero-scrim { position: absolute; inset: 0; background: linear-gradient(to top, rgba(52,36,29,.66), rgba(52,36,29,.1) 60%); }
.st-dest-hero-content { position: relative; max-width: var(--st-maxw); width: 100%; margin: 0 auto; padding: 0 var(--st-pad) 54px; }
.st-dest-hero .st-breadcrumb { color: rgba(255,249,241,.75); margin-bottom: 14px; }
.st-dest-hero-title { font: 500 clamp(44px,6.5vw,88px)/1 var(--st-font-serif); color: var(--st-cream); margin: 0; }

.st-dest-desc { max-width: 900px; margin: 0 auto; padding: clamp(46px,6vw,80px) var(--st-pad) 20px; text-align: center; }
.st-dest-desc-kicker { font: 600 12px var(--st-font-sans); letter-spacing: .24em; text-transform: uppercase; color: var(--st-gold); margin-bottom: 18px; }
.st-dest-desc-text { font: 400 clamp(19px,2vw,26px)/1.6 var(--st-font-serif); color: var(--st-ink); margin: 0; }

.st-programs { max-width: var(--st-maxw); margin: 0 auto; padding: clamp(40px,5vw,72px) var(--st-pad) 40px; }
.st-programs-title { font: 500 clamp(26px,3.4vw,42px) var(--st-font-serif); color: var(--st-ink); margin: 0 0 34px; }

/* ==========================================================================
   Single product (tour) page
   ========================================================================== */
.st-tour-page { max-width: var(--st-maxw); margin: 0 auto; padding: 26px var(--st-pad) 40px; }
.st-tour-page .st-breadcrumb { color: var(--st-text-2); margin-bottom: 22px; }
.st-tour-page .st-breadcrumb .current { color: var(--st-ink); }

.st-tour-grid-main { display: grid; grid-template-columns: 1.35fr .85fr; gap: clamp(24px,3vw,44px); align-items: start; }

.st-gallery-main {
  position: relative; height: min(52vh,460px); border-radius: var(--st-radius-lg); overflow: hidden;
  background: linear-gradient(150deg,#EAD9C6,#D3B79E); background-size: cover; background-position: center; margin-bottom: 14px;
}
.st-gallery-play {
  position: absolute; left: 50%; top: 50%; transform: translate(-50%,-50%); width: 66px; height: 66px;
  border-radius: 999px; background: rgba(255,249,241,.9); display: flex; align-items: center; justify-content: center;
  font-size: 22px; color: var(--st-ink); border: none; cursor: pointer;
}
.st-gallery-thumbs { display: grid; grid-template-columns: repeat(4,1fr); gap: 12px; }
.st-gallery-thumb {
  height: 78px; border-radius: 11px; background: linear-gradient(150deg,#EAD9C6,#D3B79E); background-size: cover;
  background-position: center; border: none; cursor: pointer; padding: 0;
}

.st-booking-card {
  position: sticky; top: 96px; background: var(--st-card); border: 1px solid var(--st-border-strong);
  border-radius: var(--st-radius-lg); padding: 30px 28px;
}
.st-booking-dest { font: 600 11px var(--st-font-sans); letter-spacing: .14em; text-transform: uppercase; color: var(--st-gold); margin-bottom: 10px; }
.st-booking-title { font: 500 30px/1.1 var(--st-font-serif); color: var(--st-ink); margin: 0 0 22px; }
.st-booking-facts { display: flex; flex-direction: column; gap: 14px; padding: 20px 0; border-top: 1px solid var(--st-border); border-bottom: 1px solid var(--st-border); margin-bottom: 22px; }
.st-booking-fact { display: flex; justify-content: space-between; gap: 14px; }
.st-booking-fact-label { font: 500 13px var(--st-font-sans); color: var(--st-text-2); }
.st-booking-fact-value { font: 600 14px var(--st-font-sans); color: var(--st-ink); text-align: right; max-width: 60%; }
.st-booking-price-row { display: flex; align-items: baseline; gap: 8px; margin-bottom: 20px; flex-wrap: wrap; }
.st-booking-from { font: 500 12px var(--st-font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--st-gold); }
.st-booking-price { font: 500 38px var(--st-font-serif); color: var(--st-ink); }
.st-booking-price .woocommerce-Price-amount { font: inherit; color: inherit; }
.st-booking-per { font: 500 13px var(--st-font-sans); color: var(--st-text-2); }

/* Real WooCommerce add-to-cart form/button, restyled as the prototype's pill button */
.st-booking-card form.cart { margin: 0 0 11px; }
.st-booking-card form.cart .quantity { display: none; }
.st-booking-card form.cart button.single_add_to_cart_button,
.st-booking-card .st-addcart-btn {
  width: 100%; padding: 16px; background: var(--st-ink); color: var(--st-cream-2); border: none; border-radius: 12px;
  font: 600 15px var(--st-font-sans); cursor: pointer; transition: background .25s; text-align: center; display: block;
}
.st-booking-card form.cart button.single_add_to_cart_button:hover { background: var(--st-ink-hover); }
.st-ask-whats-btn {
  width: 100%; padding: 15px; background: transparent; color: var(--st-ink); border: 1px solid rgba(59,43,34,.3);
  border-radius: 12px; font: 600 14px var(--st-font-sans); cursor: pointer; display: flex; align-items: center;
  justify-content: center; gap: 10px;
}
.st-ask-whats-btn:hover { background: #F6ECE0; }

.st-tour-program { max-width: 820px; margin: clamp(46px,6vw,80px) 0 0; }
.st-tour-program-title { font: 500 clamp(26px,3.4vw,42px) var(--st-font-serif); color: var(--st-ink); margin: 0 0 34px; }
.st-day-row { display: grid; grid-template-columns: 76px 1fr; gap: 22px; padding: 24px 0; border-top: 1px solid var(--st-border-soft); }
.st-day-label { font: 500 12px var(--st-font-sans); letter-spacing: .1em; text-transform: uppercase; color: var(--st-gold); padding-top: 5px; }
.st-day-title { font: 500 23px var(--st-font-serif); color: var(--st-ink); margin: 0 0 8px; }
.st-day-text { font: 400 15px/1.65 var(--st-font-sans); color: var(--st-text); margin: 0; }
.st-day-text p:first-child { margin-top: 0; }
.st-day-text p:last-child { margin-bottom: 0; }

/* ==========================================================================
   Generic empty state
   ========================================================================== */
.st-empty { color: var(--st-text); font: 400 16px var(--st-font-sans); padding: 20px 4px; }

/* ==========================================================================
   Responsive
   ========================================================================== */
@media (max-width: 900px) {
  .st-larisa-inner { grid-template-columns: 1fr; }
  .st-tour-grid-main { grid-template-columns: 1fr; }
  .st-booking-card { position: static; }
  .st-footer-inner { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 780px) {
  .st-nav, .st-lang-switch { display: none !important; }
  .st-burger { display: flex; }
  .st-footer-inner { grid-template-columns: 1fr; }
  .st-gallery-thumbs { grid-template-columns: repeat(4,1fr); }
}
@media (max-width: 560px) {
  .st-dest-media { height: 280px; }
  .st-cta-actions, .st-hero-ctas { flex-direction: column; align-items: stretch; }
  .st-day-row { grid-template-columns: 1fr; gap: 6px; }
}
