/* =========================================================
   Traveling Today - design v2: magazine cover, route-line sections, passport stamps
   (loaded only when v2 is enabled)
   ========================================================= */

/* ---------- cover: one big lead + two stories ---------- */
body.tt-v2 .tt-cover{padding:28px 0 0}
body.tt-v2 .tt-cover-grid{display:grid;grid-template-columns:1.9fr 1fr;gap:18px;height:clamp(470px,45vw,610px)}
body.tt-v2 .tt-cover-lead,body.tt-v2 .tt-cover-card{position:relative;display:block;border-radius:22px;overflow:hidden;background:var(--tt-navy);text-decoration:none !important}
body.tt-v2 .tt-cover-lead img,body.tt-v2 .tt-cover-card img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .9s ease}
body.tt-v2 .tt-cover-lead:hover img,body.tt-v2 .tt-cover-card:hover img{transform:scale(1.04)}
body.tt-v2 .tt-cover-lead .tt-hero-shade{background:linear-gradient(180deg,rgba(11,35,71,.15) 0%,rgba(11,35,71,0) 28%,rgba(11,35,71,.62) 66%,rgba(11,35,71,.94) 100%)}
body.tt-v2 .tt-cover-card .tt-hero-shade{background:linear-gradient(180deg,rgba(11,35,71,0) 35%,rgba(11,35,71,.9) 100%)}
body.tt-v2 .tt-cover-text{position:absolute;left:0;bottom:0;max-width:90%;padding:40px 48px 44px;display:flex;flex-direction:column;gap:14px}
body.tt-v2 .tt-cover-kicker{display:flex;align-items:center;gap:12px;font:800 12px/1 var(--tt-sans);letter-spacing:.22em;text-transform:uppercase;color:#CFE6FB}
body.tt-v2 .tt-cover-kicker:before{content:'';width:34px;height:2px;background:#9CCBF7}
body.tt-v2 .tt-cover-title{display:block;font:800 clamp(34px,4.5vw,62px)/1.01 var(--tt-head);letter-spacing:-.032em;color:#fff}
body.tt-v2 .tt-cover-lead .tt-hero-deck{max-width:640px}
body.tt-v2 .tt-cover-side{display:grid;grid-template-rows:1fr 1fr;gap:18px;min-height:0}
body.tt-v2 .tt-cover-card-text{position:absolute;left:0;right:0;bottom:0;padding:22px 24px 24px;display:flex;flex-direction:column;gap:9px}
body.tt-v2 .tt-cover-card .tt-tag{color:#9CCBF7}
body.tt-v2 .tt-cover-card-title{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden;font:800 clamp(18px,1.9vw,24px)/1.12 var(--tt-head);letter-spacing:-.02em;color:#fff}
/* passport stamp */
body.tt-v2 .tt-stamp{position:absolute;top:28px;left:30px;z-index:2;width:108px;height:108px;border-radius:50%;border:2px dashed rgba(255,255,255,.9);display:flex;align-items:center;justify-content:center;transform:rotate(-10deg);background:rgba(11,35,71,.32);backdrop-filter:blur(3px);color:#fff;text-align:center}
body.tt-v2 .tt-stamp:before{content:'';position:absolute;inset:7px;border-radius:50%;border:1px solid rgba(255,255,255,.6)}
body.tt-v2 .tt-stamp i{position:relative;font:800 11px/1.3 var(--tt-sans);font-style:normal;letter-spacing:.17em;text-transform:uppercase;padding:0 12px}
@media(max-width:1000px){body.tt-v2 .tt-cover-grid{grid-template-columns:1fr;height:auto}body.tt-v2 .tt-cover-lead{aspect-ratio:4/3;min-height:380px}body.tt-v2 .tt-cover-text{padding:26px;max-width:100%}body.tt-v2 .tt-cover-lead .tt-hero-deck{display:none}body.tt-v2 .tt-cover-side{grid-template-columns:1fr 1fr;grid-template-rows:none}body.tt-v2 .tt-cover-card{aspect-ratio:4/3}body.tt-v2 .tt-stamp{width:84px;height:84px;top:18px;left:18px}}
@media(max-width:560px){body.tt-v2 .tt-cover-side{grid-template-columns:1fr}}

/* ---------- section heads: numbered, with a dashed route line ---------- */
body.tt-v2.tt-home{counter-reset:ttsec}
body.tt-v2 .tt-sec-head{position:relative;padding-bottom:22px;margin-bottom:32px}
body.tt-v2 .tt-sec-head:after{content:'';position:absolute;left:12px;right:0;bottom:0;height:2px;background:repeating-linear-gradient(90deg,#B3C6DC 0 9px,transparent 9px 18px)}
body.tt-v2 .tt-sec-head:before{content:'';position:absolute;left:0;bottom:-5px;width:12px;height:12px;border-radius:50%;background:var(--tt-blue);box-shadow:0 0 0 4px #fff,0 0 0 5px var(--tt-blue)}
body.tt-v2 .tt-sec-sky .tt-sec-head:before{box-shadow:0 0 0 4px var(--tt-sky),0 0 0 5px var(--tt-blue)}
body.tt-v2 .tt-sec-head .tt-eyebrow{counter-increment:ttsec;gap:12px}
body.tt-v2 .tt-sec-head .tt-eyebrow:before{content:counter(ttsec,decimal-leading-zero);width:auto;height:auto;background:none;border-radius:0;font:800 13px/1 var(--tt-head);letter-spacing:.04em;color:var(--tt-blue)}
body.tt-v2 .tt-sec-head h2{font-size:clamp(30px,3.8vw,44px);letter-spacing:-.03em}
body.tt-v2 .tt-sec-latest .tt-sec-head:after{display:none}

/* ---------- destination tiles ---------- */
body.tt-v2 .tt-tiles{gap:16px}
body.tt-v2 .tt-tile{aspect-ratio:4/5;border-radius:20px}
body.tt-v2 .tt-tile-text b{font-size:23px;letter-spacing:-.02em}
body.tt-v2 .tt-tile:after{content:'';position:absolute;top:14px;right:14px;width:36px;height:36px;border-radius:50%;background:#fff url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='%230B2347' stroke-width='2.6' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center/16px no-repeat;opacity:0;transform:translateY(-6px) scale(.9);transition:opacity .25s,transform .25s}
body.tt-v2 .tt-tile:hover:after{opacity:1;transform:none}

/* ---------- cards: image-first, no boxes ---------- */
body.tt-v2 .tt-card{border:0;background:transparent;border-radius:0}
body.tt-v2 .tt-card:hover{transform:none;box-shadow:none}
body.tt-v2 .tt-card .tt-img{border-radius:18px}
body.tt-v2 .tt-card-body{padding:16px 2px 0}
body.tt-v2 .tt-card h3{font-size:20px;letter-spacing:-.02em}
body.tt-v2 .tt-big .tt-img{border-radius:22px}
body.tt-v2 .tt-big h3{font-size:clamp(26px,2.6vw,34px);letter-spacing:-.025em}
body.tt-v2 .tt-list-item .tt-img{border-radius:14px}
body.tt-v2 .tt-sec-sky{margin-top:80px;padding:70px 0 76px}

/* ---------- newsletter band: flight path ---------- */
body.tt-v2 .tt-band{background:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1600 360' preserveAspectRatio='none'%3E%3Cpath d='M-20 300 C 260 40, 520 360, 820 170 S 1300 20, 1500 120' fill='none' stroke='white' stroke-opacity='.28' stroke-width='2.5' stroke-dasharray='9 12'/%3E%3Cg transform='translate(1500 120) rotate(-8)' fill='white' fill-opacity='.85'%3E%3Cpath d='M0 0l46-10 20-26 8 2-10 26 24 4-8 8-24-2-12 22-8-2 6-22-26 4-8-8z'/%3E%3C/g%3E%3C/svg%3E") center/cover no-repeat,linear-gradient(120deg,#0B2347 0%,#12509B 62%,#2C86E0 140%)}
body.tt-v2 .tt-band:before,body.tt-v2 .tt-band:after{display:none}
body.tt-v2 .tt-tile-text b{font-size:clamp(17px,1.65vw,22px)}
