/* ============================================================
   Egyptra Trip Planner — /plan-your-trip
   TTD navy/gold design system · mobile-first · iPhone safe-area
   ============================================================ */

:root{
  --ttd-bg:#fff; --ttd-bg-soft:#f8fafc; --ttd-bg-tint:#f1f5f9;
  --ttd-ink:#0f172a; --ttd-muted:#475569; --ttd-mute2:#64748b;
  --ttd-accent:#284878; --ttd-accent-dk:#1d3760;
  --ttd-gold:#d4a96c; --ttd-gold-dk:#c19c77;
  --ttd-line:#e2e8f0; --ttd-line-soft:#f1f5f9; --ttd-card:#fff;
  --ttd-shadow:0 4px 12px rgba(0,0,0,.08);
  --ttd-shadow-navy-sm:0 2px 8px rgba(40,72,120,.10);
  --ttd-shadow-navy-md:0 4px 16px rgba(40,72,120,.20);
  --ttd-radius-sm:8px; --ttd-radius:12px; --ttd-radius-lg:16px;
  --ttd-success:#2e7d32; --ttd-warn:#e58a00; --ttd-danger:#d33d3d;
  --pt-safe-t:env(safe-area-inset-top,0px);
  --pt-safe-b:env(safe-area-inset-bottom,0px);
}

/* ---- base ---- */
.pt-body{margin:0;font-family:'DM Sans',system-ui,-apple-system,Segoe UI,Roboto,sans-serif;
  color:var(--ttd-ink);background:var(--ttd-bg);-webkit-font-smoothing:antialiased;line-height:1.6;}
.pt-main *{box-sizing:border-box;}
.pt-wrap{max-width:1120px;margin:0 auto;padding:0 20px;}
.pti{width:1.1em;height:1.1em;display:inline-block;vertical-align:-.15em;flex:none;}
img{max-width:100%;display:block;}

.pt-h2{font-size:clamp(1.5rem,4vw,2.1rem);font-weight:700;color:var(--ttd-accent);
  margin:0 0 .6rem;line-height:1.25;letter-spacing:-.01em;position:relative;padding-bottom:.55rem;}
.pt-h2::after{content:"";position:absolute;left:0;bottom:0;width:40px;height:3px;
  background:var(--ttd-gold);border-radius:2px;}
[dir="rtl"] .pt-h2::after{left:auto;right:0;}
.pt-h3{font-size:clamp(1.15rem,3vw,1.4rem);font-weight:700;color:var(--ttd-accent);margin:0 0 .4rem;}
.pt-sub{color:var(--ttd-muted);font-size:1rem;margin:0 0 1.4rem;}
.pt-eyebrow{display:inline-block;font-size:.78rem;font-weight:700;letter-spacing:.08em;
  text-transform:uppercase;color:var(--ttd-gold-dk);margin:0 0 .5rem;}

/* ---- buttons ---- */
.pt-btn{display:inline-flex;align-items:center;gap:.5rem;justify-content:center;
  font:inherit;font-weight:600;cursor:pointer;border:0;border-radius:999px;
  padding:.75rem 1.4rem;transition:transform .15s ease,box-shadow .15s ease,background .15s ease;
  text-decoration:none;}
.pt-btn:active{transform:translateY(1px);}
.pt-btn--gold{background:var(--ttd-gold);color:#1a1205;box-shadow:var(--ttd-shadow-navy-sm);}
.pt-btn--gold:hover{background:var(--ttd-gold-dk);box-shadow:var(--ttd-shadow-navy-md);}
.pt-btn--navy{background:var(--ttd-accent);color:#fff;}
.pt-btn--navy:hover{background:var(--ttd-accent-dk);}
.pt-btn--ghost{background:#fff;color:var(--ttd-accent);border:1.5px solid var(--ttd-line);}
.pt-btn--ghost:hover{border-color:var(--ttd-accent);background:var(--ttd-bg-soft);}
.pt-btn--lg{padding:.95rem 1.9rem;font-size:1.06rem;}
.pt-btn[disabled]{opacity:.55;cursor:not-allowed;}
.pt-link{background:none;border:0;font:inherit;font-weight:600;color:var(--ttd-accent);
  cursor:pointer;display:inline-flex;align-items:center;gap:.35rem;padding:0;}
.pt-link:hover{color:var(--ttd-gold-dk);}

/* ---- HERO ---- */
.pt-hero{background:linear-gradient(160deg,var(--ttd-accent) 0%,var(--ttd-accent-dk) 100%);
  color:#fff;text-align:center;padding:calc(64px + 2.4rem + var(--pt-safe-t)) 20px 3rem;position:relative;overflow:hidden;}
.pt-hero::after{content:"";position:absolute;inset:0;background:
  radial-gradient(circle at 80% 10%,rgba(212,169,108,.18),transparent 45%);pointer-events:none;}
.pt-hero__inner{max-width:760px;margin:0 auto;position:relative;}
.pt-hero__eyebrow{display:inline-flex;align-items:center;gap:.4rem;font-size:.8rem;font-weight:600;
  background:rgba(255,255,255,.12);border:1px solid rgba(255,255,255,.22);
  padding:.35rem .85rem;border-radius:999px;margin:0 0 1.1rem;}
.pt-hero__eyebrow .pti{color:var(--ttd-gold);}
.pt-hero__title{font-size:clamp(2rem,6vw,3.1rem);font-weight:700;line-height:1.15;
  margin:0 0 .8rem;letter-spacing:-.02em;}
.pt-hero__sub{font-size:clamp(1rem,2.4vw,1.18rem);color:rgba(255,255,255,.88);
  margin:0 auto 1.6rem;max-width:560px;}
.pt-hero__note{font-size:.85rem;color:rgba(255,255,255,.7);margin:.9rem 0 0;}
.pt-trust{list-style:none;display:flex;flex-wrap:wrap;justify-content:center;gap:.6rem;
  margin:2rem 0 0;padding:0;}
.pt-trust li{background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.16);
  border-radius:var(--ttd-radius);padding:.7rem 1rem;min-width:140px;flex:1 1 140px;max-width:220px;}
.pt-trust strong{display:block;font-size:1.15rem;color:var(--ttd-gold);}
.pt-trust span{font-size:.78rem;color:rgba(255,255,255,.82);}

/* ---- WIZARD (full-screen conversational) ---- */
.pt-wizard{position:fixed;inset:0;z-index:1000;background:var(--ttd-bg-soft);
  display:flex;flex-direction:column;}
.pt-wizard[hidden]{display:none;}
.pt-wizard__bar{display:flex;align-items:center;gap:.7rem;
  padding:calc(.7rem + var(--pt-safe-t)) 16px .7rem;background:#fff;border-bottom:1px solid var(--ttd-line);}
.pt-wizard__progress{flex:1;height:8px;background:var(--ttd-line);border-radius:999px;overflow:hidden;}
.pt-wizard__progress span{display:block;height:100%;width:0;border-radius:999px;
  background:linear-gradient(90deg,var(--ttd-gold),var(--ttd-gold-dk));transition:width .4s ease;}
.pt-wizard__pct{font-size:.8rem;font-weight:700;color:var(--ttd-accent);min-width:34px;text-align:right;}
.pt-wizard__restart{background:none;border:0;font:inherit;font-size:.8rem;color:var(--ttd-mute2);
  cursor:pointer;text-decoration:underline;}
.pt-wizard__close{background:var(--ttd-bg-tint);border:0;width:34px;height:34px;flex:none;
  border-radius:50%;display:flex;align-items:center;justify-content:center;cursor:pointer;
  color:var(--ttd-accent);transition:background .15s ease;}
.pt-wizard__close:hover{background:var(--ttd-line);}
.pt-wizard__close:focus-visible{outline:3px solid var(--ttd-gold);outline-offset:2px;}
.pt-chat{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1.2rem 16px;
  display:flex;flex-direction:column;gap:.8rem;}
.pt-chat__wrap{max-width:720px;margin:auto auto 0;width:100%;display:flex;flex-direction:column;gap:.8rem;}
.pt-bubble{max-width:88%;padding:.8rem 1.05rem;border-radius:var(--ttd-radius-lg);
  font-size:.97rem;animation:pt-pop .3s ease;}
.pt-bubble--bot{background:#fff;border:1px solid var(--ttd-line);color:var(--ttd-ink);
  border-bottom-left-radius:4px;align-self:flex-start;box-shadow:var(--ttd-shadow-navy-sm);}
.pt-bubble--bot .pt-bubble__help{display:block;margin-top:.3rem;font-size:.83rem;color:var(--ttd-mute2);}
.pt-bubble--user{background:var(--ttd-accent);color:#fff;border-bottom-right-radius:4px;
  align-self:flex-end;font-weight:600;}
.pt-bubble--user button{background:none;border:0;color:rgba(255,255,255,.7);cursor:pointer;
  font-size:.78rem;text-decoration:underline;margin-inline-start:.5rem;}
.pt-typing{align-self:flex-start;display:flex;gap:4px;padding:.85rem 1rem;background:#fff;
  border:1px solid var(--ttd-line);border-radius:var(--ttd-radius-lg);border-bottom-left-radius:4px;}
.pt-typing span{width:7px;height:7px;border-radius:50%;background:var(--ttd-gold);
  animation:pt-blink 1.2s infinite;}
.pt-typing span:nth-child(2){animation-delay:.2s;}
.pt-typing span:nth-child(3){animation-delay:.4s;}
@keyframes pt-blink{0%,60%,100%{opacity:.25;}30%{opacity:1;}}
@keyframes pt-pop{from{opacity:0;transform:translateY(8px);}to{opacity:1;transform:none;}}

/* ---- wizard dock (current input control) ---- */
/* dock = a flex column: options scroll inside .pt-dock__scroll, while the
   Back/Continue nav stays pinned at the bottom (always reachable). */
.pt-wizard__dock{background:#fff;border-top:1px solid var(--ttd-line);
  padding:0;max-height:64vh;display:flex;flex-direction:column;}
.pt-dock__wrap{max-width:720px;margin:0 auto;width:100%;
  display:flex;flex-direction:column;min-height:0;flex:1;}
.pt-dock__scroll{overflow-y:auto;-webkit-overflow-scrolling:touch;
  padding:1rem 16px .9rem;min-height:0;}
.pt-dock__nav{display:flex;justify-content:space-between;gap:.6rem;margin-top:1rem;}
.pt-dock__nav .pt-btn{flex:0 0 auto;}
.pt-dock__nav .pt-btn--next{flex:1;}
/* pinned nav inside the wizard dock — separated from the scrolling options
   by a top border + soft shadow so it's obvious there is content above. */
.pt-wizard__dock .pt-dock__nav{margin-top:0;flex:none;
  padding:.8rem 16px calc(.85rem + var(--pt-safe-b));
  border-top:1px solid var(--ttd-line);background:#fff;
  box-shadow:0 -6px 14px rgba(15,23,42,.07);}

/* choice grid (cities / categories / pace / budget / party / months) */
.pt-choices{display:grid;gap:.6rem;}
.pt-choices--cities{grid-template-columns:repeat(2,1fr);}
.pt-choices--cats{grid-template-columns:repeat(2,1fr);}
.pt-choices--cards{grid-template-columns:1fr;}
.pt-choices--months{grid-template-columns:repeat(3,1fr);}

.pt-choice{position:relative;border:1.5px solid var(--ttd-line);border-radius:var(--ttd-radius);
  background:#fff;cursor:pointer;text-align:start;padding:.85rem;font:inherit;color:inherit;
  transition:border-color .15s,box-shadow .15s,transform .1s;display:flex;align-items:center;gap:.7rem;}
.pt-choice:hover{border-color:var(--ttd-accent);}
.pt-choice.is-sel{border-color:var(--ttd-accent);background:#f3f7fd;
  box-shadow:0 0 0 2px rgba(40,72,120,.18);}
.pt-choice.is-sel::after{content:"";position:absolute;top:6px;inset-inline-end:6px;width:20px;height:20px;
  background:var(--ttd-accent);border-radius:50%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='m9.5 17.5-5-5L6 11l3.5 3.5L18 6l1.5 1.5Z'/%3E%3C/svg%3E");
  background-size:contain;}
.pt-choice__icon{width:34px;height:34px;flex:none;color:var(--ttd-accent);
  background:var(--ttd-bg-tint);border-radius:8px;display:flex;align-items:center;justify-content:center;}
.pt-choice__icon .pti{width:20px;height:20px;}
.pt-choice__txt strong{display:block;font-size:.95rem;font-weight:600;}
.pt-choice__txt small{display:block;font-size:.8rem;color:var(--ttd-mute2);line-height:1.35;}

/* city photo card */
.pt-citycard{flex-direction:column;align-items:stretch;padding:0;overflow:hidden;gap:0;}
.pt-citycard img{width:100%;height:96px;object-fit:cover;}
.pt-citycard span{padding:.55rem .7rem;font-weight:600;font-size:.92rem;}

/* months / chips */
.pt-chip{border:1.5px solid var(--ttd-line);background:#fff;border-radius:999px;
  padding:.55rem .4rem;font:inherit;font-size:.85rem;cursor:pointer;text-align:center;
  transition:border-color .15s,background .15s;}
.pt-chip:hover{border-color:var(--ttd-accent);}
.pt-chip.is-sel{background:var(--ttd-accent);color:#fff;border-color:var(--ttd-accent);}

/* days slider */
.pt-slider{padding:.5rem 0 0;}
.pt-slider__val{text-align:center;font-size:1.7rem;font-weight:700;color:var(--ttd-accent);margin:0 0 .3rem;}
.pt-slider input[type=range]{width:100%;accent-color:var(--ttd-gold);height:28px;}
.pt-slider__ends{display:flex;justify-content:space-between;font-size:.78rem;color:var(--ttd-mute2);}

/* stepper (adults/children) */
.pt-stepper{display:flex;align-items:center;justify-content:space-between;
  border:1.5px solid var(--ttd-line);border-radius:var(--ttd-radius);padding:.6rem .9rem;margin-top:.5rem;}
.pt-stepper__lbl strong{display:block;font-size:.92rem;}
.pt-stepper__lbl small{font-size:.78rem;color:var(--ttd-mute2);}
.pt-stepper__ctl{display:flex;align-items:center;gap:.9rem;}
.pt-stepper__ctl button{width:36px;height:36px;border-radius:50%;border:1.5px solid var(--ttd-line);
  background:#fff;font-size:1.2rem;cursor:pointer;color:var(--ttd-accent);line-height:1;}
.pt-stepper__ctl button:hover{border-color:var(--ttd-accent);}
.pt-stepper__ctl output{min-width:24px;text-align:center;font-weight:700;font-size:1.05rem;}

/* building / loading */
.pt-building{text-align:center;padding:2rem 1rem;}
.pt-building__ring{width:54px;height:54px;margin:0 auto 1rem;border-radius:50%;
  border:4px solid var(--ttd-line);border-top-color:var(--ttd-gold);animation:pt-spin 1s linear infinite;}
@keyframes pt-spin{to{transform:rotate(360deg);}}
.pt-building__steps{list-style:none;padding:0;margin:1rem auto 0;max-width:320px;text-align:start;}
.pt-building__steps li{padding:.3rem 0;color:var(--ttd-mute2);font-size:.9rem;
  display:flex;align-items:center;gap:.5rem;opacity:.4;transition:opacity .3s;}
.pt-building__steps li.is-done{opacity:1;color:var(--ttd-ink);}
.pt-building__steps li.is-done::before{content:"";width:16px;height:16px;flex:none;
  background:var(--ttd-success);border-radius:50%;
  background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23fff' d='m9.5 17.5-5-5L6 11l3.5 3.5L18 6l1.5 1.5Z'/%3E%3C/svg%3E");background-size:contain;}

/* ---- RESULTS ---- */
.pt-results{padding:2.5rem 0;background:var(--ttd-bg-soft);}
.pt-results[hidden]{display:none;}
.pt-summary{display:flex;flex-wrap:wrap;gap:.5rem;margin:0 0 1.6rem;}
.pt-summary__chip{background:#fff;border:1px solid var(--ttd-line);border-radius:999px;
  padding:.4rem .85rem;font-size:.83rem;display:flex;gap:.35rem;align-items:center;}
.pt-summary__chip b{color:var(--ttd-accent);}
.pt-summary__edit{margin-inline-start:auto;}

/* itinerary */
.pt-itinerary{display:flex;flex-direction:column;gap:1rem;margin:0 0 2rem;}
.pt-day{background:#fff;border:1px solid var(--ttd-line);border-radius:var(--ttd-radius-lg);overflow:hidden;}
.pt-day__head{display:flex;align-items:center;gap:.6rem;padding:.8rem 1rem;
  background:var(--ttd-accent);color:#fff;}
.pt-day__num{background:var(--ttd-gold);color:#1a1205;font-weight:700;border-radius:8px;
  padding:.15rem .6rem;font-size:.85rem;}
.pt-day__body{padding:1rem;}
.pt-day__free{color:var(--ttd-mute2);font-size:.9rem;font-style:italic;}
/* itinerary day card — mobile: full-width vertical (image on top) */
.pt-day__body .pt-grid{display:flex;flex-wrap:wrap;gap:1rem;}
.pt-day__body .pt-tour{flex:1 1 100%;max-width:none;}

/* tour card */
.pt-grid{display:grid;grid-template-columns:1fr;gap:1rem;}
.pt-tour{background:#fff;border:1px solid var(--ttd-line);border-radius:var(--ttd-radius);
  overflow:hidden;display:flex;flex-direction:column;transition:box-shadow .15s,transform .15s;}
.pt-tour:hover{box-shadow:var(--ttd-shadow-navy-md);transform:translateY(-2px);}
.pt-tour__media{position:relative;aspect-ratio:16/10;background:var(--ttd-bg-tint);}
.pt-tour__media img{width:100%;height:100%;object-fit:cover;}
.pt-tour__badge{position:absolute;top:8px;inset-inline-start:8px;font-size:.7rem;font-weight:700;
  padding:.2rem .55rem;border-radius:6px;}
.pt-tour__badge--best{background:var(--ttd-gold);color:#1a1205;}
.pt-tour__badge--deal{background:var(--ttd-danger);color:#fff;}
.pt-tour__body{padding:.85rem;display:flex;flex-direction:column;gap:.4rem;flex:1;}
.pt-tour__name{font-size:.95rem;font-weight:600;line-height:1.35;color:var(--ttd-ink);
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.pt-tour__meta{display:flex;flex-wrap:wrap;gap:.5rem;font-size:.8rem;color:var(--ttd-mute2);align-items:center;}
.pt-tour__rating{display:flex;align-items:center;gap:.2rem;color:var(--ttd-gold-dk);font-weight:600;}
.pt-tour__rating .pti{color:var(--ttd-gold);}
.pt-tour__cat{background:var(--ttd-bg-tint);border-radius:6px;padding:.1rem .45rem;}
.pt-tour__foot{display:flex;align-items:center;justify-content:space-between;gap:.5rem;margin-top:auto;}
.pt-tour__price small{font-size:.72rem;color:var(--ttd-mute2);display:block;}
.pt-tour__price strong{font-size:1.05rem;color:var(--ttd-accent);}
/* original price beside a live discount — logical margin so it mirrors in RTL */
.pt-tour__was{font-size:.8rem;color:var(--ttd-mute2);margin-inline-start:.35rem;text-decoration:line-through;}
.pt-tour__add{font-size:.82rem;padding:.45rem .8rem;display:inline-flex;align-items:center;gap:.3rem;}
.pt-tour__add.is-added{background:var(--ttd-success);color:#fff;border-color:var(--ttd-success);}
.pt-tour__add.is-added .pti{color:#fff;}

/* brief success toast */
.pt-toast{position:fixed;left:50%;bottom:calc(24px + var(--pt-safe-b));
  transform:translateX(-50%) translateY(24px);background:var(--ttd-accent);color:#fff;
  padding:.7rem 1.25rem;border-radius:999px;font-weight:600;font-size:.92rem;
  display:flex;align-items:center;gap:.45rem;box-shadow:0 10px 28px rgba(15,23,42,.34);
  z-index:1200;opacity:0;transition:opacity .25s ease,transform .25s ease;pointer-events:none;}
.pt-toast.is-show{opacity:1;transform:translateX(-50%) translateY(0);}
.pt-toast .pti{color:var(--ttd-gold);}
.pt-tour__cart{display:flex;align-items:center;justify-content:center;gap:.4rem;
  padding:.6rem;border-radius:var(--ttd-radius-sm);background:var(--ttd-accent);
  color:#fff;font-size:.86rem;font-weight:600;text-decoration:none;
  transition:background .15s ease;margin-top:.2rem;}
.pt-tour__cart:hover{background:var(--ttd-accent-dk);}
.pt-tour__cart.is-in-cart{background:var(--ttd-success);}
.pt-tour__cart .pti{width:1.15em;height:1.15em;}
/* cart control is now a <button> (was <a>) — reset + loading state */
.pt-tour__cart{width:100%;border:0;cursor:pointer;font-family:inherit;-webkit-appearance:none;appearance:none;}
.pt-tour__cart[disabled]{cursor:default;}
.pt-tour__cart-ic{display:inline-flex;align-items:center;}
.pt-tour__cart-ic .pti{width:1.15em;height:1.15em;}
.pt-tour__cart.is-loading{opacity:.9;}
.pt-tour__cart.is-loading .pt-tour__cart-ic{width:1.05em;height:1.05em;border:2px solid rgba(255,255,255,.45);
  border-top-color:#fff;border-radius:50%;animation:pt-spin .7s linear infinite;}
.pt-tour__cart.is-loading .pt-tour__cart-ic .pti{display:none;}

/* error variant of the brief toast */
.pt-toast--err{background:#b42318;}
.pt-toast--err .pti{color:#fff;}

/* sticky plan → cart progress bar */
.pt-cartbar{position:fixed;left:50%;bottom:calc(16px + var(--pt-safe-b));transform:translateX(-50%);z-index:1150;
  display:flex;align-items:center;gap:1rem;width:max-content;max-width:min(680px,calc(100vw - 24px));
  /* logical, not `padding:.55rem .55rem .55rem 1.1rem` — the extra room is for
     the stats text, which sits at the inline START in both directions. Written
     this way (rather than a [dir=rtl] override) because the ≤520px rule below
     resets `padding` to a symmetric value, and an attribute-selector override
     would out-specify it and leak the asymmetry onto mobile RTL. */
  padding:.55rem;padding-inline-start:1.1rem;background:var(--ttd-accent);color:#fff;border-radius:999px;
  box-shadow:0 12px 34px rgba(15,23,42,.4);animation:pt-cartbar-in .35s cubic-bezier(.2,.8,.2,1);}
.pt-cartbar.is-hidden{display:none;}
.pt-cartbar__stats{display:flex;align-items:center;gap:.55rem;font-size:.9rem;white-space:nowrap;}
.pt-cartbar__stat{display:inline-flex;align-items:center;gap:.3rem;}
.pt-cartbar__stat b{font-size:1.05rem;}
.pt-cartbar__stat .pti{width:1.1em;height:1.1em;color:var(--ttd-gold);}
.pt-cartbar__dot{opacity:.5;}
.pt-cartbar__actions{display:flex;align-items:center;gap:.5rem;}
.pt-cartbar .pt-btn{padding:.5rem .9rem;font-size:.85rem;white-space:nowrap;}
.pt-cartbar .pt-btn--ghost{background:rgba(255,255,255,.12);color:#fff;border-color:rgba(255,255,255,.4);}
.pt-cartbar .pt-btn--ghost:hover{background:rgba(255,255,255,.22);border-color:#fff;}
.pt-cartbar .pt-btn[disabled]{opacity:.5;cursor:default;}
body.pt-has-cartbar{padding-bottom:78px;}
@keyframes pt-cartbar-in{from{opacity:0;transform:translateX(-50%) translateY(16px);}to{opacity:1;transform:translateX(-50%) translateY(0);}}
@media (max-width:520px){
  .pt-cartbar{width:calc(100vw - 20px);gap:.5rem;padding:.55rem;}
  .pt-cartbar__stats{display:none;}
  .pt-cartbar__actions{flex:1;justify-content:center;gap:.5rem;}
  .pt-cartbar__actions .pt-btn{flex:1;text-align:center;justify-content:center;}
}

/* tour details quick-view modal */
.pt-details{position:fixed;inset:0;z-index:1300;display:flex;align-items:center;justify-content:center;padding:16px;}
.pt-details[hidden]{display:none;}
.pt-details__overlay{position:absolute;inset:0;background:rgba(8,15,30,.62);}
.pt-details__dialog{position:relative;z-index:1;display:flex;flex-direction:column;width:min(720px,100%);max-height:min(88vh,900px);
  background:#fff;border-radius:18px;overflow:hidden;box-shadow:0 30px 80px rgba(8,15,30,.5);animation:pt-details-in .3s cubic-bezier(.2,.8,.2,1);}
.pt-details__close{position:absolute;top:12px;right:12px;z-index:3;width:38px;height:38px;border:0;border-radius:50%;
  background:rgba(255,255,255,.92);color:var(--ttd-ink);cursor:pointer;display:flex;align-items:center;justify-content:center;box-shadow:0 2px 10px rgba(0,0,0,.18);}
.pt-details__close:hover{background:#fff;}
.pt-details__body{overflow-y:auto;padding:0 0 8px;-webkit-overflow-scrolling:touch;}
.pt-details__hero{width:100%;height:280px;object-fit:cover;display:block;background:var(--ttd-bg-soft);}
.pt-details__thumbs{display:flex;gap:.4rem;padding:.5rem .9rem;overflow-x:auto;}
.pt-details__thumb{flex:0 0 auto;width:60px;height:44px;border:2px solid transparent;border-radius:8px;overflow:hidden;padding:0;background:none;cursor:pointer;}
.pt-details__thumb img{width:100%;height:100%;object-fit:cover;}
.pt-details__thumb:hover,.pt-details__thumb:focus-visible{border-color:var(--ttd-gold);}
.pt-details__title{font-size:1.35rem;font-weight:700;color:var(--ttd-ink);margin:.6rem .9rem .2rem;line-height:1.3;}
.pt-details__meta{display:flex;flex-wrap:wrap;gap:.8rem;padding:0 .9rem;color:var(--ttd-mute2);font-size:.9rem;align-items:center;}
.pt-details__meta span{display:inline-flex;align-items:center;gap:.3rem;}
.pt-details__rating{color:var(--ttd-gold-dk);font-weight:600;}
.pt-details__rating .pti{color:var(--ttd-gold);}
.pt-details__meta .pti,.pt-details__list .pti{width:1.05em;height:1.05em;}
.pt-details__desc{padding:.7rem .9rem 0;color:var(--ttd-muted);line-height:1.6;}
.pt-details__h3{font-size:1rem;font-weight:700;color:var(--ttd-ink);margin:1rem .9rem .35rem;padding-top:.6rem;border-top:1px solid var(--ttd-line);}
.pt-details__list{margin:0;padding:0 .9rem 0 2rem;color:var(--ttd-muted);line-height:1.7;}
.pt-details__list li{margin-bottom:.15rem;}
.pt-details__addon-price,.pt-details__opt-price{color:var(--ttd-gold-dk);font-weight:600;white-space:nowrap;}
.pt-details__opts{display:flex;flex-direction:column;gap:.4rem;padding:0 .9rem;}
.pt-details__opt{display:flex;justify-content:space-between;gap:.8rem;align-items:center;padding:.6rem .8rem;background:var(--ttd-bg-soft);border-radius:10px;}
.pt-details__opt-name{font-weight:600;color:var(--ttd-ink);font-size:.92rem;}
.pt-details__loading{display:flex;flex-direction:column;align-items:center;gap:.8rem;padding:3rem 1rem;color:var(--ttd-mute2);}
.pt-spinner{width:34px;height:34px;border:3px solid var(--ttd-line);border-top-color:var(--ttd-gold);border-radius:50%;animation:pt-spin 1s linear infinite;}
.pt-details__foot{display:flex;align-items:center;gap:.8rem;padding:.7rem .9rem;border-top:1px solid var(--ttd-line);background:#fff;flex-wrap:wrap;}
.pt-details__pricebox{display:flex;flex-direction:column;line-height:1.1;}
.pt-details__pricebox small{color:var(--ttd-mute2);font-size:.72rem;text-transform:uppercase;letter-spacing:.03em;}
.pt-details__pricebox strong{font-size:1.3rem;color:var(--ttd-ink);}
.pt-details__actions{display:flex;gap:.5rem;margin-left:auto;flex-wrap:wrap;}
.pt-details__actions .pt-btn{padding:.6rem .9rem;font-size:.85rem;}
.pt-details__actions .pt-btn.is-added{background:var(--ttd-success);color:#fff;border-color:var(--ttd-success);}
@keyframes pt-details-in{from{opacity:0;transform:translateY(20px) scale(.98);}to{opacity:1;transform:none;}}
@media (max-width:560px){
  .pt-details{padding:0;}
  .pt-details__dialog{width:100%;max-height:100vh;height:100%;border-radius:0;}
  .pt-details__hero{height:220px;}
  .pt-details__foot{position:sticky;bottom:0;}
  .pt-details__actions{width:100%;}
  .pt-details__actions .pt-btn{flex:1;justify-content:center;}
}

/* --- Booking-modal support: the modal's CSS uses --eg-* vars defined in the
   product page's stylesheet, which this page does NOT load. Define them here so
   the modal (esp. .btn-primary's gradient) renders correctly. --- */
:root{
  --eg-navy:#284878;--eg-navy-dark:#1d3760;--eg-primary:#284878;
  --eg-text-primary:#0f172a;--eg-text-secondary:#475569;--eg-text-muted:#64748b;--eg-text-light:#94a3b8;
  --eg-border:#e2e8f0;--eg-border-light:#f1f5f9;--eg-bg-secondary:#f8fafc;--eg-bg-tertiary:#f1f5f9;
  --eg-danger:#ef4444;--eg-success:#059669;--eg-green-icon:#059669;--eg-green-bg:#ecfdf5;--eg-green-text:#047857;--eg-green-border:#86efac;--eg-green-light:#10b981;
  --eg-gold:#d4a96c;--eg-gold-dark:#c19c77;--eg-star:#ffb800;--eg-warning:#d4a96c;--eg-terracotta:#c75d3a;
  --eg-radius:12px;--eg-radius-sm:8px;--eg-radius-xs:4px;--eg-radius-lg:16px;--eg-radius-xl:20px;--eg-radius-full:9999px;
  --eg-shadow-xs:0 1px 2px rgba(0,0,0,.04);--eg-shadow-sm:0 1px 3px rgba(0,0,0,.06);--eg-shadow-md:0 4px 12px rgba(0,0,0,.08);--eg-shadow-lg:0 8px 24px rgba(0,0,0,.12);
  --eg-shadow-navy-sm:0 2px 8px rgba(40,72,120,.1);--eg-shadow-navy-md:0 4px 16px rgba(40,72,120,.2);
  --eg-space-xs:4px;--eg-space-sm:8px;--eg-space-md:16px;--eg-space-lg:24px;--eg-space-xl:32px;--eg-space-2xl:48px;
  --eg-transition:.25s cubic-bezier(.4,0,.2,1);
  --eg-font:"DM Sans",-apple-system,BlinkMacSystemFont,"Segoe UI",Roboto,sans-serif;
  /* keep the booking modal above the plan's sticky cart bar (1150) + details modal (1300) */
  --z-modal-backdrop:1390;--z-modal:1400;--z-gallery:10;
}
/* Hide the plan's sticky cart bar while ANY overlay is open (wizard/sites/building
   share body.pt-noscroll; the booking modal adds booking-modal-open) — the cart bar
   belongs only to the results/itinerary view, so it never overlaps their controls. */
body.pt-noscroll .pt-cartbar,
body.booking-modal-open .pt-cartbar{display:none !important;}

/* View details + Add to cart row on each tour card */
.pt-tour__cta{display:flex;gap:.5rem;margin-top:.2rem;}
.pt-tour__cta .pt-tour__cart{flex:1;width:auto;margin-top:0;}
.pt-tour__view{flex:0 0 auto;display:inline-flex;align-items:center;justify-content:center;gap:.35rem;
  padding:.6rem .7rem;border:1.5px solid var(--ttd-line);border-radius:var(--ttd-radius-sm);background:#fff;
  color:var(--ttd-accent);font-size:.82rem;font-weight:600;cursor:pointer;font-family:inherit;white-space:nowrap;transition:all .15s ease;}
.pt-tour__view:hover{border-color:var(--ttd-accent);background:var(--ttd-bg-soft);}
.pt-tour__view .pti{width:1.05em;height:1.05em;}

/* compare */
.pt-compare{margin:0 0 2rem;}
.pt-compare__scroll{overflow-x:auto;-webkit-overflow-scrolling:touch;}
.pt-compare__table{display:grid;grid-auto-flow:column;grid-auto-columns:minmax(210px,1fr);gap:.8rem;min-width:min-content;}
.pt-compare__col{background:#fff;border:1px solid var(--ttd-line);border-radius:var(--ttd-radius);overflow:hidden;}
.pt-compare__col img{width:100%;aspect-ratio:16/10;object-fit:cover;}
.pt-compare__col h4{font-size:.88rem;margin:.6rem .7rem;line-height:1.3;
  display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;}
.pt-compare__row{display:flex;justify-content:space-between;gap:.5rem;font-size:.8rem;
  padding:.4rem .7rem;border-top:1px solid var(--ttd-line-soft);}
.pt-compare__row span:first-child{color:var(--ttd-mute2);}
.pt-compare__row span:last-child{font-weight:600;text-align:end;}

/* save row */
.pt-save{display:flex;flex-wrap:wrap;align-items:center;gap:.6rem;
  background:#fff;border:1px dashed var(--ttd-line);border-radius:var(--ttd-radius);
  padding:.9rem 1rem;margin:0 0 1.6rem;}
.pt-save__label{font-weight:600;color:var(--ttd-accent);margin-inline-end:auto;}
.pt-results__cta{text-align:center;}

/* no-match */
.pt-nomatch{background:#fff;border:1px solid var(--ttd-line);border-radius:var(--ttd-radius-lg);
  padding:1.6rem;text-align:center;}
.pt-nomatch h3{color:var(--ttd-accent);}

/* ---- INCENTIVE ---- */
.pt-incentive{background:var(--ttd-accent);color:#fff;}
.pt-incentive__inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:1rem 1.6rem;padding:1.1rem 20px;}
.pt-incentive__title{font-weight:700;color:var(--ttd-gold);}
.pt-incentive__item{display:flex;align-items:center;gap:.45rem;font-size:.92rem;}
.pt-incentive__item .pti{color:var(--ttd-gold);}

/* ---- CONTACT FORM ---- */
.pt-contact{padding:2.6rem 0;background:var(--ttd-bg);}
.pt-contact.is-flash{animation:pt-flash 1s ease;}
@keyframes pt-flash{0%,100%{background:var(--ttd-bg);}30%{background:#fbf4e6;}}
.pt-form{background:#fff;border:1px solid var(--ttd-line);border-radius:var(--ttd-radius-lg);
  padding:1.4rem;box-shadow:var(--ttd-shadow);margin-top:1.2rem;}
.pt-form__row{display:grid;grid-template-columns:1fr;gap:.9rem;}
.pt-field{display:block;margin-bottom:.9rem;}
.pt-field span{display:block;font-size:.85rem;font-weight:600;margin-bottom:.3rem;color:var(--ttd-ink);}
.pt-field input,.pt-field textarea{width:100%;font:inherit;font-size:16px;
  border:1.5px solid var(--ttd-line);border-radius:var(--ttd-radius-sm);
  padding:.7rem .8rem;background:var(--ttd-bg-soft);color:var(--ttd-ink);}
.pt-field input:focus,.pt-field textarea:focus{outline:none;border-color:var(--ttd-accent);
  background:#fff;box-shadow:0 0 0 3px rgba(40,72,120,.12);}
.pt-field input.is-err,.pt-field textarea.is-err{border-color:var(--ttd-danger);}
.pt-field textarea{resize:vertical;min-height:84px;}
.pt-check{display:flex;gap:.6rem;align-items:flex-start;font-size:.88rem;
  color:var(--ttd-muted);margin:.4rem 0 1rem;cursor:pointer;}
.pt-check input{width:20px;height:20px;flex:none;accent-color:var(--ttd-accent);margin-top:.1rem;}
/* Honeypot (both forms). Was `left:-9999px`, which is invisible in LTR but in
   RTL becomes 9999px of REAL scrollable overflow — /plan-your-trip?lang=ar
   loaded already scrolled sideways into blank space (documentElement
   scrollWidth 10374 vs clientWidth 375; the LTR page measured 0).
   The clip pattern overflows in NEITHER direction. Still in the DOM, still
   submitted, still not focusable (tabindex=-1) — so it keeps working as a
   honeypot; deliberately NOT display:none, which naive bots skip. */
.pt-hp{position:absolute!important;width:1px;height:1px;padding:0;margin:-1px;
  overflow:hidden;clip:rect(0 0 0 0);clip-path:inset(50%);white-space:nowrap;border:0;opacity:0;}
.pt-form__actions{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;}
.pt-wa-link{display:inline-flex;align-items:center;gap:.4rem;color:#25785a;font-weight:600;
  text-decoration:none;font-size:.92rem;}
.pt-wa-link .pti{color:#25d366;width:1.3em;height:1.3em;}
.pt-wa-link:hover{text-decoration:underline;}
.pt-form__privacy{font-size:.78rem;color:var(--ttd-mute2);margin:.9rem 0 0;}
.pt-form__msg{margin:.8rem 0 0;font-weight:600;font-size:.92rem;}
.pt-form__msg.is-ok{color:var(--ttd-success);}
.pt-form__msg.is-err{color:var(--ttd-danger);}
.pt-form.is-success .pt-form__row,.pt-form.is-success .pt-field,
.pt-form.is-success .pt-check,.pt-form.is-success .pt-form__actions{display:none;}

/* ---- INTRO / SAMPLES / FAQ ---- */
/* TTD band alternation (v1.0.20 order): intro(soft) → samples(white) → incentive(navy) → contact(white) → faq(soft) → related(white) → band(navy) */
.pt-intro{padding:2.6rem 0;background:var(--ttd-bg-soft);}
.pt-intro p{color:var(--ttd-muted);margin:0 0 1rem;}
.pt-samples{padding:2.6rem 0;background:var(--ttd-bg);}
.pt-samples__grid{display:grid;grid-template-columns:1fr;gap:1rem;}
.pt-sample{background:#fff;border:1px solid var(--ttd-line);border-radius:var(--ttd-radius);padding:1.1rem;}
.pt-sample h3{font-size:1.02rem;color:var(--ttd-accent);margin:0 0 .4rem;}
.pt-sample p{font-size:.9rem;color:var(--ttd-muted);margin:0 0 .8rem;}
.pt-faq{padding:2.6rem 0 3.4rem;background:var(--ttd-bg-soft);}
.pt-faq__list{display:flex;flex-direction:column;gap:.6rem;}
.pt-faq__item{background:#fff;border:1px solid var(--ttd-line);border-radius:var(--ttd-radius);
  padding:.2rem .2rem;}
.pt-faq__item summary{cursor:pointer;font-weight:600;padding:.85rem 1rem;list-style:none;
  position:relative;padding-inline-end:2.4rem;color:var(--ttd-ink);}
.pt-faq__item summary::-webkit-details-marker{display:none;}
.pt-faq__item summary::after{content:"+";position:absolute;inset-inline-end:1rem;top:.7rem;
  font-size:1.3rem;color:var(--ttd-gold-dk);transition:transform .2s;}
.pt-faq__item[open] summary::after{transform:rotate(45deg);}
.pt-faq__a{padding:0 1rem 1rem;color:var(--ttd-muted);font-size:.93rem;}

/* ---- HERO action buttons (two planning modes) ---- */
.pt-hero__actions{display:flex;flex-wrap:wrap;gap:.7rem;justify-content:center;margin:0;}
.pt-btn--hero-alt{background:rgba(255,255,255,.12);color:#fff;
  border:1.5px solid rgba(255,255,255,.32);}
.pt-btn--hero-alt:hover{background:rgba(255,255,255,.2);border-color:rgba(255,255,255,.5);}
.pt-btn--hero-alt .pti{color:var(--ttd-gold);}

/* intro: two-modes explainer */
.pt-intro__modes{background:var(--ttd-bg-tint);border-inline-start:3px solid var(--ttd-gold);
  border-radius:var(--ttd-radius-sm);padding:.9rem 1.1rem;font-size:.93rem;color:var(--ttd-muted);}
.pt-intro__modes strong{color:var(--ttd-accent);}

/* ---- EXPLORE BY SITES (full-screen companion mode) ---- */
.pt-sites{position:fixed;inset:0;z-index:1000;background:var(--ttd-bg-soft);
  display:flex;flex-direction:column;}
.pt-sites[hidden]{display:none;}
.pt-sites__bar{display:flex;align-items:center;gap:.7rem;
  padding:calc(.8rem + var(--pt-safe-t)) 16px .8rem;background:var(--ttd-accent);
  color:#fff;}
.pt-sites__title{flex:1;font-weight:700;font-size:1rem;display:flex;align-items:center;gap:.5rem;}
.pt-sites__title .pti{color:var(--ttd-gold);}
.pt-sites__bar .pt-wizard__close{background:rgba(255,255,255,.16);color:#fff;}
.pt-sites__bar .pt-wizard__close:hover{background:rgba(255,255,255,.28);}
.pt-sites__body{flex:1;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:1.4rem 16px;}
.pt-sites__wrap{max-width:760px;margin:0 auto;}
.pt-sites__q{font-size:clamp(1.2rem,3.4vw,1.55rem);font-weight:700;color:var(--ttd-accent);
  margin:0 0 .35rem;line-height:1.3;}
.pt-sites__hint{color:var(--ttd-mute2);font-size:.9rem;margin:0 0 1.2rem;}
.pt-sites__loading{display:flex;justify-content:center;padding:3rem 0;}

/* site / city tile grid */
.pt-sitegrid{display:grid;grid-template-columns:repeat(2,1fr);gap:.6rem;}

/* toggleable site tile */
.pt-sitetile{position:relative;display:flex;align-items:center;gap:.55rem;
  border:1.5px solid var(--ttd-line);border-radius:var(--ttd-radius);background:#fff;
  padding:.8rem .85rem;font:inherit;font-size:.9rem;color:var(--ttd-ink);cursor:pointer;
  text-align:start;transition:border-color .15s,box-shadow .15s,background .15s;}
.pt-sitetile:hover{border-color:var(--ttd-accent);}
.pt-sitetile.is-sel{border-color:var(--ttd-accent);background:#f3f7fd;
  box-shadow:0 0 0 2px rgba(40,72,120,.18);}
.pt-sitetile__check{width:22px;height:22px;flex:none;border-radius:50%;
  border:1.5px solid var(--ttd-line);display:flex;align-items:center;justify-content:center;
  color:transparent;transition:background .15s,border-color .15s,color .15s;}
.pt-sitetile__check .pti{width:14px;height:14px;}
.pt-sitetile.is-sel .pt-sitetile__check{background:var(--ttd-accent);
  border-color:var(--ttd-accent);color:#fff;}
.pt-sitetile__name{flex:1;font-weight:600;line-height:1.3;}

/* sites dock */
.pt-sites__dock{background:#fff;border-top:1px solid var(--ttd-line);
  padding:1rem 16px calc(1rem + var(--pt-safe-b));max-height:50vh;overflow-y:auto;}
.pt-sites__dock:empty{display:none;}
.pt-sites__count{text-align:center;font-size:.85rem;font-weight:600;
  color:var(--ttd-accent);margin:0;}
.pt-sites__dock .pt-dock__nav{margin-top:.7rem;}

/* sites results */
.pt-sites__grid{margin-top:1.2rem;}
.pt-sites__custom{background:#fff;border:1px solid var(--ttd-gold);
  border-inline-start:4px solid var(--ttd-gold);border-radius:var(--ttd-radius);
  padding:1.1rem 1.2rem;margin:0 0 1.4rem;}
.pt-sites__custom h3{color:var(--ttd-accent);font-size:1.05rem;margin:0 0 .4rem;}
.pt-sites__custom p{color:var(--ttd-muted);font-size:.9rem;margin:0 0 .7rem;}
.pt-sites__custom .pt-sites__customlist{font-weight:600;color:var(--ttd-accent);font-size:.88rem;}
.pt-sites__custom .pt-btn{margin-top:.2rem;}
/* permanent "request a custom program" section at the foot of Sites results */
.pt-sites__request{margin-top:1.8rem;background:linear-gradient(160deg,var(--ttd-accent),var(--ttd-accent-dk));
  color:#fff;border-radius:var(--ttd-radius-lg);padding:1.5rem 1.3rem;text-align:center;}
.pt-sites__request h3{color:#fff;font-size:1.1rem;margin:0 0 .45rem;}
.pt-sites__request p{color:rgba(255,255,255,.86);font-size:.92rem;margin:0 auto 1rem;max-width:520px;}
.pt-tour__view{font-size:.82rem;padding:.5rem .9rem;white-space:nowrap;}

/* ---- Sites custom-trip request flow (v1.0.12+) ---- */
/* category groupings in the picker */
.pt-sitecat{margin:0 0 1.4rem;}
.pt-sitecat__h{font-size:.92rem;font-weight:700;letter-spacing:.04em;text-transform:uppercase;
  color:var(--ttd-accent);margin:0 0 .55rem;padding:.6rem .85rem;
  background:linear-gradient(90deg,rgba(40,72,120,.08),transparent);
  border-inline-start:3px solid var(--ttd-gold);border-radius:6px;}
.pt-sites__eyebrow{display:inline-block;margin:0 0 .35rem;}
.pt-sites__pickmeta{font-size:.88rem;color:var(--ttd-mute2);margin:0 0 1.2rem;}
.pt-sites__pickmeta .pt-link{font-weight:600;margin-inline-start:.2rem;}

/* review screen: picks listed */
.pt-pickbox{background:#fff;border:1px solid var(--ttd-line);border-radius:var(--ttd-radius-lg);
  padding:1rem 1.2rem;margin:0 0 1.4rem;}
.pt-pickbox__h{font-size:.85rem;font-weight:700;letter-spacing:.05em;text-transform:uppercase;
  color:var(--ttd-accent);margin:0 0 .8rem;}
.pt-pickgroup{margin:0 0 .9rem;}
.pt-pickgroup:last-child{margin-bottom:0;}
.pt-pickgroup__h{font-size:.86rem;font-weight:700;color:var(--ttd-accent);margin:0 0 .35rem;}
.pt-pickgroup__list{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:.35rem .5rem;}
.pt-pickgroup__list li{font-size:.85rem;background:var(--ttd-bg-tint);border-radius:6px;
  padding:.25rem .6rem;color:var(--ttd-ink);}

/* request form */
.pt-sites__form{background:#fff;border:1px solid var(--ttd-line);border-radius:var(--ttd-radius-lg);
  padding:1.2rem 1.3rem;box-shadow:var(--ttd-shadow);}
.pt-sites__form .pt-field{display:block;margin-bottom:.95rem;}
.pt-sites__form .pt-field span{display:block;font-size:.85rem;font-weight:600;margin-bottom:.3rem;color:var(--ttd-ink);}
.pt-sites__form .pt-field input,.pt-sites__form .pt-field select,.pt-sites__form .pt-field textarea{
  width:100%;font:inherit;font-size:16px;border:1.5px solid var(--ttd-line);border-radius:var(--ttd-radius-sm);
  padding:.7rem .8rem;background:var(--ttd-bg-soft);color:var(--ttd-ink);}
.pt-sites__form .pt-field input:focus,.pt-sites__form .pt-field select:focus,.pt-sites__form .pt-field textarea:focus{
  outline:none;border-color:var(--ttd-accent);background:#fff;box-shadow:0 0 0 3px rgba(40,72,120,.12);}
.pt-sites__form .pt-field input.is-err,.pt-sites__form .pt-field textarea.is-err,.pt-sites__form .pt-field select.is-err{
  border-color:var(--ttd-danger);}
.pt-sites__form .pt-field small{display:block;font-size:.78rem;color:var(--ttd-mute2);margin-top:.25rem;}
.pt-sites__form .pt-field textarea{resize:vertical;min-height:74px;}
.pt-sites__form .pt-check{display:flex;gap:.6rem;align-items:flex-start;font-size:.88rem;
  color:var(--ttd-muted);margin:.4rem 0 1rem;cursor:pointer;}
.pt-sites__form .pt-check input{width:20px;height:20px;flex:none;accent-color:var(--ttd-accent);margin-top:.1rem;}
.pt-sites__formfoot{display:flex;flex-wrap:wrap;align-items:center;gap:.9rem;margin:.4rem 0 0;}
.pt-sites__formfoot .pt-btn{flex:1;min-width:240px;}
.pt-sites__form .pt-form__privacy{font-size:.78rem;color:var(--ttd-mute2);margin:.9rem 0 0;}
.pt-sites__form .pt-form__msg{margin:.8rem 0 0;font-weight:600;font-size:.92rem;}
.pt-sites__form .pt-form__msg.is-ok{color:var(--ttd-success);}
.pt-sites__form .pt-form__msg.is-err{color:var(--ttd-danger);}

/* success state */
.pt-sites__success{text-align:center;padding:2rem 1rem 3rem;}
.pt-sites__successicon{width:72px;height:72px;border-radius:50%;background:var(--ttd-success);color:#fff;
  display:flex;align-items:center;justify-content:center;margin:0 auto 1.2rem;
  box-shadow:0 8px 22px rgba(46,125,50,.28);}
.pt-sites__successicon .pti{width:36px;height:36px;}

@media(min-width:768px){
  .pt-sites__form{padding:1.6rem 1.8rem;}
}

/* ---- CTA bands (host pages) ---- */
.pt-band{background:linear-gradient(160deg,var(--ttd-accent),var(--ttd-accent-dk));
  color:#fff;border-radius:var(--ttd-radius-lg);padding:1.8rem 1.4rem;text-align:center;
  margin:1.4rem auto;max-width:1120px;}
.pt-band h2,.pt-band h3{color:#fff;margin:0 0 .5rem;font-size:clamp(1.2rem,3.4vw,1.7rem);}
.pt-band p{color:rgba(255,255,255,.85);margin:0 0 1.1rem;}
.pt-band--strip{display:flex;align-items:center;justify-content:center;gap:1rem 1.4rem;
  flex-wrap:wrap;text-align:start;}
.pt-band--strip>div{flex:1 1 280px;}

/* ---- desktop ---- */
@media(min-width:768px){
  .pt-choices--cities,.pt-choices--cats{grid-template-columns:repeat(4,1fr);}
  .pt-choices--cards{grid-template-columns:repeat(3,1fr);}
  .pt-choices--months{grid-template-columns:repeat(4,1fr);}
  .pt-grid{grid-template-columns:repeat(3,1fr);}
  .pt-form__row{grid-template-columns:1fr 1fr;}
  .pt-samples__grid{grid-template-columns:repeat(2,1fr);}
  .pt-wizard{inset:3vh 50% auto 50%;transform:translateX(-50%);width:min(760px,94vw);
    height:94vh;border-radius:var(--ttd-radius-lg);box-shadow:0 24px 60px rgba(15,23,42,.35);
    overflow:hidden;}
  .pt-citycard img{height:120px;}
  .pt-sitegrid{grid-template-columns:repeat(3,1fr);}
  .pt-sites{inset:3vh 50% auto 50%;transform:translateX(-50%);width:min(860px,94vw);
    height:94vh;border-radius:var(--ttd-radius-lg);box-shadow:0 24px 60px rgba(15,23,42,.35);
    overflow:hidden;}
  /* itinerary day card — desktop: one tour per day fills the row as a
     horizontal "timeline" card (photo left, details right) so a single
     tour no longer strands ~60% of the row. Scoped to .pt-day__body so the
     main catalog grid (#ptGrid) keeps its 3-up vertical cards. */
  .pt-day__body .pt-grid{display:block;}
  .pt-day__body .pt-tour{flex-direction:row;}
  .pt-day__body .pt-tour__media{flex:0 0 clamp(240px,30%,300px);aspect-ratio:16/10;}
  .pt-day__body .pt-tour__body{flex:1;justify-content:center;gap:.55rem;}
}
@media(min-width:1024px){
  .pt-grid{grid-template-columns:repeat(3,1fr);}
}

/* ---- a11y / motion ---- */
@media(prefers-reduced-motion:reduce){
  *{animation-duration:.001ms!important;transition-duration:.001ms!important;}
}
.pt-btn:focus-visible,.pt-choice:focus-visible,.pt-chip:focus-visible,
.pt-field input:focus-visible,.pt-faq__item summary:focus-visible{
  outline:3px solid var(--ttd-gold);outline-offset:2px;}
[dir="rtl"] .pt-bubble--bot{border-bottom-left-radius:var(--ttd-radius-lg);border-bottom-right-radius:4px;}
[dir="rtl"] .pt-bubble--user{border-bottom-right-radius:var(--ttd-radius-lg);border-bottom-left-radius:4px;}
body.pt-noscroll{overflow:hidden;}

/* ============================================================
   TTD reskin additions (v1.0.18) — hero breadcrumb, related
   destinations grid, floating WhatsApp. Purely additive; the
   wizard / sites / results markup + JS hooks are untouched.
   ============================================================ */

/* hero breadcrumb (matches BreadcrumbList JSON-LD) */
.pt-hero__crumb{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;
  gap:.4rem;font-size:.82rem;margin:0 0 1rem;color:rgba(255,255,255,.8);}
.pt-hero__crumb a{color:rgba(255,255,255,.8);text-decoration:none;transition:color .15s;}
.pt-hero__crumb a:hover{color:#fff;}
.pt-hero__crumb [aria-current="page"]{color:var(--ttd-gold);font-weight:600;}

/* related destinations grid (TTD §7h) */
.pt-related{padding:2.6rem 0;background:var(--ttd-bg);}
.pt-related__grid{display:grid;gap:.8rem;margin-top:1.2rem;
  grid-template-columns:repeat(auto-fill,minmax(min(100%,220px),1fr));}
.pt-related__card{display:flex;align-items:center;gap:.7rem;background:#fff;
  border:1px solid var(--ttd-line);border-radius:var(--ttd-radius);
  padding:.95rem 1.1rem;text-decoration:none;color:var(--ttd-ink);font-weight:600;
  font-size:.95rem;transition:transform .2s,box-shadow .2s,border-color .2s;}
.pt-related__card:hover{transform:translateY(-3px);border-color:var(--ttd-accent);
  box-shadow:var(--ttd-shadow-navy-sm);}
.pt-related__card>.pti:first-child{color:var(--ttd-accent);width:1.2em;height:1.2em;flex:none;}
.pt-related__card span{flex:1;}
.pt-related__arrow{color:var(--ttd-accent);width:1em;height:1em;flex:none;transition:transform .2s;}
.pt-related__card:hover .pt-related__arrow{transform:translateX(4px);}
[dir="rtl"] .pt-related__arrow{transform:scaleX(-1);}
[dir="rtl"] .pt-related__card:hover .pt-related__arrow{transform:scaleX(-1) translateX(4px);}

/* floating WhatsApp pill — z-index below the fullscreen wizard/sites overlays (z-1000) */
.pt-float-wa{position:fixed;right:16px;bottom:calc(16px + var(--pt-safe-b));z-index:900;
  display:inline-flex;align-items:center;gap:.5rem;background:#25d366;color:#fff;
  padding:.8rem 1.15rem;border-radius:999px;font-weight:600;font-size:.92rem;
  text-decoration:none;box-shadow:0 6px 20px rgba(37,211,102,.4);
  transition:background .2s,transform .15s;}
.pt-float-wa:hover{background:#1ea952;transform:translateY(-1px);color:#fff;}
.pt-float-wa .pti{width:1.25em;height:1.25em;}
[dir="rtl"] .pt-float-wa{right:auto;left:16px;}

/* ---- RTL: mirror the remaining direction-sensitive rules -------------------
   The sheet had only 6 [dir=rtl] overrides; these five rules were left
   physical, so on /plan-your-trip?lang=ar the details dialog's ✕ sat on the
   wrong side (over where the RTL title starts), its action row pushed to the
   wrong edge, and its bullet lists were indented from the wrong side.
   (.pt-toast / .pt-cartbar use left:50% + translateX(-50%), which is symmetric
   and correct in both directions — deliberately not touched.) */
[dir="rtl"] .pt-wizard__pct{text-align:left;}
[dir="rtl"] .pt-details__close{right:auto;left:12px;}
[dir="rtl"] .pt-details__actions{margin-left:0;margin-right:auto;}
[dir="rtl"] .pt-details__list{padding-left:.9rem;padding-right:2rem;}
@media(max-width:480px){.pt-float-wa span{display:none;}.pt-float-wa{padding:.85rem;}}

/* ad-adaptive full-bleed image hero (TTD §5 ttd-hero--image treatment).
   DARK navy overlay (.9+) keeps the white H1/subtitle/breadcrumb/pills clearly
   readable over any photo; image URLs come from inline --pt-hero-img(-m) vars
   so they can be ad-adaptive per ?dest=. background-color is the fallback if
   the /img request ever fails, so the text stays legible regardless. */
.pt-hero--img{background-color:var(--ttd-accent-dk);
  background-image:linear-gradient(160deg,rgba(13,25,48,.9) 0%,rgba(20,38,70,.8) 55%,rgba(29,55,96,.72) 100%),var(--pt-hero-img,none);
  background-size:cover;background-position:center;background-repeat:no-repeat;}
@media(max-width:768px){
  .pt-hero--img{background-image:linear-gradient(160deg,rgba(13,25,48,.92) 0%,rgba(20,38,70,.85) 60%,rgba(29,55,96,.78) 100%),var(--pt-hero-img-m,var(--pt-hero-img,none));}
}
.pt-hero--img .pt-hero__title{text-shadow:0 2px 18px rgba(0,0,0,.45);}
.pt-hero--img .pt-hero__sub{text-shadow:0 1px 10px rgba(0,0,0,.4);}
.pt-hero--img .pt-hero__crumb{text-shadow:0 1px 6px rgba(0,0,0,.4);}

/* ============================================================
   UI/UX pass (v1.0.20) — sample-card photos, a11y focus rings,
   44px touch targets, sticky-header scroll offsets.
   ============================================================ */

/* sample plan cards: city photo header + equal-height bodies */
.pt-sample{padding:0;overflow:hidden;display:flex;flex-direction:column;}
.pt-sample__img{width:100%;aspect-ratio:16/9;object-fit:cover;background:var(--ttd-bg-tint);}
.pt-sample__body{padding:1rem 1.1rem 1.15rem;display:flex;flex-direction:column;flex:1;}
.pt-sample__body p{flex:1;}
.pt-sample .pt-link{min-height:44px;align-items:center;}

/* anchored scrolls (results reveal, "get my plan" goto) must clear the
   fixed 64px site header */
.pt-results,.pt-contact,.pt-intro,.pt-samples,.pt-faq{scroll-margin-top:80px;}

/* focus rings for the interactive elements the base block missed */
.pt-sitetile:focus-visible,.pt-link:focus-visible,.pt-related__card:focus-visible,
.pt-float-wa:focus-visible,.pt-wa-link:focus-visible,.pt-wizard__restart:focus-visible,
.pt-tour__cart:focus-visible,.pt-stepper__ctl button:focus-visible,
.pt-check input:focus-visible,.pt-field textarea:focus-visible,
.pt-field select:focus-visible,.pt-bubble--user button:focus-visible{
  outline:3px solid var(--ttd-gold);outline-offset:2px;}
.pt-wizard[tabindex]:focus,.pt-sites[tabindex]:focus{outline:none;}

/* touch devices: bring small controls up to the 44px minimum target */
@media(pointer:coarse){
  .pt-wizard__close{width:44px;height:44px;}
  .pt-stepper__ctl button{width:44px;height:44px;}
  .pt-chip{min-height:44px;padding:.7rem .5rem;}
  .pt-wizard__restart{padding:.6rem .4rem;}
  .pt-bubble--user button{padding:.4rem .35rem;}
  .pt-summary__chip{min-height:36px;}
}
