/*
Theme Name: Travel Tayo
Theme URI: https://www.traveltayoph.com/
Author: Travel Tayo Travel Solutions Inc.
Author URI: https://www.traveltayoph.com/
Description: Custom theme generated from the traveltayoph.com static site (index2.html).
Version: 1.0
Text Domain: traveltayo
*/

  :root{
    --purple:#7A2E8F;
    --purple-dark:#4B1B59;
    --purple-deep:#2A0F33;
    --purple-soft:#F3EAF6;
    --gold:#FFC93C;
    --gold-dark:#E8A317;
    --green:#1FA971;
    --blue:#2E8BC9;
    --ink:#231B2E;
    --muted:#6B6577;
    --bg:#FBF9FC;
    --surface:#FFFFFF;
    --border:#ECE6F0;
    --radius:20px;
    --shadow-sm: 0 4px 16px -8px rgba(42,15,51,0.18);
    --shadow-lg: 0 20px 45px -18px rgba(42,15,51,0.35);
    --container: 1200px;
    --ff-head: 'Poppins', -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --ff-body: 'Inter', -apple-system, 'Segoe UI', Roboto, Helvetica, Arial, sans-serif;
    --ff-serif: 'Fraunces', Georgia, 'Times New Roman', serif;
  }
  *,*::before,*::after{ box-sizing:border-box; }
  html{ scroll-behavior:smooth; }
  body{
    margin:0;
    font-family:var(--ff-body);
    color:var(--ink);
    background:var(--bg);
    line-height:1.6;
    -webkit-font-smoothing:antialiased;
  }
  img{ max-width:100%; display:block; }
  a{ color:inherit; text-decoration:none; }
  ul{ margin:0; padding:0; list-style:none; }
  h1,h2,h3,h4{ font-family:var(--ff-head); margin:0 0 .5em; line-height:1.2; color:var(--purple-deep); }
  p{ margin:0 0 1em; }
  .container{ max-width:var(--container); margin:0 auto; padding:0 24px; }
  .eyebrow{
    display:inline-flex; align-items:center; gap:8px;
    font-family:var(--ff-head); font-weight:600; font-size:.78rem;
    letter-spacing:.14em; text-transform:uppercase; color:var(--purple);
    background:var(--purple-soft); padding:6px 14px; border-radius:999px;
    margin-bottom:16px;
  }
  .section{ padding:88px 0; }
  .section-head{ max-width:640px; margin:0 auto 48px; text-align:center; }
  .section-head h2{ font-family:var(--ff-serif); font-weight:600; letter-spacing:-.01em; font-size:clamp(1.8rem, 3.4vw, 2.5rem); }
  .section-head p{ color:var(--muted); font-size:1.05rem; margin:0; }
  .btn{
    display:inline-flex; align-items:center; justify-content:center; gap:8px;
    font-family:var(--ff-head); font-weight:600; font-size:.95rem;
    padding:14px 26px; border-radius:999px; border:2px solid transparent;
    cursor:pointer; transition:transform .18s ease, box-shadow .18s ease, background .18s ease, color .18s ease;
    white-space:nowrap;
  }
  .btn:hover{ transform:translateY(-2px); }
  .btn-primary{ background:linear-gradient(135deg,var(--gold),var(--gold-dark)); color:var(--purple-deep); box-shadow:0 12px 26px -10px rgba(232,163,23,.65); }
  .btn-primary:hover{ box-shadow:0 16px 32px -10px rgba(232,163,23,.8); }
  .btn-outline{ background:transparent; border-color:rgba(255,255,255,.55); color:#fff; }
  .btn-outline:hover{ background:rgba(255,255,255,.12); }
  .btn-solid{ background:var(--purple); color:#fff; box-shadow:0 12px 26px -10px rgba(122,46,143,.55); }
  .btn-solid:hover{ background:var(--purple-dark); }
  .btn-ghost{ background:var(--purple-soft); color:var(--purple-dark); }
  .btn-ghost:hover{ background:#e9d9ee; }
  .btn-sm{ padding:10px 18px; font-size:.85rem; }
  .btn-block{ width:100%; }

  .icon{ width:1em; height:1em; display:inline-block; vertical-align:-0.125em; flex:none; }
  .icon-line{ fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; }

  /* ---------- Header ---------- */
  .site-header{
    position:sticky; top:0; z-index:100;
    background:rgba(251,249,252,.85);
    backdrop-filter:blur(10px);
    border-bottom:1px solid var(--border);
  }
  .topbar{
    background:var(--purple-deep); color:#e9d9ee; font-size:.82rem;
  }
  .topbar .container{ display:flex; align-items:center; justify-content:space-between; padding-top:8px; padding-bottom:8px; flex-wrap:wrap; gap:6px; }
  .topbar-links{ display:flex; gap:18px; flex-wrap:wrap; }
  .topbar-links a{ display:inline-flex; align-items:center; gap:6px; opacity:.92; }
  .topbar-links a:hover{ color:var(--gold); }
  .topbar-links .icon{ width:13px; height:13px; opacity:.85; }
  .topbar-social{ display:flex; gap:8px; align-items:center; }
  .topbar-social a{ opacity:.95; transition:transform .15s ease, opacity .15s ease; }
  .topbar-social a:hover{ opacity:1; transform:translateY(-2px); }
  .topbar-social a.topbar-icon{
    width:26px; height:26px; border-radius:50%; display:flex; align-items:center; justify-content:center;
  }
  .social-icon{ display:inline-flex; align-items:center; justify-content:center; border-radius:50%; }
  .ic-messenger{ background:linear-gradient(135deg,#00C6FF,#A033FF,#FF5C7A); }
  .ic-viber{ background:#7360F2; }
  .ic-whatsapp{ background:#25D366; }
  .ic-instagram{ background:linear-gradient(45deg,#F9CE34,#EE2A7B,#6228D7); }
  .ic-tiktok{ background:#010101; }
  .navbar{ display:flex; align-items:center; justify-content:space-between; padding:12px 0; gap:16px; }
  .brand{ display:flex; align-items:center; gap:10px; }
  .brand img{ height:52px; width:auto; }
  .nav-links{ display:flex; align-items:center; gap:30px; }
  .nav-links a{ font-family:var(--ff-head); font-weight:500; font-size:.95rem; color:var(--ink); position:relative; padding:6px 0; }
  .nav-links a::after{
    content:''; position:absolute; left:0; bottom:0; height:2px; width:0;
    background:var(--gold-dark); transition:width .2s ease;
  }
  .nav-links a:hover::after{ width:100%; }
  .nav-cta{ display:flex; align-items:center; gap:12px; }
  .nav-toggle{
    display:none; flex-direction:column; gap:5px; background:none; border:0; cursor:pointer; padding:8px;
  }
  .nav-toggle span{ width:24px; height:2px; background:var(--purple-deep); border-radius:2px; }

  /* ---------- Hero ---------- */
  .hero{
    position:relative; overflow:hidden;
    background:linear-gradient(175deg, #3A1546 0%, var(--purple-deep) 45%, #1C0A22 100%);
    color:#fff; padding:52px 0 0;
  }
  .hero-glow{
    position:absolute; top:-360px; left:50%; transform:translateX(-46%); width:960px; height:960px;
    background:radial-gradient(circle, rgba(255,201,60,.16), rgba(255,201,60,0) 62%);
    pointer-events:none; z-index:0;
  }
  .hero::before{ content:''; position:absolute; inset:0; background-image:radial-gradient(rgba(255,255,255,.09) 1px, transparent 1px); background-size:28px 28px; opacity:.6; pointer-events:none; z-index:0; }
  .hero::after{ content:''; position:absolute; left:0; right:0; bottom:0; height:4px; background:linear-gradient(90deg,var(--gold),var(--purple),var(--blue),var(--green)); z-index:1; }
  .hero .container{ position:relative; z-index:1; }
  .hero-grid{ display:grid; grid-template-columns:1.05fr .95fr; gap:52px; align-items:center; padding:44px 0 88px; }
  .hero-eyebrow{ display:inline-flex; align-items:center; gap:8px; font-family:var(--ff-head); font-weight:600; font-size:.76rem; letter-spacing:.14em; text-transform:uppercase; color:var(--gold); background:rgba(255,201,60,.12); border:1px solid rgba(255,201,60,.3); padding:7px 15px; border-radius:999px; margin-bottom:22px; }
  .hero h1{ font-family:var(--ff-serif); color:#fff; font-weight:600; letter-spacing:-.01em; font-size:clamp(2.3rem, 4.6vw, 3.5rem); margin-bottom:.32em; }
  .hero h1 span{ color:var(--gold); font-style:italic; }
  .hero-sub{ font-size:1.1rem; color:#E0D2E8; max-width:520px; margin-bottom:1.7em; }
  .hero-actions{ display:flex; gap:14px; flex-wrap:wrap; margin-bottom:28px; }
  .hero-credentials{ display:flex; align-items:center; gap:9px; flex-wrap:wrap; font-size:.78rem; color:#B9A3C3; text-transform:uppercase; letter-spacing:.05em; }
  .hero-credentials strong{ color:#fff; font-family:var(--ff-head); font-weight:600; }
  .hero-credentials .sep{ opacity:.5; }

  .hero-logo-display{ display:flex; align-items:center; justify-content:center; position:relative; }
  .hero-logo-display img{ width:100%; max-width:380px; filter:drop-shadow(0 25px 45px rgba(0,0,0,.45)); animation:heroFloat 6s ease-in-out infinite; }
  @keyframes heroFloat{ 0%,100%{ transform:translateY(0);} 50%{ transform:translateY(-14px);} }

  .accred-logos{ display:inline-flex; align-items:center; gap:10px; flex-wrap:wrap; }
  .accred-logo-chip{
    background:#fff; border-radius:8px; box-shadow:0 4px 10px -4px rgba(0,0,0,.3);
    width:76px; height:36px; padding:5px 8px; flex:none; overflow:hidden;
    display:inline-flex; align-items:center; justify-content:center;
  }
  .accred-logo-chip img{ max-width:100%; max-height:100%; width:auto; height:auto; object-fit:contain; display:block; }
  .accred-logo-chip.lg{ width:112px; height:52px; padding:8px 12px; border-radius:10px; }
  .accred-seal{ height:36px; width:36px; flex:none; filter:drop-shadow(0 2px 5px rgba(0,0,0,.35)); }
  .accred-seal.lg{ height:52px; width:52px; }

  /* ---------- Stats / trust strip ---------- */
  .trust-strip{ background:var(--surface); padding:0; border-bottom:1px solid var(--border); }
  .trust-grid{ display:grid; grid-template-columns:repeat(4,1fr); }
  .trust-item{ display:flex; align-items:center; gap:13px; padding:24px 22px; border-left:1px dashed var(--border); }
  .trust-item:first-child{ border-left:0; }
  .trust-item .ic{ flex:none; width:38px; height:38px; border-radius:10px; background:var(--purple-soft); color:var(--purple); display:flex; align-items:center; justify-content:center; }
  .trust-item .ic svg{ width:17px; height:17px; }
  .trust-item strong{ display:block; font-family:var(--ff-head); font-size:.95rem; color:var(--purple-deep); }
  .trust-item span{ font-size:.8rem; color:var(--muted); }

  /* ---------- About ---------- */
  .about-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:56px; align-items:center; }
  .about-panel{ position:relative; overflow:hidden; background:var(--purple-deep); color:#fff; border-radius:var(--radius); padding:38px 34px; }
  .about-panel::before{
    content:''; position:absolute; right:-60px; bottom:-70px; width:240px; height:240px; border-radius:50%;
    background:radial-gradient(circle, rgba(255,201,60,.16), transparent 70%); pointer-events:none;
  }
  .about-panel-kicker{ position:relative; z-index:1; display:block; font-family:var(--ff-head); font-weight:700; font-size:.76rem; letter-spacing:.12em; text-transform:uppercase; color:var(--gold); margin-bottom:18px; }
  .about-panel-badges{ position:relative; z-index:1; display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-bottom:28px; }
  .about-panel-row{ position:relative; z-index:1; display:flex; gap:15px; align-items:flex-start; padding:17px 0; border-top:1px solid rgba(255,255,255,.14); }
  .about-panel-row:first-of-type{ border-top:0; padding-top:0; }
  .about-panel-row .ic{ flex:none; width:40px; height:40px; border-radius:11px; background:rgba(255,255,255,.1); display:flex; align-items:center; justify-content:center; color:var(--gold); }
  .about-panel-row .ic svg{ width:18px; height:18px; }
  .about-panel-row strong{ display:block; font-family:var(--ff-head); font-size:.94rem; margin-bottom:3px; }
  .about-panel-row span{ font-size:.85rem; color:#D8C6DF; line-height:1.5; }
  .about-copy h2{ font-family:var(--ff-serif); font-weight:600; letter-spacing:-.01em; font-size:clamp(1.7rem,3vw,2.3rem); }
  .about-copy p{ color:var(--muted); font-size:1.02rem; }
  .about-list{ display:grid; grid-template-columns:1fr 1fr; gap:14px; margin-top:22px; }
  .about-list li{ display:flex; gap:10px; align-items:flex-start; font-size:.95rem; color:var(--ink); }
  .about-list li .dot{ flex:none; width:22px; height:22px; border-radius:50%; background:var(--purple-soft); color:var(--purple); display:flex; align-items:center; justify-content:center; font-size:.75rem; font-weight:700; }

  /* ---------- Packages ---------- */
  .packages{ background:linear-gradient(180deg,#fff, var(--bg) 12%); }
  .pkg-tabs-wrap{ display:flex; justify-content:center; margin-bottom:28px; }
  .pkg-tabs{ display:inline-flex; gap:4px; padding:6px; background:var(--bg); border:1px solid var(--border); border-radius:14px; flex-wrap:wrap; justify-content:center; }
  .pkg-tab{
    display:inline-flex; align-items:center; gap:7px;
    font-family:var(--ff-head); font-weight:600; font-size:.87rem; padding:11px 18px; border-radius:10px;
    border:0; background:transparent; color:var(--muted); cursor:pointer; transition:all .18s ease;
  }
  .pkg-tab svg{ width:15px; height:15px; }
  .pkg-tab:hover{ color:var(--purple); }
  .pkg-tab.active{ background:#fff; color:var(--purple-dark); box-shadow:var(--shadow-sm); }
  .pkg-toolbar{ display:flex; flex-direction:column; align-items:center; gap:10px; margin-bottom:36px; }
  .pkg-search{
    display:flex; align-items:center; gap:10px; background:#fff; border:1px solid var(--border);
    border-radius:14px; padding:11px 20px; width:100%; max-width:420px; box-shadow:var(--shadow-sm);
  }
  .pkg-search .icon{ color:var(--muted); width:16px; height:16px; }
  .pkg-search input{
    border:0; outline:0; flex:1; font-family:var(--ff-body); font-size:.95rem; background:transparent;
  }
  .pkg-count{ font-size:.8rem; color:var(--muted); }
  .pkg-panel{ display:none; }
  .pkg-panel.active{ display:block; }
  .dur-chips{ display:flex; justify-content:center; gap:8px; flex-wrap:wrap; margin:-14px 0 30px; }
  .dur-chip{
    font-family:var(--ff-head); font-weight:600; font-size:.8rem; padding:7px 16px; border-radius:999px;
    border:1px solid var(--border); background:var(--bg); color:var(--muted); cursor:pointer; transition:all .18s ease;
  }
  .dur-chip:hover{ border-color:var(--purple); color:var(--purple); }
  .dur-chip.active{ background:var(--purple-soft); border-color:var(--purple); color:var(--purple-dark); }
  .pkg-grid{ display:grid; grid-template-columns:repeat(auto-fill,minmax(280px,1fr)); gap:26px; }
  .pkg-card{
    background:var(--surface); border-radius:var(--radius); overflow:hidden; border:1px solid var(--border);
    box-shadow:var(--shadow-sm); display:flex; flex-direction:column; transition:transform .2s ease, box-shadow .2s ease;
  }
  .pkg-card:hover{ transform:translateY(-6px); box-shadow:var(--shadow-lg); }
  .pkg-top{
    padding:26px 22px 20px; position:relative; color:#fff; overflow:hidden;
  }
  .pkg-top::after{ content:''; position:absolute; inset:0; background:radial-gradient(120% 120% at 100% 0%, rgba(255,255,255,.18), transparent 60%); }
  .pkg-icon{ font-size:2.1rem; margin-bottom:10px; display:inline-block; }
  .pkg-top h3{ color:#fff; font-size:1.25rem; margin-bottom:4px; }
  .pkg-days{ font-size:.78rem; letter-spacing:.08em; text-transform:uppercase; opacity:.9; font-weight:600; }
  .accent-a{ background:linear-gradient(135deg,var(--purple),#5A2268); }
  .accent-b{ background:linear-gradient(135deg,var(--blue),#1F5F8F); }
  .accent-c{ background:linear-gradient(135deg,var(--green),#0F7A50); }
  .accent-d{ background:linear-gradient(135deg,var(--gold-dark),#C9840E); }
  .pkg-photo{ position:relative; height:190px; overflow:hidden; background:var(--purple-soft); }
  .pkg-photo img{ width:100%; height:100%; object-fit:cover; display:block; transition:transform .5s ease; }
  .pkg-card:hover .pkg-photo img{ transform:scale(1.07); }
  .pkg-photo::after{
    content:''; position:absolute; inset:0;
    background:linear-gradient(180deg, rgba(20,8,25,0) 35%, rgba(20,8,25,.75) 100%);
  }
  .pkg-photo-tag{
    position:absolute; top:14px; left:14px; z-index:2; color:#fff; font-family:var(--ff-head);
    font-size:.72rem; font-weight:700; letter-spacing:.06em; text-transform:uppercase;
    padding:5px 12px; border-radius:999px;
  }
  .pkg-photo-label{ position:absolute; left:18px; bottom:14px; right:14px; z-index:2; }
  .pkg-photo-label h3{ color:#fff; font-size:1.25rem; margin:0; text-shadow:0 2px 8px rgba(0,0,0,.4); }
  .pkg-photo-fallback{ display:flex; align-items:center; justify-content:center; }
  .pkg-photo-fallback-icon{ font-size:3.4rem; position:relative; z-index:1; filter:drop-shadow(0 6px 10px rgba(0,0,0,.25)); }
  .modal-hero.fallback{ display:flex; align-items:center; justify-content:center; }
  .modal-hero.fallback .modal-hero-fallback-icon{ font-size:4.4rem; position:relative; z-index:1; filter:drop-shadow(0 8px 14px rgba(0,0,0,.3)); }
  .pkg-body{ padding:20px 22px 24px; display:flex; flex-direction:column; gap:14px; flex:1; }
  .pkg-region{ font-size:.78rem; font-weight:600; color:var(--purple); letter-spacing:.02em; margin-bottom:-8px; }
  .pkg-price{ display:flex; align-items:baseline; gap:6px; }
  .pkg-price .amt{ font-family:var(--ff-head); font-weight:800; font-size:1.5rem; color:var(--purple-deep); }
  .pkg-price .per{ font-size:.82rem; color:var(--muted); }
  .pkg-avail{ font-size:.78rem; color:var(--muted); margin-top:-10px; }
  .pkg-incl{ display:flex; flex-direction:column; gap:8px; font-size:.88rem; color:var(--ink); }
  .pkg-incl li{ display:flex; gap:8px; align-items:flex-start; }
  .pkg-incl li svg{ flex:none; margin-top:3px; }
  .pkg-foot{ margin-top:auto; display:flex; gap:10px; padding-top:6px; }
  .pkg-foot .btn{ flex:1; }
  .pkg-more{
    text-align:center; margin-top:44px; background:#fff; border:1px dashed var(--border);
    border-radius:var(--radius); padding:26px; color:var(--muted);
  }
  .pkg-more strong{ color:var(--ink); }

  /* ---------- Package Details Modal ---------- */
  .modal-overlay{
    position:fixed; inset:0; z-index:400; background:rgba(20,8,25,.72); backdrop-filter:blur(4px);
    display:none; align-items:center; justify-content:center; padding:20px;
  }
  .modal-overlay.open{ display:flex; }
  .modal-card{
    background:#fff; width:100%; max-width:900px; max-height:90vh; border-radius:24px; overflow:hidden;
    display:flex; flex-direction:column; box-shadow:0 40px 90px -20px rgba(0,0,0,.55);
    animation:modalIn .22s ease;
  }
  @keyframes modalIn{ from{ opacity:0; transform:translateY(18px) scale(.98);} to{ opacity:1; transform:translateY(0) scale(1);} }
  .modal-hero{ position:relative; height:210px; flex:none; background:var(--purple-soft); }
  .modal-hero img{ width:100%; height:100%; object-fit:cover; display:block; }
  .modal-hero::after{ content:''; position:absolute; inset:0; background:linear-gradient(180deg, rgba(20,8,25,.05) 30%, rgba(20,8,25,.82) 100%); }
  .modal-hero-content{ position:absolute; left:28px; right:60px; bottom:18px; z-index:2; color:#fff; }
  .modal-hero-content h3{ color:#fff; font-size:1.55rem; margin-bottom:2px; }
  .modal-hero-price{ font-family:var(--ff-head); font-weight:700; color:var(--gold); font-size:.95rem; }
  .modal-hero-credit{
    position:absolute; right:14px; bottom:8px; z-index:2; color:rgba(255,255,255,.55); font-size:.62rem;
  }
  .modal-close{
    position:absolute; top:16px; right:16px; z-index:3; width:38px; height:38px; border-radius:50%;
    background:rgba(0,0,0,.35); border:0; color:#fff; font-size:1.3rem; line-height:1; cursor:pointer;
    display:flex; align-items:center; justify-content:center; transition:background .15s ease;
  }
  .modal-close:hover{ background:rgba(0,0,0,.6); }
  .modal-tabs{
    display:flex; gap:2px; padding:0 20px; border-bottom:1px solid var(--border); overflow-x:auto;
    flex:none; background:#fff;
  }
  .modal-tab{
    font-family:var(--ff-head); font-weight:600; font-size:.84rem; padding:14px 14px; border:0; background:none;
    color:var(--muted); cursor:pointer; white-space:nowrap; border-bottom:2px solid transparent; transition:color .15s ease;
  }
  .modal-tab:hover{ color:var(--purple); }
  .modal-tab.active{ color:var(--purple); border-color:var(--purple); }
  .variant-pills{
    display:flex; gap:8px; flex-wrap:wrap; padding:14px 28px; border-bottom:1px solid var(--border);
    background:var(--bg); flex:none;
  }
  .variant-pill{
    font-family:var(--ff-head); font-weight:600; font-size:.78rem; padding:8px 14px; border-radius:999px;
    border:1px solid var(--border); background:#fff; color:var(--muted); cursor:pointer; white-space:nowrap;
    transition:all .15s ease;
  }
  .variant-pill:hover{ border-color:var(--purple); color:var(--purple); }
  .variant-pill.active{ background:var(--purple); border-color:var(--purple); color:#fff; }
  .good-to-know{ margin-top:20px; border-top:1px solid var(--border); padding-top:16px; }
  .good-to-know h4{ font-size:.95rem; margin-bottom:12px; }
  .gtk-row{ display:flex; gap:12px; margin-bottom:12px; font-size:.86rem; align-items:flex-start; }
  .gtk-row .gtk-label{
    flex:none; width:120px; font-weight:700; color:var(--purple); font-family:var(--ff-head); font-size:.74rem;
    text-transform:uppercase; letter-spacing:.04em; padding-top:2px;
  }
  .gtk-row .gtk-value{ color:var(--ink); line-height:1.5; }
  .modal-body{ padding:24px 28px 32px; overflow-y:auto; flex:1; }
  .modal-pane{ display:none; }
  .modal-pane.active{ display:block; }
  .modal-pane h4{ font-size:1.05rem; margin-bottom:6px; }
  .modal-pane > .pane-intro{ color:var(--muted); font-size:.88rem; margin-bottom:18px; }
  .modal-incl-list{ display:flex; flex-direction:column; gap:10px; margin:0; }
  .modal-incl-list li{ display:flex; gap:10px; align-items:flex-start; font-size:.94rem; }
  .modal-incl-list li .tick{ flex:none; color:var(--green); font-weight:700; }
  .modal-tiers{ margin-top:20px; border-top:1px solid var(--border); padding-top:16px; }
  .modal-tiers table{ width:100%; border-collapse:collapse; font-size:.88rem; }
  .modal-tiers td{ padding:7px 4px; border-bottom:1px solid var(--border); }
  .modal-tiers td:last-child{ text-align:right; font-family:var(--ff-head); font-weight:700; color:var(--purple-deep); }
  .opt-tour{ border:1px solid var(--border); border-radius:14px; padding:16px 18px; margin-bottom:14px; }
  .opt-tour-head{ display:flex; justify-content:space-between; gap:12px; align-items:baseline; margin-bottom:4px; flex-wrap:wrap; }
  .opt-tour-head strong{ font-family:var(--ff-head); font-size:.96rem; color:var(--purple-deep); }
  .opt-tour-price{ font-family:var(--ff-head); font-weight:700; color:var(--purple); font-size:.9rem; white-space:nowrap; }
  .opt-tour-meta{ font-size:.78rem; color:var(--muted); margin-bottom:6px; }
  .opt-tour p{ margin:0; font-size:.87rem; color:var(--ink); }
  .itin-day{ display:flex; gap:16px; margin-bottom:20px; }
  .itin-day .badge{
    flex:none; width:60px; height:60px; border-radius:16px; background:var(--purple-soft); color:var(--purple);
    display:flex; align-items:center; justify-content:center; font-family:var(--ff-head); font-weight:700; font-size:.78rem; text-align:center;
  }
  .itin-day-content h5{ font-family:var(--ff-head); font-size:.95rem; margin:0 0 4px; color:var(--ink); }
  .itin-day-content p{ margin:0; font-size:.88rem; color:var(--muted); }
  .itin-note{ font-size:.8rem; color:var(--muted); font-style:italic; margin-top:4px; }
  .tnc-note{
    background:var(--purple-soft); color:var(--purple-dark); padding:12px 16px; border-radius:12px;
    font-size:.8rem; margin-bottom:20px;
  }
  .tnc-block h5{ font-family:var(--ff-head); font-size:.92rem; margin:18px 0 6px; color:var(--purple-deep); }
  .tnc-block h5:first-of-type{ margin-top:0; }
  .tnc-block p, .tnc-block li{ font-size:.88rem; color:var(--ink); margin:0 0 6px; }
  .tnc-block ul{ padding-left:18px; list-style:disc; }
  .calc-summary{
    background:var(--bg); border:1px solid var(--border); border-radius:14px; padding:16px 18px;
    margin-bottom:20px; display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:8px;
  }
  .calc-summary strong{ font-family:var(--ff-head); color:var(--purple-deep); }
  .calc-note{
    font-size:.85rem; color:var(--muted); margin-bottom:20px; background:#FFF7E5; border:1px solid #F3DFA0;
    padding:12px 16px; border-radius:12px;
  }
  .calc-section-title{
    font-family:var(--ff-head); font-size:.88rem; font-weight:700; color:var(--purple);
    text-transform:uppercase; letter-spacing:.06em; margin:26px 0 12px; padding-top:16px;
    border-top:1px solid var(--border);
  }
  #calcForm > .calc-section-title:first-of-type{ margin-top:0; padding-top:0; border-top:0; }
  .calc-daynight{
    font-size:.86rem; font-weight:600; color:var(--purple-dark); background:var(--purple-soft);
    padding:10px 14px; border-radius:10px; margin-top:-6px; margin-bottom:6px;
  }
  .radio-row{ display:flex; gap:20px; flex-wrap:wrap; padding-top:4px; }
  .radio-row label{ display:flex; align-items:center; gap:8px; font-size:.9rem; color:var(--ink); cursor:pointer; }
  .radio-row input[type="radio"]{ accent-color:var(--purple); width:16px; height:16px; }
  .stepper-grid{ display:grid; grid-template-columns:repeat(2,1fr); gap:12px 14px; margin-bottom:8px; }
  .stepper{
    display:flex; align-items:center; justify-content:space-between; gap:10px;
    padding:10px 14px; border:1px solid var(--border); border-radius:12px; background:var(--bg);
  }
  .stepper label{ font-size:.86rem; color:var(--ink); font-weight:500; }
  .stepper-control{ display:flex; align-items:center; gap:0; flex:none; }
  .step-btn{
    width:30px; height:30px; border-radius:8px; border:1px solid var(--border); background:var(--bg);
    color:var(--purple); font-size:1rem; font-family:var(--ff-head); font-weight:700; cursor:pointer;
    display:flex; align-items:center; justify-content:center; transition:background .15s ease;
  }
  .step-btn:hover{ background:var(--purple-soft); }
  .step-value{
    width:38px; text-align:center; border:0; background:none; font-family:var(--ff-head); font-weight:700;
    font-size:.95rem; color:var(--ink); -moz-appearance:textfield;
  }
  .step-value::-webkit-outer-spin-button, .step-value::-webkit-inner-spin-button{ -webkit-appearance:none; margin:0; }
  .opt-select-row{ margin-bottom:12px; }
  .opt-select{
    border:1px solid var(--border); border-radius:10px; padding:12px 14px; font-family:var(--ff-body);
    font-size:.9rem; outline:0; background:var(--bg); width:100%; color:var(--ink);
  }
  .opt-select:focus{ border-color:var(--purple); background:#fff; }
  .opt-select-detail{
    display:none; font-size:.82rem; color:var(--muted); background:var(--purple-soft); border-radius:10px;
    padding:8px 12px; margin-top:6px;
  }
  .opt-select-detail.show{ display:block; }
  .calc-estimate{
    background:var(--purple-soft); border:1px solid var(--border); border-radius:14px;
    padding:14px 18px; margin-bottom:22px;
  }
  .calc-estimate-row{
    display:flex; justify-content:space-between; align-items:center; gap:12px;
    padding:6px 0; font-size:.88rem; color:var(--muted);
  }
  .calc-estimate-row strong{ font-family:var(--ff-head); color:var(--purple-deep, var(--purple-dark)); }
  .calc-estimate-total{
    border-top:1px dashed var(--purple); margin-top:4px; padding-top:12px;
    font-size:1rem; color:var(--ink);
  }
  .calc-estimate-total strong{ font-size:1.2rem; color:var(--purple); }
  @media (max-width:640px){
    .modal-card{ max-height:94vh; border-radius:18px; }
    .modal-hero{ height:170px; }
    .modal-body{ padding:20px 18px 26px; }
    .stepper-grid{ grid-template-columns:1fr; }
  }

  /* ---------- Why us ---------- */
  .why{ background:var(--purple-deep); color:#fff; }
  .why .section-head h2{ color:#fff; }
  .why .section-head p{ color:#D8C6DF; }
  .why-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:1px; background:rgba(255,255,255,.14); border:1px solid rgba(255,255,255,.14); border-radius:var(--radius); overflow:hidden; }
  .why-card{
    background:var(--purple-deep); padding:32px 26px; text-align:left; transition:background .2s ease;
  }
  .why-card:hover{ background:#3A1748; }
  .why-card .idx{ display:block; font-family:var(--ff-serif); font-style:italic; font-size:.85rem; color:rgba(255,255,255,.4); margin-bottom:18px; }
  .why-card .ic{
    width:44px; height:44px; border-radius:12px; display:flex; align-items:center; justify-content:center;
    border:1.5px solid rgba(255,255,255,.28); color:var(--gold); margin-bottom:16px;
  }
  .why-card .ic svg{ width:19px; height:19px; }
  .why-card h3{ color:#fff; font-size:1.06rem; }
  .why-card p{ color:#CDB9D6; font-size:.9rem; margin:0; }

  /* ---------- Process ---------- */
  .process-grid{ display:grid; grid-template-columns:repeat(4,1fr); gap:0; counter-reset:step; }
  .process-item{ position:relative; padding:0 18px; text-align:center; }
  .process-item::before{ content:''; position:absolute; top:25px; left:-50%; width:100%; height:1px; background:var(--border); z-index:0; }
  .process-item:first-child::before{ display:none; }
  .process-item .num{
    position:relative; z-index:1; margin:0 auto 18px;
    font-family:var(--ff-serif); font-weight:600; font-size:1.25rem; color:var(--purple);
    background:#fff; border:2px solid var(--purple); width:52px; height:52px; border-radius:50%; display:flex; align-items:center;
    justify-content:center;
  }
  .process-item h3{ font-size:1.02rem; }
  .process-item p{ color:var(--muted); font-size:.9rem; margin:0; padding:0 4px; }

  /* ---------- CTA banner ---------- */
  .cta-banner{
    background:linear-gradient(120deg,var(--purple),#5A2268 60%, var(--purple-deep));
    color:#fff; border-radius:28px; margin:0 24px; padding:56px 40px;
    display:flex; align-items:center; justify-content:space-between; gap:24px; flex-wrap:wrap;
    max-width:calc(var(--container) - 48px); margin-left:auto; margin-right:auto;
    position:relative; overflow:hidden;
  }
  .cta-banner::before{ content:''; position:absolute; width:320px; height:320px; border:1px solid rgba(255,255,255,.15); border-radius:50%; right:-110px; top:-130px; }
  .cta-banner::after{ content:''; position:absolute; width:200px; height:200px; border:1px solid rgba(255,255,255,.1); border-radius:50%; right:-50px; top:-50px; }
  .cta-banner h2{ font-family:var(--ff-serif); font-weight:600; color:#fff; margin-bottom:.3em; font-size:clamp(1.4rem,2.6vw,1.9rem); position:relative; }
  .cta-banner p{ color:#E6D9EC; margin:0; position:relative; }
  .cta-actions{ display:flex; gap:12px; flex-wrap:wrap; position:relative; }

  /* ---------- Contact ---------- */
  .contact-grid{ display:grid; grid-template-columns:.9fr 1.1fr; gap:44px; align-items:start; }
  .contact-info{ display:flex; flex-direction:column; gap:20px; }
  .contact-card{
    background:#fff; border:1px solid var(--border); border-radius:16px; padding:20px 22px;
    display:flex; gap:16px; align-items:flex-start; box-shadow:var(--shadow-sm);
  }
  .contact-card .ic{
    flex:none; width:42px; height:42px; border-radius:12px; background:var(--purple-soft); color:var(--purple);
    display:flex; align-items:center; justify-content:center;
  }
  .contact-card .ic svg{ width:18px; height:18px; }
  .contact-card h4{ margin:0 0 4px; font-size:.98rem; }
  .contact-card p, .contact-card a{ margin:0; color:var(--muted); font-size:.92rem; }
  .contact-card a:hover{ color:var(--purple); }
  .map-embed{ border-radius:16px; overflow:hidden; border:1px solid var(--border); margin-top:6px; }
  .map-embed iframe{ width:100%; height:220px; border:0; display:block; }
  .contact-form{
    background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:32px; box-shadow:var(--shadow-sm);
  }
  .form-row{ display:grid; grid-template-columns:1fr 1fr; gap:16px; }
  .field{ margin-bottom:16px; display:flex; flex-direction:column; gap:6px; }
  .field label{ font-size:.85rem; font-weight:600; color:var(--ink); font-family:var(--ff-head); }
  .field input, .field select, .field textarea{
    border:1px solid var(--border); border-radius:10px; padding:12px 14px; font-family:var(--ff-body);
    font-size:.95rem; outline:0; background:var(--bg); transition:border-color .15s ease;
  }
  .field input:focus, .field select:focus, .field textarea:focus{ border-color:var(--purple); background:#fff; }
  .form-note{ font-size:.8rem; color:var(--muted); margin-top:10px; }

  /* ---------- Accreditation strip / badges ---------- */
  .accred-strip{ display:flex; align-items:center; gap:14px; flex-wrap:wrap; margin-top:24px; padding-top:22px; border-top:1px solid var(--border); }
  .accred-strip span.accred-label{ font-family:var(--ff-head); font-weight:600; font-size:.82rem; color:var(--muted); }
  .accred-badge{
    font-family:var(--ff-head); font-weight:700; font-size:.78rem; letter-spacing:.03em; color:var(--purple-dark);
    background:var(--purple-soft); padding:6px 12px; border-radius:8px;
  }
  .accred-badge.on-dark{ background:rgba(255,255,255,.12); color:#fff; }

  /* ---------- Book a Trip ---------- */
  .booking{ background:linear-gradient(180deg,var(--bg), #fff 12%); }
  .booking-grid{ display:grid; grid-template-columns:1.1fr .9fr; gap:44px; align-items:start; }
  .booking-panel{
    background:var(--purple-deep); color:#fff; border-radius:var(--radius); padding:34px 30px;
    display:flex; flex-direction:column; gap:22px;
  }
  .booking-panel h3{ color:#fff; font-size:1.15rem; margin-bottom:4px; }
  .booking-perk{ display:flex; gap:14px; align-items:flex-start; }
  .booking-perk .ic{
    flex:none; width:40px; height:40px; border-radius:12px; background:rgba(255,255,255,.1); color:var(--gold);
    display:flex; align-items:center; justify-content:center;
  }
  .booking-perk .ic svg{ width:18px; height:18px; }
  .booking-perk strong{ display:block; font-family:var(--ff-head); font-size:.95rem; margin-bottom:2px; }
  .booking-perk span{ font-size:.86rem; color:#D8C6DF; }
  .booking-steps{ list-style:none; counter-reset:bstep; display:flex; flex-direction:column; gap:10px; margin:0; padding:0; }
  .booking-steps li{ counter-increment:bstep; display:flex; gap:10px; align-items:flex-start; font-size:.86rem; color:#E6D9EC; }
  .booking-steps li::before{
    content:counter(bstep); flex:none; width:22px; height:22px; border-radius:50%; background:var(--gold);
    color:var(--purple-deep); font-weight:700; font-size:.76rem; display:flex; align-items:center; justify-content:center;
  }

  /* ---------- Testimonials ---------- */
  .testimonials{ background:var(--purple-soft); }
  .testimonial-cta{
    background:#fff; border:1px solid var(--border); border-radius:var(--radius); padding:44px; text-align:center;
    max-width:640px; margin:0 auto; box-shadow:var(--shadow-sm);
  }
  .testimonial-quote-ic{ width:48px; height:48px; border-radius:50%; background:var(--purple-soft); color:var(--purple); display:flex; align-items:center; justify-content:center; margin:0 auto 18px; }
  .testimonial-quote-ic svg{ width:21px; height:21px; }
  .testimonial-cta h3{ font-family:var(--ff-serif); font-weight:600; font-size:1.35rem; margin-bottom:10px; }
  .testimonial-cta p{ color:var(--muted); margin-bottom:22px; }
  .testimonial-actions{ display:flex; gap:12px; justify-content:center; flex-wrap:wrap; }
  .testimonial-gallery{ display:grid; grid-template-columns:repeat(4,1fr); gap:16px; margin:0 0 40px; }
  .testimonial-tile{ margin:0; border-radius:16px; overflow:hidden; box-shadow:var(--shadow-sm); aspect-ratio:1/1; background:var(--surface); transition:transform .2s ease, box-shadow .2s ease; }
  .testimonial-tile:hover{ transform:translateY(-4px); box-shadow:var(--shadow-lg); }
  .testimonial-tile img{ width:100%; height:100%; object-fit:cover; display:block; }

  /* ---------- Quick chat row ---------- */
  .quick-chat{ display:flex; gap:10px; flex-wrap:wrap; margin-top:4px; }
  .quick-chat a{
    display:inline-flex; align-items:center; gap:7px; font-family:var(--ff-head); font-weight:600; font-size:.82rem;
    padding:9px 15px; border-radius:999px; color:#fff; transition:transform .15s ease;
  }
  .quick-chat a:hover{ transform:translateY(-2px); }
  .quick-chat svg{ width:14px; height:14px; }

  /* ---------- Footer ---------- */
  footer{ background:var(--purple-deep); color:#CDB9D6; padding:60px 0 24px; }
  .footer-grid{ display:grid; grid-template-columns:1.4fr 1fr 1fr 1.2fr; gap:36px; margin-bottom:32px; }
  .footer-brand img{ height:46px; margin-bottom:14px; }
  .footer-brand p{ font-size:.88rem; color:#B9A3C3; max-width:280px; }
  .footer-social{ display:flex; gap:10px; margin-top:16px; flex-wrap:wrap; }
  .footer-social a{
    width:38px; height:38px; border-radius:50%; background:rgba(255,255,255,.08); display:flex;
    align-items:center; justify-content:center; transition:transform .2s ease, box-shadow .2s ease;
  }
  .footer-social a:hover{ transform:translateY(-3px) scale(1.06); box-shadow:0 8px 16px -6px rgba(0,0,0,.5); }
  footer h4{ color:#fff; font-family:var(--ff-head); font-size:.95rem; margin-bottom:16px; }
  footer ul li{ margin-bottom:10px; }
  footer ul li a{ font-size:.9rem; color:#CDB9D6; }
  footer ul li a:hover{ color:var(--gold); }
  .footer-accred{ display:flex; align-items:center; flex-wrap:wrap; gap:8px; margin-top:18px; }
  .footer-bottom{
    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:.82rem; color:#9A83A6;
  }

  .fb-float{
    position:fixed; bottom:26px; right:26px; z-index:200; width:58px; height:58px; border-radius:50%;
    background:linear-gradient(135deg,#0866FF,#0A4FBE); display:flex; align-items:center; justify-content:center;
    box-shadow:0 14px 30px -10px rgba(8,102,255,.6); color:#fff; animation:pulse 2.6s ease-in-out infinite;
  }
  @keyframes pulse{ 0%,100%{ box-shadow:0 14px 30px -10px rgba(8,102,255,.6);} 50%{ box-shadow:0 14px 30px -6px rgba(8,102,255,.9);} }

  .reveal{ opacity:0; transform:translateY(24px); transition:opacity .6s ease, transform .6s ease; }
  .reveal.in{ opacity:1; transform:translateY(0); }

  @media (max-width:980px){
    .hero-grid{ grid-template-columns:1fr; text-align:center; }
    .hero-sub{ margin-left:auto; margin-right:auto; }
    .hero-actions,.hero-credentials{ justify-content:center; }
    .hero-logo-display img{ max-width:280px; margin-top:12px; }
    .about-grid{ grid-template-columns:1fr; }
    .about-panel{ order:-1; }
    .trust-grid{ grid-template-columns:repeat(2,1fr); }
    .trust-item{ border-left:0; border-top:1px dashed var(--border); }
    .trust-item:nth-child(1),.trust-item:nth-child(2){ border-top:0; }
    .why-grid{ grid-template-columns:repeat(2,1fr); }
    .process-grid{ grid-template-columns:repeat(2,1fr); gap:36px 0; }
    .process-item::before{ display:none; }
    .contact-grid{ grid-template-columns:1fr; }
    .footer-grid{ grid-template-columns:1fr 1fr; }
    .testimonial-gallery{ grid-template-columns:repeat(3,1fr); }
  }
  @media (max-width:720px){
    .nav-links, .nav-cta .btn-solid{ display:none; }
    .nav-toggle{ display:flex; }
    .nav-links.open{
      display:flex; flex-direction:column; position:absolute; top:100%; left:0; right:0; background:#fff;
      padding:20px 24px; gap:16px; border-bottom:1px solid var(--border); box-shadow:var(--shadow-sm);
    }
    .topbar-links span.sep{ display:none; }
    .form-row{ grid-template-columns:1fr; }
    .cta-banner{ flex-direction:column; text-align:center; margin:0 16px; padding:40px 24px; }
    .footer-grid{ grid-template-columns:1fr; }
    .why-grid, .process-grid{ grid-template-columns:1fr; }
    .section{ padding:64px 0; }
    .trust-grid{ grid-template-columns:1fr; }
    .trust-item{ border-top:1px dashed var(--border); }
    .testimonial-gallery{ grid-template-columns:repeat(2,1fr); gap:10px; }
    .trust-item:first-child{ border-top:0; }
  }
