:root{
  --surf:#FAFAF8;
  --wh:#FFFFFF;
  --ink:#0F1C11;
  --ink8:rgba(15,28,17,.84);
  --ink5:rgba(15,28,17,.64);
  --ink2:rgba(15,28,17,.12);
  --g:#006B3A;
  --gd:#00502E;
  --gm:rgba(0,107,58,.16);
  --gl:rgba(0,107,58,.07);
}
body{
  background:
    radial-gradient(circle at 12% 10%,rgba(0,107,58,.035),transparent 28%),
    radial-gradient(circle at 86% 14%,rgba(245,200,0,.055),transparent 24%),
    linear-gradient(180deg,#FFFFFF 0%,#FAFAF8 48%,#FFFFFF 100%);
  color:var(--ink);
}
.page{
  background:
    linear-gradient(180deg,#FFFFFF 0%,#FAFAF8 52%,#FFFFFF 100%);
}
#services-section,
section[style*="background:var(--surf)"],
section[style*="background: var(--surf)"],
section[style*="background:var(--wh)"],
section[style*="background: var(--wh)"],
section[style*="background:var(--ink)"],
section[style*="background: var(--ink)"]{
  background:
    radial-gradient(circle at 10% 8%,rgba(0,107,58,.032),transparent 28%),
    radial-gradient(circle at 88% 16%,rgba(245,200,0,.052),transparent 24%),
    linear-gradient(180deg,#FFFFFF 0%,#FAFAF8 100%) !important;
}
.premium-path{
  background:
    radial-gradient(circle at 8% 16%,rgba(0,107,58,.035),transparent 26%),
    linear-gradient(135deg,#FFFFFF 0%,#FAFAF8 56%,#FFFFFF 100%) !important;
}
.featured-moments{
  background:
    radial-gradient(circle at 82% 12%,rgba(245,200,0,.055),transparent 24%),
    linear-gradient(180deg,#FFFFFF 0%,#FAFAF8 100%) !important;
}
.section .h2,
.section .h3,
.section h3,
.section h4,
.section strong{
  color:var(--ink);
}
.section .text-muted,
.section p,
.section li{
  color:var(--ink5);
}
.svc-card,
.path-card,
.actu-card,
.card,
.pack-card,
.source-panel,
.form-card,
.admin-panel,
.offre-card,
.lgt-card,
.evt-card,
.ville-card,
.amo-card,
.stay-card,
.accordion-item,
.data-item,
.admin-stat{
  background:
    linear-gradient(180deg,rgba(255,255,255,.99),rgba(250,250,248,.98)) !important;
  border-color:rgba(15,28,17,.10) !important;
  box-shadow:0 18px 48px rgba(15,28,17,.06) !important;
}
.svc-card.dark{
  background:
    linear-gradient(135deg,rgba(9,32,21,.96),rgba(13,42,27,.94)) !important;
}
.path-card h3,
.card h3,
.card h4,
.actu-title,
.actu-title.big,
.pack-card h3,
.offre-info h4,
.lgt-title,
.evt-title,
.vc-name,
.amo-card h3,
.stay-card strong,
.accordion-head span,
.data-item strong,
.bhs-mini strong{
  color:var(--ink) !important;
}
.path-card p,
.card p,
.pack-card p,
.pack-card li,
.offre-info p,
.lgt-loc,
.lgt-details,
.evt-loc,
.vc-info,
.amo-card p,
.stay-card p,
.accordion-content,
.data-item span,
.bhs-mini span{
  color:var(--ink5) !important;
}
.svc-card.dark .svc-title,
.svc-card.dark .svc-desc{
  color:inherit;
}
.source-panel{
  background:
    linear-gradient(135deg,rgba(255,255,255,.99),rgba(250,250,248,.98)),
    radial-gradient(circle at 88% 8%,rgba(245,200,0,.055),transparent 24%) !important;
}
.info-box.green{
  background:linear-gradient(135deg,#F7FBF8 0%,#FFFFFF 100%) !important;
  border-color:#006B3A !important;
  color:var(--ink8) !important;
}
.info-box.yellow{
  background:linear-gradient(135deg,#FFFBE8 0%,#FFFFFF 100%) !important;
  border-color:#D6AA00 !important;
  color:var(--ink8) !important;
}
.info-box.red{
  background:linear-gradient(135deg,#FFF5F5 0%,#FFFFFF 100%) !important;
  border-color:#CC2128 !important;
  color:var(--ink8) !important;
}
.info-box p,
.info-box strong,
.admin-notice,
.admin-notice strong{
  color:var(--ink8) !important;
}
.quick-links a,
.tag-g,
.tag-glow,
.evt-cat,
.offre-tag{
  background:rgba(0,107,58,.075);
  color:#005B32;
  border-color:rgba(0,107,58,.14);
}
.tag-y,
.offre-tag.y{
  background:rgba(245,200,0,.13);
  color:#7A5A00;
}
.tag-r{
  background:rgba(204,33,40,.08);
  color:#A51B22;
}
.bhs-mini{
  background:#FFFFFF;
  border-color:rgba(15,28,17,.12);
}
.accordion-head{
  background:#FFFFFF;
}
.accordion-head:hover{
  background:#FAFAF8;
}
.finput,
.fselect,
.admin-input{
  background:#FFFFFF;
  color:var(--ink);
  border-color:rgba(15,28,17,.13);
}
.fselect option{
  background:#FFFFFF;
  color:var(--ink);
}
.label-g{
  background:rgba(0,107,58,.065);
  border-color:rgba(0,107,58,.14);
  color:#005B32;
}
.label-y{
  background:rgba(245,200,0,.11);
  border-color:rgba(214,170,0,.18);
  color:#7A5A00;
}
.btn-g,
.fsubmit{
  background:linear-gradient(135deg,#006B3A 0%,#00502E 100%);
  box-shadow:0 12px 28px rgba(0,107,58,.18);
}
.btn-g:hover,
.fsubmit:hover{
  background:linear-gradient(135deg,#007A42 0%,#005B32 100%);
}
.nav-link:hover,
.nav-link.active{
  background:rgba(255,255,255,.92) !important;
  color:#0F1C11 !important;
  box-shadow:0 10px 24px rgba(0,0,0,.12);
}
.nav-link.active{
  position:relative;
}
.nav-link.active::before{
  content:'';
  position:absolute;
  left:18px;
  right:18px;
  bottom:6px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,#00773A 0 33%,#FDEF42 33% 66%,#CD1713 66% 100%);
}
.page-hero,
.hero,
footer{
  color:#F8FFF8;
}
.page-hero .breadcrumb,
.page-hero p,
footer p,
footer li,
footer a,
footer span{
  color:rgba(255,255,255,.68);
}
.page-hero h1,
footer strong{
  color:#fff;
}

/* White institutional surface everywhere except the main hero */
.page-hero{
  background:
    radial-gradient(circle at 8% 18%,rgba(0,107,58,.035),transparent 28%),
    radial-gradient(circle at 88% 12%,rgba(245,200,0,.055),transparent 24%),
    linear-gradient(180deg,#FFFFFF 0%,#FAFAF8 100%) !important;
  border-bottom:1px solid rgba(15,28,17,.08);
}
.page-hero::before{
  background:
    linear-gradient(135deg,rgba(255,255,255,.92),rgba(250,250,248,.82)),
    radial-gradient(ellipse 58% 80% at 8% 52%,rgba(0,107,58,.045),transparent 64%),
    radial-gradient(ellipse 42% 48% at 88% 18%,rgba(245,200,0,.06),transparent 54%) !important;
}
.page-hero::after{
  opacity:.16;
}
.page-hero h1,
.page-hero p,
.page-hero .breadcrumb,
.page-hero .breadcrumb span,
.page-hero .breadcrumb-sep{
  color:var(--ink) !important;
}
.page-hero p,
.page-hero .breadcrumb{
  color:var(--ink5) !important;
}
.section .h2,
.section .h3,
.section h2,
.section h3,
.section h4,
.section p,
.section li,
.section strong,
.section .text-muted{
  color:var(--ink) !important;
}
.section p,
.section li,
.section .text-muted{
  color:var(--ink5) !important;
}
.label-w{
  background:rgba(0,107,58,.065) !important;
  border-color:rgba(0,107,58,.14) !important;
  color:#005B32 !important;
}
.temo-q,
.temo-name,
.temo-role{
  color:var(--ink) !important;
}
.temo-role{
  color:var(--ink5) !important;
}
.temo-stars svg{
  fill:#D6AA00;
}
.hero .hero-h1,
.hero .hero-h1 small,
.hero .hero-p,
.hero .hs-lbl,
.hero .hero-photo span{
  color:revert;
}
.hero .hero-h1{color:#fff}
.hero .hero-h1 small{color:rgba(255,255,255,.56)}
.hero .hero-p{color:rgba(255,255,255,.70)}
.hero .hs-lbl{color:rgba(255,255,255,.45)}
.hero .hero-photo span{color:#fff}

/* Internal pages use the home hero mood on the intro only */
.page-hero{
  min-height:390px;
  display:flex;
  align-items:center;
  margin-top:-88px;
  padding:10rem 1.5rem 3.8rem;
  background:
    radial-gradient(circle at 18% 28%,rgba(0,119,58,.22),transparent 32%),
    radial-gradient(circle at 80% 20%,rgba(253,239,66,.16),transparent 26%),
    linear-gradient(135deg,#050807 0%,#07120D 48%,#0B1115 100%) !important;
  color:#F8FFF8;
  border-bottom:none;
}
.page-hero::before{
  background:
    linear-gradient(135deg,rgba(5,8,7,.80),rgba(5,8,7,.42)),
    radial-gradient(ellipse 58% 72% at 8% 48%,rgba(0,119,58,.20),transparent 62%),
    radial-gradient(ellipse 42% 52% at 90% 18%,rgba(253,239,66,.14),transparent 56%) !important;
}
.page-hero::after{
  opacity:.42;
}
.page-hero-stripe{
  top:88px;
  width:5px;
}
.page-hero-content{
  max-width:1320px;
  width:100%;
}
.page-hero h1{
  color:#fff !important;
  max-width:760px;
  font-family:var(--fb);
  font-size:clamp(2.45rem,4.25vw,4.15rem);
  line-height:1.04;
  font-weight:900;
  letter-spacing:0;
}
.page-hero p{
  color:rgba(255,255,255,.72) !important;
  max-width:650px;
  font-size:1.04rem;
  line-height:1.8;
}
.page-hero .breadcrumb,
.page-hero .breadcrumb span{
  color:rgba(255,255,255,.72) !important;
}
.page-hero .breadcrumb-sep{
  color:rgba(253,239,66,.78) !important;
}
@media(max-width:768px){
  .page-hero{
    min-height:330px;
    margin-top:-72px;
    padding:7.4rem 1.15rem 3.2rem;
  }
  .page-hero-stripe{
    top:72px;
  }
  .page-hero h1{
    font-size:clamp(2.1rem,10vw,3rem);
  }
}

/* Final readability guard for every light content section */
.page > .section :where(h1,h2,h3,h4,h5,h6,p,li,span,strong,small,label,td,th,div,a){
  color:var(--ink) !important;
}
.page > .section :where(p,li,small,.text-muted,.step-d,.svc-desc,.offre-info p,.lgt-loc,.lgt-details,.evt-loc,.vc-info,.accordion-content,.data-item span,.bhs-mini span,.pack-card p,.pack-card li,.amo-card p,.stay-card p){
  color:var(--ink5) !important;
}
.page > .section :where(.btn-g,.fsubmit,.offre-cta,.admin-btn,.step-n,.vc-badge,.lgt-price){
  color:#fff !important;
}
.page > .section :where(.path-card > span){
  color:#FFFFFF !important;
}
.page > .section :where(.temo-av){
  color:#fff !important;
}
.page > .section :where(.tag-g,.tag-glow,.evt-cat,.offre-tag,.quick-links a,.text-link){
  color:#005B32 !important;
}
.page > .section :where(.tag-y,.offre-tag.y){
  color:#7A5A00 !important;
}
.page > .section :where(.tag-r){
  color:#A51B22 !important;
}
.page > .section :where(.label-g){
  color:#005B32 !important;
}
.page > .section :where(.label-y){
  color:#7A5A00 !important;
}
.page > .section :where(.label-w){
  color:#005B32 !important;
}
.page > .section :where(.moment-card div,.moment-card span,.moment-card strong,.invest-photo span,.student-photo span,.hero-photo span){
  color:#fff !important;
}
.page > .section :where(.actu-cat){
  color:#fff !important;
}
.page > .section :where(.evt-date-badge,.evt-date-badge strong){
  color:var(--ink) !important;
}
.page > .section :where(.icon-box,.vc-icon,.amo-logo){
  color:#006B3A !important;
}
.page > .section :where(.ib-y){
  color:#7A5A00 !important;
}
.page > .section :where(.ib-r){
  color:#A51B22 !important;
}
.page > .section :where(.tbl th){
  color:#005B32 !important;
}
.page > .section :where(.btn-outd){
  color:var(--ink) !important;
}

/* Final form contrast and neutral shadows */
.page > .section :where(.form-card){
  background:#FFFFFF !important;
  border-color:rgba(15,28,17,.14) !important;
  box-shadow:0 18px 42px rgba(15,28,17,.08) !important;
}
.page > .section :where(.form-card:hover){
  box-shadow:0 22px 52px rgba(15,28,17,.10) !important;
}
.page > .section :where(.finput,.fselect,.admin-input,textarea,input,select){
  background:#FFFFFF !important;
  color:#0F1C11 !important;
  border:1.5px solid rgba(15,28,17,.18) !important;
  box-shadow:none !important;
  opacity:1 !important;
}
.page > .section :where(.finput,.fselect,.admin-input,textarea,input,select):focus{
  background:#FFFFFF !important;
  border-color:#00773A !important;
  box-shadow:0 0 0 4px rgba(0,119,58,.12) !important;
}
.page > .section :where(.finput,.admin-input,textarea,input)::placeholder{
  color:rgba(15,28,17,.48) !important;
  opacity:1 !important;
}
.page > .section :where(.flabel,.fcheck label){
  color:rgba(15,28,17,.78) !important;
}
.page > .section :where(.source-panel,.card,.pack-card,.stay-card,.amo-card,.accordion-item,.bhs-mini){
  box-shadow:0 16px 40px rgba(15,28,17,.06) !important;
}
.page > .section :where(.info-box.yellow){
  background:#FFFFFF !important;
}

/* Remove decorative yellow wash from content surfaces */
body,
.page,
#services-section,
section[style*="background:var(--surf)"],
section[style*="background: var(--surf)"],
section[style*="background:var(--wh)"],
section[style*="background: var(--wh)"],
section[style*="background:var(--ink)"],
section[style*="background: var(--ink)"],
.premium-path,
.featured-moments{
  background:#FFFFFF !important;
}
body::before,
.section::before,
.section::after{
  display:none !important;
}
.page > .section:nth-of-type(even),
.page > .section:nth-of-type(odd){
  background:#FFFFFF !important;
}
.source-panel{
  background:#FFFFFF !important;
}

/* Final numeric badge cleanup: keep yellow for brand accents, not for counters */
.path-card > span,
.step-n,
.page > .section :where(.path-card > span,.step-n){
  background:#006B3A !important;
  color:#FFFFFF !important;
  border:1px solid rgba(0,107,58,.18) !important;
  box-shadow:0 10px 22px rgba(0,107,58,.16) !important;
}
.path-card > span,
.page > .section :where(.path-card > span){
  font-weight:900 !important;
}
.page > .section :where(.admin-stat strong,.pack-price){
  color:#006B3A !important;
}
.page > .section :where(.admin-stat span){
  color:var(--ink5) !important;
}
.hero-stats :where(.hs-num),
.stats-band :where(.sb-num){
  color:#F8FFF8 !important;
}

/* Final button contrast on light pages */
.page > .section :where(.btn.btn-g,.fsubmit){
  background:#006B3A !important;
  color:#FFFFFF !important;
  border:1px solid #006B3A !important;
  box-shadow:0 14px 30px rgba(0,107,58,.18) !important;
}
.page > .section :where(.btn.btn-g:hover,.fsubmit:hover){
  background:#005B32 !important;
  color:#FFFFFF !important;
}
.page > .section :where(.btn.btn-outd){
  background:var(--g) !important;
  color:#fff !important;
  border-color:var(--g) !important;
  box-shadow:0 4px 16px rgba(0,107,58,.28) !important;
  font-weight:700 !important;
}
.page > .section :where(.btn.btn-outd:hover){
  background:var(--gd) !important;
  border-color:var(--gd) !important;
  color:#fff !important;
}
.hero :where(.btn.btn-outd){
  background:rgba(255,255,255,.055) !important;
  color:#FFFFFF !important;
  border-color:rgba(255,255,255,.16) !important;
}

/* Final visual-card contrast: product cards stay premium but readable */
.page > .section :where(.invest-card){
  background:#FFFFFF !important;
  border:1px solid rgba(15,28,17,.12) !important;
  box-shadow:0 18px 44px rgba(15,28,17,.08) !important;
}
.page > .section :where(.invest-body){
  background:#FFFFFF !important;
}
.page > .section :where(.invest-body h3){
  color:#0F1C11 !important;
}
.page > .section :where(.invest-body p){
  color:rgba(15,28,17,.68) !important;
}

/* Final section rhythm and pack CTA consistency */
.page > .section :where(.h2){
  margin-bottom:1.45rem !important;
}
.page > .section :where(.h2 + .path-grid,.h2 + .pack-grid,.h2 + .offer-grid,.h2 + .destination-grid,.h2 + .route-showcase,.h2 + .category-grid,.h2 + .premium-gallery,.h2 + .benefit-grid,.h2 + .grid2){
  margin-top:1.45rem !important;
}
.page > .section :where(.label + .h2){
  margin-top:.85rem !important;
}
.page > .section :where(.pack-grid){
  margin-top:1.55rem !important;
}
.page > .section :where(.pack-card){
  justify-content:space-between;
}
.page > .section :where(.pack-card .btn,.pack-card .btn-outd,.pack-card .btn-g){
  width:100%;
  justify-content:center;
  margin-top:auto;
  background:#006B3A !important;
  color:#FFFFFF !important;
  border:1px solid #006B3A !important;
  box-shadow:0 14px 30px rgba(0,107,58,.18) !important;
}
.page > .section :where(.pack-card .btn:hover,.pack-card .btn-outd:hover,.pack-card .btn-g:hover){
  background:#005B32 !important;
  color:#FFFFFF !important;
  border-color:#005B32 !important;
}

/* Premium service vitrines: Commerce and Ziarra */
.nav-links{
  gap:.18rem !important;
}
.nav-link{
  padding:8px 10px !important;
}
.visual-page-hero{
  min-height:370px;
  isolation:isolate;
  background:
    linear-gradient(90deg,rgba(1,9,6,.97) 0%,rgba(1,9,6,.90) 38%,rgba(1,9,6,.82) 58%,rgba(1,9,6,.76) 80%,rgba(1,9,6,.44) 100%),
    var(--page-hero-img) center right/cover no-repeat !important;
}
.visual-page-hero::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:radial-gradient(circle at 20% 24%,rgba(0,119,58,.32),transparent 34%);
}
.visual-page-hero .page-hero-content{
  max-width:100% !important;
  margin-left:0 !important;
  margin-right:0 !important;
}
.hero-badges{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin-top:1.4rem;
}
.hero-badges span{
  display:inline-flex;
  align-items:center;
  min-height:34px;
  padding:.45rem .85rem;
  border:1px solid rgba(255,255,255,.18);
  border-radius:999px;
  background:rgba(255,255,255,.08);
  color:#fff !important;
  font-size:.72rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
  backdrop-filter:blur(12px);
}
.commerce-showcase,
.ziarra-showcase{
  background:#fff !important;
}
.premium-split{
  display:grid;
  grid-template-columns:minmax(0,1fr) minmax(360px,520px);
  gap:2rem;
  align-items:center;
  padding:1.5rem;
  border:1px solid rgba(15,28,17,.1);
  border-radius:30px;
  background:linear-gradient(135deg,rgba(0,119,58,.06),rgba(255,255,255,.98) 48%,rgba(253,239,66,.06));
  box-shadow:0 24px 70px rgba(15,28,17,.08);
}
.premium-image-stack{
  display:grid;
  grid-template-columns:1fr .82fr;
  gap:.85rem;
  min-height:350px;
}
.premium-image-stack img{
  width:100%;
  height:100%;
  min-height:270px;
  object-fit:cover;
  border-radius:24px;
  border:1px solid rgba(15,28,17,.12);
  box-shadow:0 18px 45px rgba(15,28,17,.12);
}
.premium-image-stack img:first-child{
  grid-row:span 2;
}
.offer-grid,
.destination-grid{
  display:grid;
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:1.25rem;
  margin-top:1.5rem;
}
.offer-card,
.destination-card{
  display:grid;
  grid-template-columns:42% 1fr;
  gap:1.1rem;
  overflow:hidden;
  padding:1rem;
  border:1px solid rgba(15,28,17,.12);
  border-radius:28px;
  background:#fff;
  box-shadow:0 18px 44px rgba(15,28,17,.07);
}
.offer-card img,
.destination-card img{
  width:100%;
  height:100%;
  min-height:260px;
  object-fit:cover;
  border-radius:22px;
}
.offer-card h3,
.destination-card h3{
  margin:.7rem 0 .5rem;
  font-size:1.35rem;
  color:#0F1C11 !important;
}
.offer-card p,
.destination-card p,
.destination-card li{
  color:rgba(15,28,17,.68) !important;
  line-height:1.68;
}
.destination-card ul{
  margin:.8rem 0 1rem 1.1rem;
}
.route-showcase{
  display:grid;
  grid-template-columns:minmax(0,1.28fr) minmax(320px,.72fr);
  gap:1.25rem;
  margin-top:1.5rem;
  align-items:stretch;
}
.route-grid{
  display:grid;
  gap:1rem;
  position:relative;
}
.route-grid-clean::before{
  content:'';
  position:absolute;
  left:106px;
  top:2rem;
  bottom:2rem;
  width:2px;
  background:linear-gradient(180deg,#00773A,#FDEF42,#CD1713);
  opacity:.28;
}
.route-card{
  display:grid;
  grid-template-columns:180px 1fr;
  gap:1rem;
  padding:1rem;
  border:1px solid rgba(15,28,17,.12);
  border-radius:26px;
  background:#fff;
  box-shadow:0 16px 38px rgba(15,28,17,.07);
  position:relative;
  z-index:1;
}
.route-card img{
  width:100%;
  height:100%;
  min-height:170px;
  object-fit:cover;
  border-radius:20px;
}
.route-card h3,
.route-summary-panel h3{
  margin:.65rem 0 .35rem;
  font-size:1.2rem;
  color:#0F1C11 !important;
}
.route-card p,
.route-card li,
.route-summary-panel p{
  color:rgba(15,28,17,.68) !important;
  line-height:1.65;
}
.route-card ul{
  margin:.65rem 0 0 1.05rem;
}
.featured-route{
  border-color:rgba(0,107,58,.24);
  box-shadow:0 20px 48px rgba(0,107,58,.11);
}
.route-summary-panel{
  position:sticky;
  top:120px;
  align-self:start;
  padding:1.35rem;
  border:1px solid rgba(15,28,17,.12);
  border-radius:28px;
  background:linear-gradient(135deg,rgba(0,119,58,.07),#fff 58%,rgba(253,239,66,.08));
  box-shadow:0 20px 52px rgba(15,28,17,.08);
}
.route-mini-list{
  display:grid;
  gap:.75rem;
  margin:1.2rem 0;
}
.route-mini-list div{
  display:grid;
  grid-template-columns:38px 1fr;
  column-gap:.75rem;
  align-items:center;
  padding:.8rem;
  border:1px solid rgba(15,28,17,.1);
  border-radius:18px;
  background:rgba(255,255,255,.78);
}
.route-summary-panel .route-mini-list > div > span{
  grid-row:span 2;
  display:inline-flex;
  width:34px;
  height:34px;
  align-items:center;
  justify-content:center;
  border-radius:50%;
  background:#006B3A;
  color:#fff !important;
  font-size:.72rem;
  font-weight:900;
}
.route-mini-list strong{
  color:#0F1C11 !important;
  line-height:1.25;
}
.route-mini-list small{
  color:rgba(15,28,17,.62) !important;
  line-height:1.35;
}
.category-grid{
  display:grid;
  grid-template-columns:repeat(4,minmax(0,1fr));
  gap:1rem;
  margin-top:1.5rem;
}
.category-card{
  min-height:230px;
  position:relative;
  overflow:hidden;
  border-radius:24px;
  border:1px solid rgba(15,28,17,.12);
  box-shadow:0 18px 44px rgba(15,28,17,.08);
}
.category-card img{
  width:100%;
  height:100%;
  position:absolute;
  inset:0;
  object-fit:cover;
  transition:transform .35s ease;
}
.category-card::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(2,15,10,.78),rgba(2,15,10,.08) 62%);
}
.category-card:hover img{
  transform:scale(1.05);
}
.category-card div{
  position:absolute;
  left:1rem;
  right:1rem;
  bottom:1rem;
  z-index:1;
}
.category-card span,
.category-card h3{
  color:#fff !important;
}
.category-card span{
  display:inline-flex;
  margin-bottom:.4rem;
  padding:.25rem .55rem;
  border-radius:999px;
  background:rgba(255,255,255,.16);
  font-size:.66rem;
  font-weight:900;
  text-transform:uppercase;
  letter-spacing:.08em;
}
.category-card h3{
  font-size:1.15rem;
  font-weight:900;
}
.benefit-grid{
  display:grid;
  grid-template-columns:1.1fr repeat(2,minmax(0,1fr));
  gap:1rem;
  align-items:stretch;
}
.premium-gallery{
  display:grid;
  grid-template-columns:repeat(5,minmax(0,1fr));
  gap:.9rem;
  margin-top:1.35rem;
}
.premium-gallery img{
  width:100%;
  height:230px;
  object-fit:cover;
  border-radius:22px;
  border:1px solid rgba(15,28,17,.12);
  box-shadow:0 16px 38px rgba(15,28,17,.08);
}
.premium-gallery img:first-child{
  grid-column:span 2;
}
.notice-card{
  margin-top:1.2rem;
  padding:1.15rem;
  border:1px solid rgba(0,107,58,.18);
  border-radius:20px;
  background:linear-gradient(135deg,rgba(0,119,58,.08),rgba(255,255,255,.96));
}
.notice-card strong{
  display:block;
  margin-bottom:.35rem;
  color:#005B32 !important;
}
.notice-card p{
  color:rgba(15,28,17,.7) !important;
  line-height:1.7;
}
.shopping-steps{
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
}
.hero-stats .hs-num{
  font-size:clamp(1.35rem,2.2vw,2.1rem) !important;
  letter-spacing:-.03em;
}
@media(max-width:1100px){
  .premium-split,
  .offer-card,
  .destination-card,
  .route-showcase{
    grid-template-columns:1fr;
  }
  .category-grid{
    grid-template-columns:repeat(2,minmax(0,1fr));
  }
  .premium-gallery{
    grid-template-columns:repeat(3,minmax(0,1fr));
  }
}
@media(max-width:768px){
  html,
  body{
    overflow-x:clip;
  }
  .announce{
    white-space:normal;
    line-height:1.45;
    padding-left:1rem;
    padding-right:1rem;
  }
  .nav-cta{
    display:none !important;
  }
  .nav-inner{
    padding:0 1rem !important;
  }
  .visual-page-hero .page-hero-content{
    width:auto !important;
    max-width:calc(100vw - 2.3rem) !important;
    margin-left:0 !important;
    margin-right:0 !important;
    box-sizing:border-box;
  }
  .visual-page-hero h1{
    max-width:min(330px,calc(100vw - 2.5rem)) !important;
    font-size:clamp(2.25rem,11vw,3rem) !important;
    overflow-wrap:break-word;
  }
  .visual-page-hero p{
    width:min(330px,calc(100vw - 2.5rem)) !important;
    max-width:min(330px,calc(100vw - 2.5rem)) !important;
    overflow-wrap:break-word;
  }
  .hero-badges{
    max-width:min(330px,calc(100vw - 2.5rem)) !important;
    gap:.5rem;
  }
  .hero-badges span{
    max-width:100%;
    font-size:.66rem;
    white-space:normal;
  }
  .visual-page-hero{
    min-height:310px;
    overflow:hidden;
  }
  .page > .section .hero-btns{
    animation:none !important;
  }
  .premium-split{
    padding:1rem;
    border-radius:24px;
  }
  .premium-image-stack,
  .offer-grid,
  .destination-grid,
  .route-card,
  .benefit-grid{
    grid-template-columns:1fr;
  }
  .route-grid-clean::before{
    display:none;
  }
  .route-summary-panel{
    position:static;
  }
  .category-grid,
  .premium-gallery{
    grid-template-columns:1fr;
  }
  .premium-gallery img,
  .category-card{
    height:240px;
  }
}

