/*
Theme Name: Holidays To Zanzibar
Theme URI: https://www.holidaystozanzibar.com
Author: Holidays To Zanzibar
Description: An independent editorial guide to the Zanzibar archipelago: Unguja, Pemba and Mafia. A custom classic theme converted from a bespoke HTML design.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: holidays-to-zanzibar
*/

*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%;scroll-behavior:smooth}
body{background:#F3F4EF;font-family:'Mulish',-apple-system,'Segoe UI',sans-serif;
     color:var(--g);-webkit-font-smoothing:antialiased;overflow-x:hidden}
:root{
  --g:#0B7A5B; --g2:#15806A; --g3:#2C7365; --g4:#0A6B4E; --deep:#1F6355;
  --btn:#178A6F; --btn-h:#0E7358; --cream:#F3F4EF; --dot:#AECEE7;
  --line:#3F8272; --dark:#2A2331; --sand:#D9A566; --rain:#8FAEC4;
  --rule:rgba(11,122,91,.16);
}
img{display:block;max-width:100%}
a{text-decoration:none;color:inherit}
.ep-page{max-width:1920px;margin:0 auto;background:var(--cream);container-type:inline-size}
.ep-shell{--u:1.343px}
@supports (width:1cqw){.ep-shell{--u:min(calc(100cqw / 1072),1.79px)}}

/* ---------- header ---------- */
.ep-hdr{position:absolute;top:0;left:0;width:100%;z-index:20;pointer-events:none}
.ep-hdr a,.ep-hdr button{pointer-events:auto}
.zt-logo{position:absolute;left:calc(44*var(--u));top:calc(30*var(--u));line-height:1;color:var(--g);
  display:inline-flex;align-items:center;gap:calc(10*var(--u))}
.zt-mark{width:calc(34*var(--u));height:calc(34*var(--u));flex:none;color:var(--g);display:block}
.zt-word{display:block}
.zt-logo em{display:block;font-style:normal;font-size:calc(8.6*var(--u));font-weight:700;
  letter-spacing:.28em;text-transform:uppercase;color:var(--g4);margin-bottom:calc(5*var(--u))}
.zt-logo b{display:block;font-size:calc(25*var(--u));font-weight:800;letter-spacing:-.038em}
.ep-nav{position:absolute;right:calc(45*var(--u));top:calc(50*var(--u));
  display:flex;align-items:center;gap:calc(21*var(--u))}
.ep-nav a.nav-btn{background:var(--btn);color:#fff;padding:calc(8*var(--u)) calc(16*var(--u));
  border-radius:999px;border-bottom:0;transition:background .25s,transform .25s}
.ep-nav a.nav-btn:hover{background:var(--btn-h);color:#fff;transform:translateY(calc(-1*var(--u)))}
.ep-nav a{font-size:calc(11.6*var(--u));font-weight:700;color:var(--g4);letter-spacing:.005em;
  padding-bottom:0;border-bottom:calc(1.2*var(--u)) solid transparent;transition:.25s}
.ep-nav a:hover{color:var(--g)}
.ep-nav a.on{border-bottom-color:var(--g4)}
.ep-burger{display:none}

/* ---------- hero ---------- */
.ep-hero{position:relative;overflow:hidden}
.ep-hero img{width:100%;height:auto}
.ep-copy{position:absolute;left:calc(184*var(--u));top:calc(144*var(--u));width:calc(344*var(--u))}
.ep-rule{display:block;margin-left:calc(3*var(--u));width:calc(24*var(--u));height:calc(3*var(--u));
  background:var(--g);border-radius:2px}
.ep-copy h1{font-size:calc(46*var(--u));line-height:1;font-weight:800;letter-spacing:-.053em;
  color:var(--g);margin-top:calc(26*var(--u))}
.ep-copy p{font-size:calc(16*var(--u));line-height:1.43;font-weight:500;color:var(--deep);
  white-space:nowrap;margin-top:calc(20*var(--u))}
.ep-btn{display:inline-flex;align-items:center;justify-content:space-between;
  width:calc(160*var(--u));height:calc(31*var(--u));margin-top:calc(25*var(--u));
  padding:0 calc(5*var(--u)) 0 calc(19*var(--u));border-radius:999px;background:var(--btn);
  color:#fff;font-size:calc(11.5*var(--u));font-weight:700;transition:background .25s,transform .25s}
.ep-btn:hover{background:var(--btn-h);transform:translateY(calc(-1.5*var(--u)))}
.ep-btn svg{width:calc(21*var(--u));height:calc(21*var(--u));flex:none}

/* ---------- atlas ---------- */
.ep-atlas{position:relative;background:var(--cream)}
.ep-map{display:block;width:100%;height:auto}
.ep-map .ml{font-family:'Mulish',sans-serif;fill:var(--g)}
.ep-disc{position:absolute;left:calc(172*var(--u));top:calc(332*var(--u));width:calc(268*var(--u))}
.ep-disc h2{font-size:calc(33*var(--u));line-height:1.18;font-weight:800;letter-spacing:-.054em;
  color:var(--g);margin-top:calc(29*var(--u))}
.ep-disc p{font-size:calc(14.1*var(--u));line-height:1.9;font-weight:400;color:var(--g3);
  margin-top:calc(13*var(--u))}
.ep-facts{display:flex;gap:calc(20*var(--u));margin-top:calc(24*var(--u))}
.ep-facts div{border-left:calc(1.5*var(--u)) solid var(--rule);padding-left:calc(11*var(--u))}
.ep-facts b{display:block;font-size:calc(19*var(--u));font-weight:800;letter-spacing:-.03em;white-space:nowrap}
.ep-facts span{display:block;font-size:calc(8.4*var(--u));font-weight:700;letter-spacing:.1em;
  text-transform:uppercase;color:var(--g2);margin-top:calc(4*var(--u));white-space:nowrap}

/* ---------- generic section ---------- */
.sec{padding:0 calc(64*var(--u))}
.sec-head{display:flex;justify-content:space-between;align-items:flex-end;gap:calc(50*var(--u));
  padding-bottom:calc(42*var(--u))}
.sec-head h2{font-size:calc(33*var(--u));line-height:1.14;font-weight:800;letter-spacing:-.054em;
  margin-top:calc(24*var(--u))}
.sec-head p{font-size:calc(14.1*var(--u));line-height:1.85;color:var(--g3);
  max-width:calc(330*var(--u));padding-bottom:calc(4*var(--u))}
.eyebrow{font-size:calc(9.6*var(--u));font-weight:700;letter-spacing:.2em;text-transform:uppercase;
  color:var(--g2)}

/* ---------- guides ---------- */
.guides{padding-top:calc(20*var(--u));padding-bottom:calc(96*var(--u))}
.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(38*var(--u)) calc(34*var(--u))}
.card{display:block;background:transparent}
.card figure{overflow:hidden;background:#dfe4e2;aspect-ratio:4/3}
.card img{width:100%;height:100%;object-fit:cover;transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.card:hover img{transform:scale(1.06)}
.card .num{display:block;margin-top:calc(16*var(--u));font-size:calc(9.6*var(--u));font-weight:700;
  letter-spacing:.2em;color:var(--g2)}
.card h3{font-size:calc(19*var(--u));font-weight:800;letter-spacing:-.03em;margin-top:calc(7*var(--u))}
.card p{font-size:calc(13.2*var(--u));line-height:1.8;color:var(--g3);margin-top:calc(8*var(--u))}
.card .more{display:inline-flex;align-items:center;gap:calc(7*var(--u));margin-top:calc(11*var(--u));
  font-size:calc(10.4*var(--u));font-weight:700;letter-spacing:.12em;text-transform:uppercase;color:var(--g)}
.card .more svg{width:calc(13*var(--u));height:calc(13*var(--u));transition:transform .3s}
.card:hover .more svg{transform:translateX(calc(4*var(--u)))}

/* ---------- when to go ---------- */
.when{padding-bottom:calc(92*var(--u));border-top:1px solid var(--rule);padding-top:calc(10*var(--u))}
.cal{border:1px solid var(--rule);padding:calc(30*var(--u)) calc(30*var(--u)) calc(24*var(--u))}
.cal-seasons{display:grid;grid-template-columns:repeat(12,1fr);gap:calc(4*var(--u));
  margin-bottom:calc(12*var(--u))}
.cal-seasons span{font-size:calc(9.2*var(--u));font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  color:#fff;padding:calc(6*var(--u)) calc(9*var(--u));border-radius:calc(3*var(--u));
  white-space:nowrap;overflow:hidden;text-overflow:ellipsis}
.s-dry{background:var(--btn)} .s-hot{background:var(--sand)} .s-rain{background:var(--rain)}
.cal-bars{display:grid;grid-template-columns:repeat(12,1fr);gap:calc(4*var(--u));align-items:end;
  height:calc(96*var(--u))}
.cal-bars i{display:block;border-radius:calc(3*var(--u)) calc(3*var(--u)) 0 0;background:var(--btn);opacity:.9}
.cal-months{display:grid;grid-template-columns:repeat(12,1fr);gap:calc(4*var(--u));
  border-top:1px solid var(--rule);padding-top:calc(9*var(--u));margin-top:calc(6*var(--u))}
.cal-months span{font-size:calc(10*var(--u));font-weight:700;text-align:center;color:var(--g2)}
.cal-key{display:flex;flex-wrap:wrap;gap:calc(22*var(--u));margin-top:calc(20*var(--u))}
.cal-key span{display:inline-flex;align-items:center;gap:calc(8*var(--u));font-size:calc(11*var(--u));
  color:var(--g3);font-weight:600}
.cal-key i{width:calc(11*var(--u));height:calc(11*var(--u));border-radius:50%}

/* ---------- reel panel ---------- */
.ep-reel{background:var(--cream);padding-bottom:calc(96*var(--u))}
.ep-panel{margin-left:calc(370*var(--u));background:var(--dark);color:#fff;
  padding:calc(74*var(--u)) calc(64*var(--u)) calc(78*var(--u));position:relative;overflow:hidden}
.ep-panel::after{content:"";position:absolute;right:calc(-90*var(--u));top:calc(-70*var(--u));
  width:calc(300*var(--u));height:calc(300*var(--u));border-radius:50%;
  background:radial-gradient(circle,rgba(23,138,111,.42),transparent 68%)}
.ep-panel .ep-rule{background:#4FB79A}
.ep-panel h2{font-size:calc(33*var(--u));line-height:1.18;font-weight:800;letter-spacing:-.03em;
  color:#fff;margin-top:calc(26*var(--u));position:relative;z-index:1}
.ep-panel p{font-size:calc(14.5*var(--u));line-height:1.9;color:#C8C3CE;
  margin-top:calc(16*var(--u));max-width:calc(360*var(--u));position:relative;z-index:1}
.ep-play{display:inline-flex;align-items:center;gap:calc(13*var(--u));margin-top:calc(28*var(--u));
  position:relative;z-index:1;font-size:calc(11.5*var(--u));font-weight:700;letter-spacing:.06em;
  text-transform:uppercase;color:#fff}
.ep-play i{width:calc(38*var(--u));height:calc(38*var(--u));border-radius:50%;background:var(--btn);
  display:grid;place-items:center;transition:.25s}
.ep-play:hover i{background:#1FA184;transform:scale(1.07)}
.ep-play svg{width:calc(12*var(--u));height:calc(12*var(--u))}

/* ---------- footer ---------- */
.ep-foot{background:var(--cream);border-top:1px solid var(--rule);
  padding:calc(34*var(--u)) calc(45*var(--u));display:flex;align-items:center;
  justify-content:space-between;gap:calc(30*var(--u));flex-wrap:wrap}
.ep-foot .zt-logo{position:static}
.ep-foot nav{display:flex;gap:calc(28*var(--u));flex-wrap:wrap}
.ep-foot nav a{font-size:calc(11.6*var(--u));font-weight:600;color:var(--g2)}
.ep-foot nav a:hover{color:var(--g)}
.ep-foot small{font-size:calc(11*var(--u));color:#7F9C93;font-weight:600}

/* ---------- WordPress helpers ---------- */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;width:1px;
  margin:-1px;overflow:hidden;padding:0;position:absolute;word-wrap:normal!important}
.skip-link{position:absolute;left:-9999px;z-index:100000;background:#fff;color:var(--g);padding:12px 20px;
  border-radius:4px}
.skip-link:focus{left:16px;top:16px}

/* ---------- inner pages (page.php / single.php) ---------- */
.page-shell{padding:calc(48*var(--u)) calc(64*var(--u)) calc(80*var(--u));max-width:900px;margin:0 auto}
.page-shell h1.page-title{font-size:calc(40*var(--u));line-height:1.08;font-weight:800;
  letter-spacing:-.05em;color:var(--g);margin-bottom:calc(6*var(--u))}
.page-shell .page-title-rule{width:calc(24*var(--u));height:calc(3*var(--u));background:var(--g);
  border-radius:2px;margin-bottom:calc(28*var(--u))}
.page-content{font-size:17px;line-height:1.85;color:var(--g3);font-weight:400}
.page-content h2{font-size:26px;font-weight:800;letter-spacing:-.03em;color:var(--g);margin:2em 0 .6em}
.page-content h3{font-size:21px;font-weight:800;color:var(--g);margin:1.6em 0 .5em}
.page-content p{margin-bottom:1.1em}
.page-content a{color:var(--btn);text-decoration:underline}
.page-content ul,.page-content ol{margin:0 0 1.1em 1.4em}
.page-content li{margin-bottom:.4em}
.page-content img{border-radius:6px;margin:1.4em 0}
.page-content .post-feature{margin:1.7em 0 2em}
.page-content .post-feature img{display:block;width:100%;height:auto;border-radius:12px;margin:0;
  box-shadow:0 12px 34px rgba(11,122,91,.14)}
.page-content .post-inline{margin:2.1em 0}
.page-content .post-inline img{display:block;width:100%;height:auto;border-radius:12px;margin:0;
  box-shadow:0 10px 30px rgba(11,122,91,.12)}
.page-content .post-inline figcaption{margin-top:.6em;font-size:.82rem;font-weight:600;
  letter-spacing:.01em;color:var(--g2)}
.page-content blockquote{border-left:3px solid var(--rule);padding-left:1.2em;margin:1.4em 0;
  color:var(--deep);font-style:italic}
.alignwide{max-width:1100px}
.alignfull{max-width:none}
.aligncenter{margin-left:auto;margin-right:auto}

/* On inner pages the header sits over cream, not a hero — make it solid and in-flow. */
body:not(.home) .ep-hdr{position:relative;padding:18px 22px;display:flex;align-items:center;
  justify-content:space-between;flex-wrap:wrap;background:var(--cream);border-bottom:1px solid var(--rule)}
body:not(.home) .zt-logo{position:static}
/* Desktop inner pages: nav sits inline/solid. On mobile it uses the standard
   hamburger drawer (below), so this override is desktop-only. */
@media (min-width:901px){
  body:not(.home) .ep-nav{position:static;display:flex;flex-wrap:wrap;gap:22px;right:auto;top:auto}
  body:not(.home) .ep-nav a{font-size:13px}
}

/* ---------- responsive ---------- */
@media (max-width:900px){
  .ep-shell{--u:1px}
  .ep-hdr{position:relative;padding:16px 22px;display:flex;align-items:center;justify-content:space-between;flex-wrap:wrap}
  .zt-logo{position:static}.zt-logo em{font-size:9px}.zt-logo b{font-size:26px}
  .ep-nav{position:static;display:none;width:100%;order:3;flex-direction:column;
    align-items:flex-start;gap:14px;padding-top:18px}
  .ep-nav.open{display:flex}.ep-nav a{font-size:15px}
  .ep-burger{display:block;width:26px;height:16px;position:relative;background:none;border:0;cursor:pointer}
  .ep-burger span{position:absolute;left:0;width:100%;height:2px;background:var(--g);border-radius:2px}
  .ep-burger span:nth-child(1){top:0}.ep-burger span:nth-child(2){top:7px}.ep-burger span:nth-child(3){top:14px}
  .ep-hero img{height:66vw;min-height:330px;object-fit:cover;object-position:60% 42%}
  .ep-copy{position:static;width:auto;padding:32px 22px 44px}
  .ep-copy h1{font-size:44px;margin-top:20px}
  .ep-copy p{font-size:16px;margin-top:14px;white-space:normal;font-weight:500}
  .ep-btn{width:200px;height:46px;font-size:14px;margin-top:24px;padding:0 6px 0 22px}
  .ep-btn svg{width:32px;height:32px}
  .ep-rule{width:30px;height:3px}
  .ep-atlas{display:flex;flex-direction:column-reverse}
  .ep-disc{position:static;width:auto;padding:4px 22px 40px}
  .ep-disc h2{font-size:34px;margin-top:18px}
  .ep-disc p{font-size:16px;line-height:1.85;margin-top:14px}
  .ep-facts{gap:20px;flex-wrap:wrap}.ep-facts b{font-size:24px}.ep-facts span{font-size:10px}
  .sec{padding:0 22px}
  .sec-head{flex-direction:column;align-items:flex-start;gap:14px;padding-bottom:30px}
  .sec-head h2{font-size:32px}.sec-head p{font-size:15px;max-width:none}
  .eyebrow{font-size:10px}
  .grid{grid-template-columns:1fr;gap:34px}
  .guides{padding-bottom:60px}
  .card h3{font-size:22px}.card p{font-size:15px}.card .more{font-size:12px}
  .card .more svg{width:15px;height:15px}
  .cal{padding:20px 16px 18px;overflow-x:auto}
  .cal-seasons span{font-size:8px;padding:5px 4px;letter-spacing:.02em}
  .cal-bars{height:80px}.cal-months span{font-size:9px}
  .cal-key{gap:14px}.cal-key span{font-size:12px}
  .when{padding-bottom:60px}
  .ep-panel{margin-left:0;padding:44px 22px 50px}
  .ep-panel h2{font-size:30px}.ep-panel p{font-size:16px;max-width:none}
  .ep-play{font-size:12px}.ep-play i{width:44px;height:44px}.ep-play svg{width:14px;height:14px}
  .ep-reel{padding-bottom:0}
  .ep-foot{padding:26px 22px}.ep-foot nav a,.ep-foot small{font-size:13px}
  .page-shell{padding:32px 22px 60px}
  .page-shell h1.page-title{font-size:34px}
}

/* ============================================================
   Article components (imported guide/FAQ content)
   Rendered inside .page-content on single.php / page.php
   ============================================================ */

/* Tip / callout box */
.page-content .tip-box{
  background:rgba(23,138,111,.07);
  border-left:4px solid var(--btn);
  border-radius:8px;
  padding:18px 22px;
  margin:1.8em 0;
}
.page-content .tip-box p{margin:0 0 .6em;color:var(--deep)}
.page-content .tip-box p:last-child{margin-bottom:0}
.page-content .tip-box::before{
  content:"Good to know";
  display:block;
  font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--g2);margin-bottom:.5em;
}

/* Pull quote */
.page-content .pull-quote{
  margin:2.2em 0;
  padding:6px 0 6px 26px;
  border-left:4px solid var(--sand);
}
.page-content .pull-quote p{
  font-size:1.35rem;line-height:1.5;font-weight:800;letter-spacing:-.02em;
  color:var(--g);font-style:normal;margin:0;
}

/* Comparison & activity card grids */
.page-content .comparison-grid,
.page-content .activity-cards,
.page-content .season-cards{
  display:grid;
  grid-template-columns:repeat(2,1fr);
  gap:18px;
  margin:1.8em 0;
}
.page-content .comparison-card,
.page-content .activity-card,
.page-content .season-card{
  background:#fff;
  border:1px solid var(--rule);
  border-radius:10px;
  padding:20px 22px;
  transition:transform .25s,box-shadow .25s;
}
.page-content .comparison-card:hover,
.page-content .activity-card:hover,
.page-content .season-card:hover{
  transform:translateY(-2px);
  box-shadow:0 10px 30px rgba(11,122,91,.10);
}
.page-content .comparison-card p,
.page-content .activity-card p,
.page-content .season-card p{margin:0 0 .6em}
.page-content .comparison-card p:last-child,
.page-content .activity-card p:last-child,
.page-content .season-card p:last-child{margin-bottom:0}
.page-content .comparison-card strong,
.page-content .activity-card strong,
.page-content .season-card strong{color:var(--g)}

/* FAQ accordion */
.page-content .faq-accordion{
  margin:1.8em 0;
  border-top:1px solid var(--rule);
}
.page-content .faq-accordion details{
  border-bottom:1px solid var(--rule);
}
.page-content .faq-accordion summary{
  cursor:pointer;
  list-style:none;
  padding:16px 40px 16px 0;
  position:relative;
  font-size:1.05rem;font-weight:800;letter-spacing:-.01em;
  color:var(--g);
}
.page-content .faq-accordion summary::-webkit-details-marker{display:none}
.page-content .faq-accordion summary::after{
  content:"+";
  position:absolute;right:6px;top:50%;transform:translateY(-50%);
  font-size:1.4rem;font-weight:400;color:var(--btn);line-height:1;
  transition:transform .25s;
}
.page-content .faq-accordion details[open] summary::after{content:"\2013"}
.page-content .faq-accordion details p{
  margin:0 0 16px;color:var(--g3);
}

@media (max-width:640px){
  .page-content .comparison-grid,
  .page-content .activity-cards,
  .page-content .season-cards{grid-template-columns:1fr}
  .page-content .pull-quote p{font-size:1.15rem}
}

/* Silo / internal-link blocks */
.page-content .guide-links{
  margin:2.6em 0 0;
  padding:22px 24px;
  background:rgba(23,138,111,.06);
  border:1px solid var(--rule);
  border-radius:12px;
}
.page-content .guide-links--pillar{background:#fff}
.page-content .guide-links-label{
  display:block;font-size:.7rem;font-weight:800;letter-spacing:.16em;text-transform:uppercase;
  color:var(--g2);margin-bottom:.7em;
}
.page-content .guide-links-pillar{margin:0 0 .8em;font-size:1.02rem;color:var(--deep)}
.page-content .guide-links a{color:var(--btn);font-weight:600}
.page-content .guide-links a:hover{text-decoration:underline}
.page-content .guide-links ul{
  list-style:none;margin:.2em 0 0;padding:0;
  display:grid;grid-template-columns:repeat(2,1fr);gap:7px 26px;
}
.page-content .guide-links li{margin:0;position:relative;padding-left:16px;line-height:1.5}
.page-content .guide-links li::before{content:"\203A";position:absolute;left:0;color:var(--sand);font-weight:800}
.page-content .guide-links-sections{
  margin:1em 0 0;padding-top:.9em;border-top:1px solid var(--rule);
  font-size:.9rem;color:var(--g3);
}
.page-content .guide-links-sections a{font-weight:700}
@media (max-width:640px){
  .page-content .guide-links ul{grid-template-columns:1fr}
}

/* ============================================================
   Tours (custom post type) — grid, cards, single, disclaimer
   ============================================================ */
.tours-wrap{max-width:1180px;margin:0 auto;padding:calc(40*var(--u)) calc(64*var(--u)) calc(80*var(--u))}
.tours-intro{max-width:760px;margin-bottom:2.4rem}
.tours-intro h1{font-size:calc(40*var(--u));line-height:1.08;font-weight:800;letter-spacing:-.05em;
  color:var(--g);margin-bottom:.5rem}
.tours-intro .page-title-rule{width:calc(24*var(--u));height:calc(3*var(--u));background:var(--g);
  border-radius:2px;margin-bottom:1.4rem}
.tours-intro p{font-size:17px;line-height:1.8;color:var(--g3)}

/* 3 cards per row */
.tours-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:28px}
.tour-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--rule);
  border-radius:14px;overflow:hidden;transition:transform .25s,box-shadow .25s}
.tour-card:hover{transform:translateY(-4px);box-shadow:0 18px 44px rgba(11,122,91,.14)}
.tour-card .tour-figure{position:relative;aspect-ratio:16/10;overflow:hidden;background:#dfe4e2}
.tour-card .tour-figure img{width:100%;height:100%;object-fit:cover;display:block;
  transition:transform .8s cubic-bezier(.2,.7,.3,1)}
.tour-card:hover .tour-figure img{transform:scale(1.06)}
.tour-badge{position:absolute;top:12px;left:12px;background:rgba(11,122,91,.92);color:#fff;
  font-size:.68rem;font-weight:700;letter-spacing:.1em;text-transform:uppercase;
  padding:6px 11px;border-radius:999px}
.tour-tag{position:absolute;top:12px;right:12px;background:rgba(255,255,255,.92);color:var(--g);
  font-size:.62rem;font-weight:800;letter-spacing:.08em;text-transform:uppercase;
  padding:6px 10px;border-radius:999px}
.tour-body{display:flex;flex-direction:column;flex:1;padding:20px 22px 22px}
.tour-body h3{font-size:1.18rem;line-height:1.25;font-weight:800;letter-spacing:-.02em;color:var(--g);margin:0 0 .5rem}
.tour-body h3 a{color:inherit}
.tour-desc{font-size:.95rem;line-height:1.65;color:var(--g3);margin:0 0 1rem}
.tour-meta{margin-top:auto;display:flex;align-items:flex-end;justify-content:space-between;gap:12px;
  padding-top:14px;border-top:1px solid var(--rule)}
.tour-price small{display:block;font-size:.64rem;font-weight:700;letter-spacing:.14em;
  text-transform:uppercase;color:var(--g2)}
.tour-price b{font-size:1.35rem;font-weight:800;letter-spacing:-.02em;color:var(--g)}
.tour-price span{font-size:.8rem;font-weight:600;color:var(--g3)}
.tour-cta{flex:none;display:inline-flex;align-items:center;gap:7px;background:var(--btn);color:#fff;
  font-size:.78rem;font-weight:700;letter-spacing:.02em;padding:10px 16px;border-radius:999px;
  transition:background .25s,transform .25s}
.tour-cta:hover{background:var(--btn-h);transform:translateY(-1px)}
.tour-operator{font-size:.78rem;color:var(--g2);font-weight:600;margin-top:.2rem}
.tour-operator b{color:var(--g3);font-weight:700}

/* "Not a booking agent" disclaimer box */
.booking-note{max-width:1180px;margin:2.6rem auto 0;padding:20px 24px;
  background:rgba(217,165,102,.12);border:1px solid rgba(217,165,102,.5);border-radius:12px;
  font-size:.95rem;line-height:1.7;color:var(--deep)}
.booking-note strong{color:var(--g)}
.booking-note a{color:var(--btn);font-weight:700}

/* Single tour */
.tour-single{max-width:900px;margin:0 auto;padding:calc(40*var(--u)) calc(64*var(--u)) calc(80*var(--u))}
.tour-single h1{font-size:calc(38*var(--u));line-height:1.1;font-weight:800;letter-spacing:-.04em;color:var(--g)}
.tour-factbar{display:flex;flex-wrap:wrap;gap:26px;margin:1.2rem 0 1.6rem;padding:16px 22px;
  background:#fff;border:1px solid var(--rule);border-radius:12px}
.tour-factbar div{display:flex;flex-direction:column}
.tour-factbar small{font-size:.62rem;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--g2)}
.tour-factbar b{font-size:1.15rem;font-weight:800;color:var(--g);letter-spacing:-.01em}
.tour-single .post-feature{margin:0 0 1.6rem}
.tour-actions{margin-top:2rem;display:flex;flex-wrap:wrap;gap:14px}
.tour-actions a{display:inline-flex;align-items:center;gap:8px;font-weight:700;font-size:.9rem;
  padding:13px 22px;border-radius:999px}
.tour-actions .primary{background:var(--btn);color:#fff}
.tour-actions .primary:hover{background:var(--btn-h)}
.tour-actions .ghost{border:1.5px solid var(--rule);color:var(--g)}
.tour-actions .ghost:hover{border-color:var(--btn);color:var(--btn)}

@media (max-width:900px){
  .tours-wrap{padding:24px 22px 60px}
  .tours-grid{grid-template-columns:repeat(2,1fr);gap:20px}
  .tours-intro h1{font-size:34px}
}
@media (max-width:600px){
  .tours-grid{grid-template-columns:1fr}
  .tour-single{padding:24px 22px 60px}
}

/* Day-by-day itinerary timeline (single tour) */
.page-content h2.itinerary-title{margin-top:1.8em}
.tour-days{margin:1.4rem 0 .5rem}
.tour-day{display:grid;grid-template-columns:44px 1fr;gap:18px;position:relative;padding-bottom:22px}
.tour-day::before{content:"";position:absolute;left:21px;top:44px;bottom:-2px;width:2px;background:var(--rule)}
.tour-day:last-child{padding-bottom:0}
.tour-day:last-child::before{display:none}
.tour-day-no{width:44px;height:44px;border-radius:50%;background:var(--g);color:#fff;
  display:grid;place-items:center;font-size:1.05rem;font-weight:800;flex:none;z-index:1}
.tour-day-body{padding-top:2px}
.tour-day-body h3{margin:0 0 .3rem;font-size:1.06rem;font-weight:800;letter-spacing:-.02em;color:var(--g)}
.tour-day-body p{margin:0;color:var(--g3);font-size:.98rem;line-height:1.65}
.tour-day-body p a{color:var(--btn)}
@media (max-width:600px){
  .tour-day{grid-template-columns:38px 1fr;gap:14px}
  .tour-day::before{left:18px;top:40px}
  .tour-day-no{width:38px;height:38px;font-size:.95rem}
}

/* ============================================================
   Sample itineraries (homepage)
   ============================================================ */
.itin{background:var(--cream);padding:calc(18*var(--u)) calc(64*var(--u)) calc(94*var(--u));
  border-top:1px solid var(--rule)}
.itin-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:calc(30*var(--u))}
.itin-card{display:flex;flex-direction:column;background:#fff;border:1px solid var(--rule);
  border-radius:calc(14*var(--u));padding:calc(28*var(--u)) calc(28*var(--u)) calc(30*var(--u));
  transition:transform .25s,box-shadow .25s}
.itin-card:hover{transform:translateY(calc(-3*var(--u)));box-shadow:0 16px 40px rgba(11,122,91,.12)}
.itin-days{align-self:flex-start;font-size:calc(8.8*var(--u));font-weight:800;letter-spacing:.15em;
  text-transform:uppercase;color:#fff;background:var(--g);padding:calc(5*var(--u)) calc(12*var(--u));
  border-radius:999px;margin-bottom:calc(15*var(--u))}
.itin-card-img{display:block;width:100%;aspect-ratio:16/10;object-fit:cover;
  border-radius:calc(10*var(--u));margin-bottom:calc(18*var(--u))}
.itin-card h3{font-size:calc(20*var(--u));font-weight:800;letter-spacing:-.03em;color:var(--g);
  margin-bottom:calc(12*var(--u))}

/* Scrolling photo gallery band */
.ep-gallery{overflow:hidden;background:var(--cream);padding:calc(26*var(--u)) 0 calc(30*var(--u))}
.gallery-track{display:flex;width:max-content;animation:htz-marquee 75s linear infinite}
.ep-gallery:hover .gallery-track{animation-play-state:paused}
.gallery-track img{height:calc(215*var(--u));width:auto;flex:none;object-fit:cover;
  margin-right:calc(16*var(--u));border-radius:calc(10*var(--u));background:#dfe4e2}
@keyframes htz-marquee{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media (max-width:900px){
  .gallery-track img{height:150px;margin-right:12px;border-radius:10px}
  .ep-gallery{padding:20px 0 22px}
}
@media (prefers-reduced-motion:reduce){
  .gallery-track{animation:none;overflow-x:auto;width:100%}
}
.itin-steps{list-style:none;margin:0 0 calc(18*var(--u));padding:0}
.itin-steps li{font-size:calc(12.8*var(--u));line-height:1.55;color:var(--g3);
  padding:calc(9*var(--u)) 0;border-top:1px solid var(--rule)}
.itin-steps li:first-child{border-top:0;padding-top:0}
.itin-steps li b{color:var(--g);font-weight:800}
.itin-card .section-readmore{margin-top:auto}

@media (max-width:900px){
  .itin{padding:16px 22px 60px}
  .itin-grid{grid-template-columns:1fr;gap:22px}
  .itin-card{border-radius:14px}
  .itin-days{font-size:10px}.itin-card h3{font-size:22px}.itin-steps li{font-size:15px}
  .zt-mark{width:36px;height:36px}
  .ep-nav a.nav-btn{padding:10px 18px;align-self:flex-start}
}

/* ============================================================
   Homepage FAQ section
   ============================================================ */
.ep-faq{padding-top:calc(10*var(--u));padding-bottom:calc(96*var(--u));border-top:1px solid var(--rule)}
.ep-faq .faq-list{max-width:calc(860*var(--u))}
.ep-faq details{border-bottom:1px solid var(--rule)}
.ep-faq summary{cursor:pointer;list-style:none;position:relative;
  padding:calc(19*var(--u)) calc(42*var(--u)) calc(19*var(--u)) 0;
  font-size:calc(15*var(--u));font-weight:800;letter-spacing:-.015em;color:var(--g)}
.ep-faq summary::-webkit-details-marker{display:none}
.ep-faq summary::after{content:"+";position:absolute;right:calc(4*var(--u));top:50%;
  transform:translateY(-50%);font-size:calc(23*var(--u));font-weight:400;color:var(--btn);
  line-height:1;transition:transform .25s}
.ep-faq details[open] summary::after{content:"\2013"}
.ep-faq details p{margin:0 0 calc(20*var(--u));font-size:calc(13.6*var(--u));
  line-height:1.75;color:var(--g3);max-width:calc(760*var(--u))}

@media (max-width:900px){
  .ep-faq{padding-bottom:60px}
  .ep-faq summary{font-size:16px;padding:16px 40px 16px 0}
  .ep-faq summary::after{font-size:26px}
  .ep-faq details p{font-size:15px}
}

/* Full FAQ article on the homepage */
.ep-faq .faq-article{max-width:900px}
.ep-faq .faq-article > p:first-child{font-size:1.05em}
.ep-faq .faq-article .uw-widget{margin:1.8em 0}
/* Cost cards (from the FAQ article) */
.page-content .cost-cards{display:grid;grid-template-columns:repeat(2,1fr);gap:18px;margin:1.8em 0}
.page-content .cost-card{background:#fff;border:1px solid var(--rule);border-radius:10px;
  padding:20px 22px;font-size:.96rem;line-height:1.6;color:var(--g3)}
.page-content .cost-card strong{display:block;color:var(--g);font-size:1.05rem;
  font-weight:800;margin-bottom:.35em}
@media (max-width:640px){
  .page-content .cost-cards{grid-template-columns:1fr}
}


/* ============================================================
   Motion & finish (progressive enhancement)
   Content is fully visible without JS and with reduced motion.
   ============================================================ */
@media (prefers-reduced-motion: no-preference){

  /* Scroll reveal: hide only when JS is present, reveal as sections enter view */
  html.js .sec-head,
  html.js .card,
  html.js .itin-card,
  html.js .ep-disc,
  html.js .cal,
  html.js .ep-panel,
  html.js .ep-gallery,
  html.js .faq-article{
    opacity:0;
    translate:0 26px;
    transition:opacity .9s cubic-bezier(.2,.7,.3,1), translate .9s cubic-bezier(.2,.7,.3,1);
  }
  html.js .is-in{ opacity:1; translate:0 0; }

  /* Gentle stagger for cards within a grid */
  html.js .grid .card:nth-child(2){ transition-delay:.08s }
  html.js .grid .card:nth-child(3){ transition-delay:.16s }
  html.js .grid .card:nth-child(4){ transition-delay:.05s }
  html.js .grid .card:nth-child(5){ transition-delay:.13s }
  html.js .grid .card:nth-child(6){ transition-delay:.21s }
  html.js .itin-grid .itin-card:nth-child(2){ transition-delay:.1s }
  html.js .itin-grid .itin-card:nth-child(3){ transition-delay:.2s }

  /* Hero settle on load */
  html.js .ep-copy{
    opacity:0; translate:0 18px;
    transition:opacity 1s ease .12s, translate 1s cubic-bezier(.2,.7,.3,1) .12s;
  }
  html.js.htz-loaded .ep-copy{ opacity:1; translate:0 0; }
  html.js .ep-hero img{ transform:scale(1.06); transition:transform 1.7s cubic-bezier(.2,.7,.3,1); }
  html.js.htz-loaded .ep-hero img{ transform:none; }

  /* Gallery photos lift and brighten on hover (band pauses on hover) */
  .gallery-track img{ transition:transform .5s ease, filter .5s ease, box-shadow .5s ease; }
  .gallery-track img:hover{ transform:scale(1.05); filter:saturate(1.06); box-shadow:0 16px 40px rgba(11,122,91,.22); }
}

/* Slightly warmer, deeper card shadow on hover for a more premium feel */
.card figure{ box-shadow:0 6px 20px rgba(11,122,91,.06); transition:box-shadow .4s ease; }
.card:hover figure{ box-shadow:0 20px 46px rgba(11,122,91,.16); }
