/* ===================================================================
   VIAGGI TOUR INDIA  -  vt-main.css
   Standalone stylesheet. Does NOT depend on common-w.css or common.css.
   Load order on a page:
       1. bootstrap.min.css        (grid + utilities only)
       2. css/vt-main.css          (this file, overrides Bootstrap)
       3. font-awesome all.min.css
   =================================================================== */

/* ---------- base ---------------------------------------------------- */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin:0; padding:0; background:var(--vt-surface); color:var(--vt-body);
  font-family:'Roboto', Arial, Helvetica, sans-serif; font-size:16px; line-height:1.6; }
img { max-width:100%; height:auto; border:0; }
a { color:var(--vt-rust); }
h1,h2,h3,h4,h5,h6 { font-family:'Roboto', Arial, sans-serif; margin:0; }
:focus-visible { outline:3px solid #256567; outline-offset:2px; }

/* Bootstrap's .container is 1320px; this site runs wider. Loading this
   file after bootstrap.min.css is what makes this win. */
.container { width:100%; max-width:1600px; margin:0 auto; padding:0 20px 10px 20px; background:var(--vt-surface); }
.clear { clear:both; }
.vt-sr { position:absolute !important; width:1px; height:1px; overflow:hidden;
  clip:rect(0 0 0 0); white-space:nowrap; }

/* ---------- palette -------------------------------------------------
   rust #D13B00  yellow #EBC301  teal #256567  brown #5a200c
   ink #3C2C1C   body #483c35    muted #7B7B71 paper #FAF8F4
   line #ece8e2  border #ddd7cf                                        */

/* ===================================================================
   HEADER
   =================================================================== */
.vt-header { background:var(--vt-surface); border-bottom:1px solid var(--vt-line); position:relative; z-index:500; }
.vt-header a { text-decoration:none; }
.vt-hwrap { max-width:1600px; margin:0 auto; padding:0 20px; }

.vt-topbar { background:#3C2C1C; color:#e8e2da; font-size:13px; }
.vt-topbar .vt-hwrap { display:flex; flex-wrap:wrap; gap:6px 22px; align-items:center;
  justify-content:space-between; padding-top:9px; padding-bottom:9px; }
.vt-topbar span { display:inline-flex; align-items:center; gap:7px; }
.vt-topbar i { color:var(--vt-gold); }
.vt-topbar a { color:#f3efe9; }
.vt-topbar a:hover { color:var(--vt-gold); }
@media (max-width:767px) { .vt-topbar .vt-tb-hide { display:none; } }

.vt-mainbar .vt-hwrap { display:flex; align-items:center; gap:20px;
  padding-top:14px; padding-bottom:14px; }
.vt-logo { flex:0 0 auto; line-height:0; }
.vt-logo img { display:block; max-width:220px; }
.vt-mainbar > .vt-hwrap > nav { flex:1 1 auto; min-width:0; }

.vt-menu { display:flex; flex-wrap:wrap; align-items:center; justify-content:flex-end;
  gap:2px; margin:0; padding:0; list-style:none; }
.vt-menu li { margin:0; padding:0; list-style:none; position:relative; }
.vt-menu li > a,
.vt-menu li > button { display:inline-flex; align-items:center; gap:7px;
  background:none; border:0; cursor:pointer; white-space:nowrap;
  font-family:'Roboto', Arial, sans-serif; font-size:15px; font-weight:500;
  color:var(--vt-ink); padding:11px 14px; line-height:1.2; text-decoration:none; }
.vt-menu li > a:hover,
.vt-menu li > button:hover,
.vt-menu li.is-open > button { color:var(--vt-rust); }
.vt-menu li > button i { font-size:11px; color:#a49b90; }
.vt-menu li.is-open > button i { color:var(--vt-rust); }
.vt-menu li > a.vt-cta { background:#D13B00; color:#fff; font-weight:700;
  padding:12px 22px; margin-left:8px; }
.vt-menu li > a.vt-cta:hover { background:#b72e00; color:#fff; }

.vt-drop { position:absolute; top:calc(100% + 6px); left:50%; transform:translateX(-50%);
  right:auto; min-width:330px; max-width:calc(100vw - 40px); background:var(--vt-surface);
  border:0; border-top:3px solid var(--vt-rust); padding:22px 24px 16px 24px;
  box-shadow:0 22px 54px rgba(46,33,25,.22); display:none; z-index:600; }
.vt-drop:before { content:''; position:absolute; top:-9px; left:50%; margin-left:-8px; width:0; height:0;
  border-left:8px solid transparent; border-right:8px solid transparent;
  border-bottom:8px solid var(--vt-rust); }
.vt-drop.is-wide { min-width:660px; }
.vt-menu li:nth-last-child(-n+3) .vt-drop { left:auto; right:0; transform:none; }
.vt-menu li:nth-last-child(-n+3) .vt-drop:before { left:auto; right:34px; margin-left:0; }
.vt-drop-head { font-family:'Playfair Display', Georgia, serif; font-size:19px; font-weight:600;
  color:var(--vt-ink); margin:0 0 4px 0; }
.vt-drop-sub { font-size:13px; color:var(--vt-muted); margin:0 0 16px 0; }
.vt-drop-grid { display:grid; grid-template-columns:1fr 1fr; gap:1px 18px; }
.vt-menu li.is-open > .vt-drop { display:block; }
.vt-drop a { display:block; padding:9px 10px 9px 15px; font-size:14.5px; line-height:1.4;
  color:var(--vt-body); text-decoration:none; position:relative; border-left:2px solid transparent; }
.vt-drop a:before { content:''; position:absolute; left:2px; top:50%; margin-top:-3px;
  width:5px; height:5px; background:var(--vt-gold); opacity:0; }
.vt-drop a:hover { color:var(--vt-rust); border-left-color:var(--vt-rust); background:#FBF7F1; }
.vt-drop a:hover:before { opacity:1; }
.vt-drop-foot { margin-top:14px; padding-top:14px; border-top:1px solid var(--vt-line); }
.vt-drop-foot a { display:inline-block; padding:0; font-size:14px; font-weight:700;
  color:var(--vt-rust); border:0; }
.vt-drop-foot a:hover { background:none; text-decoration:underline; }
.vt-drop-foot a:before { display:none; }

.vt-burger { display:none; flex:0 0 auto; margin-left:auto; background:none;
  border:1px solid var(--vt-line); padding:10px 13px; cursor:pointer; color:var(--vt-ink);
  font-size:18px; line-height:1; }
.vt-burger:hover { border-color:var(--vt-rust); color:var(--vt-rust); }

.vt-strap { background:#256567; color:#fff; font-size:13.5px; }
.vt-strap .vt-hwrap { padding-top:10px; padding-bottom:10px; }
.vt-strap p { margin:0; line-height:1.5; }
@media (max-width:1100px) { .vt-strap { display:none; } }

@media (max-width:1180px) {
  .vt-menu { display:none; }
  .vt-burger { display:inline-block; }
  .vt-logo img { max-width:190px; }
}
@media (max-width:520px) { .vt-logo img { max-width:150px; } }

/* mobile drawer */
.vt-drawer { position:fixed; top:0; right:0; bottom:0; width:330px; max-width:88vw;
  background:var(--vt-surface); z-index:1200; transform:translateX(100%); transition:transform .22s ease;
  overflow-y:auto; padding:18px 20px 40px 20px; }
.vt-drawer.is-open { transform:translateX(0); }
.vt-scrim { position:fixed; inset:0; background:rgba(30,20,12,.55); z-index:1100; display:none; }
.vt-scrim.is-open { display:block; }
.vt-drawer-head { display:flex; align-items:center; justify-content:space-between;
  padding-bottom:14px; border-bottom:2px solid #EBC301; margin-bottom:10px; }
.vt-drawer-head strong { font-size:16px; color:var(--vt-heading); }
.vt-drawer-close { background:none; border:0; font-size:28px; line-height:1;
  cursor:pointer; color:var(--vt-muted); }
.vt-drawer ul { margin:0; padding:0; list-style:none; }
.vt-drawer > ul > li { border-bottom:1px dotted var(--vt-line); }
.vt-drawer > ul > li > a,
.vt-drawer > ul > li > button { display:flex; width:100%; align-items:center;
  justify-content:space-between; background:none; border:0; text-align:left; cursor:pointer;
  font-family:'Roboto', Arial, sans-serif; font-size:16px; font-weight:500;
  color:var(--vt-ink); padding:13px 2px; text-decoration:none; }
.vt-drawer > ul > li > button i { color:#a49b90; font-size:12px; }
.vt-drawer .vt-sub { display:none; padding:0 0 10px 12px; }
.vt-drawer li.is-open .vt-sub { display:block; }
.vt-drawer .vt-sub a { display:block; padding:8px 2px; font-size:14px;
  color:var(--vt-body); text-decoration:none; }
.vt-drawer .vt-sub a:hover { color:var(--vt-rust); }
.vt-drawer-cta { margin-top:20px; }
.vt-drawer-cta a { display:flex; justify-content:center; margin-bottom:9px; }

/* ===================================================================
   PAGE FURNITURE
   =================================================================== */
.vt-crumb { font-size:13px; color:var(--vt-muted); padding:16px 0 6px 0; }
.vt-crumb a { color:var(--vt-teal); text-decoration:none; }
.vt-crumb a:hover { color:var(--vt-rust); text-decoration:underline; }
.vt-crumb span { padding:0 7px; color:#C2B6B6; }
.vt-crumb strong { color:var(--vt-ink); font-weight:500; }

.vt-masthead { border-bottom:3px solid #EBC301; padding:4px 0 20px 0; margin-bottom:30px; }
.vt-masthead h1 { font-size:36px; line-height:1.12; font-weight:700; color:var(--vt-heading);
  margin:0 0 12px 0; letter-spacing:-.3px; }
.vt-masthead p { font-size:16px; line-height:1.7; color:var(--vt-body); margin:0; max-width:68ch; }
.vt-masthead p a { color:var(--vt-rust); }

.vt-h2 { font-size:25px; font-weight:700; color:var(--vt-heading); margin:34px 0 16px 0; line-height:1.25; }
.vt-sec-head { border-bottom:3px solid #EBC301; padding-bottom:10px; margin:34px 0 20px 0; }
.vt-sec-head h2 { font-size:24px; font-weight:700; color:var(--vt-heading); margin:0; line-height:1.25; }
.vt-sec-head p { font-size:14px; color:var(--vt-muted); margin:6px 0 0 0; }
.vt-sec-head.has-icon h2 { display:flex; align-items:center; gap:11px; }
.vt-sec-head.has-icon h2 i { color:var(--vt-rust); font-size:21px; }

.vt-col-text { max-width:760px; }
.vt-rail { position:sticky; top:20px; }
.vt-layout { margin:0 0 40px 0; }
@media (max-width:991px) {
  .vt-col-text { max-width:none; }
  .vt-rail { position:static; margin-top:30px; }
  .vt-masthead h1 { font-size:28px; }
}
@media (max-width:520px) { .vt-masthead h1 { font-size:23px; } }

/* ---------- prose --------------------------------------------------- */
.vt-prose { font-size:16px; line-height:1.78; color:var(--vt-body); }
.vt-prose p { margin:0 0 18px 0; }
.vt-prose h2 { font-size:25px; font-weight:700; color:var(--vt-heading); margin:34px 0 12px 0; line-height:1.25; }
.vt-prose h3 { font-size:19px; font-weight:700; color:var(--vt-teal); margin:26px 0 10px 0; }
.vt-prose ul, .vt-prose ol { margin:0 0 18px 0; padding-left:20px; }
.vt-prose li { margin-bottom:8px; }
.vt-prose strong { color:var(--vt-ink); }
.vt-pull { border-left:4px solid #EBC301; padding:4px 0 4px 18px; margin:26px 0;
  font-size:19px; line-height:1.6; color:var(--vt-heading); font-weight:500; max-width:56ch; }
@media (max-width:767px) { .vt-prose { font-size:15px; } .vt-pull { font-size:17px; } }
@media (max-width:520px) { .vt-prose h2, .vt-h2 { font-size:21px; } }

/* ---------- cards --------------------------------------------------- */
.vt-card { border:1px solid var(--vt-line); background:var(--vt-surface); padding:20px; margin-bottom:22px; }
.vt-card h2, .vt-card h3 { font-size:17px; font-weight:700; color:var(--vt-brown, #5a200c);
  margin:0 0 14px 0; padding-bottom:10px; border-bottom:2px solid var(--vt-gold); }
.vt-card.is-quiet { background:var(--vt-surface-2); border-color:var(--vt-line); }
.vt-card p { font-size:14px; line-height:1.65; color:var(--vt-body); margin:0 0 15px 0; }
.vt-card p:last-child { margin-bottom:0; }

.vt-contact { margin:0; padding:0; list-style:none; }
.vt-contact li { display:flex; gap:12px; padding:11px 0; border-bottom:1px dotted var(--vt-line);
  font-size:15px; color:var(--vt-body); line-height:1.55; }
.vt-contact li:last-child { border-bottom:none; padding-bottom:0; }
.vt-contact i { flex:0 0 20px; color:var(--vt-teal); font-size:16px; margin-top:3px; }
.vt-contact a { color:var(--vt-rust); text-decoration:none; }
.vt-contact a:hover { text-decoration:underline; }
.vt-contact strong { display:block; color:var(--vt-ink); font-weight:700; margin-bottom:2px; }

.vt-incl { margin:0; padding:0; list-style:none; }
.vt-incl li { display:flex; gap:10px; padding:8px 0; border-bottom:1px dotted var(--vt-line);
  font-size:14px; line-height:1.55; color:var(--vt-body); }
.vt-incl li:last-child { border-bottom:none; }
.vt-incl i { flex:0 0 16px; font-size:14px; margin-top:3px; }
.vt-incl .is-yes i { color:#6ab005; }
.vt-incl .is-no i { color:#C2B6B6; }
.vt-incl .is-no { color:var(--vt-muted); }

.vt-why { margin:0; padding:0; list-style:none; }
.vt-why li { display:flex; gap:11px; padding:10px 0; border-bottom:1px dotted var(--vt-line);
  font-size:14px; line-height:1.5; color:var(--vt-body); }
.vt-why li:last-child { border-bottom:none; }
.vt-why i { flex:0 0 18px; color:var(--vt-teal); font-size:16px; margin-top:2px; }
.vt-why strong { display:block; color:var(--vt-heading); font-size:14px; margin-bottom:2px; }
.vt-why span span { display:block; font-size:13px; color:var(--vt-muted); }

.vt-season { margin:0; padding:0; list-style:none; }
.vt-season li { display:flex; justify-content:space-between; gap:10px; padding:8px 0;
  border-bottom:1px dotted var(--vt-line); font-size:14px; color:var(--vt-body); }
.vt-season li:last-child { border-bottom:none; }
.vt-season b { color:var(--vt-heading); white-space:nowrap; }

/* ---------- stats, steps, figures ----------------------------------- */
.vt-stats { display:flex; flex-wrap:wrap; gap:14px; margin:0 0 30px 0; padding:0; list-style:none; }
.vt-stats li { flex:1 1 190px; background:var(--vt-surface-2); border:1px solid var(--vt-line);
  border-top:3px solid #D13B00; padding:18px; min-width:0; }
.vt-stats b { display:block; font-size:30px; line-height:1.05; font-weight:700;
  color:var(--vt-heading); margin-bottom:6px; letter-spacing:-.5px; }
.vt-stats span { display:block; font-size:14px; line-height:1.5; color:var(--vt-body); }

.vt-steps { counter-reset:vtstep; margin:6px 0 30px 0; padding:0; list-style:none; }
.vt-steps li { counter-increment:vtstep; position:relative; padding:0 0 22px 54px; }
.vt-steps li:before { content:counter(vtstep); position:absolute; left:0; top:0;
  width:36px; height:36px; line-height:36px; text-align:center;
  background:#256567; color:#fff; font-weight:700; font-size:16px; }
.vt-steps li:after { content:''; position:absolute; left:17px; top:36px; bottom:0;
  width:1px; background:#e6e2dc; }
.vt-steps li:last-child { padding-bottom:0; }
.vt-steps li:last-child:after { display:none; }
.vt-steps strong { display:block; font-size:17px; color:var(--vt-ink); margin:6px 0 5px 0; }
.vt-steps p { font-size:15px; line-height:1.7; color:var(--vt-body); margin:0; }

.vt-figure { margin:26px 0; border:1px solid var(--vt-line); padding:10px; background:var(--vt-surface); }
.vt-figure img { width:100%; display:block; }
.vt-figure figcaption { font-size:13px; color:var(--vt-muted); padding:10px 4px 2px 4px; line-height:1.55; }

/* ---------- buttons & forms ----------------------------------------- */
.vt-btn { display:inline-block; background:#D13B00; color:#fff; font-family:'Roboto', Arial, sans-serif;
  font-size:15px; font-weight:700; padding:12px 26px; border:0; cursor:pointer; text-decoration:none; }
.vt-btn:hover { background:#b72e00; color:#fff; }
.vt-btn-wa { display:inline-flex; align-items:center; justify-content:center; gap:9px;
  background:#25D366; color:#fff; font-family:'Roboto', Arial, sans-serif; font-size:15px;
  font-weight:700; padding:12px 22px; text-decoration:none; border:0; }
.vt-btn-wa:hover { background:#1da851; color:#fff; }
.vt-btn-wa i { font-size:19px; }
.vt-btn.is-block, .vt-btn-wa.is-block { display:flex; width:100%; align-items:center;
  justify-content:center; gap:9px; margin-bottom:9px; }
.vt-btn.is-block:last-child, .vt-btn-wa.is-block:last-child { margin-bottom:0; }

.vt-form label { display:block; font-size:13px; color:var(--vt-muted); margin:0 0 5px 0; }
.vt-form input[type=text], .vt-form input[type=email], .vt-form input[type=tel],
.vt-form select, .vt-form textarea { width:100%; padding:11px 13px; border:1px solid var(--vt-line);
  background:var(--vt-surface); font-family:'Roboto', Arial, sans-serif; font-size:15px; color:var(--vt-ink);
  margin-bottom:14px; border-radius:0; }
.vt-form input:focus, .vt-form select:focus, .vt-form textarea:focus {
  outline:2px solid #256567; outline-offset:1px; border-color:var(--vt-teal); }
.vt-req { color:var(--vt-rust); }
.vt-hint { font-size:12px; color:#8a857d; margin:-8px 0 14px 0; line-height:1.5; }
.vt-phone { display:flex; margin-bottom:14px; }
.vt-phone select { flex:0 0 168px; width:168px; margin-bottom:0 !important;
  border-right:none; background:var(--vt-surface-2); font-size:14px; padding:11px 8px; }
.vt-phone input { flex:1 1 auto; min-width:0; margin-bottom:0 !important; }
@media (max-width:400px) { .vt-phone { display:block; }
  .vt-phone select { width:100%; flex:none; border-right:1px solid var(--vt-line); margin-bottom:8px !important; } }

.vt-note { padding:12px 16px; margin-bottom:18px; font-size:15px; line-height:1.55; }
.vt-note.is-ok { background:#eaf3e4; border-left:4px solid #6ab005; color:#33591b; }
.vt-note.is-error { background:#fbeae5; border-left:4px solid #D13B00; color:#8a2b06; }

/* ---------- FAQ, hub, trust ------------------------------------------ */
.vt-faq { margin:10px 0 30px 0; }
.vt-faq details { border:1px solid var(--vt-line); border-left:3px solid #256567;
  margin-bottom:10px; background:var(--vt-surface); }
.vt-faq summary { cursor:pointer; padding:14px 18px; font-size:16px; font-weight:700;
  color:var(--vt-heading); list-style:none; }
.vt-faq summary::-webkit-details-marker { display:none; }
.vt-faq summary:after { content:'+'; float:right; color:var(--vt-rust); font-size:20px; line-height:1; }
.vt-faq details[open] summary:after { content:'\2013'; }
.vt-faq details[open] summary { border-bottom:1px solid var(--vt-line); }
.vt-faq .vt-faq-a { padding:14px 18px; font-size:15px; line-height:1.7; color:var(--vt-body); }
.vt-faq .vt-faq-a p { margin:0 0 12px 0; }
.vt-faq .vt-faq-a p:last-child { margin-bottom:0; }

.vt-hub { background:var(--vt-surface-2); border:1px solid var(--vt-line); border-top:3px solid #256567;
  padding:22px 24px; margin:34px 0 10px 0; }
.vt-hub h2 { font-size:19px; font-weight:700; color:var(--vt-heading); margin:0 0 8px 0; }
.vt-hub p { font-size:14px; line-height:1.65; color:var(--vt-body); margin:0 0 14px 0; max-width:70ch; }
.vt-hub ul { margin:0; padding:0; list-style:none; display:flex; flex-wrap:wrap; gap:8px 10px; }
.vt-hub a { display:inline-block; font-size:14px; color:var(--vt-heading); background:var(--vt-surface);
  border:1px solid var(--vt-line); padding:7px 13px; text-decoration:none; }
.vt-hub a:hover { background:var(--vt-gold); border-color:var(--vt-gold); }

.vt-trust { display:flex; flex-wrap:wrap; gap:14px; margin:0 0 26px 0; padding:0; list-style:none; }
.vt-trust li { flex:1 1 200px; background:var(--vt-surface-2); border:1px solid var(--vt-line);
  padding:14px 16px; font-size:14px; line-height:1.5; color:var(--vt-body); min-width:0; }
.vt-trust strong { display:block; color:var(--vt-heading); font-size:15px; margin-bottom:3px; }

/* ---------- tour cards / grids --------------------------------------- */
.vt-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; margin:0 0 30px 0; }
@media (max-width:1199px) { .vt-grid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px)  { .vt-grid { grid-template-columns:1fr; } }

.vt-tour { display:flex; flex-direction:column; border:1px solid var(--vt-line); background:var(--vt-surface); min-width:0; }
.vt-tour-media { position:relative; display:block; overflow:hidden; background:#f1f1f1;
  border-bottom:3px solid #D13B00; }
.vt-tour-media img { width:100%; height:180px; object-fit:cover; display:block; }
.vt-badge { position:absolute; top:0; left:0; background:var(--vt-gold); color:var(--vt-heading);
  font-size:12px; font-weight:700; padding:5px 12px; }
.vt-tour-body { flex:1 1 auto; padding:15px 16px 0 16px; }
.vt-tour-body h3 { font-size:17px; line-height:1.34; font-weight:700; margin:0 0 8px 0;
  min-height:46px; display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.vt-tour-body h3 a { color:var(--vt-ink); text-decoration:none; }
.vt-tour-body h3 a:hover { color:var(--vt-rust); }
.vt-tour-meta { font-size:13px; color:var(--vt-muted); margin:0 0 9px 0; line-height:1.5; }
.vt-tour-meta i { color:var(--vt-teal); margin-right:4px; }
.vt-sector { display:-webkit-box; -webkit-line-clamp:2; -webkit-box-orient:vertical; overflow:hidden; }
.vt-tour-desc { font-size:14px; line-height:1.6; color:var(--vt-body); margin:0 0 12px 0;
  display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; }
.vt-tour-foot { padding:12px 16px 15px 16px; border-top:1px dotted var(--vt-line);
  display:flex; align-items:center; justify-content:space-between; gap:10px; }
.vt-price { font-size:13px; color:var(--vt-muted); line-height:1.3; }
.vt-price b { display:block; font-size:18px; color:var(--vt-heading); font-weight:700; }
.vt-price.is-ask b { font-size:15px; color:var(--vt-teal); }
.vt-go { flex:0 0 auto; background:#D13B00; color:#fff; font-size:13px; font-weight:700;
  padding:9px 16px; text-decoration:none; white-space:nowrap; }
.vt-go:hover { background:#b72e00; color:#fff; }
@media (max-width:520px) { .vt-tour-foot { display:block; }
  .vt-go { display:block; text-align:center; margin-top:10px; } }

.vt-cats { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; margin:0 0 34px 0; }
@media (max-width:991px) { .vt-cats { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .vt-cats { grid-template-columns:1fr; } }
.vt-cat { display:block; text-decoration:none; border:1px solid var(--vt-line); background:var(--vt-surface); min-width:0; }
.vt-cat img { width:100%; height:190px; object-fit:cover; display:block; border-bottom:3px solid #D13B00; }
.vt-cat span { display:block; padding:13px 15px; font-size:16px; font-weight:700;
  color:var(--vt-ink); line-height:1.35; }
.vt-cat:hover span { color:var(--vt-rust); }
.vt-cat em { display:block; font-style:normal; font-size:13px; color:var(--vt-muted); font-weight:400; margin-top:3px; }

.vt-empty { padding:44px 20px; text-align:center; background:var(--vt-surface-2);
  border:1px solid var(--vt-line); margin-bottom:26px; }
.vt-empty p { color:var(--vt-body); margin:0 0 16px 0; }

/* ---------- filters & pager ------------------------------------------ */
.vt-filters { background:var(--vt-surface-2); border:1px solid var(--vt-line); padding:16px 18px; margin:0 0 26px 0; }
.vt-filters form { display:flex; flex-wrap:wrap; gap:10px; align-items:flex-end; margin:0; }
.vt-filters .vt-fgroup { flex:1 1 200px; min-width:0; }
.vt-filters label { display:block; font-size:12px; color:var(--vt-muted); margin:0 0 5px 0; }
.vt-filters select { width:100%; padding:9px 11px; border:1px solid var(--vt-line); background:var(--vt-surface);
  border-radius:0; font-family:'Roboto', Arial, sans-serif; font-size:14px; color:var(--vt-ink); }
.vt-filters button { flex:0 0 auto; background:#D13B00; color:#fff; border:0; padding:10px 22px;
  font-family:'Roboto', Arial, sans-serif; font-size:14px; font-weight:700; cursor:pointer; }
.vt-filters button:hover { background:#b72e00; }
.vt-filters .vt-reset { flex:0 0 auto; font-size:13px; color:var(--vt-muted); text-decoration:none; padding:12px 4px; }
.vt-count { font-size:14px; color:var(--vt-muted); margin:0 0 18px 0; }
.vt-count strong { color:var(--vt-ink); }

.vt-pager { display:flex; flex-wrap:wrap; gap:6px; align-items:center; padding:6px 0 32px 0; }
.vt-pager a, .vt-pager span { display:inline-block; min-width:40px; text-align:center;
  padding:9px 13px; font-size:14px; text-decoration:none; border:1px solid var(--vt-line);
  color:var(--vt-heading); background:var(--vt-surface); }
.vt-pager a:hover { background:var(--vt-gold); border-color:var(--vt-gold); color:var(--vt-heading); }
.vt-pager .is-current { background:#D13B00; border-color:var(--vt-rust); color:#fff; font-weight:700; }
.vt-pager .vt-gap { border:0; background:none; min-width:20px; padding:9px 2px; color:#C2B6B6; }

/* ---------- tour detail ---------------------------------------------- */
.vt-top { display:grid; grid-template-columns:1fr 360px; gap:24px; margin:0 0 26px 0; align-items:start; }
@media (max-width:991px) { .vt-top { grid-template-columns:1fr; } }
.vt-top-media { border:1px solid var(--vt-line); padding:8px; background:var(--vt-surface); min-width:0; }
.vt-top-media img { width:100%; display:block; }
.vt-book { border:1px solid var(--vt-line); border-top:3px solid #D13B00; background:var(--vt-surface-2); padding:20px; }
.vt-book h2 { font-size:17px; font-weight:700; color:var(--vt-heading); margin:0 0 14px 0;
  padding-bottom:10px; border-bottom:2px solid #EBC301; }
.vt-book .vt-btn, .vt-book .vt-btn-wa { display:flex; width:100%; justify-content:center; margin-bottom:9px; }
.vt-book-tel { font-size:13px; color:var(--vt-muted); margin:12px 0 0 0; text-align:center; }
.vt-book-tel a { color:var(--vt-rust); font-weight:700; text-decoration:none; }

.vt-factstrip { display:grid; grid-template-columns:repeat(4,1fr); gap:14px;
  margin:0 0 32px 0; padding:0; list-style:none; }
@media (max-width:991px) { .vt-factstrip { grid-template-columns:repeat(2,1fr); } }
@media (max-width:520px) { .vt-factstrip { grid-template-columns:1fr; } }
.vt-factstrip li { display:flex; gap:13px; background:var(--vt-surface); border:1px solid var(--vt-line);
  border-left:3px solid #256567; padding:15px 16px; min-width:0; }
.vt-factstrip i { flex:0 0 22px; color:var(--vt-teal); font-size:19px; margin-top:2px; }
.vt-factstrip strong { display:block; font-size:12px; color:var(--vt-muted); font-weight:400; margin-bottom:3px; }
.vt-factstrip span { display:block; min-width:0; font-size:15px; line-height:1.45;
  color:var(--vt-ink); font-weight:700; }
.vt-factstrip em { font-style:normal; font-weight:400; font-size:14px; color:var(--vt-body); }

.vt-anchors { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 26px 0; padding:0; list-style:none; }
.vt-anchors a { display:inline-block; font-size:14px; color:var(--vt-heading); background:var(--vt-surface-2);
  border:1px solid var(--vt-line); padding:8px 15px; text-decoration:none; }
.vt-anchors a:hover { background:var(--vt-gold); border-color:var(--vt-gold); }

.vt-days { margin:0 0 34px 0; padding:0; list-style:none; }
.vt-day { position:relative; padding:0 0 26px 62px; }
.vt-day:after { content:''; position:absolute; left:20px; top:44px; bottom:0; width:2px; background:#ece8e2; }
.vt-day:last-child { padding-bottom:0; }
.vt-day:last-child:after { display:none; }
.vt-day-num { position:absolute; left:0; top:0; width:42px; height:42px; border-radius:50%;
  background:#D13B00; color:#fff; font-size:15px; font-weight:700;
  display:flex; align-items:center; justify-content:center; }
.vt-day h3 { font-size:17px; line-height:1.35; font-weight:700; color:var(--vt-heading); margin:9px 0 8px 0; }
.vt-day h3 .vt-km { display:inline-block; font-size:12px; font-weight:400; color:var(--vt-muted);
  background:#F2EFE8; padding:2px 9px; margin-left:8px; white-space:nowrap; }
.vt-day p { font-size:15px; line-height:1.75; color:var(--vt-body); margin:0 0 12px 0; max-width:72ch; }
.vt-day p:last-child { margin-bottom:0; }
@media (max-width:767px) {
  .vt-day { padding-left:52px; padding-bottom:22px; }
  .vt-day-num { width:36px; height:36px; font-size:14px; }
  .vt-day:after { left:17px; top:38px; }
  .vt-day h3 .vt-km { display:block; margin:6px 0 0 0; }
}
.vt-intro-note { background:var(--vt-surface-2); border:1px solid var(--vt-line); border-left:3px solid #EBC301;
  padding:16px 20px; margin:0 0 28px 0; font-size:15px; line-height:1.7; color:var(--vt-body); }
.vt-intro-note p { margin:0 0 12px 0; }
.vt-intro-note p:last-child { margin:0; }
.vt-program { font-size:16px; line-height:1.8; color:var(--vt-body); }
.vt-program p { margin:0 0 16px 0; }
.vt-program h2, .vt-program h3, .vt-program h4 { font-size:19px; font-weight:700;
  color:var(--vt-heading); margin:28px 0 10px 0; line-height:1.3; }
.vt-program ul, .vt-program ol { margin:0 0 16px 0; padding-left:22px; }
.vt-program font { font-size:inherit !important; }

.vt-facts { margin:0; padding:0; list-style:none; }
.vt-facts li { display:flex; gap:12px; padding:12px 0; border-bottom:1px dotted var(--vt-line);
  font-size:15px; line-height:1.55; color:var(--vt-body); }
.vt-facts li:last-child { border-bottom:none; }
.vt-facts i { flex:0 0 20px; color:var(--vt-teal); font-size:16px; margin-top:3px; }
.vt-facts strong { display:block; color:var(--vt-muted); font-size:12px; font-weight:400; margin-bottom:2px; }
.vt-facts b { color:var(--vt-heading); font-size:17px; }

.vt-enq { border:1px solid var(--vt-line); border-top:3px solid #D13B00; background:var(--vt-surface);
  padding:22px 24px; margin:34px 0; }
.vt-enq h2 { font-size:22px; font-weight:700; color:var(--vt-heading); margin:0 0 6px 0; }
.vt-enq > p { font-size:15px; line-height:1.65; color:var(--vt-body); margin:0 0 18px 0; max-width:62ch; }
.vt-related { margin:36px 0 10px 0; }

.vt-band { background:#256567; color:#fff; padding:26px 30px; margin:34px 0;
  display:flex; flex-wrap:wrap; gap:20px; align-items:center; justify-content:space-between; }
.vt-band h2 { font-size:21px; font-weight:700; color:#fff; margin:0 0 6px 0; line-height:1.3; }
.vt-band p { font-size:15px; line-height:1.6; color:#d9e8e8; margin:0; max-width:60ch; }
.vt-band-act { flex:0 0 auto; display:flex; flex-wrap:wrap; gap:10px; }
.vt-band .vt-btn { background:var(--vt-gold); color:var(--vt-heading); }
.vt-band .vt-btn:hover { background:#d9b400; color:var(--vt-heading); }
@media (max-width:767px) { .vt-band { display:block; padding:20px; }
  .vt-band-act { margin-top:16px; display:block; }
  .vt-band .vt-btn, .vt-band .vt-btn-wa { display:block; width:100%; text-align:center;
    justify-content:center; margin-bottom:9px; } }

/* ===================================================================
   HOME PAGE
   =================================================================== */

/* --- hero slider: full-bleed, own JS, no jQuery ---------------------- */
.vt-hero { position:relative; min-height:clamp(420px, 74vh, 760px); overflow:hidden;
  background:var(--vt-ink); display:flex; align-items:flex-end; }
.vt-hero-slide { position:absolute; inset:0; opacity:0; transition:opacity .9s ease; }
.vt-hero-slide.is-active { opacity:1; }
.vt-hero-slide img { width:100%; height:100%; object-fit:cover; display:block; }
.vt-hero:after { content:''; position:absolute; inset:0; pointer-events:none;
  background:linear-gradient(to bottom, rgba(46,33,25,.50) 0%, rgba(46,33,25,.34) 42%, rgba(46,33,25,.88) 100%); }
.vt-hero-in { position:relative; z-index:3; width:100%; max-width:1500px; margin:0 auto;
  padding:56px 24px 62px 24px; color:#fff; }
.vt-hero-kicker { display:inline-block; font-size:12.5px; letter-spacing:.14em; text-transform:uppercase;
  color:#F6E4BE; background:rgba(46,33,25,.55); border:1px solid rgba(246,228,190,.5);
  padding:7px 15px; margin-bottom:20px; }
@media (max-width:560px) { .vt-hero-kicker { font-size:11px; letter-spacing:.10em; padding:6px 11px; } }
.vt-hero h1 { font-family:'Playfair Display', Georgia, serif; font-weight:700; font-size:clamp(27px, 4.3vw, 59px);
  line-height:1.06; color:#fff; margin:0 0 16px 0; letter-spacing:-.8px; max-width:20ch;
  text-shadow:0 3px 26px rgba(0,0,0,.42); }
.vt-hero h1 em { font-style:normal; color:#EFD9A8; }
.vt-hero-sub { font-size:clamp(16px, 1.5vw, 20px); line-height:1.6; color:#f0e7dc; margin:0 0 26px 0; max-width:56ch; }
.vt-hero-act { display:flex; flex-wrap:wrap; gap:12px; }
.vt-hero-dots { position:absolute; left:0; right:0; bottom:22px; z-index:4; display:flex;
  justify-content:center; gap:9px; }
.vt-hero-dots button { width:9px; height:9px; border-radius:50%; border:0; padding:0; cursor:pointer;
  background:rgba(255,255,255,.42); }
.vt-hero-dots button.is-active { background:var(--vt-gold); width:26px; border-radius:5px; }
@media (max-width:900px) {
  .vt-hero { min-height:clamp(400px, 58vh, 560px); }
  .vt-hero-in { padding:38px 20px 58px 20px; }
  .vt-hero h1 { max-width:none; font-size:clamp(22px, 5.1vw, 32px); letter-spacing:-.4px; }
  .vt-hero-kicker { font-size:11px; letter-spacing:.10em; padding:6px 11px; margin-bottom:15px; }
  .vt-hero-sub { font-size:15.5px; line-height:1.55; margin-bottom:20px; max-width:none; }
  .vt-hero-act { gap:9px; }
  .vt-hero-act .vt-cta-lg, .vt-hero-act .vt-cta-ghost {
    flex:1 1 100%; text-align:center; padding:13px 18px; font-size:14.5px; }
  .vt-hero-dots { bottom:16px; }
  /* keep the floating buttons clear of the dots */
  .vt-hero-dots { padding-right:70px; }
}
@media (max-width:420px) {
  .vt-hero-in { padding:32px 16px 54px 16px; }
  .vt-hero-sub { font-size:15px; }
}
@media (prefers-reduced-motion: reduce) { .vt-hero-slide { transition:none; } }

/* --- trust bar -------------------------------------------------------- */
.vt-trustbar { background:var(--vt-ink); color:#d8ccbe; }
.vt-trustbar .vt-sec-in { display:flex; flex-wrap:wrap; gap:14px 40px; align-items:center;
  justify-content:center; padding-top:18px; padding-bottom:18px; }
.vt-trustbar span { display:inline-flex; align-items:center; gap:10px; font-size:14.5px; }
@media (max-width:900px) {
  .vt-trustbar .vt-sec-in { gap:12px 22px; padding-top:16px; padding-bottom:16px; }
  .vt-trustbar span { font-size:13.5px; gap:8px; }
}
.vt-trustbar i { color:var(--vt-gold); font-size:16px; }

/* --- big feature cards (DB banners) ---------------------------------- */
.vt-feat { display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
@media (max-width:900px) { .vt-feat { grid-template-columns:1fr; } }
.vt-featcard { display:flex; flex-direction:column; background:var(--vt-surface); border:1px solid var(--vt-line);
  min-width:0; overflow:hidden; }
.vt-featcard-media { display:block; position:relative; overflow:hidden; background:#f1ece4; }
.vt-featcard-media img { width:100%; height:260px; object-fit:cover; display:block; }
.vt-featcard-tag { position:absolute; left:0; top:0; background:var(--vt-rust); color:#fff;
  font-size:12px; font-weight:700; letter-spacing:.05em; padding:7px 15px; }
.vt-featcard-body { flex:1 1 auto; padding:24px; }
.vt-featcard h3 { font-family:'Playfair Display', Georgia, serif; font-size:24px; font-weight:600;
  line-height:1.25; margin:0 0 12px 0; }
.vt-featcard h3 a { color:var(--vt-ink); text-decoration:none; }
.vt-featcard h3 a:hover { color:var(--vt-rust); }
.vt-featcard p { font-size:15px; line-height:1.7; color:var(--vt-body); margin:0 0 16px 0; }
.vt-featcard-foot { padding:0 24px 24px 24px; }

/* --- regional showcase ------------------------------------------------ */
.vt-show { display:grid; grid-template-columns:1.15fr .85fr; gap:40px; align-items:center; margin-bottom:56px; }
.vt-show.is-flip { grid-template-columns:.85fr 1.15fr; }
.vt-show.is-flip .vt-show-txt { order:-1; }
@media (max-width:900px) { .vt-show, .vt-show.is-flip { grid-template-columns:1fr; gap:26px; }
  .vt-show.is-flip .vt-show-txt { order:0; } }
.vt-show-grid { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.vt-show-grid a { display:block; overflow:hidden; background:#f1ece4; }
.vt-show-grid img { width:100%; height:170px; object-fit:cover; display:block; }
.vt-show-grid a:first-child:nth-last-child(3) { grid-column:span 2; }
.vt-show-grid a:first-child:nth-last-child(3) img { height:210px; }
.vt-show-txt h3 { font-family:'Playfair Display', Georgia, serif; font-size:30px; font-weight:600;
  line-height:1.2; color:var(--vt-ink); margin:0 0 12px 0; }
.vt-show-txt .vt-route { display:block; font-size:12.5px; letter-spacing:.05em; color:var(--vt-teal);
  margin-bottom:14px; line-height:1.6; }
.vt-show-txt p { font-size:15.5px; line-height:1.75; color:var(--vt-body); margin:0 0 16px 0; }
@media (max-width:767px) { .vt-show-txt h3 { font-size:24px; } }

/* --- theme tiles ------------------------------------------------------ */
.vt-themes { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:1100px) { .vt-themes { grid-template-columns:repeat(3,1fr); } }
@media (max-width:767px)  { .vt-themes { grid-template-columns:repeat(2,1fr); } }
@media (max-width:440px)  { .vt-themes { grid-template-columns:1fr; } }
.vt-theme { position:relative; display:block; overflow:hidden; background:var(--vt-ink); text-decoration:none; }
.vt-theme img { width:100%; height:190px; object-fit:cover; display:block;
  filter:grayscale(100%); opacity:.92; transition:filter .45s ease, opacity .45s ease, transform .55s ease; }
.vt-theme:hover img, .vt-theme:focus-visible img { filter:grayscale(0%); opacity:1; transform:scale(1.04); }
/* touch screens have no hover: show the photos in colour there */
@media (hover:none) { .vt-theme img { filter:grayscale(0%); opacity:1; } }
@media (prefers-reduced-motion: reduce) {
  .vt-theme img { transition:none; }
  .vt-theme:hover img { transform:none; }
}
.vt-theme span { position:absolute; left:0; right:0; bottom:0; padding:34px 15px 14px 15px; color:#fff;
  font-size:15px; font-weight:700; line-height:1.3;
  background:linear-gradient(to top, rgba(46,33,25,.92) 0%, rgba(46,33,25,0) 100%); }
.vt-theme:hover span { color:#EFD9A8; }

/* --- partners --------------------------------------------------------- */
.vt-partners { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
@media (max-width:767px) { .vt-partners { grid-template-columns:1fr; } }
.vt-partner { display:block; background:var(--vt-surface); border:1px solid var(--vt-line); padding:14px;
  text-decoration:none; }
.vt-partner img { width:100%; height:auto; display:block; }
.vt-partner span { display:block; text-align:center; font-size:13.5px; font-weight:700;
  color:var(--vt-ink); padding-top:12px; }
.vt-partner:hover span { color:var(--vt-rust); }

/* ---------- 404 --------------------------------------------------------- */
.vt-404num { font-family:'Playfair Display', Georgia, serif; font-size:86px; line-height:1;
  font-weight:700; color:var(--vt-gold); margin:0 0 6px 0; letter-spacing:-2px; opacity:.9; }
@media (max-width:767px) { .vt-404num { font-size:62px; } }
.vt-404search { display:flex; gap:0; max-width:560px; margin:0 auto; }
.vt-404search input { flex:1 1 auto; min-width:0; margin-bottom:0 !important; border-right:none; }
.vt-404search .vt-btn { flex:0 0 auto; }
@media (max-width:440px) { .vt-404search { display:block; }
  .vt-404search input { border-right:1px solid var(--vt-line); margin-bottom:10px !important; }
  .vt-404search .vt-btn { width:100%; } }

/* ---------- sitemap lists --------------------------------------------- */
.vt-sitelist { display:grid; grid-template-columns:repeat(3,1fr); gap:0 26px;
  margin:0 0 26px 0; padding:0; list-style:none; }
@media (max-width:991px) { .vt-sitelist { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px) { .vt-sitelist { grid-template-columns:1fr; } }
.vt-sitelist li { border-bottom:1px dotted var(--vt-line); }
.vt-sitelist a { display:flex; align-items:baseline; justify-content:space-between; gap:12px;
  padding:10px 2px; font-size:14.5px; line-height:1.4; color:var(--vt-body); text-decoration:none; }
.vt-sitelist a:hover { color:var(--vt-rust); }
.vt-sitelist a span { flex:0 0 auto; font-size:12px; color:var(--vt-muted); }

/* ---------- testimonial cards ----------------------------------------- */
.vt-quotes { display:grid; grid-template-columns:repeat(2,1fr); gap:22px; }
@media (max-width:900px) { .vt-quotes { grid-template-columns:1fr; } }
.vt-quotecard { display:flex; gap:20px; background:var(--vt-surface); border:1px solid var(--vt-line);
  border-top:3px solid var(--vt-gold); padding:24px; min-width:0; align-items:flex-start; }
.vt-quotepic { flex:0 0 120px; width:120px; display:block; background:var(--vt-cream); padding:6px; }
.vt-quotepic img { width:100%; height:auto; display:block; }
.vt-quotebody { flex:1 1 auto; min-width:0; }
.vt-quotecard h3 { font-family:'Playfair Display', Georgia, serif; font-size:20px; font-weight:600;
  line-height:1.25; margin:0 0 10px 0; }
.vt-quotecard h3 a { color:var(--vt-ink); text-decoration:none; }
.vt-quotecard h3 a:hover { color:var(--vt-rust); }
.vt-quotecard blockquote { margin:0 0 12px 0; padding:0 0 0 16px; border-left:2px solid var(--vt-line);
  font-size:14.5px; line-height:1.7; color:var(--vt-body); font-style:italic; }
.vt-quotemeta { font-size:13px; color:var(--vt-muted); margin:0 0 10px 0; }
.vt-quotemeta i { color:var(--vt-teal); margin-right:4px; }
.vt-quotemore { display:inline-flex; align-items:center; gap:7px; font-size:14px; font-weight:700;
  color:var(--vt-rust); text-decoration:none; }
.vt-quotemore:hover { text-decoration:underline; }
@media (max-width:560px) { .vt-quotecard { display:block; }
  .vt-quotepic { width:130px; margin-bottom:16px; } }

/* ---------- tip cards -------------------------------------------------- */
.vt-tips { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:1100px) { .vt-tips { grid-template-columns:repeat(2,1fr); } }
@media (max-width:640px)  { .vt-tips { grid-template-columns:1fr; } }
.vt-tipcard { display:flex; gap:16px; background:var(--vt-surface); border:1px solid var(--vt-line);
  border-left:3px solid var(--vt-teal); padding:20px; min-width:0; }
.vt-tipcard > i { flex:0 0 38px; width:38px; height:38px; display:inline-flex;
  align-items:center; justify-content:center; background:#e6f0ef; color:var(--vt-teal); font-size:16px; }
.vt-tipcard h3 { font-size:16px; font-weight:700; color:var(--vt-ink); margin:0 0 7px 0; line-height:1.3; }
.vt-tipcard p { font-size:14px; line-height:1.65; color:var(--vt-body); margin:0; }

/* ---------- festival cards -------------------------------------------- */
.vt-fest { display:grid; grid-template-columns:repeat(3,1fr); gap:18px; }
@media (max-width:991px) { .vt-fest { grid-template-columns:repeat(2,1fr); } }
@media (max-width:560px) { .vt-fest { grid-template-columns:1fr; } }
.vt-festcard { background:var(--vt-surface); border:1px solid var(--vt-line); border-top:3px solid var(--vt-rust);
  padding:20px; min-width:0; }
.vt-sec.is-cream .vt-festcard { background:var(--vt-surface); }
.vt-festdate { display:inline-block; font-size:12.5px; font-weight:700; letter-spacing:.02em;
  color:var(--vt-teal); background:#e6f0ef; padding:5px 11px; margin-bottom:12px; }
.vt-festcard h3 { font-family:'Playfair Display', Georgia, serif; font-size:22px; font-weight:600;
  color:var(--vt-ink); margin:0 0 8px 0; line-height:1.2; }
.vt-festcard p { font-size:14.5px; line-height:1.6; color:var(--vt-body); margin:0 0 8px 0; }
.vt-festwhere { font-size:13px !important; color:var(--vt-muted) !important; margin:0 !important; }
.vt-festwhere i { color:var(--vt-gold); margin-right:5px; }

/* ---------- partner link cards ---------------------------------------- */
.vt-links { display:grid; grid-template-columns:repeat(2,1fr); gap:26px; }
@media (max-width:900px) { .vt-links { grid-template-columns:1fr; } }
.vt-linkcard { display:flex; gap:22px; background:var(--vt-surface); border:1px solid var(--vt-line);
  border-top:3px solid var(--vt-gold); padding:24px; align-items:flex-start; }
.vt-linkcard-media { flex:0 0 140px; width:140px; background:var(--vt-cream); padding:8px; }
.vt-linkcard-media img { width:100%; height:auto; display:block; }
.vt-linkcard-body { flex:1 1 auto; min-width:0; }
.vt-linkcard h3 { font-family:'Playfair Display', Georgia, serif; font-size:21px; font-weight:600;
  color:var(--vt-ink); margin:0 0 6px 0; line-height:1.25; }
.vt-linkcard .vt-linkurl { display:inline-flex; align-items:center; gap:7px; font-size:13.5px;
  color:var(--vt-teal); text-decoration:none; word-break:break-all; margin-bottom:12px; }
.vt-linkcard .vt-linkurl:hover { color:var(--vt-rust); text-decoration:underline; }
.vt-linkcard p { font-size:14.5px; line-height:1.7; color:var(--vt-body); margin:0 0 12px 0; }
.vt-linkcard p:last-child { margin-bottom:0; }
.vt-linkcard .vt-visit { display:inline-flex; align-items:center; gap:8px; font-size:14px;
  font-weight:700; color:var(--vt-rust); text-decoration:none; }
.vt-linkcard .vt-visit:hover { text-decoration:underline; }
@media (max-width:560px) {
  .vt-linkcard { display:block; }
  .vt-linkcard-media { width:150px; margin-bottom:16px; }
}

/* ---------- category cards -------------------------------------------- */
.vt-catgrid { display:grid; grid-template-columns:repeat(4,1fr); gap:16px; }
@media (max-width:1100px){ .vt-catgrid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:767px) { .vt-catgrid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:440px) { .vt-catgrid { grid-template-columns:1fr; } }
.vt-catcard { display:flex; align-items:flex-start; gap:14px; min-height:96px;
  padding:18px; background:var(--vt-surface); border:1px solid var(--vt-line);
  border-left:3px solid transparent; text-decoration:none; color:var(--vt-ink); }
.vt-catcard i { flex:0 0 34px; width:34px; height:34px; display:inline-flex;
  align-items:center; justify-content:center; background:var(--vt-surface-2);
  color:var(--vt-teal); font-size:15px; }
.vt-catcard span { display:block; min-width:0; font-size:15px; line-height:1.4; font-weight:700; }
.vt-catcard em { display:block; font-style:normal; font-size:12.5px; font-weight:400;
  color:var(--vt-muted); margin-top:4px; }
.vt-catcard:hover { border-left-color:var(--vt-rust); background:var(--vt-cream); color:var(--vt-rust); }
.vt-catcard:hover i { background:var(--vt-rust); color:#fff; }

/* ---------- gallery --------------------------------------------------- */
.vt-albums { display:grid; grid-template-columns:repeat(4,1fr); gap:18px; margin:0 0 34px 0; }
@media (max-width:1199px){ .vt-albums { grid-template-columns:repeat(3,1fr); } }
@media (max-width:767px) { .vt-albums { grid-template-columns:repeat(2,1fr); } }
@media (max-width:440px) { .vt-albums { grid-template-columns:1fr; } }
.vt-album { display:block; text-decoration:none; border:1px solid var(--vt-line); background:var(--vt-surface); min-width:0; }
.vt-album-media { display:block; overflow:hidden; background:#f1f1f1; border-bottom:3px solid #D13B00; }
.vt-album img { width:100%; height:160px; object-fit:cover; display:block; }
.vt-album span { display:block; padding:12px 14px; font-size:15px; font-weight:700;
  color:var(--vt-ink); line-height:1.35; }
.vt-album:hover span { color:var(--vt-rust); }
.vt-album em { display:block; font-style:normal; font-size:12px; color:var(--vt-muted);
  font-weight:400; margin-top:3px; }

.vt-photos { display:grid; grid-template-columns:repeat(4,1fr); gap:14px; margin:0 0 30px 0; }
@media (max-width:1199px){ .vt-photos { grid-template-columns:repeat(3,1fr); } }
@media (max-width:767px) { .vt-photos { grid-template-columns:repeat(2,1fr); } }
@media (max-width:440px) { .vt-photos { grid-template-columns:1fr; } }
.vt-photo { position:relative; display:block; border:1px solid var(--vt-line); background:#f1f1f1;
  overflow:hidden; cursor:zoom-in; min-width:0; margin:0; }
.vt-photo img { width:100%; height:190px; object-fit:cover; display:block; }
.vt-photo figcaption { position:absolute; left:0; right:0; bottom:0;
  background:rgba(60,44,28,.82); color:#fff; font-size:13px; line-height:1.4; padding:9px 11px; }
.vt-photo .vt-zoom { position:absolute; top:8px; right:8px; width:28px; height:28px;
  background:rgba(255,255,255,.85); color:var(--vt-heading); display:flex; align-items:center;
  justify-content:center; font-size:12px; }

.vt-lb { position:fixed; inset:0; background:rgba(20,14,10,.94); z-index:9999;
  display:none; align-items:center; justify-content:center; padding:50px 60px; }
.vt-lb.is-open { display:flex; }
.vt-lb img { max-width:100%; max-height:82vh; display:block; margin:0 auto; }
.vt-lb-cap { position:absolute; left:0; right:0; bottom:14px; text-align:center;
  color:#f1ece6; font-size:15px; line-height:1.5; padding:0 60px; }
.vt-lb-cap b { display:block; font-size:12px; color:#b6aca2; font-weight:400; margin-top:4px; }
.vt-lb button { position:absolute; background:rgba(255,255,255,.12); color:#fff; border:0;
  cursor:pointer; font-size:22px; line-height:1; width:46px; height:46px; }
.vt-lb button:hover { background:#D13B00; }
.vt-lb .vt-lb-close { top:16px; right:16px; }
.vt-lb .vt-lb-prev { left:12px; top:50%; margin-top:-23px; }
.vt-lb .vt-lb-next { right:12px; top:50%; margin-top:-23px; }
@media (max-width:640px) { .vt-lb { padding:60px 12px; }
  .vt-lb-cap { padding:0 12px; font-size:14px; }
  .vt-lb .vt-lb-prev { left:4px; } .vt-lb .vt-lb-next { right:4px; } }

/* ---------- category sidebar include (left.php) ----------------------- */
.vt-card .vt-itnry > span { display:none; }
.vt-card .vt-itnry ul { margin:0; padding:0; list-style:none; }
.vt-card .vt-itnry li { padding:8px 0; border-bottom:1px dotted var(--vt-line); }
.vt-card .vt-itnry li:last-child { border-bottom:none; }
.vt-card .vt-itnry a { color:var(--vt-body); text-decoration:none; font-size:15px;
  line-height:1.45; display:block; }
.vt-card .vt-itnry a:hover { color:var(--vt-rust); }

/* ===================================================================
   FOOTER
   =================================================================== */
.vt-footer { background:var(--vt-foot); color:#b8ac9e; margin-top:0;
  font-size:14.5px; line-height:1.7; border-top:3px solid var(--vt-rust); }
.vt-footer a { color:#cec3b5; text-decoration:none; }
.vt-footer a:hover { color:#EFD9A8; }
.vt-fwrap { max-width:1400px; margin:0 auto; padding:64px 24px 40px 24px; }
.vt-fcols { display:grid; grid-template-columns:2fr 1.3fr 1.3fr; gap:48px; }
@media (max-width:1100px) { .vt-fcols { grid-template-columns:1fr 1fr; gap:38px; } }
@media (max-width:640px)  { .vt-fcols { grid-template-columns:1fr; gap:32px; } }

.vt-fcards { display:grid; grid-template-columns:repeat(3,1fr); gap:22px;
  margin-top:44px; padding-top:38px; border-top:1px solid rgba(255,255,255,.09); }
@media (max-width:900px) { .vt-fcards { grid-template-columns:1fr; gap:18px; } }
.vt-fcard { background:rgba(255,255,255,.04); border:1px solid rgba(255,255,255,.09);
  border-top:2px solid var(--vt-rust); padding:24px 24px 26px 24px; }
.vt-fcard h4 { font-family:'Playfair Display', Georgia, serif; font-size:19px; font-weight:600;
  color:#fff; margin:0 0 14px 0; }
.vt-fcard p { font-size:14px; line-height:1.7; color:#a8998a; margin:0 0 14px 0; }
.vt-fcard p:last-child { margin-bottom:0; }

.vt-fcol h3 { font-family:'Playfair Display', Georgia, serif; font-size:21px; font-weight:600;
  color:#fff; margin:0 0 20px 0; padding:0 0 12px 0; border:0; position:relative; }
.vt-fcol h3:after { content:''; position:absolute; left:0; bottom:0; width:42px; height:2px;
  background:var(--vt-gold); }
.vt-fcol ul { margin:0; padding:0; list-style:none; }
.vt-fcol li { padding:0; }
.vt-fcol li a { display:block; padding:6px 0 6px 14px; position:relative; font-size:14px; }
.vt-fcol li a:before { content:''; position:absolute; left:0; top:14px; width:5px; height:1px;
  background:#6e6156; }
.vt-fcol li a:hover:before { background:var(--vt-gold); width:9px; }
.vt-fcol.is-two ul { column-count:2; column-gap:26px; }
@media (max-width:640px) { .vt-fcol.is-two ul { column-count:1; } }
.vt-fcol p { margin:0 0 16px 0; color:#a8998a; }

.vt-fcontact { margin:0; padding:0; list-style:none; }
.vt-fcontact li { display:flex; gap:12px; padding:8px 0; align-items:flex-start; font-size:14px; }
.vt-fcontact li a { padding:0; }
.vt-fcontact li a:before { display:none; }
.vt-fcontact i { flex:0 0 16px; color:var(--vt-gold); margin-top:5px; font-size:14px; }

.vt-fsocial { display:flex; gap:10px; margin:20px 0 0 0; }
.vt-fsocial a { width:40px; height:40px; border-radius:50%; display:inline-flex;
  align-items:center; justify-content:center; background:rgba(255,255,255,.07);
  color:#e0d5c6; font-size:16px; border:1px solid rgba(255,255,255,.1); }
.vt-fsocial a:hover { background:var(--vt-rust); border-color:var(--vt-rust); color:#fff; }

.vt-fnews { margin-top:22px; }
.vt-fnews p { font-size:13.5px; margin:0 0 10px 0; }
.vt-fnews a { display:inline-block; border:1px solid rgba(255,255,255,.32); color:#fff;
  font-size:13.5px; font-weight:700; padding:11px 22px; }
.vt-fnews a:hover { background:var(--vt-surface); color:var(--vt-ink); border-color:#fff; }

.vt-fbadge { margin-top:24px; background:var(--vt-surface); padding:9px; display:inline-block; }
.vt-fbadge img { display:block; max-width:88px; }

.vt-fpop { border-top:1px solid rgba(255,255,255,.09); }
.vt-fpop .vt-fwrap { padding-top:40px; padding-bottom:8px; }
.vt-fpop h4 { font-family:'Playfair Display', Georgia, serif; font-size:21px; font-weight:600;
  color:#fff; margin:0 0 20px 0; }
.vt-fgrid { display:grid; grid-template-columns:repeat(6,1fr); gap:14px; }
@media (max-width:1300px) { .vt-fgrid { grid-template-columns:repeat(4,1fr); } }
@media (max-width:900px)  { .vt-fgrid { grid-template-columns:repeat(3,1fr); } }
@media (max-width:640px)  { .vt-fgrid { grid-template-columns:repeat(2,1fr); } }
@media (max-width:400px)  { .vt-fgrid { grid-template-columns:1fr; } }
.vt-fgrid a { display:flex; flex-direction:column; gap:11px; min-height:104px;
  padding:18px 16px; background:#e6dbc9; border:1px solid var(--vt-line);
  border-top:2px solid transparent; color:var(--vt-ink); }
.vt-fgrid a i { font-size:20px; color:var(--vt-teal); }
.vt-fgrid a span { font-size:14px; line-height:1.4; font-weight:700; }
.vt-fgrid a:hover { background:var(--vt-surface-2); border-color:var(--vt-line);
  border-top-color:var(--vt-rust); color:var(--vt-rust); }
.vt-fgrid a:hover i { color:var(--vt-rust); }

.vt-fbar { border-top:1px solid rgba(255,255,255,.09); }
.vt-fbar .vt-fwrap { padding-top:20px; padding-bottom:20px; display:flex; flex-wrap:wrap;
  gap:10px 22px; align-items:center; justify-content:space-between; font-size:13px; color:#8d8073; }
.vt-fbar nav { display:flex; flex-wrap:wrap; gap:8px 20px; }
.vt-fbar nav a { font-size:13px; }

/* floating buttons + back to top */
.vt-fab { position:fixed; right:18px; bottom:18px; z-index:900;
  display:flex; flex-direction:column; align-items:center; gap:10px; }
.vt-fab-items { display:flex; flex-direction:column; gap:10px; }
.vt-fab-items a { width:46px; height:46px; border-radius:50%; display:none;
  align-items:center; justify-content:center; color:#fff; font-size:18px;
  box-shadow:0 5px 16px rgba(46,33,25,.3); }
.vt-fab.is-open .vt-fab-items a { display:flex; }
.vt-fab-wa { background:#25D366; } .vt-fab-mail { background:var(--vt-teal); }
.vt-fab-tel { background:var(--vt-ink); }
.vt-fab-items a:hover { opacity:.88; color:#fff; }
.vt-fab-toggle { width:54px; height:54px; border-radius:50%; border:0; cursor:pointer;
  background:var(--vt-rust); color:#fff; font-size:21px; display:flex;
  align-items:center; justify-content:center; box-shadow:0 7px 20px rgba(46,33,25,.34); }
.vt-fab-toggle:hover { background:var(--vt-rust-d); }
.vt-totop { width:46px; height:46px; border-radius:50%; border:1px solid var(--vt-line);
  background:var(--vt-surface); color:var(--vt-ink); font-size:16px; cursor:pointer;
  display:none; align-items:center; justify-content:center; box-shadow:0 5px 16px rgba(46,33,25,.18); }
.vt-totop.is-visible { display:flex; }
.vt-totop:hover { background:var(--vt-ink); color:#fff; border-color:var(--vt-ink); }
@media (max-width:520px) {
  .vt-fab { right:12px; bottom:12px; gap:8px; }
  .vt-fab-toggle { width:48px; height:48px; font-size:19px; }
  .vt-fab-items a, .vt-totop { width:42px; height:42px; font-size:16px; }
}

@media (prefers-reduced-motion: reduce) { .vt-drawer { transition:none; } }
/* =========================== END vt-main.css ======================== */

/* ===================================================================
   DESIGN LAYER  -  bands, hero, editorial type
   Appended last so these rules win. Applies to any page using the
   band markup; older vt- pages are untouched.
   =================================================================== */

:root {
  --vt-rust:   #D13B00;
  --vt-rust-d: #b02f00;
  --vt-ink:    #2E2119;
  --vt-body:   #4a3f36;
  --vt-muted:  #857a6e;
  --vt-cream:  #F6F1E8;
  --vt-paper:  #FFFDFA;
  --vt-gold:   #C9A227;
  --vt-teal:   #256567;
  --vt-line:   #e6ddd0;
  --vt-foot:   #241a14;

  /* semantic surfaces: a theme file overrides these, not the raw hex */
  --vt-surface:   #ffffff;   /* cards, boxes, table rows */
  --vt-surface-2: #FAF8F4;   /* subtle tint inside surfaces */
  --vt-heading:   #5a200c;   /* small headings inside cards */
  --vt-onrust:    #ffffff;   /* text on a rust or dark fill: stays white */
}

.vt-display { font-family:'Playfair Display', Georgia, 'Times New Roman', serif; }

/* ---------- full-bleed bands ----------------------------------------
   Bands sit OUTSIDE .container so they can run edge to edge. The inner
   wrapper holds the readable width. ---------------------------------- */
.vt-sec { padding:88px 0; }
.vt-sec-in { max-width:1180px; margin:0 auto; padding:0 24px; }
.vt-sec-in.is-wide { max-width:1500px; }
.vt-sec.is-cream { background:var(--vt-cream); }
.vt-sec.is-paper { background:var(--vt-paper); }
.vt-sec.is-dark  { background:var(--vt-ink); color:#e6ddd2; }
.vt-sec.is-tight { padding:56px 0; }
.vt-sec.is-dark h2, .vt-sec.is-dark h3 { color:#fff; }
.vt-sec.is-dark p, .vt-sec.is-dark li, .vt-sec.is-dark .vt-rich { color:#d8ccbe; }
.vt-sec.is-dark .vt-quote { color:#f5efe6; }
.vt-sec.is-dark .vt-quote cite { color:#a89a8b; }
.vt-sec.is-dark .vt-rich strong { color:#fff; }
.vt-sec.is-dark a { color:#EFD9A8; }
@media (max-width:991px) { .vt-sec { padding:60px 0; } .vt-sec.is-tight { padding:42px 0; } }
@media (max-width:560px) { .vt-sec { padding:46px 0; } .vt-sec-in { padding:0 18px; } }

/* section heading: centred, hairline rule, no yellow slab */
.vt-sec-title { text-align:center; margin:0 0 14px 0; }
.vt-sec-title h2 { font-family:'Playfair Display', Georgia, serif; font-weight:600;
  font-size:40px; line-height:1.18; color:var(--vt-ink); margin:0; letter-spacing:-.2px; }
.vt-sec.is-dark .vt-sec-title h2 { color:#fff; }
.vt-sec-title .vt-rule { display:block; width:56px; height:2px; background:var(--vt-gold);
  margin:16px auto 0 auto; }
.vt-sec-lead { text-align:center; font-size:17px; line-height:1.7; color:var(--vt-muted);
  max-width:64ch; margin:0 auto 40px auto; }
.vt-sec.is-dark .vt-sec-lead { color:#c6b8a8; }
@media (max-width:767px) { .vt-sec-title h2 { font-size:29px; } .vt-sec-lead { font-size:16px; } }

/* ---------- hero ------------------------------------------------------
   Real <img> rather than a CSS background so it can be preloaded and
   carry alt text; the scrim keeps the H1 above 4.5:1 contrast. ------- */
.vt-page-hero { position:relative; min-height:552px; display:flex; align-items:flex-end;
  overflow:hidden; background:var(--vt-ink); }
.vt-page-hero > img { position:absolute; inset:0; width:100%; height:100%;
  object-fit:cover; display:block; }
.vt-page-hero:after { content:''; position:absolute; inset:0;
  background:linear-gradient(to bottom, rgba(46,33,25,.15) 0%, rgba(46,33,25,.62) 55%, rgba(46,33,25,.88) 100%); }
.vt-page-hero-in { position:relative; z-index:2; width:100%; max-width:1180px; margin:0 auto;
  padding:0 24px 58px 24px; color:#fff; }
.vt-page-hero h1 { font-family:'Playfair Display', Georgia, serif; font-weight:600;
  font-size:53px; line-height:1.1; color:#fff; margin:0 0 14px 0; letter-spacing:-.5px;
  max-width:20ch; text-shadow:0 2px 18px rgba(0,0,0,.35); }
.vt-page-hero p { font-size:18px; line-height:1.65; color:#f0e7dc; margin:0; max-width:60ch; }
.vt-hero-crumb { position:relative; z-index:2; font-size:13px; color:#e2d6c8; margin-bottom:16px; }
.vt-hero-crumb a { color:#f0e7dc; text-decoration:none; }
.vt-hero-crumb a:hover { color:#fff; text-decoration:underline; }
.vt-hero-crumb span { padding:0 7px; opacity:.55; }
@media (max-width:991px) { .vt-page-hero { min-height:456px; }
  .vt-page-hero h1 { font-size:38px; } .vt-page-hero p { font-size:16px; } }
@media (max-width:560px) { .vt-page-hero { min-height:384px; }
  .vt-page-hero h1 { font-size:29px; max-width:none; }
  .vt-page-hero-in { padding-bottom:38px; } }

/* plain hero: for pages that already show a photo below the fold.
   Swap the two gradient stops to change the mood:
     warm espresso (default)  #43301F -> #241A14
     deep forest              #24413A -> #16241F
     midnight plum            #3A2436 -> #201420   */
.vt-page-hero.is-plain { min-height:0; display:block;
  background:linear-gradient(135deg, #43301F 0%, #2E2119 58%, #241A14 100%);
  border-bottom:3px solid var(--vt-gold); position:relative; overflow:hidden; }
.vt-page-hero.is-plain:after { display:none; }
.vt-page-hero.is-plain:before { content:''; position:absolute; right:-90px; top:-70px;
  width:420px; height:420px; border-radius:50%;
  background:radial-gradient(circle, rgba(209,59,0,.20) 0%, rgba(209,59,0,0) 68%); }
@media (max-width:767px) { .vt-page-hero.is-plain:before { width:260px; height:260px; right:-70px; } }
.vt-page-hero.is-plain .vt-page-hero-in { padding-top:34px; padding-bottom:38px; }
.vt-page-hero.is-plain h1 { font-size:42px; max-width:26ch; text-shadow:none; }
.vt-page-hero.is-plain p { color:#cdc0b1; }
@media (max-width:991px) { .vt-page-hero.is-plain h1 { font-size:32px; } }
@media (max-width:560px) { .vt-page-hero.is-plain h1 { font-size:26px; max-width:none; }
  .vt-page-hero.is-plain .vt-page-hero-in { padding-top:24px; padding-bottom:28px; } }

/* hero meta chips */
.vt-hero-meta { display:flex; flex-wrap:wrap; gap:10px; margin:22px 0 0 0; padding:0; list-style:none; }
.vt-hero-meta li { display:inline-flex; align-items:center; gap:9px; font-size:14px;
  color:#ecdfd0; background:rgba(255,255,255,.07); border:1px solid rgba(255,255,255,.15);
  padding:9px 16px; line-height:1.3; }
.vt-hero-meta i { color:var(--vt-gold); font-size:15px; }
.vt-hero-meta li b { font-weight:700; color:#fff; }
@media (max-width:560px) { .vt-hero-meta li { font-size:13px; padding:8px 13px; width:100%; } }

/* ---------- editorial prose ------------------------------------------ */
.vt-rich { font-size:17px; line-height:1.8; color:var(--vt-body); max-width:68ch; }
.vt-rich > p { margin:0 0 20px 0; }
.vt-rich h3 { font-family:'Playfair Display', Georgia, serif; font-weight:600; font-size:27px;
  line-height:1.25; color:var(--vt-ink); margin:38px 0 12px 0; }
.vt-rich ul { margin:0 0 20px 0; padding-left:0; list-style:none; }
.vt-rich ul li { position:relative; padding-left:26px; margin-bottom:10px; }
.vt-rich ul li:before { content:''; position:absolute; left:2px; top:11px; width:7px; height:7px;
  background:var(--vt-gold); }
.vt-rich strong { color:var(--vt-ink); }
.vt-rich.is-wide { max-width:none; }
@media (max-width:767px) { .vt-rich { font-size:16px; } .vt-rich h3 { font-size:22px; } }

.vt-quote { font-family:'Playfair Display', Georgia, serif; font-size:25px; line-height:1.5;
  color:var(--vt-ink); font-style:italic; text-align:center; max-width:52ch;
  margin:0 auto; padding:0; }
.vt-quote cite { display:block; font-family:'Roboto', Arial, sans-serif; font-style:normal;
  font-size:13px; letter-spacing:.06em; color:var(--vt-muted); margin-top:18px; }
@media (max-width:767px) { .vt-quote { font-size:20px; } }

/* ---------- figure numbers ------------------------------------------- */
.vt-figures { display:grid; grid-template-columns:repeat(4,1fr); gap:0; margin:0; padding:0; list-style:none; }
.vt-figures li { text-align:center; padding:6px 18px; border-left:1px solid var(--vt-line); }
.vt-figures li:first-child { border-left:0; }
.vt-figures b { display:block; font-family:'Playfair Display', Georgia, serif; font-weight:600;
  font-size:44px; line-height:1; color:var(--vt-rust); margin-bottom:8px; }
.vt-figures span { display:block; font-size:14px; line-height:1.5; color:var(--vt-muted); }
.vt-sec.is-dark .vt-figures li { border-color:rgba(255,255,255,.14); }
.vt-sec.is-dark .vt-figures b { color:#EFD9A8; }
.vt-sec.is-dark .vt-figures span { color:#c6b8a8; }
@media (max-width:767px) { .vt-figures { grid-template-columns:1fr 1fr; gap:26px 0; }
  .vt-figures li:nth-child(odd) { border-left:0; }
  .vt-figures b { font-size:34px; } }

/* ---------- two column split ----------------------------------------- */
.vt-split { display:grid; grid-template-columns:1fr 1fr; gap:56px; align-items:start; }
.vt-split.is-middle { align-items:center; }
.vt-split.is-narrow-right { grid-template-columns:1.25fr .75fr; }
.vt-split img { width:100%; display:block; }
@media (max-width:991px) { .vt-split, .vt-split.is-narrow-right { grid-template-columns:1fr; gap:32px; } }

/* ---------- credential strip ----------------------------------------- */
.vt-creds { display:flex; flex-wrap:wrap; align-items:center; justify-content:center;
  gap:26px 54px; margin:0; padding:0; list-style:none; }
.vt-creds li { text-align:center; }
.vt-creds img { max-height:64px; width:auto; display:block; }
.vt-creds span { display:block; font-size:12px; letter-spacing:.05em; color:var(--vt-muted); margin-top:9px; }
.vt-sec.is-dark .vt-creds span { color:#a2968a; }

/* ---------- buttons in the new layer --------------------------------- */
.vt-cta-lg { display:inline-block; background:var(--vt-rust); color:#fff; font-weight:700;
  font-size:15px; letter-spacing:.02em; padding:15px 34px; text-decoration:none; border:0; }
.vt-cta-lg:hover { background:var(--vt-rust-d); color:#fff; }
.vt-cta-ghost { display:inline-block; background:none; color:var(--vt-ink); font-weight:700;
  font-size:15px; padding:13px 32px; text-decoration:none; border:1px solid var(--vt-ink); }
.vt-cta-ghost:hover { background:var(--vt-ink); color:#fff; }
.vt-sec.is-dark .vt-cta-ghost { color:#fff; border-color:rgba(255,255,255,.5); }
.vt-sec.is-dark .vt-cta-ghost:hover { background:var(--vt-surface); color:var(--vt-ink); }
.vt-actions { display:flex; flex-wrap:wrap; gap:12px; }
.vt-actions.is-center { justify-content:center; }

/* ===================================================================
   BLOG MODULE
   Ported from the old common-w.css block so blog pages can run on
   vt-main.css alone. Colours retuned to the new palette.
   =================================================================== */
.blog-crumb, .blog-pager, .blog-adjacent { width:auto; height:auto; background:none; }
.blog-post { display:block; }
/* --- lead post (first article) ------------------------------------- */
.blog-lead { display: block; margin: 0 0 34px 0; padding: 0 0 30px 0; border-bottom: 1px solid var(--vt-line); }
.blog-lead-media { display: block; overflow: hidden; background: #f1f1f1; border-bottom: 4px solid var(--vt-rust); margin-bottom: 16px; }
.blog-lead-media img { width: 100%; height: 320px; object-fit: cover; display: block; }
.blog-lead h2 { font-family: 'Roboto', Arial, sans-serif; font-size: 29px; line-height: 1.22; font-weight: 700; margin: 10px 0 8px 0; letter-spacing: -.2px; }
.blog-lead h2 a { color: var(--vt-ink); text-decoration: none; }
.blog-lead h2 a:hover { color: var(--vt-rust); }
.blog-lead .blog-excerpt { font-size: 16px; max-width: 66ch; }

/* --- post card (remaining articles) -------------------------------- */
.blog-card { display: flex; gap: 24px; padding: 0 0 26px 0; margin-bottom: 26px; border-bottom: 1px solid var(--vt-line); align-items: flex-start; }
.blog-card:last-of-type { border-bottom: none; margin-bottom: 8px; }
.blog-card-media { flex: 0 0 34%; max-width: 34%; display: block; overflow: hidden; background: #f1f1f1; border-bottom: 3px solid var(--vt-rust); }
.blog-card-media img { width: 100%; height: 170px; object-fit: cover; display: block; }
.blog-card-body { flex: 1 1 auto; min-width: 0; }
.blog-card-body h2 { font-family: 'Roboto', Arial, sans-serif; font-size: 21px; line-height: 1.3; font-weight: 700; margin: 9px 0 6px 0; }
.blog-card-body h2 a { color: var(--vt-ink); text-decoration: none; }
.blog-card-body h2 a:hover { color: var(--vt-rust); }
.blog-excerpt { font-size: 15px; line-height: 1.7; color:var(--vt-body); margin: 0 0 13px 0; max-width: 62ch; }

.blog-tag { display: inline-block; font-size: 12px; line-height: 1.4; color: #fff; background: var(--vt-teal); padding: 4px 11px; text-decoration: none; }
.blog-tag:hover { background: #1c4d4f; color: #fff; }
.blog-meta { font-size: 13px; color: var(--vt-muted); margin: 0 0 11px 0; }
.blog-more { display: inline-block; font-size: 14px; font-weight: 700; color: var(--vt-rust); text-decoration: none; border-bottom: 1px solid var(--vt-rust); padding-bottom: 1px; }
.blog-more:hover { color: var(--vt-rust-d); border-color: var(--vt-rust-d); }

.blog-empty { padding: 44px 20px; text-align: center; background: var(--vt-cream); border: 1px solid var(--vt-line); margin-bottom: 30px; }
.blog-empty p { color:var(--vt-body); margin: 0 0 18px 0; }

/* --- internal link block (SEO + navigation) ------------------------ */
.blog-hub { background: var(--vt-cream); border: 1px solid var(--vt-line); border-top: 3px solid var(--vt-teal); padding: 22px 24px; margin: 34px 0 10px 0; }
.blog-hub h2 { font-size: 19px; font-weight: 700; color: var(--vt-brownd, #5a200c); margin: 0 0 8px 0; }
.blog-hub p { font-size: 14px; line-height: 1.65; color:var(--vt-body); margin: 0 0 14px 0; max-width: 70ch; }
.blog-hub ul { margin: 0; padding: 0; list-style: none; display: flex; flex-wrap: wrap; gap: 8px 10px; }
.blog-hub li { margin: 0; }
.blog-hub a { display: inline-block; font-size: 14px; color: var(--vt-brownd, #5a200c); background:var(--vt-surface); border:1px solid var(--vt-line); padding: 7px 13px; text-decoration: none; }
.blog-hub a:hover { background: var(--vt-gold); border-color: var(--vt-gold); color: var(--vt-brownd, #5a200c); }

/* --- pagination ---------------------------------------------------- */
.blog-pager { display: flex; flex-wrap: wrap; gap: 6px; align-items: center; padding: 14px 0 30px 0; }
.blog-pager a, .blog-pager span { display: inline-block; min-width: 40px; text-align: center; padding: 9px 13px; font-size: 14px; text-decoration: none; border:1px solid var(--vt-line); color: var(--vt-brownd, #5a200c); background:var(--vt-surface); font-weight: 400; }
.blog-pager a:hover { background: var(--vt-gold); border-color: var(--vt-gold); color: var(--vt-brownd, #5a200c); }
.blog-pager .is-current { background: var(--vt-rust); border-color: var(--vt-rust); color: #fff; font-weight: 700; }
.blog-pager .blog-gap { border: none; background: none; min-width: 20px; padding: 9px 2px; color: #c3b6a6; }

/* --- single post --------------------------------------------------- */
.blog-post-head { border-bottom: 1px solid var(--vt-line); padding-bottom: 20px; margin-bottom: 24px; }
.blog-post-head h1 { font-family: 'Roboto', Arial, sans-serif; font-size: 34px; line-height: 1.18; font-weight: 700; color: var(--vt-ink); margin: 13px 0 9px 0; letter-spacing: -.3px; max-width: 22ch; }
.blog-hero { margin: 0 0 24px 0; border-bottom: 4px solid var(--vt-rust); }
.blog-hero img { width: 100%; height: auto; display: block; }
.blog-standfirst { font-size: 19px; line-height: 1.6; color: var(--vt-brownd, #5a200c); font-weight: 500; border-left: 4px solid var(--vt-gold); padding-left: 18px; margin: 0 0 26px 0; max-width: 60ch; }

.blog-body { font-size: 17px; line-height: 1.78; color: var(--vt-body); max-width: 68ch; }
.blog-body p { margin: 0 0 20px 0; }
.blog-body h2 { font-size: 25px; font-weight: 700; color: var(--vt-brownd, #5a200c); margin: 36px 0 13px 0; line-height: 1.25; }
.blog-body h3 { font-size: 20px; font-weight: 700; color: var(--vt-teal); margin: 30px 0 11px 0; line-height: 1.3; }
.blog-body h4 { font-size: 17px; font-weight: 700; color: var(--vt-ink); margin: 24px 0 8px 0; }
.blog-body ul, .blog-body ol { margin: 0 0 20px 0; padding-left: 22px; }
.blog-body li { margin-bottom: 9px; }
.blog-body a { color: var(--vt-rust); }
.blog-body img { max-width: 100%; height: auto; margin: 12px 0; }
.blog-body blockquote { margin: 26px 0; padding: 16px 22px; background: var(--vt-cream); border-left: 4px solid var(--vt-teal); font-style: italic; color: var(--vt-brownd, #5a200c); }
.blog-body table { width: 100%; border-collapse: collapse; margin: 20px 0; }
.blog-body table th, .blog-body table td { border: 1px solid var(--vt-line); padding: 10px 13px; text-align: left; font-size: 15px; }
.blog-body table th { background:var(--vt-surface-2); color: var(--vt-brownd, #5a200c); font-weight: 700; }

.blog-tags { margin: 30px 0 18px 0; }
.blog-tags a { display: inline-block; font-size: 13px; color: var(--vt-brownd, #5a200c); background:var(--vt-surface-2); border: 1px solid var(--vt-line); padding: 5px 12px; margin: 0 6px 7px 0; text-decoration: none; }
.blog-tags a:hover { background: var(--vt-gold); border-color: var(--vt-gold); }

.blog-share { display: flex; align-items: center; gap: 10px; padding: 18px 0; border-top: 1px solid var(--vt-line); }
.blog-share span { font-size: 14px; color: var(--vt-muted); }
.blog-share a { width: 38px; height: 38px; display: inline-flex; align-items: center; justify-content: center; background: var(--vt-teal); color: #fff; text-decoration: none; font-size: 16px; }
.blog-share a:hover { background: var(--vt-rust); color: #fff; }

/* --- prev / next --------------------------------------------------- */
.blog-adjacent { display: flex; gap: 16px; margin: 12px 0 38px 0; }
.blog-adjacent a { flex: 1 1 50%; padding: 15px 17px; background: var(--vt-cream); border: 1px solid var(--vt-line); text-decoration: none; }
.blog-adjacent a:hover { border-color: var(--vt-rust); background:var(--vt-surface); }
.blog-adjacent em { display: block; font-style: normal; font-size: 12px; color: var(--vt-muted); margin-bottom: 5px; }
.blog-adjacent strong { display: block; font-size: 15px; line-height: 1.4; color: var(--vt-brownd, #5a200c); font-weight: 500; }
.blog-adjacent .is-next { text-align: right; }

/* --- WhatsApp CTA --------------------------------------------------
   Sits where the comment section used to be. WhatsApp green is used
   only on the button itself so it reads as an affordance, not decor. */
.blog-wa { display: flex; gap: 26px; align-items: center; justify-content: space-between;
  background: var(--vt-cream); border: 1px solid var(--vt-line); border-left: 4px solid #25D366;
  padding: 24px 26px; margin: 6px 0 40px 0; }
.blog-wa-txt { flex: 1 1 auto; min-width: 0; }
.blog-wa h2 { font-size: 21px; font-weight: 700; color: var(--vt-brownd, #5a200c); margin: 0 0 8px 0; line-height: 1.3; border: none; padding: 0; }
.blog-wa p { font-size: 15px; line-height: 1.65; color:var(--vt-body); margin: 0; max-width: 56ch; }
.blog-wa-act { flex: 0 0 auto; text-align: center; }

.blog-wa-btn { display: inline-flex; align-items: center; justify-content: center; gap: 9px;
  background: #25D366; color: #fff; font-family: 'Roboto', Arial, sans-serif;
  font-size: 15px; font-weight: 700; padding: 13px 24px; text-decoration: none;
  border: none; white-space: nowrap; }
.blog-wa-btn:hover { background: #1da851; color: #fff; }
.blog-wa-btn:focus-visible { outline: 3px solid var(--vt-teal); outline-offset: 2px; }
.blog-wa-btn i { font-size: 19px; }
.blog-wa-alt { display: block; font-size: 13px; color: var(--vt-muted); margin-top: 9px; }
.blog-wa-alt a { color: var(--vt-rust); text-decoration: none; }
.blog-wa-alt a:hover { text-decoration: underline; }

/* full-width variants inside the sidebar box */
.blog-wa-btn.is-block, .blog-btn.is-block { display: flex; width: 100%; box-sizing: border-box; margin-bottom: 9px; }
.blog-btn.is-block { justify-content: center; }

/* --- comments (kept for when $show_comments is switched back on) --- */
.blog-comments { padding-top: 10px; margin-bottom: 42px; }
.blog-comments h2 { font-size: 22px; font-weight: 700; color: var(--vt-brownd, #5a200c); margin: 0 0 18px 0; padding-bottom: 11px; border-bottom: 3px solid var(--vt-gold); }
.blog-comments h3 { font-size: 18px; font-weight: 700; color: var(--vt-ink); margin: 30px 0 15px 0; }
.blog-comment { padding: 15px 17px; background: var(--vt-cream); border-left: 3px solid var(--vt-teal); margin-bottom: 12px; }
.blog-comment strong { color: var(--vt-brownd, #5a200c); font-size: 15px; }
.blog-comment em { font-style: normal; font-size: 12px; color: var(--vt-muted); margin-left: 9px; }
.blog-comment p { margin: 7px 0 0 0; font-size: 15px; line-height: 1.65; color: var(--vt-body); }

.blog-note { padding: 12px 16px; margin-bottom: 16px; font-size: 15px; }
.blog-note.is-ok { background: #eaf3e4; border-left: 4px solid #6ab005; color: #33591b; }
.blog-note.is-error { background: #fbeae5; border-left: 4px solid var(--vt-rust); color: #8a2b06; }

.blog-form label { display: block; font-size: 13px; color: var(--vt-muted); margin: 0 0 5px 0; }
.blog-form input[type=text], .blog-form input[type=email], .blog-form textarea {
  width: 100%; padding: 11px 13px; border:1px solid var(--vt-line); background:var(--vt-surface);
  font-family: 'Roboto', Arial, sans-serif; font-size: 15px; color: var(--vt-ink);
  box-sizing: border-box; margin-bottom: 14px; border-radius: 0;
}
.blog-form input:focus, .blog-form textarea:focus { outline: 2px solid var(--vt-teal); outline-offset: 1px; border-color: var(--vt-teal); }

.blog-btn { display: inline-block; background: var(--vt-rust); color: #fff; font-family: 'Roboto', Arial, sans-serif;
  font-size: 15px; font-weight: 700; padding: 12px 26px; border: none; cursor: pointer; text-decoration: none; }
.blog-btn:hover { background: var(--vt-rust-d); color: #fff; }
.blog-btn:focus-visible { outline: 3px solid var(--vt-teal); outline-offset: 2px; }

/* --- related ------------------------------------------------------- */
.blog-related { margin-bottom: 42px; }
.blog-related h2 { font-size: 22px; font-weight: 700; color: var(--vt-brownd, #5a200c); margin: 0 0 20px 0; padding-bottom: 11px; border-bottom: 3px solid var(--vt-gold); }
.blog-rel-card { display: block; text-decoration: none; margin-bottom: 20px; }
.blog-rel-card img { width: 100%; height: 145px; object-fit: cover; display: block; border-bottom: 3px solid var(--vt-rust); }
.blog-rel-card strong { display: block; font-size: 15px; line-height: 1.4; color: var(--vt-ink); font-weight: 500; margin: 10px 0 3px 0; }
.blog-rel-card:hover strong { color: var(--vt-rust); }
.blog-rel-card em { font-style: normal; font-size: 12px; color: var(--vt-muted); }

/* --- sidebar ------------------------------------------------------- */
.blog-side { border: 1px solid var(--vt-line); padding: 18px; margin-bottom: 22px; background:var(--vt-surface); }
.blog-side h3 { font-size: 16px; font-weight: 700; color: var(--vt-brownd, #5a200c); margin: 0 0 15px 0; padding-bottom: 10px; border-bottom: 2px solid var(--vt-gold); }

.blog-search { display: flex; }
.blog-search input { flex: 1 1 auto; min-width: 0; padding: 10px 12px; border:1px solid var(--vt-line); border-right: none;
  font-family: 'Roboto', Arial, sans-serif; font-size: 14px; box-sizing: border-box; border-radius: 0; }
.blog-search input:focus { outline: 2px solid var(--vt-teal); outline-offset: -2px; }
.blog-search button { flex: 0 0 auto; background: var(--vt-rust); color: #fff; border: none; padding: 0 18px;
  font-family: 'Roboto', Arial, sans-serif; font-size: 14px; font-weight: 700; cursor: pointer; }
.blog-search button:hover { background: var(--vt-rust-d); }

.blog-catlist { margin: 0; padding: 0; list-style: none; }
.blog-catlist li { display: flex; justify-content: space-between; align-items: center; gap: 10px;
  padding: 9px 0; border-bottom: 1px dotted var(--vt-line); }
.blog-catlist li:last-child { border-bottom: none; padding-bottom: 0; }
.blog-catlist a { color: var(--vt-body); text-decoration: none; font-size: 15px; }
.blog-catlist a:hover { color: var(--vt-rust); }
.blog-catlist span { font-size: 12px; color: var(--vt-muted); background:var(--vt-surface-2); padding: 2px 9px; flex: 0 0 auto; }

.blog-recent { margin: 0; padding: 0; list-style: none; }
.blog-recent li { border-bottom: 1px dotted var(--vt-line); padding-bottom: 13px; margin-bottom: 13px; }
.blog-recent li:last-child { border-bottom: none; margin-bottom: 0; padding-bottom: 0; }
.blog-recent a { display: flex; gap: 12px; text-decoration: none; align-items: flex-start; }
.blog-recent img { flex: 0 0 72px; width: 72px; height: 58px; object-fit: cover; display: block; }
.blog-recent strong { display: block; font-size: 14px; line-height: 1.42; color: var(--vt-ink); font-weight: 500; }
.blog-recent a:hover strong { color: var(--vt-rust); }
.blog-recent em { display: block; font-style: normal; font-size: 12px; color: var(--vt-muted); margin-top: 3px; }

.blog-cta { background:var(--vt-surface-2); border-color: #d9cdb8; border-top: 3px solid var(--vt-rust); }
.blog-cta p { font-size: 14px; line-height: 1.65; color:var(--vt-body); margin: 0 0 15px 0; }
.blog-cta-tel { margin-top: 13px !important; margin-bottom: 0 !important; font-size: 13px; }
.blog-cta-tel a { color: var(--vt-rust); font-weight: 700; text-decoration: none; }

/* keep the floating support buttons off the sidebar controls */
.inner-fabs { z-index: 60; }

/* --- responsive ---------------------------------------------------- */
@media (max-width: 1199px) {
  .blog-lead-media img { height: 270px; }
}

@media (max-width: 991px) {
  .blog-masthead h1 { font-size: 29px; }
  .blog-post-head h1 { font-size: 27px; max-width: none; }
  .blog-layout aside { margin-top: 34px; }
  .blog-lead-media img { height: 300px; }
}

@media (max-width: 767px) {
  .blog-card { display: block; }
  .blog-card-media { max-width: 100%; margin-bottom: 13px; }
  .blog-card-media img { height: 195px; }
  .blog-lead-media img { height: 210px; }
  .blog-lead h2 { font-size: 24px; }
  .blog-adjacent { display: block; }
  .blog-adjacent a { display: block; margin-bottom: 10px; }
  .blog-adjacent .is-next { text-align: left; }
  .blog-body { font-size: 16px; }
  .blog-standfirst { font-size: 17px; }
  .blog-hub { padding: 18px; }
  .blog-wa { display: block; padding: 20px; }
  .blog-wa-act { text-align: left; margin-top: 16px; }
  .blog-wa-btn { width: 100%; box-sizing: border-box; }
  .blog-wa-alt { text-align: center; }
}

@media (max-width: 520px) {
  .blog-masthead h1 { font-size: 24px; }
  .blog-post-head h1 { font-size: 22px; }
  .blog-lead h2 { font-size: 21px; }
  .blog-card-body h2 { font-size: 18px; }
  .blog-pager a, .blog-pager span { min-width: 34px; padding: 8px 10px; font-size: 13px; }
  .blog-share a { width: 34px; height: 34px; }
}

@media (prefers-reduced-motion: reduce) {
  .blog-card *, .blog-rel-card *, .blog-lead * { transition: none !important; }
}


/* =============== END BLOG MODULE =============== */
.blog-sr { position:absolute !important; width:1px; height:1px; overflow:hidden; clip:rect(0 0 0 0); white-space:nowrap; }
