/* ==========================================================================
   GoVietnam Single Post Prose & Typography
   ========================================================================== */
.prose h2 { font-size: 1.3rem; font-weight: 800; color: #0d2f63; margin-top: 1.35rem; margin-bottom: 0.65rem; border-bottom: 2px solid #f1f5f9; padding-bottom: 0.4rem; }
.prose > h2:first-child,
.prose > p.lead + h2 { margin-top: 0.25rem; }
.prose h3 { font-size: 1.125rem; font-weight: 700; color: #1e3a8a; margin-top: 1.1rem; margin-bottom: 0.5rem; }
.prose p { margin-bottom: 0.85rem; line-height: 1.7; color: #334155; }
.prose ul { list-style-type: disc; margin-left: 1.25rem; margin-bottom: 0.85rem; }
.prose li { margin-bottom: 0.3rem; }
.prose strong { color: #0f172a; font-weight: 700; }
.prose .lead { font-size: 1rem; color: #334155; font-weight: 500; border-left: 4px solid #1478d5; background: #f8fafc; padding: 0.75rem 1rem; border-radius: 0 0.75rem 0.75rem 0; margin-bottom: 1.1rem; }
.prose table:not(.gv-price-table) { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; border-collapse: separate; border-spacing: 0; margin: 1.15rem 0; border-radius: 0.875rem; }
.prose .not-prose table,
.prose .gv-price-table-wrap table,
table.gv-price-table { display: table; width: 100%; border-collapse: collapse; margin: 0; border-radius: 0; }
table.gv-price-table thead,
table.gv-price-table thead tr,
.prose .not-prose table thead { background: #0d2f63; background-color: #0d2f63; color: #ffffff; }
table.gv-price-table thead th { background-color: #0d2f63; color: #ffffff; border: none; text-transform: none !important; }
table.gv-price-table thead th.gv-th-limo { background: #143e7d; background-color: #143e7d; color: #ffffff; border: none; }
.prose .gv-article,
.prose .gv-heritage { max-width: 100% !important; padding: 0 !important; }
.prose .gv-myson .wrap,
.prose .gv-haivan-hue .wrap { width: 100% !important; }


/* ==========================================================================
   Article 1: Cam Thanh Coconut Village (.gv-article)
   ========================================================================== */

    .gv-article {
      --gv-primary: #176b4d;
      --gv-dark: #173b30;
      --gv-text: #343b38;
      --gv-muted: #66716b;
      --gv-border: #dfe8e2;
      max-width: 900px;
      margin: 0 auto;
      padding: 24px 20px 48px;
      color: var(--gv-text);
      font-family: Arial, Helvetica, sans-serif;
      font-size: 17px;
      line-height: 1.8;
      overflow-wrap: anywhere;
    }

    .gv-article *,
    .gv-article *::before,
    .gv-article *::after {
      box-sizing: border-box;
    }

    .gv-article h1,
    .gv-article h2,
    .gv-article h3 {
      color: var(--gv-dark);
      line-height: 1.35;
      scroll-margin-top: 100px;
    }

    .gv-article h1 {
      font-size: clamp(30px, 5vw, 42px);
      margin: 16px 0;
    }

    .gv-article h2 {
      font-size: clamp(23px, 3.5vw, 30px);
      margin-top: 42px;
      padding-bottom: 10px;
      border-bottom: 1px solid var(--gv-border);
    }

    .gv-article h3 {
      font-size: 21px;
      margin-top: 26px;
    }

    .gv-article p {
      margin: 14px 0;
    }

    .gv-article a {
      color: var(--gv-primary);
      text-decoration: underline;
      text-underline-offset: 3px;
    }

    .gv-article a:focus-visible,
    .gv-article summary:focus-visible {
      outline: 3px solid #e0a43b;
      outline-offset: 3px;
    }

    .gv-article .gv-intro {
      font-size: 19px;
      color: #48574f;
    }

    .gv-article .gv-meta {
      color: var(--gv-muted);
      font-size: 14px;
    }

    .gv-article .gv-toc {
      margin: 28px 0;
      padding: 22px 24px;
      border: 1px solid var(--gv-border);
      border-radius: 12px;
      background: #f6faf7;
    }

    .gv-article .gv-toc h2 {
      margin: 0 0 12px;
      padding: 0;
      border: 0;
      font-size: 22px;
    }

    .gv-article .gv-toc ol {
      padding-left: 22px;
      margin-bottom: 0;
    }

    .gv-article .gv-note {
      padding: 16px 18px;
      border-left: 4px solid #c58b30;
      background: #fff8eb;
      border-radius: 4px;
      margin: 22px 0;
    }

    .gv-article .gv-table-wrap {
      width: 100%;
      overflow-x: auto;
      margin: 20px 0;
      border: 1px solid var(--gv-border);
      border-radius: 8px;
    }

    .gv-article table {
      width: 100%;
      min-width: 570px;
      border-collapse: collapse;
      font-size: 15px;
    }

    .gv-article th,
    .gv-article td {
      text-align: left;
      padding: 13px 15px;
      border-bottom: 1px solid var(--gv-border);
      vertical-align: top;
    }

    .gv-article th {
      color: white;
      background: var(--gv-primary);
    }

    .gv-article tr:last-child td {
      border-bottom: 0;
    }

    .gv-article .gv-tag {
      display: inline-block;
      font-size: 12px;
      font-weight: 700;
      color: #754a00;
      background: #fff0cb;
      border-radius: 4px;
      padding: 3px 7px;
    }

    .gv-article .gv-cta {
      padding: 25px;
      margin: 32px 0;
      border-radius: 12px;
      background: #eff7f1;
      text-align: center;
    }

    .gv-article .gv-cta h2 {
      margin-top: 0;
      border: 0;
    }

    .gv-article .gv-button {
      display: inline-block;
      margin: 8px 5px;
      padding: 12px 20px;
      border-radius: 7px;
      background: var(--gv-primary);
      color: #fff;
      text-decoration: none;
      font-size: 15px;
      font-weight: 700;
    }

    .gv-article .gv-button:hover {
      background: #10523b;
    }

    .gv-article .gv-faq details {
      border-bottom: 1px solid var(--gv-border);
      padding: 17px 0;
    }

    .gv-article .gv-faq summary {
      cursor: pointer;
      font-weight: 700;
      color: var(--gv-dark);
      line-height: 1.5;
    }

    .gv-article .gv-faq details p {
      margin-bottom: 0;
    }

    .gv-article .gv-checklist li,
    .gv-article .gv-list li {
      margin: 8px 0;
    }

    @media (max-width: 600px) {
      .gv-article {
        padding: 18px 15px 32px;
        font-size: 16px;
      }

      .gv-article .gv-toc,
      .gv-article .gv-cta {
        padding: 18px;
      }

      .gv-article .gv-button {
        display: block;
        margin: 10px 0;
      }
    }
  

/* ==========================================================================
   Article 2: Hue to Da Nang Heritage Train (.gv-heritage)
   ========================================================================== */

    .gv-heritage {
      --gv-green: #176b4d;
      --gv-dark: #173b30;
      --gv-text: #37423c;
      --gv-muted: #68756d;
      --gv-border: #dce7df;
      max-width: 900px;
      margin: 0 auto;
      padding: 24px 20px 48px;
      color: var(--gv-text);
      font: 17px/1.8 Arial, Helvetica, sans-serif;
      overflow-wrap: anywhere;
    }

    .gv-heritage *,
    .gv-heritage *::before,
    .gv-heritage *::after {
      box-sizing: border-box;
    }

    .gv-heritage h1,
    .gv-heritage h2,
    .gv-heritage h3 {
      color: var(--gv-dark);
      line-height: 1.35;
      scroll-margin-top: 100px;
    }

    .gv-heritage h1 {
      font-size: clamp(30px, 5vw, 42px);
      margin: 14px 0 20px;
    }

    .gv-heritage h2 {
      font-size: clamp(23px, 3.5vw, 30px);
      margin-top: 42px;
      padding-bottom: 10px;
      border-bottom: 1px solid var(--gv-border);
    }

    .gv-heritage h3 {
      font-size: 21px;
      margin-top: 26px;
    }

    .gv-heritage p {
      margin: 14px 0;
    }

    .gv-heritage a {
      color: var(--gv-green);
      text-underline-offset: 3px;
    }

    .gv-heritage a:focus-visible,
    .gv-heritage summary:focus-visible {
      outline: 3px solid #dba13c;
      outline-offset: 3px;
    }

    .gv-heritage .gv-kicker,
    .gv-heritage .gv-meta {
      color: var(--gv-muted);
      font-size: 14px;
    }

    .gv-heritage .gv-intro {
      font-size: 19px;
      color: #48574f;
    }

    .gv-heritage .gv-toc {
      background: #f4f9f5;
      border: 1px solid var(--gv-border);
      border-radius: 12px;
      padding: 22px 25px;
      margin: 28px 0;
    }

    .gv-heritage .gv-toc h2 {
      font-size: 22px;
      margin: 0 0 12px;
      padding: 0;
      border: 0;
    }

    .gv-heritage .gv-toc ol {
      padding-left: 22px;
      margin-bottom: 0;
    }

    .gv-heritage li {
      margin: 7px 0;
    }

    .gv-heritage .gv-note {
      background: #fff7e8;
      border-left: 4px solid #c58b30;
      border-radius: 5px;
      padding: 15px 18px;
      margin: 20px 0;
    }

    .gv-heritage .gv-table-wrap {
      width: 100%;
      overflow-x: auto;
      margin: 20px 0;
      border: 1px solid var(--gv-border);
      border-radius: 8px;
    }

    .gv-heritage table {
      width: 100%;
      min-width: 540px;
      border-collapse: collapse;
      font-size: 15px;
    }

    .gv-heritage th,
    .gv-heritage td {
      padding: 13px 15px;
      text-align: left;
      vertical-align: top;
      border-bottom: 1px solid var(--gv-border);
    }

    .gv-heritage th {
      background: var(--gv-green);
      color: #fff;
    }

    .gv-heritage tr:last-child td {
      border-bottom: 0;
    }

    .gv-heritage .gv-status {
      display: inline-block;
      padding: 3px 8px;
      border-radius: 4px;
      background: #fff0c9;
      color: #754b00;
      font-size: 12px;
      font-weight: bold;
    }

    .gv-heritage .gv-cta {
      padding: 26px;
      margin: 36px 0;
      background: #eff7f1;
      border-radius: 12px;
      text-align: center;
    }

    .gv-heritage .gv-cta h2 {
      border: 0;
      margin-top: 0;
    }

    .gv-heritage .gv-button {
      display: inline-block;
      margin: 8px 5px;
      padding: 12px 20px;
      border-radius: 7px;
      background: var(--gv-green);
      color: #fff;
      font-weight: bold;
      font-size: 15px;
      text-decoration: none;
    }

    .gv-heritage .gv-button:hover {
      background: #10523b;
    }

    .gv-heritage .gv-faq details {
      padding: 17px 0;
      border-bottom: 1px solid var(--gv-border);
    }

    .gv-heritage .gv-faq summary {
      cursor: pointer;
      font-weight: bold;
      color: var(--gv-dark);
      line-height: 1.55;
    }

    .gv-heritage .gv-faq details p {
      margin-bottom: 0;
    }

    @media (max-width: 600px) {
      .gv-heritage {
        padding: 18px 15px 32px;
        font-size: 16px;
      }

      .gv-heritage .gv-toc,
      .gv-heritage .gv-cta {
        padding: 18px;
      }

      .gv-heritage .gv-button {
        display: block;
        margin: 10px 0;
      }
    }
  

/* ==========================================================================
   Article 3: My Son Sanctuary (.gv-myson)
   ========================================================================== */
.gv-myson { --green:#173e35;--green2:#23594b;--gold:#d9a84e;--ink:#20312d;--muted:#687872;--cream:#f7f5ef;--line:#e5e8e2;--white:#fff;--shadow:0 14px 38px rgba(25,52,44,.09) }
.gv-myson { box-sizing:border-box }
.gv-myson { scroll-behavior:smooth;scroll-padding-top:90px }
.gv-myson { margin:0;font-family:Inter,ui-sans-serif,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--ink);line-height:1.7;background:#fff }
.gv-myson a { color:inherit }
.gv-myson .wrap { width:min(1140px,calc(100% - 40px));margin:auto }
.gv-myson .topbar { background:var(--green);color:#fff;font-size:13px;padding:9px 0 }
.gv-myson .topbar .wrap { display:flex;justify-content:space-between;gap:16px;flex-wrap:wrap }
.gv-myson .topbar a { text-decoration:none }
.gv-myson .nav { border-bottom:1px solid var(--line);background:#fff;position:sticky;top:0;z-index:10 }
.gv-myson .navinner { min-height:70px;display:flex;align-items:center;justify-content:space-between;gap:20px }
.gv-myson .brand { font-weight:850;letter-spacing:-.5px;color:var(--green);text-decoration:none;font-size:20px }
.gv-myson .brand span { color:var(--gold) }
.gv-myson .navlinks { display:flex;gap:22px;align-items:center;font-size:14px }
.gv-myson .navlinks a { text-decoration:none;color:#46564f }
.gv-myson .btn { display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:12px 19px;background:var(--green);color:#fff;text-decoration:none;font-weight:750;font-size:14px;transition:.2s }
.gv-myson .btn:hover { background:var(--green2);transform:translateY(-1px) }
.gv-myson .btn.gold { background:var(--gold);color:#172c25 }
.gv-myson .btn.outline { background:transparent;border:1px solid rgba(255,255,255,.65);color:#fff }
.gv-myson .hero { background:linear-gradient(110deg,rgba(14,39,32,.92),rgba(14,39,32,.58)),url('https://images.unsplash.com/photo-1599708153386-62bf8fotec2?auto=format&fit=crop&w=1900&q=85') center/cover no-repeat;color:#fff;padding:78px 0 70px }
.gv-myson .eyebrow { font-size:12px;text-transform:uppercase;letter-spacing:2px;font-weight:800;color:var(--gold) }
.gv-myson h1, .gv-myson h2, .gv-myson h3 { line-height:1.18;letter-spacing:-.7px }
.gv-myson h1 { font-size:clamp(36px,5.5vw,62px);max-width:800px;margin:14px 0 18px }
.gv-myson .hero p { font-size:18px;max-width:700px;color:#e7eeea;margin:0 0 26px }
.gv-myson .hero-actions { display:flex;gap:12px;flex-wrap:wrap }
.gv-myson .hero-meta { display:flex;gap:22px;flex-wrap:wrap;margin-top:30px;font-size:13px;color:#e1e9e4 }
.gv-myson .hero-meta span:before { content:"✓";color:var(--gold);font-weight:900;margin-right:8px }
.gv-myson .quick { display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:-28px;position:relative }
.gv-myson .quickcard { background:#fff;padding:20px;border-radius:15px;box-shadow:var(--shadow);border:1px solid var(--line) }
.gv-myson .quickcard small { display:block;color:var(--muted);font-size:12px;text-transform:uppercase;letter-spacing:.8px;font-weight:750 }
.gv-myson .quickcard strong { display:block;font-size:18px;margin-top:5px;color:var(--green) }
.gv-myson main { padding:52px 0 70px }
.gv-myson .layout { display:grid;grid-template-columns:minmax(0,1fr) 300px;gap:42px;align-items:start }
.gv-myson .content section { margin-bottom:48px }
.gv-myson .kicker { color:#a77523;text-transform:uppercase;font-size:12px;letter-spacing:1.5px;font-weight:850 }
.gv-myson h2 { font-size:clamp(27px,3.5vw,38px);margin:8px 0 16px;color:var(--green) }
.gv-myson h3 { font-size:21px;margin:0 0 8px;color:var(--green) }
.gv-myson p { margin:0 0 15px }
.gv-myson .lead { font-size:18px;color:#4c5e56 }
.gv-myson .tip { padding:19px 21px;border-left:4px solid var(--gold);background:#fbf7ed;border-radius:0 12px 12px 0;margin:22px 0 }
.gv-myson .tip strong { color:var(--green) }
.gv-myson .toc { padding:23px;border:1px solid var(--line);border-radius:16px;background:#fff }
.gv-myson .toc h3 { font-size:17px }
.gv-myson .toc ol { margin:12px 0 0;padding-left:20px }
.gv-myson .toc li { padding:4px 0 }
.gv-myson .toc a { text-decoration:none;color:#476158 }
.gv-myson .toc a:hover { text-decoration:underline }
.gv-myson .side { position:sticky;top:95px }
.gv-myson .sidebox { border:1px solid var(--line);border-radius:18px;padding:23px;background:var(--cream);margin-bottom:16px }
.gv-myson .sidebox h3 { font-size:19px }
.gv-myson .price-big { font-size:34px;font-weight:900;color:var(--green);letter-spacing:-1px }
.gv-myson .price-big small { font-size:14px;font-weight:650;letter-spacing:0;color:var(--muted) }
.gv-myson .price-row { display:flex;justify-content:space-between;gap:10px;padding:10px 0;border-bottom:1px solid #e0e3dc;font-size:14px }
.gv-myson .price-row:last-child { border-bottom:0 }
.gv-myson .side .btn { width:100%;margin-top:13px }
.gv-myson .routegrid { display:grid;grid-template-columns:repeat(2,1fr);gap:14px;margin-top:20px }
.gv-myson .routecard { padding:21px;border:1px solid var(--line);border-radius:15px;background:#fff }
.gv-myson .routecard .num { display:inline-grid;place-items:center;width:34px;height:34px;background:#e8f0eb;color:var(--green);border-radius:50%;font-weight:850;margin-bottom:13px }
.gv-myson .routecard p { font-size:14px;color:var(--muted);margin-bottom:0 }
.gv-myson .timeline { margin-top:22px;border-left:2px solid #dbe4dc;padding-left:22px }
.gv-myson .timeitem { position:relative;padding:0 0 24px }
.gv-myson .timeitem:before { content:"";position:absolute;left:-29px;top:6px;width:12px;height:12px;background:var(--gold);border:3px solid #fff;box-shadow:0 0 0 1px #d6c29a;border-radius:50% }
.gv-myson .timeitem time { display:block;color:#9a6a1d;font-weight:850;font-size:13px }
.gv-myson .timeitem h3 { font-size:18px;margin:3px 0 5px }
.gv-myson .timeitem p { color:var(--muted);font-size:14px }
.gv-myson .tablewrap { overflow-x:auto;border:1px solid var(--line);border-radius:14px;margin:18px 0 }
.gv-myson .price-table { border-collapse:collapse;width:100%;min-width:520px }
.gv-myson .price-table th, .gv-myson .price-table td { text-align:left;padding:14px 16px;border-bottom:1px solid var(--line) }
.gv-myson .price-table th { background:#f4f6f1;color:var(--green);font-size:13px }
.gv-myson .price-table tr:last-child td { border-bottom:0 }
.gv-myson .price-table td:last-child { font-weight:800 }
.gv-myson .checks { list-style:none;padding:0;margin:15px 0 }
.gv-myson .checks li { padding:7px 0 7px 28px;position:relative }
.gv-myson .checks li:before { position:absolute;left:0;top:7px;font-weight:900 }
.gv-myson .checks.yes li:before { content:"✓";color:#267353 }
.gv-myson .checks.no li:before { content:"×";color:#b95b4e }
.gv-myson .split { display:grid;grid-template-columns:1fr 1fr;gap:18px }
.gv-myson .panel { padding:22px;border:1px solid var(--line);border-radius:15px }
.gv-myson .panel h3 { font-size:18px }
.gv-myson .faq details { border-bottom:1px solid var(--line);padding:16px 0 }
.gv-myson .faq summary { cursor:pointer;font-weight:800;color:var(--green);list-style:none;padding-right:24px;position:relative }
.gv-myson .faq summary:after { content:"+";position:absolute;right:0;font-size:22px;top:-5px }
.gv-myson .faq details[open] summary:after { content:"−" }
.gv-myson .faq details p { color:var(--muted);padding-top:10px;margin:0 }
.gv-myson .cta { background:var(--green);color:#fff;border-radius:22px;padding:34px;display:flex;justify-content:space-between;align-items:center;gap:22px }
.gv-myson .cta h2 { color:#fff;margin-top:0 }
.gv-myson .cta p { color:#dce7e0;margin-bottom:0 }
.gv-myson .cta-actions { display:flex;gap:10px;flex-wrap:wrap;flex-shrink:0 }
.gv-myson .foot { background:#102e27;color:#d8e3dc;padding:32px 0;font-size:13px }
.gv-myson .foot .wrap { display:flex;justify-content:space-between;gap:18px;flex-wrap:wrap }
.gv-myson .foot a { color:#fff }
.gv-myson .note { font-size:12px;color:var(--muted) }
.gv-myson .mobilebar { display:none }
.gv-myson @media(max-width:900px){ {
.gv-myson .layout { grid-template-columns:1fr }
.gv-myson .side { position:static;display:grid;grid-template-columns:1fr 1fr;gap:14px }
.gv-myson .sidebox { margin:0 }
.gv-myson .quick { grid-template-columns:repeat(2,1fr) }
.gv-myson .navlinks a:not(.btn) { display:none }
}
@media(max-width:600px){ {
.gv-myson .wrap { width:min(100% - 28px,1140px) }
.gv-myson .topbar .wrap { justify-content:center;text-align:center }
.gv-myson .navinner { min-height:62px }
.gv-myson .brand { font-size:17px }
.gv-myson .navlinks .btn { padding:10px 13px;font-size:12px }
.gv-myson .hero { padding:58px 0 54px }
.gv-myson .hero p { font-size:16px }
.gv-myson .quick { gap:8px }
.gv-myson .quickcard { padding:15px }
.gv-myson .quickcard strong { font-size:16px }
.gv-myson .layout { gap:28px }
.gv-myson main { padding-top:35px }
.gv-myson .routegrid, .gv-myson .split, .gv-myson .side { grid-template-columns:1fr }
.gv-myson .cta { padding:25px;display:block }
.gv-myson .cta-actions { margin-top:20px }
.gv-myson .hero-meta { gap:10px }
.gv-myson .price-big { font-size:30px }
}


:root { --green:#123b31;--green2:#1d5b49;--gold:#e5b85c;--ink:#1c302a;--muted:#66776f;--cream:#f6f5ef;--line:#e4e9e3;--shadow:0 18px 48px rgba(17,52,41,.10) }
.gv-myson { font-family:Inter,"Segoe UI",system-ui,-apple-system,sans-serif;letter-spacing:-.12px }
.gv-myson ::selection { background:#e8c979;color:#173e35 }
.gv-myson .topbar { font-size:12px;letter-spacing:.2px }
.gv-myson .nav { box-shadow:0 4px 20px rgba(20,49,39,.035);backdrop-filter:blur(12px) }
.gv-myson .brand { font-size:21px;letter-spacing:-.9px }
.gv-myson .brand span { letter-spacing:-.5px }
.gv-myson .navlinks { gap:26px }
.gv-myson .navlinks a:not(.btn) { position:relative;transition:color .2s }
.gv-myson .navlinks a:not(.btn):after { content:"";height:2px;position:absolute;left:0;right:100%;bottom:-8px;background:var(--gold);transition:right .2s }
.gv-myson .navlinks a:not(.btn):hover { color:var(--green) }
.gv-myson .navlinks a:not(.btn):hover:after { right:0 }
.gv-myson .btn { box-shadow:0 7px 18px rgba(18,59,49,.13);transition:transform .2s,box-shadow .2s,background .2s }
.gv-myson .btn:hover { box-shadow:0 12px 24px rgba(18,59,49,.18) }
.gv-myson .btn.gold { box-shadow:0 8px 22px rgba(229,184,92,.22) }
.gv-myson .hero { min-height:530px;display:flex;align-items:center;position:relative;background-position:center 48%;isolation:isolate }
.gv-myson .hero:after { content:"";position:absolute;inset:0;z-index:-1;background:radial-gradient(ellipse at 78% 35%,rgba(229,184,92,.18),transparent 36%),linear-gradient(0deg,rgba(10,35,28,.2),transparent 50%) }
.gv-myson .hero .wrap { width:min(1140px,calc(100% - 40px)) }
.gv-myson .hero h1 { max-width:780px;text-wrap:balance;line-height:1.04;letter-spacing:-2.2px }
.gv-myson .hero p { max-width:660px;line-height:1.8 }
.gv-myson .eyebrow { letter-spacing:2.5px }
.gv-myson .hero-meta { gap:12px }
.gv-myson .hero-meta span { border:1px solid rgba(255,255,255,.2);background:rgba(255,255,255,.07);padding:7px 12px;border-radius:999px;backdrop-filter:blur(6px) }
.gv-myson .quick { gap:14px }
.gv-myson .quickcard { border-radius:18px;padding:22px 23px;transition:transform .22s,box-shadow .22s;border-color:#e8ebe5 }
.gv-myson .quickcard:hover { transform:translateY(-4px);box-shadow:0 20px 42px rgba(25,52,44,.12) }
.gv-myson .quickcard small { letter-spacing:1.1px }
.gv-myson .quickcard strong { letter-spacing:-.45px }
.gv-myson main { padding-top:64px }
.gv-myson .content section { scroll-margin-top:100px }
.gv-myson h2 { letter-spacing:-1.15px;text-wrap:balance }
.gv-myson h3 { letter-spacing:-.45px }
.gv-myson .lead { line-height:1.85 }
.gv-myson .toc { box-shadow:0 10px 30px rgba(20,49,39,.04);padding:25px 28px }
.gv-myson .toc li { padding:5px 0 }
.gv-myson .toc a { transition:color .2s }
.gv-myson .routegrid { gap:16px }
.gv-myson .routecard { border-radius:18px;padding:24px;transition:transform .22s,border-color .22s,box-shadow .22s;background:linear-gradient(145deg,#fff,#fcfcf9) }
.gv-myson .routecard:hover { transform:translateY(-3px);border-color:#d5c08b;box-shadow:0 15px 35px rgba(25,52,44,.07) }
.gv-myson .routecard .num { width:39px;height:39px;background:#e9f1eb;color:#174a3a }
.gv-myson .tip { box-shadow:inset 0 0 0 1px rgba(217,168,78,.08);padding:21px 23px }
.gv-myson .timeline { border-left-color:#d6e2d9 }
.gv-myson .timeitem { padding-bottom:29px }
.gv-myson .timeitem:before { width:13px;height:13px;background:var(--gold);box-shadow:0 0 0 4px #f7f3e8 }
.gv-myson .timeitem p { line-height:1.75 }
.gv-myson .tablewrap { box-shadow:0 10px 28px rgba(20,49,39,.035);border-radius:16px }
.gv-myson .price-table th { padding:16px;background:#f0f4ef }
.gv-myson .price-table td { padding:15px 16px }
.gv-myson .price-table tbody tr { transition:background .15s }
.gv-myson .price-table tbody tr:hover { background:#fbfcf9 }
.gv-myson .panel { border-radius:17px;padding:24px;background:linear-gradient(145deg,#fff,#fcfcf9) }
.gv-myson .sidebox { border-radius:20px;padding:25px;box-shadow:0 12px 35px rgba(25,52,44,.05) }
.gv-myson .sidebox .price-big { letter-spacing:-1.6px }
.gv-myson .sidebox .price-row { align-items:center;gap:12px }
.gv-myson .sidebox .price-row strong { text-align:right }
.gv-myson .faq details { padding:19px 0 }
.gv-myson .faq summary { line-height:1.5;padding-right:35px }
.gv-myson .faq summary:after { display:grid;place-items:center;width:25px;height:25px;top:-2px;border-radius:50%;background:#f2f5ef;color:var(--green);font-size:18px }
.gv-myson .faq details[open] summary { color:#94691f }
.gv-myson .cta { position:relative;overflow:hidden;border-radius:26px;padding:40px;background:radial-gradient(circle at 88% 15%,rgba(229,184,92,.18),transparent 30%),linear-gradient(120deg,#123b31,#1c5948);box-shadow:0 20px 45px rgba(18,59,49,.15) }
.gv-myson .cta:after { content:"";position:absolute;width:210px;height:210px;border:1px solid rgba(255,255,255,.09);border-radius:50%;right:-70px;bottom:-120px;box-shadow:0 0 0 24px rgba(255,255,255,.025),0 0 0 48px rgba(255,255,255,.02);pointer-events:none }
.gv-myson .foot { background:#0d2922 }
.gv-myson .note { line-height:1.65 }
.gv-myson .mobile-whatsapp { display:none }

/* ==========================================================================
   Article 4: Hoi An to Hue via Hai Van Pass (.gv-haivan-hue)
   ========================================================================== */
.gv-haivan-hue { --green:#173c35;--green2:#28594e;--cream:#f6f3eb;--sand:#e8dfcf;--ink:#202a27;--muted:#68736d;--orange:#d98b52;--white:#fff;--line:#e5e6df;--shadow:0 18px 50px rgba(22,47,40,.12) }
.gv-haivan-hue { box-sizing:border-box }
.gv-haivan-hue { scroll-behavior:smooth;scroll-padding-top:88px }
.gv-haivan-hue { margin:0;background:#fff;color:var(--ink);font:16px/1.7 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif }
.gv-haivan-hue a { color:inherit }
.gv-haivan-hue img { display:block;max-width:100% }
.gv-haivan-hue .wrap { width:min(1160px,calc(100% - 40px));margin:auto }
.gv-haivan-hue .topbar { background:var(--green);color:#eaf0e8;font-size:13px }
.gv-haivan-hue .topbar .wrap { display:flex;justify-content:space-between;gap:16px;padding:9px 0 }
.gv-haivan-hue .topbar a { text-decoration:none }
.gv-haivan-hue header { position:sticky;top:0;z-index:10;background:rgba(255,255,255,.95);backdrop-filter:blur(12px);border-bottom:1px solid rgba(0,0,0,.06) }
.gv-haivan-hue .nav { height:76px;display:flex;align-items:center;justify-content:space-between;gap:20px }
.gv-haivan-hue .brand { font-weight:850;letter-spacing:-.04em;color:var(--green);text-decoration:none;font-size:21px }
.gv-haivan-hue .brand span { color:var(--orange) }
.gv-haivan-hue nav { display:flex;align-items:center;gap:24px }
.gv-haivan-hue nav a { text-decoration:none;font-size:14px;font-weight:650;color:#35443d }
.gv-haivan-hue nav a:hover { color:var(--orange) }
.gv-haivan-hue .nav-cta, .gv-haivan-hue .btn { display:inline-flex;align-items:center;justify-content:center;border:0;border-radius:999px;padding:12px 19px;background:var(--orange);color:#fff;text-decoration:none;font-weight:750;cursor:pointer;transition:.2s }
.gv-haivan-hue .nav-cta:hover, .gv-haivan-hue .btn:hover { transform:translateY(-2px);filter:brightness(.96) }
.gv-haivan-hue .hero { position:relative;min-height:610px;display:flex;align-items:end;overflow:hidden;background:linear-gradient(90deg,rgba(8,28,25,.78),rgba(8,28,25,.25)),linear-gradient(0deg,rgba(8,28,25,.5),transparent 65%),url('https://images.unsplash.com/photo-1528127269322-539801943592?auto=format&fit=crop&w=2000&q=85') center 52%/cover;color:white }
.gv-haivan-hue .hero-inner { padding:90px 0 76px;max-width:850px }
.gv-haivan-hue .eyebrow { display:inline-flex;align-items:center;gap:9px;text-transform:uppercase;letter-spacing:.16em;font-size:12px;font-weight:800;color:#f2c49b }
.gv-haivan-hue .eyebrow:before { content:"";width:28px;height:2px;background:var(--orange) }
.gv-haivan-hue h1, .gv-haivan-hue h2, .gv-haivan-hue h3, .gv-haivan-hue p { margin-top:0 }
.gv-haivan-hue h1 { font-size:clamp(42px,6.5vw,76px);line-height:1.03;letter-spacing:-.055em;margin:22px 0 }
.gv-haivan-hue .hero p { max-width:650px;font-size:19px;color:#f0f3ed }
.gv-haivan-hue .hero-actions { display:flex;flex-wrap:wrap;gap:12px;margin-top:28px }
.gv-haivan-hue .btn-outline { background:transparent;border:1px solid rgba(255,255,255,.7) }
.gv-haivan-hue .hero-note { margin-top:32px;display:flex;flex-wrap:wrap;gap:22px;color:#f4f3ec;font-size:14px }
.gv-haivan-hue .hero-note span { display:flex;gap:8px;align-items:center }
.gv-haivan-hue .quickfacts { position:relative;margin-top:-34px;z-index:2 }
.gv-haivan-hue .fact-grid { display:grid;grid-template-columns:repeat(4,1fr);background:#fff;border-radius:18px;box-shadow:var(--shadow);padding:25px 10px }
.gv-haivan-hue .fact { padding:5px 24px;border-right:1px solid var(--line) }
.gv-haivan-hue .fact:last-child { border:0 }
.gv-haivan-hue .fact strong { display:block;color:var(--green);font-size:23px;letter-spacing:-.03em }
.gv-haivan-hue .fact small { color:var(--muted);font-size:13px }
.gv-haivan-hue section { padding:88px 0 }
.gv-haivan-hue .section-soft { background:var(--cream) }
.gv-haivan-hue .section-head { max-width:720px;margin-bottom:36px }
.gv-haivan-hue .section-head h2 { font-size:clamp(30px,4vw,46px);line-height:1.12;letter-spacing:-.04em;color:var(--green);margin:12px 0 15px }
.gv-haivan-hue .section-head p { color:var(--muted);font-size:17px }
.gv-haivan-hue .kicker { font-size:12px;text-transform:uppercase;letter-spacing:.15em;color:#a96837;font-weight:850 }
.gv-haivan-hue .intro-grid { display:grid;grid-template-columns:1.1fr .9fr;gap:54px;align-items:center }
.gv-haivan-hue .intro-visual { min-height:390px;border-radius:22px;background:url('https://images.unsplash.com/photo-1501785888041-af3ef285b470?auto=format&fit=crop&w=1200&q=85') center/cover;box-shadow:var(--shadow);position:relative }
.gv-haivan-hue .image-caption { position:absolute;bottom:18px;left:18px;background:#fff;padding:12px 15px;border-radius:12px;font-size:13px;font-weight:700 }
.gv-haivan-hue .checklist { padding:0;list-style:none }
.gv-haivan-hue .checklist li { padding:11px 0 11px 30px;position:relative;border-bottom:1px solid var(--line) }
.gv-haivan-hue .checklist li:before { content:"✓";position:absolute;left:0;color:#b76f3e;font-weight:900 }
.gv-haivan-hue .route-line { position:relative;display:grid;grid-template-columns:repeat(4,1fr);gap:18px }
.gv-haivan-hue .stop-card { background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;transition:.25s }
.gv-haivan-hue .stop-card:hover { transform:translateY(-5px);box-shadow:var(--shadow) }
.gv-haivan-hue .stop-img { height:190px;background-size:cover;background-position:center }
.gv-haivan-hue .stop-card:nth-child(1) .stop-img { background-image:url('https://images.unsplash.com/photo-1537996194471-e657df975ab4?auto=format&fit=crop&w=900&q=80') }
.gv-haivan-hue .stop-card:nth-child(2) .stop-img { background-image:url('https://images.unsplash.com/photo-1500530855697-b586d89ba3ee?auto=format&fit=crop&w=900&q=80') }
.gv-haivan-hue .stop-card:nth-child(3) .stop-img { background-image:url('https://images.unsplash.com/photo-1500375592092-40eb2168fd21?auto=format&fit=crop&w=900&q=80') }
.gv-haivan-hue .stop-card:nth-child(4) .stop-img { background-image:url('https://images.unsplash.com/photo-1559592413-7cec4d0cae2b?auto=format&fit=crop&w=900&q=80') }
.gv-haivan-hue .stop-body { padding:21px }
.gv-haivan-hue .step { font-size:12px;color:#a96837;text-transform:uppercase;font-weight:850;letter-spacing:.1em }
.gv-haivan-hue .stop-body h3 { font-size:20px;color:var(--green);margin:8px 0 }
.gv-haivan-hue .stop-body p { font-size:14px;color:var(--muted);margin-bottom:15px }
.gv-haivan-hue .duration { font-size:12px;background:var(--cream);display:inline-block;padding:5px 9px;border-radius:6px;font-weight:750 }
.gv-haivan-hue .itinerary { display:grid;grid-template-columns:.75fr 1.25fr;gap:48px }
.gv-haivan-hue .itinerary-aside { position:sticky;top:110px;align-self:start }
.gv-haivan-hue .itinerary-aside h2 { font-size:clamp(30px,4vw,44px);line-height:1.1;color:var(--green);letter-spacing:-.04em }
.gv-haivan-hue .timeline { border-left:2px solid #d9c8b2;margin-left:12px;padding-left:30px }
.gv-haivan-hue .time-item { position:relative;padding:0 0 28px }
.gv-haivan-hue .time-item:before { content:"";position:absolute;width:13px;height:13px;border-radius:50%;background:var(--orange);left:-38px;top:7px;border:4px solid var(--cream) }
.gv-haivan-hue .time-item time { font-size:12px;color:#a96837;font-weight:850;letter-spacing:.08em;text-transform:uppercase }
.gv-haivan-hue .time-item h3 { margin:5px 0;color:var(--green);font-size:19px }
.gv-haivan-hue .time-item p { margin:0;color:var(--muted);font-size:14px }
.gv-haivan-hue .choice-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:18px }
.gv-haivan-hue .choice { padding:26px;border-radius:18px;border:1px solid var(--line);background:white }
.gv-haivan-hue .choice.featured { background:var(--green);color:#fff;border-color:var(--green) }
.gv-haivan-hue .choice .symbol { font-size:26px }
.gv-haivan-hue .choice h3 { margin:12px 0 8px;font-size:21px }
.gv-haivan-hue .choice p { font-size:14px;color:var(--muted) }
.gv-haivan-hue .choice.featured p { color:#d9e5dd }
.gv-haivan-hue .choice ul { padding-left:19px;font-size:14px }
.gv-haivan-hue .tips-grid { display:grid;grid-template-columns:repeat(3,1fr);gap:24px }
.gv-haivan-hue .tip { padding:24px 0;border-top:2px solid var(--orange) }
.gv-haivan-hue .tip h3 { color:var(--green);margin-bottom:8px }
.gv-haivan-hue .tip p { color:var(--muted);font-size:14px;margin-bottom:0 }
.gv-haivan-hue .faq { max-width:850px }
.gv-haivan-hue .faq details { border-bottom:1px solid var(--line);padding:18px 0 }
.gv-haivan-hue .faq summary { cursor:pointer;list-style:none;font-weight:750;color:var(--green);display:flex;justify-content:space-between;gap:20px }
.gv-haivan-hue .faq summary:after { content:"+";font-size:22px;color:var(--orange) }
.gv-haivan-hue .faq details[open] summary:after { content:"−" }
.gv-haivan-hue .faq details p { padding-top:12px;color:var(--muted);margin:0 }
.gv-haivan-hue .cta-band { background:var(--green);color:white;border-radius:24px;padding:42px;display:flex;justify-content:space-between;align-items:center;gap:30px }
.gv-haivan-hue .cta-band h2 { font-size:clamp(27px,4vw,40px);line-height:1.12;letter-spacing:-.04em;margin-bottom:10px }
.gv-haivan-hue .cta-band p { color:#d9e5dd;margin-bottom:0;max-width:620px }
.gv-haivan-hue .cta-band .btn { white-space:nowrap }
.gv-haivan-hue footer { background:#102c27;color:#dbe4dd;padding:42px 0 24px }
.gv-haivan-hue .footer-grid { display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:32px }
.gv-haivan-hue .footer-grid h3 { color:#fff;font-size:16px }
.gv-haivan-hue .footer-grid p, .gv-haivan-hue .footer-grid a { font-size:13px;color:#bdcec4 }
.gv-haivan-hue .footer-grid a { display:block;text-decoration:none;margin:7px 0 }
.gv-haivan-hue .copyright { border-top:1px solid #345149;margin-top:30px;padding-top:18px;font-size:12px;color:#a9bdb3 }
.gv-haivan-hue .mobile-menu { display:none }
.gv-haivan-hue .notice { font-size:12px;color:var(--muted);margin-top:15px }
.gv-haivan-hue .pricing-section { background:#fff }
.gv-haivan-hue .pricing-intro { display:flex;align-items:flex-end;justify-content:space-between;gap:24px }
.gv-haivan-hue .pricing-note { max-width:420px;color:var(--muted);font-size:13px }
.gv-haivan-hue .price-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px;margin-top:30px }
.gv-haivan-hue .price-card { position:relative;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);border-radius:22px;padding:28px;box-shadow:0 8px 28px rgba(22,47,40,.05) }
.gv-haivan-hue .price-card.popular { border:2px solid var(--orange);box-shadow:var(--shadow) }
.gv-haivan-hue .price-tag { position:absolute;right:18px;top:18px;border-radius:999px;background:#fff0e4;color:#97582e;font-size:11px;font-weight:850;padding:6px 10px;text-transform:uppercase;letter-spacing:.06em }
.gv-haivan-hue .car-icon { width:48px;height:48px;display:grid;place-items:center;background:var(--cream);border-radius:14px;font-size:25px }
.gv-haivan-hue .price-card h3 { font-size:22px;color:var(--green);margin:16px 0 4px }
.gv-haivan-hue .capacity { color:var(--muted);font-size:13px }
.gv-haivan-hue .price-vnd { font-size:clamp(27px,3vw,34px);font-weight:900;color:var(--green);letter-spacing:-.045em;line-height:1.2;margin:20px 0 3px }
.gv-haivan-hue .price-usd { font-weight:750;color:#a96837;font-size:17px }
.gv-haivan-hue .price-unit { font-size:12px;color:var(--muted);margin-top:5px }
.gv-haivan-hue .price-divider { height:1px;background:var(--line);margin:20px 0 }
.gv-haivan-hue .price-card ul { padding-left:18px;color:var(--muted);font-size:13px;margin:0 0 24px }
.gv-haivan-hue .price-card li { margin:7px 0 }
.gv-haivan-hue .price-card .btn { margin-top:auto;width:100%;text-align:center }
.gv-haivan-hue .included-grid { display:grid;grid-template-columns:1fr 1fr;gap:24px;margin-top:38px }
.gv-haivan-hue .included-box { border:1px solid var(--line);border-radius:18px;padding:25px;background:var(--cream) }
.gv-haivan-hue .included-box h3 { color:var(--green);margin-bottom:14px }
.gv-haivan-hue .included-box ul { padding:0;list-style:none;margin:0 }
.gv-haivan-hue .included-box li { position:relative;padding:8px 0 8px 27px;font-size:14px;border-bottom:1px solid rgba(0,0,0,.06) }
.gv-haivan-hue .included-box li:last-child { border-bottom:0 }
.gv-haivan-hue .included-box.yes li:before { content:"✓";position:absolute;left:0;color:#2f7a55;font-weight:900 }
.gv-haivan-hue .included-box.no li:before { content:"−";position:absolute;left:0;color:#a96837;font-weight:900 }
.gv-haivan-hue .route-chips { display:flex;flex-wrap:wrap;gap:8px;margin-top:18px }
.gv-haivan-hue .route-chip { border:1px solid #dce1d8;background:#fff;border-radius:999px;padding:7px 11px;font-size:12px;font-weight:700;color:#3b5047 }
.gv-haivan-hue .roundtrip-alert { margin-top:22px;padding:16px 18px;border-left:4px solid var(--orange);background:#fff5eb;border-radius:0 12px 12px 0;color:#684a35;font-size:13px }
