/* ============================================================
   TRIPSORB — Homepage v2 (reference-grade, brand-native)
   Uses brand tokens from brand.css. Every .ph is a CMS image slot.
   ============================================================ */
:root{
  --hgrad-1:linear-gradient(135deg,#FF5B41,#FFB155);
  --hgrad-2:linear-gradient(135deg,#0FB5A6,#14213D);
  --hgrad-3:linear-gradient(140deg,#FF7A5C,#B23A86 60%,#14213D);
  --hgrad-4:linear-gradient(135deg,#14213D,#0FB5A6);
  --hgrad-5:linear-gradient(135deg,#FFB155,#FF5B41 70%,#B23A86);
  --hshadow:0 24px 60px -24px rgba(20,33,61,.45);
  --hsoft:0 12px 30px -12px rgba(20,33,61,.18);
}
.home2{background:var(--ts-bg);color:var(--ts-ink);overflow-x:hidden}
.home2 .wrap{max-width:1200px;margin:0 auto;padding:0 24px}
.home2 img{display:block;max-width:100%}
.ph{background-size:cover;background-position:center;background-repeat:no-repeat}
.eyebrow{font-size:12px;font-weight:800;letter-spacing:.16em;text-transform:uppercase;color:var(--ts-coral)}
.home2 h2.sec{font-family:var(--font-disp);font-weight:500;font-size:clamp(28px,4vw,44px);line-height:1.08;margin:.3em 0 0;letter-spacing:-.01em}
.home2 .lead{color:var(--ts-slate);font-size:16px;line-height:1.7}
.btn-grad{background:var(--hgrad-1);color:#fff;border:none;border-radius:var(--r-md);padding:14px 26px;font-weight:700;font-size:14.5px;
  display:inline-flex;align-items:center;gap:9px;cursor:pointer;text-decoration:none;white-space:nowrap;box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 10px 24px -10px rgba(255,91,65,.7);transition:.18s}
.btn-grad:hover{transform:translateY(-2px);box-shadow:inset 0 1px 0 rgba(255,255,255,.4),0 16px 30px -10px rgba(255,91,65,.8)}
.btn-line{background:rgba(255,255,255,.14);color:#fff;border:1.5px solid rgba(255,255,255,.55);border-radius:var(--r-md);padding:13px 24px;font-weight:700;font-size:14.5px;display:inline-flex;align-items:center;gap:9px;text-decoration:none;white-space:nowrap;backdrop-filter:blur(10px) saturate(1.2);-webkit-backdrop-filter:blur(10px) saturate(1.2);box-shadow:inset 0 1px 0 rgba(255,255,255,.25);transition:.18s}
.btn-line:hover{background:rgba(255,255,255,.24)}
.round-arrow{width:46px;height:46px;border-radius:50%;border:1.5px solid var(--ts-line);background:#fff;display:inline-flex;align-items:center;justify-content:center;color:var(--ts-ink);cursor:pointer;transition:.16s;text-decoration:none;font-size:18px}
.round-arrow:hover{background:var(--ts-coral);color:#fff;border-color:var(--ts-coral)}

/* ---------- topbar ---------- */
.h-top{background:transparent;color:#e6ecf6;font-size:13px;position:absolute;top:0;left:0;right:0;z-index:5}
.h-top .wrap{display:flex;align-items:center;justify-content:space-between;height:42px}
.h-top a{color:#cbd3e2;text-decoration:none}
.h-top .l{display:flex;gap:22px;align-items:center}
.h-top .r{display:flex;gap:16px;align-items:center}
.h-top .r a:hover,.h-top .l a:hover{color:#fff}

/* ---------- hero ---------- */
.hero2{position:relative;min-height:660px;display:flex;flex-direction:column;color:#fff;isolation:isolate}
@property --ha{syntax:"<color>";inherits:false;initial-value:rgba(255,91,65,.7)}@property --hb{syntax:"<color>";inherits:false;initial-value:rgba(45,156,142,.62)}@property --hc{syntax:"<color>";inherits:false;initial-value:rgba(178,58,134,.66)}@property --hd{syntax:"<color>";inherits:false;initial-value:rgba(255,158,107,.58)}.hero2 .bg{position:absolute;inset:0;z-index:-2;background:radial-gradient(62% 62% at 14% 20%,var(--ha,rgba(255,91,65,.7)) 0%,transparent 60%),radial-gradient(58% 58% at 86% 16%,var(--hb,rgba(45,156,142,.62)) 0%,transparent 60%),radial-gradient(64% 64% at 84% 86%,var(--hc,rgba(178,58,134,.66)) 0%,transparent 62%),radial-gradient(58% 58% at 15% 88%,var(--hd,rgba(255,158,107,.58)) 0%,transparent 60%),linear-gradient(140deg,#1b2b4d 0%,#14213D 55%,#0d1526 100%);animation:heroAurora 16s ease-in-out infinite}
@keyframes heroAurora{0%,100%{--ha:rgba(255,91,65,.7);--hb:rgba(45,156,142,.62);--hc:rgba(178,58,134,.66);--hd:rgba(255,158,107,.58)}33%{--ha:rgba(178,58,134,.66);--hb:rgba(255,91,65,.7);--hc:rgba(45,156,142,.62);--hd:rgba(255,177,85,.6)}66%{--ha:rgba(45,156,142,.62);--hb:rgba(178,58,134,.66);--hc:rgba(255,158,107,.62);--hd:rgba(255,91,65,.64)}}
@media(prefers-reduced-motion:reduce){.hero2 .bg{animation:none}}
.hero2 .bg::after{content:"";position:absolute;inset:0;background:linear-gradient(105deg,rgba(13,21,38,.72) 0%,rgba(13,21,38,.34) 44%,rgba(13,21,38,.06) 100%)}
.hero2 .bg .ph{position:absolute;inset:0;opacity:.92}
.h-nav{position:relative;z-index:3;padding-top:42px}
.h-nav .wrap{display:flex;align-items:center;justify-content:space-between;height:76px;gap:24px}
.h-logo{font-family:var(--font-disp);font-weight:600;font-size:24px;color:#fff;text-decoration:none;letter-spacing:-.01em}
.h-logo .pin{display:inline-block;width:8px;height:8px;border-radius:50%;background:var(--ts-coral);margin-left:2px;vertical-align:6px}
.h-menu{display:flex;gap:30px;align-items:center}
.h-menu a{color:#eef1f6;text-decoration:none;font-size:14.5px;font-weight:600;position:relative;padding:6px 0}
.h-menu a.on::after,.h-menu a:hover::after{content:"";position:absolute;left:0;right:0;bottom:0;height:2px;background:var(--ts-coral)}
.h-actions{display:flex;gap:14px;align-items:center}
.h-actions .ic{color:#fff;font-size:20px;display:inline-flex;text-decoration:none}
.h-burger{display:none;background:none;border:none;color:#fff;font-size:26px;cursor:pointer}
.hero2 .inner{flex:1;display:flex;align-items:center}
.hero2 .inner .wrap{width:100%;position:relative}
.hero2 .htext{max-width:560px}
.hero2 .htext h1{font-family:var(--font-disp);font-weight:500;font-size:clamp(44px,7vw,82px);line-height:1;margin:0 0 16px;letter-spacing:-.02em}
.hero2 .htext p{font-size:18px;color:#e7ecf3;margin:0 0 28px;max-width:430px}
.hero2 .hbtns{display:flex;gap:14px;flex-wrap:wrap}
.hero2 .htag{position:absolute;right:0;bottom:8px;display:flex;align-items:center;gap:12px;color:#eef1f6;font-size:14px;max-width:240px}
.hero2 .htag .pin{width:42px;height:42px;border-radius:50%;background:rgba(255,255,255,.16);display:flex;align-items:center;justify-content:center;font-size:20px;flex:none;border:1px solid rgba(255,255,255,.3)}
.hero2 .dots{position:absolute;right:34px;top:50%;transform:translateY(-50%);display:flex;flex-direction:column;gap:11px;z-index:3}
.hero2 .dots span{width:9px;height:9px;border-radius:50%;background:rgba(255,255,255,.4);cursor:pointer}
.hero2 .dots span.on{background:#fff;box-shadow:0 0 0 4px rgba(255,255,255,.18)}

/* ---------- direction circles ---------- */
.dirs{background:var(--ts-ink);padding:30px 0 46px}
.dirs .row{display:flex;gap:18px;justify-content:space-between;flex-wrap:wrap}
.dir{flex:1;min-width:120px;display:flex;flex-direction:column;align-items:center;gap:12px;text-decoration:none;color:#dfe5ee}
.dir .c{width:84px;height:84px;border-radius:50%;background:var(--hgrad-1);display:flex;align-items:center;justify-content:center;font-size:30px;color:#fff;box-shadow:0 14px 30px -12px rgba(0,0,0,.6);border:3px solid rgba(255,255,255,.12);transition:.18s}
.dir:nth-child(2) .c{background:var(--hgrad-2)} .dir:nth-child(3) .c{background:var(--hgrad-5)}
.dir:nth-child(4) .c{background:var(--hgrad-4)} .dir:nth-child(5) .c{background:var(--hgrad-3)}
.dir:hover .c{transform:translateY(-4px)}
.dir .lbl{font-size:13.5px;font-weight:600;text-align:center;line-height:1.3}
.dir.more .c{background:transparent;border:1.5px dashed rgba(255,255,255,.4)}

/* ---------- section header ---------- */
.sechead{display:flex;align-items:flex-end;justify-content:space-between;gap:20px;margin-bottom:30px;flex-wrap:wrap}
.sechead .nav{display:flex;gap:10px;align-items:center}

/* ---------- popular tour cards ---------- */
.tours{padding:64px 0;background:var(--ts-ink);color:#fff}
.tours .sechead h2{color:#fff}
.tours .grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.tcard{position:relative;border-radius:20px;overflow:hidden;min-height:340px;display:flex;align-items:flex-end;box-shadow:var(--hshadow)}
.tcard .ph{position:absolute;inset:0;background-image:var(--hgrad-3)}
.tcard:nth-child(2) .ph{background-image:var(--hgrad-2)}
.tcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,33,61,0) 30%,rgba(20,33,61,.88) 100%)}
.tcard .body{position:relative;z-index:2;padding:26px;color:#fff;width:100%}
.tcard .stars{color:#FFB155;font-size:13px;letter-spacing:1px;margin-bottom:8px;display:flex;align-items:center;gap:8px}
.tcard .stars small{color:#cdd5e2}
.tcard h3{font-family:var(--font-disp);font-weight:500;font-size:23px;margin:0 0 8px}
.tcard p{color:#d6dce6;font-size:14px;line-height:1.55;margin:0 0 14px;max-width:90%}
.tcard .meta{display:flex;align-items:center;gap:8px;color:#cdd5e2;font-size:13.5px}
.tcard .badge-off{position:absolute;top:18px;left:18px;z-index:3;background:var(--ts-coral);color:#fff;font-weight:800;font-size:12px;padding:6px 13px;border-radius:999px}

/* ---------- 3 promises ---------- */
.promises{background:var(--ts-ink);padding:40px 0 70px}
.promises .row{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}
.promise{display:flex;gap:16px;align-items:center;color:#dfe5ee}
.promise .c{width:70px;height:70px;border-radius:50%;flex:none;background:var(--hgrad-1);background-size:cover;background-position:center;display:flex;align-items:center;justify-content:center;color:#fff;font-size:26px}
.promise:nth-child(2) .c{background-image:var(--hgrad-2)} .promise:nth-child(3) .c{background-image:var(--hgrad-4)}
.promise h4{font-size:16px;margin:0 0 4px;color:#fff}
.promise p{font-size:13.5px;color:#aeb7c7;margin:0;line-height:1.5}

/* ---------- search tour ---------- */
.searchwrap{background:linear-gradient(180deg,var(--ts-ink) 0 90px,var(--ts-bg) 90px 100%)}
.searchcard{background:#fff;border-radius:24px;box-shadow:var(--hshadow);padding:40px;position:relative}
.searchcard h2{font-family:var(--font-disp);font-weight:500;font-size:clamp(26px,3.4vw,36px);line-height:1.1;margin:.3em 0 26px;max-width:440px}
.searchform{display:grid;grid-template-columns:2fr 1fr 1fr 1fr 1fr auto;gap:0;border:1px solid var(--ts-line);border-radius:16px;overflow:hidden}
.searchform .f{padding:14px 16px;border-right:1px solid var(--ts-line);display:flex;flex-direction:column;gap:3px;min-width:0}
.searchform .f label{font-size:11px;font-weight:700;color:var(--ts-slate);text-transform:uppercase;letter-spacing:.08em}
.searchform .f input,.searchform .f select{border:none;outline:none;font-size:14px;background:transparent;color:var(--ts-ink);width:100%}
.searchform .go{background:var(--hgrad-1);color:#fff;border:none;width:64px;display:flex;align-items:center;justify-content:center;font-size:22px;cursor:pointer}
.searchform .go:hover{filter:brightness(1.05)}

/* ---------- popular destinations (flag cards) ---------- */
.dests{padding:64px 0}
.destgrid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px;align-items:start}
.dcard{align-self:start;display:flex;flex-direction:column;background:linear-gradient(168deg,#fff 0%,#fffdfb 58%,#fdf9f4 100%);border:1px solid var(--ts-line);border-radius:18px;overflow:hidden;text-decoration:none;color:inherit;box-shadow:inset 0 1px 0 rgba(255,255,255,.95),inset 0 -1px 0 rgba(20,33,61,.03),0 1px 2px rgba(20,33,61,.05),0 8px 16px -8px rgba(20,33,61,.20),0 24px 44px -24px rgba(20,33,61,.42);transition:transform .24s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease}
.dcard:hover{transform:translateY(-6px);box-shadow:inset 0 1px 0 rgba(255,255,255,.95),0 2px 4px rgba(20,33,61,.06),0 16px 28px -10px rgba(20,33,61,.26),0 44px 70px -28px rgba(20,33,61,.52)}
.dcard .img{transition:transform .5s cubic-bezier(.2,.7,.2,1)}
.dcard:hover .img{transform:scale(1.04)}
.dcard .img{height:180px;position:relative;background-image:var(--hgrad-2)}
.dcard:nth-child(4n+2) .img{background-image:var(--hgrad-3)} .dcard:nth-child(4n+3) .img{background-image:var(--hgrad-5)} .dcard:nth-child(4n) .img{background-image:var(--hgrad-4)}
.dcard .flag{position:absolute;left:16px;bottom:-18px;width:40px;height:40px;border-radius:50%;border:3px solid #fff;box-shadow:var(--hsoft);background-size:cover;background-position:center;font-size:22px;display:flex;align-items:center;justify-content:center;background-color:#fff}
.dcard .body{padding:26px 18px 18px;display:flex;flex-direction:column;flex:1}
.dcard h3{font-family:var(--font-disp);font-weight:500;font-size:21px;margin:0 0 7px}
.dcard p{font-size:13px;color:var(--ts-slate);line-height:1.55;margin:0 0 14px;min-height:54px}
.dcard .foot,.dcard>.body>.foot{display:flex;align-items:center;justify-content:space-between;background:transparent;color:inherit;border-top:1px solid var(--ts-line);padding:12px 0 0;margin-top:auto}
.dcard .foot .n{color:var(--ts-coral);font-weight:700;font-size:13px}
.dcard .foot .v{color:var(--ts-slate);font-weight:600;font-size:13px}

/* ---------- operator + country boxes ---------- */
.operator{padding:64px 0}
.operator .top{display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:start;margin-bottom:34px}
.operator h2{margin-top:.3em}
.operator .cols{column-gap:34px}
.cboxes{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}
.cbox{position:relative;height:130px;border-radius:14px;overflow:hidden;display:flex;align-items:flex-end;text-decoration:none;isolation:isolate;box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 1px 2px rgba(20,33,61,.06),0 8px 16px -8px rgba(20,33,61,.28),0 22px 40px -22px rgba(20,33,61,.5);transition:transform .24s cubic-bezier(.2,.7,.2,1),box-shadow .28s ease}
.cbox:hover{transform:translateY(-5px);box-shadow:inset 0 1px 0 rgba(255,255,255,.35),0 2px 4px rgba(20,33,61,.08),0 16px 26px -10px rgba(20,33,61,.34),0 40px 64px -26px rgba(20,33,61,.6)}
.cbox .ph{transition:transform .55s cubic-bezier(.2,.7,.2,1)}
.cbox:hover .ph{transform:scale(1.06)}
.cbox .ph{position:absolute;inset:0;background-image:var(--hgrad-4)}
.cbox:nth-child(2n) .ph{background-image:var(--hgrad-3)} .cbox:nth-child(3n) .ph{background-image:var(--hgrad-5)} .cbox:nth-child(5n) .ph{background-image:var(--hgrad-2)}
.cbox::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,33,61,0) 40%,rgba(20,33,61,.8))}
.cbox span{position:relative;z-index:2;color:#fff;font-weight:700;font-size:14px;padding:14px}

/* ---------- discount banner ---------- */
.discount{position:relative;min-height:440px;display:flex;align-items:center;color:#fff;isolation:isolate;margin:20px 0}
.discount .ph{position:absolute;inset:0;z-index:-2;background-image:var(--hgrad-4)}
.discount::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(20,33,61,.78) 0 45%,rgba(20,33,61,.25))}
.discount .box{max-width:520px}
.discount .tag{display:inline-flex;align-items:center;gap:12px;margin-bottom:10px}
.discount .tag b{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:#FFB155}
.discount .off{background:var(--ts-coral);color:#fff;font-weight:800;font-size:12px;padding:5px 12px;border-radius:999px}
.discount h2{font-family:var(--font-disp);font-weight:500;font-size:clamp(30px,4vw,46px);margin:0 0 14px}
.discount p{color:#e7ecf3;font-size:15px;line-height:1.7;margin:0 0 24px}
.discount .hbtns{display:flex;gap:14px;flex-wrap:wrap}

/* ---------- blog ---------- */
.blog{padding:70px 0 30px;text-align:center}
.blog .head{max-width:620px;margin:0 auto 40px}
.blog .head .lead{margin-top:12px}
.bgrid{display:grid;grid-template-columns:1fr 1fr;gap:24px;text-align:left}
.bcard2{position:relative;min-height:300px;border-radius:20px;overflow:hidden;display:flex;align-items:flex-end;box-shadow:var(--hshadow);text-decoration:none}
.bcard2 .ph{position:absolute;inset:0;background-image:var(--hgrad-5)}
.bcard2:nth-child(2) .ph{background-image:var(--hgrad-2)}
.bcard2::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(20,33,61,0) 35%,rgba(20,33,61,.9))}
.bcard2 .body{position:relative;z-index:2;padding:26px;color:#fff}
.bcard2 .date{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:#cdd5e2;margin-bottom:8px}
.bcard2 h3{font-family:var(--font-disp);font-weight:500;font-size:22px;margin:0 0 8px}
.bcard2 p{font-size:14px;color:#d6dce6;margin:0;line-height:1.55}
.blog .allbtn{margin-top:34px}

/* ---------- big footer ---------- */
.foot2{position:relative;color:#cbd3e2;margin-top:30px;isolation:isolate}
.foot2 .ph{position:absolute;inset:0;z-index:-2;background:var(--ts-ink)}
.foot2 .topnav{border-bottom:1px solid rgba(255,255,255,.1)}
.foot2 .topnav .wrap{display:flex;align-items:center;justify-content:space-between;min-height:64px;flex-wrap:wrap;gap:14px;padding:12px 0}
.foot2 .topnav .r{flex:none}
.foot2 .topnav a{color:#e7ecf3;text-decoration:none;font-size:14px;font-weight:600;margin-right:24px}
.foot2 .topnav a:hover{color:var(--ts-coral)}
.foot2 .cols{display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr 1fr;gap:30px;padding:48px 0}
.foot2 .ts-logo2{font-family:var(--font-disp);font-weight:600;font-size:26px;color:#fff}
.foot2 .ts-logo2 .pin{display:inline-block;width:7px;height:7px;border-radius:50%;background:var(--ts-coral);margin-left:2px;vertical-align:5px}
.foot2 .fbrand>p{font-size:13.5px;line-height:1.6;color:#aeb9cd;margin:14px 0 0;max-width:300px}
.foot2 .fcontact{margin-top:10px}
.foot2 .fcontact a{color:#fff;font-weight:600;text-decoration:none}
.foot2 .fbtns{display:flex;flex-wrap:wrap;gap:10px;margin-top:16px}
.foot2 .fsocial{margin-top:16px;display:flex;gap:10px}
.foot2 .fprefs{display:flex;align-items:center;gap:14px;padding:20px 0;border-top:1px solid rgba(255,255,255,.1)}
.foot2 .lang-pill{display:inline-flex;align-items:center;gap:7px;font-size:13.5px;color:#e7ecf3;font-weight:600;border:1px solid rgba(255,255,255,.18);border-radius:10px;padding:8px 14px}
.foot2 .lang-pill i{color:#ff9e6b}
.foot2 .cols p{font-size:13.5px;line-height:1.7;color:#9aa6bd;margin:14px 0 0}
.foot2 h5{color:#fff;font-size:13px;letter-spacing:.04em;margin:0 0 16px}
.foot2 .cols ul{list-style:none;padding:0;margin:0}
.foot2 .cols li{margin-bottom:11px}
.foot2 .cols a{color:#aeb7c7;text-decoration:none;font-size:13.5px}
.foot2 .cols a:hover{color:#fff}
.foot2 .contacts div{font-size:13.5px;margin-bottom:8px;color:#aeb7c7}
.foot2 .contacts b{color:#fff;font-weight:600}
.foot2 .copy{border-top:1px solid rgba(255,255,255,.1);padding:18px 0;text-align:center;font-size:13px;color:#8a95ab}
.foot2 .copy b{color:var(--ts-coral)}

/* ---------- responsive ---------- */
@media(max-width:980px){
  .tours .grid,.operator .top,.bgrid{grid-template-columns:1fr}
  .destgrid{grid-template-columns:1fr 1fr;align-items:start}
  .cboxes{grid-template-columns:repeat(3,1fr)}
  .promises .row{grid-template-columns:1fr;gap:18px}
  .foot2 .cols{grid-template-columns:1fr 1fr}
  .searchform{grid-template-columns:1fr 1fr;border:none;gap:10px}
  .searchform .f{border:1px solid var(--ts-line);border-radius:12px}
  .searchform .go{width:100%;height:52px;border-radius:12px;grid-column:1/-1}
}
@media(max-width:680px){
  .h-menu,.h-top{display:none}.h-burger{display:block}.h-nav{padding-top:0}
  .h-menu.open{display:flex;flex-direction:column;align-items:stretch;position:absolute;left:0;right:0;top:76px;background:rgba(20,33,61,.92);backdrop-filter:blur(16px) saturate(1.2);-webkit-backdrop-filter:blur(16px) saturate(1.2);padding:8px 24px 16px;gap:0;box-shadow:0 26px 50px -22px rgba(0,0,0,.65);border-top:1px solid rgba(255,255,255,.12);z-index:60}
  .h-menu.open a{padding:14px 2px;border-bottom:1px solid rgba(255,255,255,.09)}
  .h-menu.open a:last-child{border-bottom:none}
  .h-menu.open a::after{display:none}
  .h-actions{gap:10px}
  .h-actions .btn-line{padding:9px 16px}
  .destgrid{grid-template-columns:1fr;align-items:start}.cboxes{grid-template-columns:1fr 1fr}
  .dcard{align-self:start}.dcard p{min-height:0}.dcard .body{padding:22px 18px 18px}
  .hero2 .htag{position:static;margin-top:24px}.hero2 .dots{display:none}
  .operator .top{gap:18px}.searchcard{padding:24px}
  .foot2 .cols{grid-template-columns:1fr}
}

/* heading colour overrides (brand.css sets headings to ink) */
.hero2 .htext h1{color:#fff;text-shadow:0 2px 24px rgba(20,33,61,.3)}
.tcard h3{color:#fff}
.discount h2{color:#fff}
.bcard2 h3{color:#fff}
.dcard h3,.operator h2,.blog h2,.searchcard h2{color:var(--ts-ink)}

/* official logo image */
.h-logo img{height:40px;width:auto;max-width:200px;object-fit:contain;display:block}
.foot2 .ts-logo2 img{height:34px;width:auto;max-width:170px;object-fit:contain;display:block}
@media(max-width:430px){
  .h-nav .wrap{gap:12px}
  .h-actions .ic[title="Sign in"]{display:none}
  .h-logo img{height:34px}
}

/* ============================================================
   v0.11.0 — interactivity & emotion
   ============================================================ */
/* scroll reveal */
.js [data-reveal]{opacity:0;transform:translateY(24px);transition:opacity .7s cubic-bezier(.2,.7,.2,1),transform .7s cubic-bezier(.2,.7,.2,1)}
.js [data-reveal].in{opacity:1;transform:none}
.js [data-reveal][data-d="1"]{transition-delay:.08s}.js [data-reveal][data-d="2"]{transition-delay:.16s}.js [data-reveal][data-d="3"]{transition-delay:.24s}
@media(prefers-reduced-motion:reduce){[data-reveal]{opacity:1;transform:none;transition:none}}

/* sticky compact header */
.stickybar{position:fixed;top:0;left:0;right:0;z-index:60;background:rgba(9,15,26,.82);backdrop-filter:saturate(140%) blur(14px);
  border-bottom:1px solid rgba(255,255,255,.08);transform:translateY(-100%);transition:transform .32s ease;will-change:transform}
.stickybar.show{transform:none}
.stickybar .wrap{display:flex;align-items:center;justify-content:space-between;height:62px}
.stickybar img{height:26px;width:auto}
.stickybar .m{display:flex;gap:24px;align-items:center}
.stickybar .m a{color:#dfe5ee;text-decoration:none;font-size:14px;font-weight:600}
.stickybar .m a:hover{color:#fff}
@media(max-width:780px){.stickybar .m{display:none}}

/* trust counters */
.trust{background:var(--ts-ink);padding:18px 0 54px}
.trust .row{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
.tstat{text-align:center;padding:22px 16px;border-radius:18px;background:linear-gradient(180deg,rgba(255,255,255,.05),rgba(255,255,255,.02));border:1px solid rgba(255,255,255,.07)}
.tstat .ic{width:46px;height:46px;border-radius:13px;margin:0 auto 12px;display:flex;align-items:center;justify-content:center;background:var(--hgrad-1);color:#fff;font-size:22px}
.tstat:nth-child(2) .ic{background:var(--hgrad-2)} .tstat:nth-child(3) .ic{background:var(--hgrad-5)} .tstat:nth-child(4) .ic{background:var(--hgrad-4)}
.tstat .num{font-family:var(--font-disp);font-weight:600;font-size:clamp(26px,3.4vw,40px);line-height:1;color:#fff;letter-spacing:-.02em}
.tstat .lbl{margin-top:8px;color:#aeb7c7;font-size:13.5px;font-weight:600;letter-spacing:.02em}

/* dream trip generator */
.dreamgen{position:relative;padding:74px 0;background:radial-gradient(1100px 460px at 50% -10%,rgba(255,91,65,.16),transparent 70%),var(--ts-ink);overflow:hidden}
.dreamgen::before{content:"";position:absolute;inset:0;background:radial-gradient(700px 320px at 85% 120%,rgba(15,181,166,.18),transparent 70%);z-index:0}
.dgwrap{position:relative;z-index:1;max-width:860px;margin:0 auto;text-align:center}
.dg-ey{display:inline-flex;align-items:center;gap:8px;color:#fff;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  padding:7px 15px;border-radius:999px;font-size:12.5px;font-weight:700;letter-spacing:.04em}
.dg-ey i{color:var(--ts-amber)}
.dreamgen h2{font-family:var(--font-disp);font-weight:500;font-size:clamp(30px,4.6vw,52px);color:#fff;line-height:1.05;margin:18px 0 12px;letter-spacing:-.01em}
.dreamgen .sub{color:#c4ccda;font-size:17px;max-width:560px;margin:0 auto 30px}
.dgbox{position:relative;background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.16);border-radius:22px;padding:10px 10px 10px 22px;
  display:flex;align-items:center;gap:12px;box-shadow:0 30px 70px -30px rgba(0,0,0,.7);backdrop-filter:blur(8px)}
.dgbox::after{content:"";position:absolute;inset:-1px;border-radius:22px;padding:1px;background:linear-gradient(120deg,rgba(255,91,65,.6),rgba(15,181,166,.5));
  -webkit-mask:linear-gradient(#000 0 0) content-box,linear-gradient(#000 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none;opacity:.7}
.dgbox i.lead-ic{color:var(--ts-amber);font-size:24px;flex:none}
.dgbox input{flex:1;background:transparent;border:none;outline:none;color:#fff;font-size:16px;min-width:0;padding:16px 0}
.dgbox input::placeholder{color:#9aa6bd}
.dgbox button{flex:none;background:var(--hgrad-1);color:#fff;border:none;border-radius:16px;padding:15px 24px;font-weight:700;font-size:15px;
  display:inline-flex;align-items:center;gap:9px;cursor:pointer;box-shadow:0 12px 26px -10px rgba(255,91,65,.8);transition:.18s}
.dgbox button:hover{transform:translateY(-2px)}
.dg-chips{display:flex;gap:10px;flex-wrap:wrap;justify-content:center;margin-top:20px}
.dg-chip{background:rgba(255,255,255,.06);border:1px solid rgba(255,255,255,.14);color:#dbe1ec;border-radius:999px;padding:9px 16px;font-size:13.5px;cursor:pointer;transition:.16s;display:inline-flex;align-items:center;gap:7px}
.dg-chip:hover{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.3)}
.dg-chip i{color:var(--ts-lagoon);font-size:15px}
.dg-note{margin-top:18px;color:#8e99b0;font-size:12.5px}
/* Dream-trip area: warm sand (#f7f1e7) + tactile depth (v0.152.0) */
.dreamgen{background:#f7f1e7 !important}
.dreamgen::before{background:radial-gradient(700px 320px at 85% 120%,rgba(45,156,142,.08),transparent 70%) !important}
.dg-ey{color:var(--ts-ink) !important;background:rgba(20,33,61,.05) !important;border-color:rgba(20,33,61,.12) !important;box-shadow:var(--tac-up-sm,0 6px 14px -10px rgba(20,33,61,.2))}
.dreamgen h2{color:var(--ts-ink) !important}
.dreamgen .sub{color:var(--ts-slate) !important}
.dgbox{background:#fff !important;border:1px solid rgba(20,33,61,.06) !important;border-radius:22px !important;box-shadow:0 34px 64px -26px rgba(20,33,61,.42),0 10px 22px -14px rgba(20,33,61,.22),inset 0 2px 0 rgba(255,255,255,.95),inset 0 -2px 4px rgba(184,170,146,.18) !important;backdrop-filter:none !important}
.dgbox input{color:var(--ts-ink) !important}
.dgbox input::placeholder{color:#9a8f7d !important}
.dgbox button{box-shadow:var(--tac-gloss,inset 0 1px 0 rgba(255,255,255,.5)),0 14px 28px -10px rgba(255,91,65,.75) !important;transition:transform .14s ease,box-shadow .18s ease !important}
.dgbox button:hover{transform:translateY(-2px)}
.dgbox button:active{transform:translateY(1px) scale(.99);box-shadow:var(--tac-press,inset 0 2px 8px rgba(150,40,20,.5)) !important}
.dg-chip{background:#fff !important;border:1px solid rgba(20,33,61,.10) !important;color:var(--ts-ink) !important;box-shadow:var(--tac-up-sm,0 8px 18px -12px rgba(20,33,61,.22)) !important}
.dg-chip:hover{border-color:var(--ts-coral) !important;color:var(--ts-coral) !important}
.dg-note{color:var(--ts-slate) !important}

/* why choose */
.why{padding:74px 0;background:var(--ts-bg)}
.why .head{text-align:center;max-width:620px;margin:0 auto 44px}
.why .head .lead{margin-top:12px}
.whygrid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.wcard{background:#fff;border:1px solid var(--ts-line);border-radius:18px;padding:28px 24px;box-shadow:var(--hsoft);transition:.2s;position:relative;overflow:hidden}
.wcard::before{content:"";position:absolute;left:0;top:0;height:3px;width:100%;background:var(--hgrad-1);transform:scaleX(0);transform-origin:left;transition:transform .3s ease}
.wcard:hover{transform:translateY(-6px);box-shadow:var(--hshadow)}
.wcard:hover::before{transform:scaleX(1)}
.wcard .ic{width:54px;height:54px;border-radius:15px;display:flex;align-items:center;justify-content:center;font-size:25px;color:#fff;background:var(--hgrad-1);margin-bottom:18px}
.wcard:nth-child(3n+2) .ic{background:var(--hgrad-2)} .wcard:nth-child(3n) .ic{background:var(--hgrad-5)}
.wcard h3{font-size:18px;margin:0 0 8px;color:var(--ts-ink)}
.wcard p{font-size:14px;color:var(--ts-slate);line-height:1.6;margin:0}

@media(max-width:980px){.trust .row{grid-template-columns:1fr 1fr}.whygrid{grid-template-columns:1fr 1fr}}
@media(max-width:680px){
  .trust .row,.whygrid{grid-template-columns:1fr}
  .dgbox{flex-direction:column;align-items:stretch;padding:16px}
  .dgbox input{padding:10px 4px}.dgbox button{width:100%;justify-content:center}.dgbox i.lead-ic{display:none}
}

/* ============================================================
   v0.12.1 — restored shared public chrome (site_header / site_footer).
   The homepage rewrite (v0.10.0) replaced the stylesheet these
   classes lived in, leaving every inner page (login, register,
   account, search, experience, …) unstyled. Scoped to .site pages
   so the redesigned homepage (.home2) is never affected.
   ============================================================ */
.site{background:#fff}
.site .container{max-width:1180px;margin:0 auto;padding:0 24px}
.site .sec{padding:64px 0}
.site .sec-head{margin-bottom:30px}
.site .sec-head h2{font-size:30px;font-weight:800;letter-spacing:-.02em;margin:0 0 6px}
.site .sec-head .disp{font-family:var(--font-disp);font-weight:500}
.site .sec-head p{color:var(--ts-slate);margin:0;font-size:15px}
.site .sec-head .row{display:flex;align-items:flex-end;justify-content:space-between;gap:16px;flex-wrap:wrap}
.site .link-more{color:var(--ts-lagoon-600);font-weight:700;font-size:14px;white-space:nowrap}

.site .nav{position:sticky;top:0;z-index:40;background:rgba(255,255,255,.92);backdrop-filter:blur(10px);border-bottom:1px solid var(--ts-line);transition:box-shadow .2s}
.site .nav .inner{display:flex;align-items:center;gap:18px;height:68px}
.site .nav .ts-logo{font-size:23px}
.site .nav .ts-logo img{height:36px;width:auto;display:block}
.site .nav-links{display:flex;gap:14px;margin-left:8px}
.site .nav-links a{color:var(--ts-ink);font-weight:600;font-size:13px;white-space:nowrap}
.site .nav-links a:hover{color:var(--ts-coral);text-decoration:none}
.site .nav-right{margin-left:auto;display:flex;align-items:center;gap:12px}
.site .nav.scrolled{box-shadow:0 4px 20px rgba(20,33,61,.07)}
.site .nav-toggle{display:none;background:none;border:none;font-size:26px;color:var(--ts-ink);cursor:pointer;margin-left:auto;line-height:1}
.site .nav-mobile{display:none}

.site .foot{background:var(--ts-ink);color:#c7cedd;padding:56px 0 30px;margin-top:0}
.site .foot .cols{display:grid;grid-template-columns:1.6fr repeat(4,1fr);gap:30px;margin-bottom:34px}
.site .foot .ts-logo{color:#fff;margin-bottom:12px}
.site .foot .ts-logo img{height:28px;width:auto;display:block;margin-bottom:12px}
.site .foot .blurb{font-size:13.5px;line-height:1.6;max-width:260px;color:#9aa6bd}
.site .foot h4{color:#fff;font-size:12px;letter-spacing:.1em;text-transform:uppercase;margin:0 0 14px}
.site .foot a{display:block;color:#c7cedd;font-size:13.5px;margin-bottom:9px}
.site .foot a:hover{color:#fff;text-decoration:none}
.site .foot .bar{border-top:1px solid rgba(255,255,255,.1);padding-top:22px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:10px;font-size:12.5px;color:#8b96ad}

@media(max-width:1160px){
  .site .nav-links{display:none}
  .site .foot .cols{grid-template-columns:1fr 1fr}
  .site .nav-right{display:none}
  .site .nav-toggle{display:inline-flex;align-items:center}
  .site .nav-mobile{display:block;position:fixed;left:0;right:0;top:68px;background:#fff;border-bottom:1px solid var(--ts-line);box-shadow:0 18px 40px -18px rgba(20,33,61,.3);transform:translateY(-14px);opacity:0;pointer-events:none;transition:transform .22s ease,opacity .22s ease;z-index:39;padding:16px 24px;max-height:calc(100vh - 68px);overflow-y:auto}
  .site .nav-mobile.open{transform:translateY(0);opacity:1;pointer-events:auto}
  .site .nav-mobile a.ml{display:block;padding:13px 2px;font-weight:600;color:var(--ts-ink);border-bottom:1px solid var(--ts-line)}
  .site .nav-mobile .actions{display:flex;gap:10px;margin-top:14px}
  .site .nav-mobile .actions .btn{flex:1;justify-content:center}
}

/* ============================================================
   v0.12.2 — video backgrounds + CMS media overlay
   ============================================================ */
.hero2 .bgvid,.discount .bgvid{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.hero2 .bg .ph{z-index:0}
.bg-tint{position:absolute;inset:0;background:#070d18;z-index:1;pointer-events:none}
.discount .discount-bg{position:absolute;inset:0;z-index:-2;background-image:var(--hgrad-4);overflow:hidden}
.discount .discount-bg .ph{position:absolute;inset:0;z-index:0;background-image:none}

/* v0.12.4 — custom "Content band" block */
.cband{padding:64px 0;background:var(--ts-bg);text-align:center}
.cband .eyebrow{display:inline-block}
.cband .sec{margin:10px 0 0}
.cband .lead{max-width:680px;margin:14px auto 0;color:var(--ts-slate)}
.cband .btn-grad{margin-top:22px}

/* v0.12.5 — media banner / testimonials / FAQ blocks */
.mband{position:relative;padding:90px 0;overflow:hidden;color:#fff;text-align:center;background:var(--ts-ink)}
.mband-bg{position:absolute;inset:0;z-index:-2;background-image:var(--hgrad-1)}
.mband-bg .ph{position:absolute;inset:0;background-image:none}
.mband .wrap{position:relative;z-index:1;max-width:760px}
.mband h2{font-family:var(--font-disp);font-weight:500;font-size:clamp(28px,4.4vw,46px);color:#fff;margin:14px 0 12px;line-height:1.05}
.mband p{color:#dfe5ee;font-size:17px;max-width:560px;margin:0 auto 24px}
.mband .dg-ey{color:#fff;background:rgba(255,255,255,.1);border:1px solid rgba(255,255,255,.2)}

.tmon{padding:74px 0;background:var(--ts-bg)}
.tmon .head{text-align:center;max-width:620px;margin:0 auto 40px}
.tmon-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}
.tquote{margin:0;background:#fff;border:1px solid var(--ts-line);border-radius:18px;padding:26px 24px;box-shadow:var(--hsoft)}
.tquote .stars{font-size:17px;display:flex;gap:1px;margin-bottom:12px}
.tquote .stars .f{color:var(--ts-amber)}
.tquote .stars .e{color:var(--ts-line)}
.tquote blockquote{margin:0 0 16px;font-size:15.5px;line-height:1.65;color:var(--ts-ink)}
.tquote figcaption{font-size:14px;color:var(--ts-slate)}
.tquote figcaption b{color:var(--ts-ink)}

.faq{padding:74px 0;background:#fff}
.lsec.faq{background:#fff;border:1px solid var(--ts-line);border-radius:var(--r-xl,20px);box-shadow:0 16px 44px -22px rgba(20,33,61,.30),0 2px 6px -3px rgba(20,33,61,.12);padding:28px 34px 14px;margin:0 0 var(--sp-32)}
.lsec.faq .h{padding:0}
.lsec.faq details{border-bottom:1px solid var(--ts-line);padding:2px 0}
.lsec.faq details:last-child{border-bottom:none}
.lsec.faq summary{cursor:pointer;font-weight:700;color:var(--ts-ink);padding:15px 30px 15px 0;list-style:none;position:relative;font-size:var(--fs-md)}
.lsec.faq summary::-webkit-details-marker{display:none}
.lsec.faq summary::after{content:'+';position:absolute;right:2px;top:12px;font-size:23px;font-weight:400;color:var(--ts-coral);transition:transform .2s}
.lsec.faq details[open] summary::after{content:'\2212'}
.lsec.faq details p{color:var(--ts-slate);line-height:1.65;margin:-2px 0 16px;padding-right:20px;font-size:var(--fs-base)}
.faq .head{text-align:center;max-width:620px;margin:0 auto 36px}
.faq-list{max-width:760px;margin:0 auto;display:flex;flex-direction:column;gap:12px}
.faq-item{border:1px solid var(--ts-line);border-radius:14px;background:var(--ts-bg);overflow:hidden}
.faq-item summary{list-style:none;cursor:pointer;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:18px 22px;font-weight:700;font-size:16px;color:var(--ts-ink)}
.faq-item summary::-webkit-details-marker{display:none}
.faq-item summary i{color:var(--ts-slate);transition:transform .2s;flex:none}
.faq-item[open] summary i{transform:rotate(180deg)}
.faq-a{padding:0 22px 20px;color:var(--ts-slate);font-size:15px;line-height:1.65}

@media(max-width:880px){.tmon-grid{grid-template-columns:1fr 1fr}}
@media(max-width:600px){.tmon-grid{grid-template-columns:1fr}}

/* v0.13.6 — restored marketplace listing-card styles (dropped in the v0.10.0 home rework; used by search / category / destination via ts_render_card) */
.listings{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}
@media(max-width:980px){.listings{grid-template-columns:repeat(2,1fr)}}
@media(max-width:560px){.listings{grid-template-columns:1fr}}
.listing{background:#fff;border:1px solid var(--ts-line);border-radius:18px;overflow:hidden;box-shadow:var(--sh-sm);transition:.18s}
.listing:hover{box-shadow:var(--sh-md);transform:translateY(-2px)}
.listing .ph{aspect-ratio:4/3;min-height:170px;position:relative;background:linear-gradient(135deg,#FF9E6B,#FF5B41 55%,#9b4bd6)}
.listing .ph.has-img{background-size:cover;background-position:center}
.listing .pcat{position:absolute;left:11px;top:11px;background:rgba(255,255,255,.94);color:var(--ts-ink);
  border-radius:999px;padding:4px 11px;font-size:10.5px;font-weight:700}
.listing .pfeat{position:absolute;left:11px;top:11px;background:var(--ts-grad);color:#fff;border-radius:999px;padding:4px 11px;font-size:10.5px;font-weight:800;display:inline-flex;align-items:center;gap:4px;box-shadow:0 4px 12px -3px rgba(255,91,65,.6);z-index:2}
.listing .pfeat ~ .pcat{top:auto;bottom:11px}
.listing .heart{position:absolute;right:11px;top:11px;color:#fff;font-size:19px}
.listing .body{padding:14px 16px 16px}
.listing .t{font-weight:700;font-size:15px;margin:0 0 4px;line-height:1.3}
.listing .m{font-size:12px;color:var(--ts-slate);display:flex;align-items:center;gap:5px;margin-bottom:12px}
.listing .f{display:flex;align-items:center;justify-content:space-between;gap:10px;flex-wrap:nowrap}
.listing .pr{font-weight:800;font-size:16px;line-height:1.25;min-width:0;display:flex;align-items:baseline;gap:4px;flex-wrap:wrap}
.listing .pr small{font-weight:400;color:var(--ts-slate);font-size:11px;white-space:nowrap}
.listing .rt{font-size:13px;font-weight:700;display:flex;align-items:center;gap:3px;flex:none;white-space:nowrap;color:var(--ts-ink)}
.listing .rt .ti{color:var(--ts-coral)}

/* =============================================================
   AMBIENT 3D HERO BACKGROUND — drifting travel objects (v0.81.0)
   GPU-cheap (transform/opacity only), behind hero content,
   non-interactive, and frozen for reduced-motion users.
   ============================================================= */
.hero-orbits{position:absolute;inset:0;z-index:1;pointer-events:none;overflow:hidden;perspective:900px}
.hero2 .bg{z-index:0}
.hero2 .h-nav,.hero2 .inner,.hero2 .dots{position:relative;z-index:3}
.orb{position:absolute;color:rgba(255,255,255,.14);will-change:transform;transform-style:preserve-3d}
.orb.o1{top:20%;left:7%;font-size:46px;color:rgba(255,255,255,.16);animation:orbDrift1 24s ease-in-out infinite}
.orb.o2{top:30%;right:9%;font-size:72px;color:rgba(255,255,255,.10);animation:orbSpin 40s linear infinite}
.orb.o3{bottom:24%;left:13%;font-size:38px;color:rgba(255,255,255,.13);animation:orbDrift2 30s ease-in-out infinite}
.orb.o4{bottom:14%;right:14%;font-size:58px;color:rgba(255,255,255,.12);animation:orbBob 18s ease-in-out infinite}
.orb.o5{top:16%;right:24%;font-size:30px;color:rgba(255,255,255,.16);animation:orbBob 14s ease-in-out infinite reverse}
.orb.o6{top:46%;left:30%;font-size:52px;color:rgba(255,255,255,.07);filter:blur(.5px);animation:orbDrift1 34s ease-in-out infinite reverse}
.orb.o7{top:62%;left:-8%;font-size:34px;color:rgba(255,255,255,.15);animation:orbFly 28s linear infinite}
@keyframes orbDrift1{0%,100%{transform:translate3d(0,0,0) rotateZ(-8deg)}50%{transform:translate3d(46px,-30px,60px) rotateZ(10deg)}}
@keyframes orbDrift2{0%,100%{transform:translate3d(0,0,0) rotateZ(6deg)}50%{transform:translate3d(-38px,-22px,40px) rotateZ(-9deg)}}
@keyframes orbBob{0%,100%{transform:translate3d(0,0,0) rotateY(0deg)}50%{transform:translate3d(0,-26px,30px) rotateY(18deg)}}
@keyframes orbSpin{0%{transform:rotateY(0deg) rotateX(8deg)}100%{transform:rotateY(360deg) rotateX(8deg)}}
@keyframes orbFly{0%{transform:translate3d(0,0,0) rotateZ(8deg)}100%{transform:translate3d(125vw,-70px,0) rotateZ(8deg)}}
@media (prefers-reduced-motion: reduce){.orb{animation:none!important}}
@media(max-width:680px){.orb.o5,.orb.o6{display:none}.orb.o2{font-size:54px}.orb.o4{font-size:46px}}




/* ---- hero buttons: same tactile language as the rest of the app (v0.219.44) ----
   .btn-line sits on a photographic hero, so it keeps its glass treatment, but it now
   presses IN on :active like every other button. Radius is var(--r-md) to match. */
.btn-line:hover{ box-shadow: inset 0 1px 0 rgba(255,255,255,.35), 0 8px 20px -8px rgba(0,0,0,.5) }
.btn-line:active{ box-shadow: inset 0 3px 8px rgba(0,0,0,.35); transform: translateY(1px) }
.btn-grad:hover{ box-shadow: inset 0 1px 0 rgba(255,255,255,.4), 0 16px 30px -12px rgba(229,63,38,.7) }
.btn-grad:active{ box-shadow: inset 0 2px 7px rgba(0,0,0,.3); transform: translateY(1px) }
.btn-line, .btn-grad{ transition: box-shadow .18s ease, transform .12s ease }
@media (prefers-reduced-motion: reduce){
  .btn-line, .btn-grad{ transition: none }
  .btn-line:active, .btn-grad:active{ transform: none }
}

/* AI planner (homepage) — light redesign to match /dream (v0.226.58) */
.dreamgen{background:radial-gradient(900px 500px at 12% 0%,rgba(255,138,101,.14),transparent 55%),radial-gradient(900px 600px at 100% 20%,rgba(147,112,219,.14),transparent 55%),linear-gradient(180deg,#FBF3EE,#FDF8F4)!important;padding:58px 0}
.dreamgen::before{display:none!important}
.dreamgen h2{color:var(--ts-ink)}
.dreamgen h2 .g{background:linear-gradient(92deg,#FF5B41,#F0468B 45%,#8A4FE0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.dreamgen .sub{color:var(--ts-slate)}
.dreamgen .dg-ey{color:#7A5AF0!important;background:rgba(122,90,240,.10)!important;border:1px solid rgba(122,90,240,.18)!important}
.dreamgen .dg-ey i{color:#7A5AF0!important}
.dreamgen .dgbox{background:#fff!important;border:1px solid var(--ts-line)!important;box-shadow:0 12px 34px rgba(20,33,61,.08)}
.dreamgen .dgbox::after{display:none!important}
.dreamgen .dgbox i.lead-ic{color:#7A5AF0!important}
.dreamgen .dgbox input{color:var(--ts-ink)!important}
.dreamgen .dgbox input::placeholder{color:#9aa5b5!important}
.dreamgen .dg-chip{background:#fff!important;border:1px solid var(--ts-line)!important;color:var(--ts-ink)!important}
.dreamgen .dg-chip:hover{box-shadow:0 6px 16px rgba(20,33,61,.08);transform:translateY(-1px)}
.dreamgen .dg-chip i{color:#7A5AF0}

/* ===== Homepage AI section — 2-column redesign (v0.226.64), scoped ===== */
.dreamgen-v2{padding:54px 0}
.dreamgen-v2 .wrap{max-width:1200px;margin:0 auto}
.dreamgen-v2 .dg2-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:48px;align-items:center}
.dreamgen-v2 .dg2-left{text-align:left}
.dreamgen-v2 h2{font-family:var(--font-disp);font-weight:500;font-size:clamp(28px,3.4vw,44px);line-height:1.05;color:var(--ts-ink);letter-spacing:-.01em;margin:16px 0 14px;text-align:left}
.dreamgen-v2 h2 .g{background:linear-gradient(92deg,#FF5B41,#F0468B 45%,#8A4FE0);-webkit-background-clip:text;background-clip:text;-webkit-text-fill-color:transparent}
.dreamgen-v2 .sub{color:var(--ts-slate);font-size:17px;line-height:1.6;max-width:520px;margin:0 0 24px;text-align:left}
.dreamgen-v2 .dg-ey{display:inline-flex;align-items:center;gap:7px;font-size:12px;font-weight:800;letter-spacing:.6px;text-transform:uppercase;color:#7A5AF0;background:rgba(122,90,240,.10);border:1px solid rgba(122,90,240,.18);padding:7px 14px;border-radius:999px}
.dreamgen-v2 .dg-ey i{color:#7A5AF0}
.dreamgen-v2 .dgbox{display:flex;gap:8px;background:#fff;border:1px solid var(--ts-line);border-radius:16px;padding:8px;max-width:100%;box-shadow:0 10px 30px rgba(20,33,61,.07)}
.dreamgen-v2 .dgbox::after{display:none}
.dreamgen-v2 .dgbox input{flex:1;background:transparent;border:0;outline:0;color:var(--ts-ink);font-size:15.5px;padding:12px 14px;min-width:0}
.dreamgen-v2 .dgbox input::placeholder{color:#9aa5b5}
.dreamgen-v2 .dgbox button{display:inline-flex;align-items:center;gap:8px;background:linear-gradient(92deg,#FF6B4A,#FF8A5B);color:#fff;border:0;border-radius:11px;padding:12px 20px;font-weight:700;font-size:15px;cursor:pointer;white-space:nowrap}
.dreamgen-v2 .dg2-chips-label{font-size:12.5px;color:var(--ts-slate);margin:18px 0 10px;font-weight:600;text-align:left}
.dreamgen-v2 .dg-chips{display:flex;flex-wrap:wrap;gap:10px;justify-content:flex-start;margin-top:0}
.dreamgen-v2 .dg-chip{display:inline-flex;align-items:center;gap:8px;background:#fff;border:1px solid var(--ts-line);border-radius:12px;padding:10px 14px;font-size:13.5px;font-weight:600;color:var(--ts-ink);cursor:pointer;transition:box-shadow .15s,transform .15s}
.dreamgen-v2 .dg-chip:hover{box-shadow:0 6px 16px rgba(20,33,61,.08);transform:translateY(-1px)}
.dreamgen-v2 .dg-chip i{color:#7A5AF0}
/* image card + floating badges */
.dreamgen-v2 .dg2-imgcard{position:relative;aspect-ratio:1/.92;border-radius:22px;background-size:cover;background-position:center;box-shadow:0 24px 60px rgba(20,33,61,.20);overflow:hidden}
.dreamgen-v2 .dg2-imgcard::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(0,0,0,.05),rgba(0,0,0,.12))}
.dreamgen-v2 .dxb{position:absolute;z-index:2;background:rgba(255,255,255,.94);backdrop-filter:blur(6px);border-radius:12px;padding:9px 13px;font-size:12.5px;font-weight:700;color:var(--ts-ink);box-shadow:0 8px 22px rgba(20,33,61,.16);display:inline-flex;gap:7px;align-items:center;line-height:1.25}
.dreamgen-v2 .dxb small{display:block;font-weight:500;color:var(--ts-slate);font-size:11px}
.dreamgen-v2 .dxb i{font-size:15px;color:#7A5AF0}
.dreamgen-v2 .dxb-tl{top:16px;left:16px}
.dreamgen-v2 .dxb-days{top:16px;right:16px}.dreamgen-v2 .dxb-days i{color:#0FB5A6}
.dreamgen-v2 .dxb-wellness{top:39%;left:14px}
.dreamgen-v2 .dxb-budget{top:33%;right:14px}.dreamgen-v2 .dxb-budget i{color:#0FB5A6}
.dreamgen-v2 .dxb-match{bottom:20%;left:16px}
.dreamgen-v2 .dxb-time{bottom:12%;right:16px}.dreamgen-v2 .dxb-time i{color:#E8763B}
.dreamgen-v2 .dxb-play{position:absolute;z-index:3;left:50%;top:50%;transform:translate(-50%,-50%);width:56px;height:56px;border-radius:50%;background:rgba(255,255,255,.95);border:0;color:#14213D;font-size:22px;cursor:pointer;box-shadow:0 10px 26px rgba(0,0,0,.25);display:flex;align-items:center;justify-content:center}
@media(max-width:860px){
  .dreamgen-v2 .dg2-grid{grid-template-columns:1fr;gap:28px}
  .dreamgen-v2 .dg2-right{order:-1}
}
