*{box-sizing:border-box}
:root{--ink:#152b35;--muted:#708087;--orange:#f27d52;--cream:#fffaf5;--teal:#134e58;--line:#efe8e0}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:#fff;font-family:'Be Vietnam Pro',sans-serif;font-size:14px;line-height:1.5}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button{font:inherit}
.container{width:min(1120px,calc(100% - 48px));margin:auto}

/* Header */
.site-header{height:78px;position:sticky;top:0;z-index:20;background:rgba(255,250,245,.94);backdrop-filter:blur(14px);border-bottom:1px solid #f2ece4}
.nav-wrap,.brand,.main-nav,.nav-actions{display:flex;align-items:center}
.nav-wrap{height:100%;justify-content:space-between;gap:16px}
.brand{gap:10px}
.brand-mark{display:grid;place-items:center;width:43px;height:43px;border-radius:15px;background:var(--orange);color:#fff;font-weight:800;letter-spacing:-1px}
.brand b{display:block;font-size:15px}
.brand small{display:block;color:#98a0a2;font-size:10px;letter-spacing:1.8px;text-transform:uppercase}
.main-nav{gap:28px}
.main-nav a{color:#465960;font-size:13px;font-weight:600}
.main-nav a:hover,.text-link{color:var(--orange)}
.nav-actions{gap:10px;margin-left:auto}
.lang-btn,.menu-btn{background:none;border:0;font-weight:700;color:var(--ink);padding:10px;cursor:pointer}
.install-btn,.primary{border:0;border-radius:8px;padding:12px 18px;background:var(--teal);color:#fff;font:600 13px inherit;cursor:pointer}
.install-btn span{margin-left:8px}
.menu-btn{display:none}

/* Hero */
.hero{min-height:540px;position:relative;background:#193f46 url('assets/hero.svg') center 55%/cover no-repeat;color:#fff;display:flex;align-items:center}
.hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(8,37,46,.78),rgba(8,37,46,.2) 75%)}
.hero-content{position:relative;padding:75px 0 64px}
.eyebrow{font-size:10px;font-weight:800;letter-spacing:2px;color:var(--orange);margin:0 0 12px}
.hero h1{font:700 clamp(42px,7vw,76px)/1.05 'Playfair Display',serif;letter-spacing:-1px;margin:0 0 16px}
.hero-copy{font-size:15px;line-height:1.8;max-width:510px;color:#f0f4f2;margin:0 0 24px}
.hero-search{height:58px;max-width:580px;background:#fff;border-radius:10px;display:flex;align-items:center;padding:6px 7px 6px 16px;color:#91a0a2}
.hero-search>span{font-size:22px}
.hero-search input{border:0;outline:0;flex:1;padding:0 12px;font:13px inherit;min-width:0;color:var(--ink)}
.hero-search button,.newsletter button{height:44px;padding:0 20px;border:0;border-radius:7px;background:var(--orange);color:#fff;font-weight:700;cursor:pointer}
.hero-tags{display:flex;gap:8px;margin-top:16px;flex-wrap:wrap}
.hero-tags a,.hero-tags span{border:1px solid #ffffff65;background:#ffffff18;padding:7px 12px;border-radius:30px;font-size:11px;color:#fff}
.hero-tags a:hover{background:#ffffff30}
.hero-stats{display:flex;gap:18px;margin-top:28px;flex-wrap:wrap}
.hero-stats div{min-width:110px;padding:12px 14px;border-radius:12px;background:rgba(255,255,255,.1);backdrop-filter:blur(8px)}
.hero-stats b{display:block;font:700 22px 'Playfair Display',serif}
.hero-stats span{font-size:11px;opacity:.85}

/* Sections */
.section{padding-top:72px;padding-bottom:8px}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:16px;margin-bottom:24px}
.section-head h2,.newsletter h2,.ad-card h2{font:700 30px/1.2 'Playfair Display',serif;margin:0}
.text-link{font-weight:700;font-size:12px;white-space:nowrap}

/* Feature cards */
.feature-grid{display:grid;grid-template-columns:1.35fr 1fr 1fr;grid-template-rows:minmax(180px,1fr) minmax(180px,1fr);gap:16px;min-height:380px}
.feature-card{position:relative;border-radius:16px;overflow:hidden;background:#1b3a42;min-height:180px;display:block;color:#fff;isolation:isolate;transition:transform .2s ease,box-shadow .2s ease}
.feature-card:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(21,43,53,.16)}
.feature-card.large{grid-row:1/3;min-height:380px}
.feature-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:0}
.card-gradient{position:absolute;inset:0;z-index:1;background:linear-gradient(180deg,rgba(7,34,41,.08) 20%,rgba(7,34,41,.82) 100%);pointer-events:none}
.feature-info{position:absolute;left:0;right:0;bottom:0;z-index:2;padding:18px 18px 16px;color:#fff}
.feature-info .pill{margin-bottom:8px}
.feature-info h3{margin:0 0 8px;font:700 18px/1.35 'Playfair Display',serif;color:#fff}
.feature-card.large .feature-info h3{font-size:clamp(22px,2.4vw,28px);max-width:92%}
.feature-info h3 a,
.guide-body h3 a{color:inherit;text-decoration:none}
.feature-info h3 a:hover,
.guide-body h3 a:hover{color:#ffe2d4}
.feature-info p{margin:0 0 10px;color:rgba(255,255,255,.86);font-size:12px;line-height:1.55;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}
.feature-card:not(.large) .feature-info h3{font-size:15px;display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.feature-card:not(.large) .feature-info p{display:none}
.meta{font-size:11px;opacity:.86;color:rgba(255,255,255,.88)}
.meta span{padding:0 5px}

/* Pills */
.pill{display:inline-block;font-size:10px;font-weight:700;text-transform:uppercase;letter-spacing:.5px;padding:6px 10px;border-radius:999px;background:#fce9e1;color:#c85a34}
.pill.light{background:rgba(255,255,255,.22);color:#fff;backdrop-filter:blur(6px)}
.pill.blue{background:#e7f3f4;color:#387888}
.pill.green{background:#e7f1e5;color:#63895b}
.pill.orange{background:#fce9e1;color:#c85a34}

/* Filters + guides */
.filter-tabs{display:flex;gap:6px;flex-wrap:wrap}
.filter-tabs button{border:0;background:transparent;color:#859195;padding:9px 12px;border-radius:20px;font:600 11px inherit;cursor:pointer}
.filter-tabs button.active{background:#fff1e9;color:#dc7045}
.guide-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.guide-card{border:1px solid var(--line);border-radius:14px;overflow:hidden;background:#fff;display:flex;flex-direction:column;min-height:100%;transition:transform .2s ease,box-shadow .2s ease}
.guide-card:hover{transform:translateY(-2px);box-shadow:0 12px 24px rgba(21,43,53,.08)}
.thumb{height:190px;position:relative;background:#e8eef0;overflow:hidden}
.thumb img{width:100%;height:100%;object-fit:cover}
.duration{position:absolute;right:10px;bottom:10px;padding:6px 9px;border-radius:6px;background:rgba(22,43,54,.82);color:#fff;font-size:10px;font-weight:600;max-width:70%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.guide-body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}
.guide-body h3{font:700 16px/1.4 'Playfair Display',serif;margin:0;color:var(--ink);display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}
.guide-body p{font-size:12px;color:var(--muted);margin:0;display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden;flex:1}
.author{display:flex;align-items:center;gap:9px;color:#849196;font-size:11px;margin-top:6px}
.avatar{width:27px;height:27px;border-radius:50%;display:grid;place-items:center;background:#f5d9cc;color:#a45b40;font-weight:800;flex:0 0 auto}
.bookmark{margin-left:auto;color:#e48463;font-size:17px;cursor:pointer;border:0;background:none;padding:0}

/* Newsletter / offers / footer */
.newsletter{background:#f8f3eb;margin-top:72px;overflow:hidden}
.newsletter-inner{min-height:240px;display:flex;align-items:center;justify-content:space-between;gap:24px;position:relative;padding:48px 0}
.newsletter h2{font-size:32px;line-height:1.25}
.newsletter p:not(.eyebrow){font-size:13px;color:var(--muted);max-width:360px}
.newsletter form{background:#fff;padding:7px;border-radius:9px;display:flex;position:relative;width:min(410px,45%);box-shadow:0 8px 24px rgba(21,43,53,.05)}
.newsletter input{border:0;outline:0;flex:1;padding:0 12px;min-width:0;font:12px inherit}
.newsletter form small{position:absolute;top:58px;left:12px;color:#45825c}
.wave{position:absolute;right:14%;top:18px;font-size:84px;color:#e8c8b7;transform:rotate(-12deg);pointer-events:none}
.ad-card{margin:56px 0 72px;padding:40px 48px;border-radius:16px;background:#e8f1ee;display:flex;justify-content:space-between;align-items:center;gap:24px;overflow:hidden}
.ad-card h2{font-size:32px;margin-top:10px}
.ad-card p{color:#698080;font-size:13px;max-width:420px}
.offer-actions{display:flex;gap:10px;margin-top:18px;flex-wrap:wrap}
.primary{background:var(--orange)}
.secondary{background:#fff;color:var(--teal);border:1px solid #d6e3df;padding:12px 18px;border-radius:8px;font-weight:700;cursor:pointer}
.offer-art{width:210px;height:180px;border-radius:50%;background:#c9e1d9;display:grid;place-content:center;text-align:center;color:#32716e;font-size:48px;transform:rotate(-10deg);flex:0 0 auto}
.offer-art span{font:700 14px 'Playfair Display',serif}
footer{border-top:1px solid var(--line);padding:24px 0}
.footer-grid{display:flex;align-items:center;justify-content:space-between;gap:16px}
.footer-grid p{font-size:11px;color:#98a0a2;margin:0}
.socials{color:var(--teal);font-weight:800}

/* Traveler blocks */
.place-grid,.food-grid,.plan-grid,.practical-grid,.offer-grid{display:grid;gap:16px}
.place-grid{grid-template-columns:repeat(3,1fr)}
.place-card{border:1px solid var(--line);border-radius:16px;overflow:hidden;background:#fff;display:flex;flex-direction:column;min-height:100%}
.place-media{position:relative;height:150px;background:#dfe9ec}
.place-media img{width:100%;height:100%;object-fit:cover}
.place-media .pill{position:absolute;left:12px;top:12px}
.place-body{padding:16px;display:flex;flex-direction:column;gap:8px;flex:1}
.place-body h3{margin:0;font:700 18px 'Playfair Display',serif}
.place-time{margin:0;color:var(--orange);font-size:12px;font-weight:700}
.place-body p{margin:0;color:var(--muted);font-size:13px}
.place-body ul{margin:0;padding-left:18px;color:#4d646c;font-size:12px;line-height:1.6}
.food-grid{grid-template-columns:repeat(3,1fr)}
.food-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:linear-gradient(180deg,#fff,#fffaf5)}
.food-card h3{margin:0 0 8px;font:700 16px 'Playfair Display',serif}
.food-card p{margin:0 0 10px;color:var(--muted);font-size:13px}
.food-card span{font-size:11px;color:var(--teal);font-weight:700}
.plan-grid{grid-template-columns:repeat(3,1fr)}
.plan-card{border:1px solid var(--line);border-radius:16px;padding:18px;background:#fff}
.plan-card h3{margin:10px 0;font:700 18px 'Playfair Display',serif}
.plan-card ol{margin:0;padding-left:18px;color:#405860;font-size:13px;line-height:1.7}
.practical-grid{grid-template-columns:repeat(3,1fr)}
.practical-card{border:1px solid var(--line);border-radius:14px;padding:16px;background:#f8fbfa}
.practical-card h3{margin:0 0 8px;font-size:15px}
.practical-card p{margin:0;color:var(--muted);font-size:13px;line-height:1.65}
.offer-grid{grid-template-columns:repeat(3,1fr);margin:8px 0 40px}
.offer-card{border:1px solid var(--line);border-radius:16px;padding:20px;background:#fff;display:flex;flex-direction:column;gap:10px}
.offer-card h3{margin:0;font:700 18px 'Playfair Display',serif}
.offer-card p{margin:0;color:var(--muted);font-size:13px;flex:1}
.offer-card .primary,.offer-card .secondary{display:inline-flex;align-items:center;justify-content:center;text-align:center}
.footer-rich{align-items:flex-start;flex-wrap:wrap}
.footer-copy{max-width:320px;color:#8a9498;font-size:12px;line-height:1.6}
.footer-cols{display:flex;gap:36px}
.footer-cols h4{margin:0 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:1px;color:#98a0a2}
.footer-cols a{display:block;color:#465960;font-size:13px;margin:6px 0}
.footer-note{width:100%;margin:8px 0 0;color:#98a0a2;font-size:11px}

/* Article page */
.article-page{padding:36px 0 64px;max-width:860px}
.article-loading,.article-error{padding:48px 0;color:var(--muted);font-size:15px}
.article-kicker{display:flex;align-items:center;gap:12px;margin-bottom:14px;flex-wrap:wrap}
.article-kicker a{color:var(--orange);font-weight:700;font-size:13px}
.article-root h1{font:700 clamp(28px,4vw,42px)/1.2 'Playfair Display',serif;margin:0 0 12px;color:var(--ink)}
.article-meta{color:var(--muted);font-size:13px;margin-bottom:22px}
.article-media{margin:0 0 24px}
.video-frame{position:relative;width:100%;padding-top:56.25%;border-radius:16px;overflow:hidden;background:#0f2430;box-shadow:0 16px 40px rgba(15,36,48,.18)}
.video-frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}
.article-cover{width:100%;border-radius:16px;max-height:420px;object-fit:cover}
.article-body{font-size:16px;line-height:1.8;color:#243943}
.article-body .lead{font-size:17px;color:var(--ink)}
.article-body p{margin:0 0 16px}
.article-body .aeo{background:#f8f3eb;border-radius:12px;padding:14px 16px}
.article-source-box{margin-top:28px;padding:18px 18px;border:1px solid var(--line);border-radius:14px;background:#fffaf5;display:flex;flex-wrap:wrap;gap:14px;align-items:center;justify-content:space-between}
.article-source-box p{margin:0;color:var(--muted);font-size:13px;max-width:520px}
.related-section{padding-top:28px}

/* Mobile */
@media(max-width:900px){
  .feature-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto}
  .feature-card.large{grid-column:1/-1;grid-row:auto;min-height:320px}
  .guide-grid,.place-grid,.food-grid,.plan-grid,.practical-grid,.offer-grid{grid-template-columns:1fr 1fr}
}
@media(max-width:780px){
  .container{width:min(100% - 32px,640px)}
  .main-nav{display:none;position:absolute;top:77px;left:0;right:0;padding:18px 24px;background:var(--cream);flex-direction:column;align-items:flex-start;gap:16px;border-bottom:1px solid #eee}
  .main-nav.open{display:flex}
  .menu-btn{display:block}
  .hero{min-height:520px}
  .hero-content{padding-top:56px}
  .section{padding-top:52px}
  .section-head{align-items:flex-start;flex-direction:column}
  .section-head h2{font-size:26px}
  .feature-grid{display:flex;flex-direction:column}
  .feature-card,.feature-card.large{min-height:280px}
  .feature-card:not(.large) .feature-info p{display:-webkit-box}
  .guide-grid,.place-grid,.food-grid,.plan-grid,.practical-grid,.offer-grid{grid-template-columns:1fr}
  .thumb{height:200px}
  .footer-cols{flex-direction:column;gap:18px}
  .newsletter-inner{flex-direction:column;align-items:stretch;padding:36px 0}
  .newsletter form{width:100%}
  .wave{right:8px;top:0;font-size:56px;opacity:.5}
  .ad-card{padding:28px 20px;margin:40px 0;position:relative}
  .ad-card h2{font-size:26px}
  .offer-art{position:absolute;right:-70px;bottom:-60px;opacity:.35;width:170px;height:150px}
  .footer-grid{flex-direction:column;align-items:flex-start}
}
