/* ── PREMIUM REFRESH ── */
:root{--r20:20px;--line:rgba(15,28,17,.1);--premium-shadow:0 24px 80px rgba(15,28,17,.12);--paper:#F3F4EA;--paper2:#EAF2E6;--paper3:#FFF7D6;--cardTint:#FBFCF5}
body{background:linear-gradient(180deg,#EFF4EA 0%,#F7F2D8 34%,#EAF2E6 68%,#F3F4EA 100%)}
body::before{background-image:radial-gradient(circle at 18% 22%,rgba(0,119,58,.075) 0%,transparent 28%),radial-gradient(circle at 84% 18%,rgba(245,200,0,.12) 0%,transparent 24%),radial-gradient(circle at 88% 78%,rgba(204,33,40,.055) 0%,transparent 26%),linear-gradient(rgba(15,28,17,.025) 1px,transparent 1px),linear-gradient(90deg,rgba(15,28,17,.018) 1px,transparent 1px);background-size:auto,auto,auto,86px 86px,86px 86px}
.section{position:relative}
.section:nth-of-type(even){background:linear-gradient(180deg,rgba(234,242,230,.88),rgba(255,247,214,.34))}
.section:nth-of-type(odd){background:linear-gradient(180deg,rgba(243,244,234,.94),rgba(234,242,230,.52))}
.announce{background:#07120a;border-bottom:1px solid rgba(255,255,255,.08)}
.nav{min-height:74px;height:auto;background:rgba(239,244,234,.82);backdrop-filter:blur(24px);border-bottom:1px solid rgba(15,28,17,.08)}
.nav-inner{max-width:1240px;gap:1rem}
.nav-title{font-size:1.2rem}
.nav-links{gap:.25rem;background:rgba(251,252,245,.78);border:1px solid var(--line);border-radius:var(--rfull);padding:5px;box-shadow:0 10px 30px rgba(15,28,17,.04)}
.nav-link{padding:8px 12px;border-radius:var(--rfull);border-bottom:none;font-size:.76rem;font-weight:800}
.nav-link::after{display:none}
.nav-link:hover,.nav-link.active{background:var(--gl);color:var(--g)}
.nav-cta{background:var(--ink);padding:11px 20px;font-weight:900;box-shadow:0 18px 40px rgba(15,28,17,.18)}
.nav-cta:hover{background:var(--g);box-shadow:0 18px 46px rgba(0,119,58,.3)}
.label{padding:5px 14px;font-size:.66rem;font-weight:900;letter-spacing:.12em;border:1px solid rgba(0,119,58,.12)}
.h1{font-size:clamp(3rem,6vw,5.35rem);line-height:.98;letter-spacing:0}
.h2{font-size:clamp(2rem,4vw,3.05rem);line-height:1.04;letter-spacing:0}
.btn{font-size:.86rem;font-weight:900}
.hero{padding:6rem 1.5rem 4.5rem}
.hero-shell{max-width:1240px;grid-template-columns:minmax(0,1fr) 480px;gap:3.5rem}
.hero-h1{max-width:760px}
.hero-h1 small{font-size:.55em;margin-top:.5rem;color:rgba(255,255,255,.56)}
.hero-media{grid-template-rows:260px 205px;transform:rotate(.35deg)}
.hero-photo{border-radius:24px;border-color:rgba(255,255,255,.16)}
.hero-stats>div{border-radius:18px;background:rgba(255,255,255,.065)}
.stats-band{background:#07120a;padding:1.7rem 1.5rem;border-top:1px solid rgba(255,255,255,.08);border-bottom:1px solid rgba(255,255,255,.08)}
.premium-path{background:linear-gradient(135deg,#EFF4EA 0%,#FFF6D2 54%,#EAF2E6 100%);padding-top:4.8rem}
.path-head{display:flex;align-items:flex-end;justify-content:space-between;gap:1.5rem;margin-bottom:1.5rem}
.path-head .h2{max-width:780px}
.path-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:1.2rem;justify-content:center}
.path-card{background:linear-gradient(180deg,rgba(251,252,245,.96),rgba(238,245,234,.88));border:1px solid rgba(15,28,17,.12);border-radius:24px;padding:1.35rem;box-shadow:0 18px 45px rgba(15,28,17,.06);transition:transform .2s,box-shadow .2s,border-color .2s;text-align:center;display:flex;flex-direction:column;align-items:center}
.path-card:hover{transform:translateY(-5px);box-shadow:var(--premium-shadow);border-color:rgba(0,119,58,.24)}
.path-card span{display:inline-flex;width:34px;height:34px;align-items:center;justify-content:center;background:var(--ink);color:var(--y);border-radius:50%;font-size:.72rem;font-weight:900;margin-bottom:1rem}
.path-card h3{font-size:1.02rem;font-weight:900;margin-bottom:.35rem}
.path-card p{font-size:.84rem;color:var(--ink5);line-height:1.65}
.featured-moments{background:linear-gradient(180deg,#EAF2E6 0%,#F6F1DC 100%)}
.services-grid+.anything{display:block}
.svc-card,.actu-card,.pack-card,.source-panel,.admin-panel,.form-card,.lgt-card,.evt-card{border-radius:24px}
.svc-card,.actu-card,.card,.pack-card,.source-panel,.form-card,.admin-panel,.offre-card,.lgt-card,.evt-card,.ville-card,.amo-card,.stay-card{background:linear-gradient(180deg,rgba(251,252,245,.96),rgba(242,246,235,.9));border-color:rgba(15,28,17,.11)}
.svc-card.dark{background:linear-gradient(135deg,#07120a,#0f2618)}
.actu-card,.evt-card,.lgt-card{background:#F8FAF0}
.svc-card,.actu-card,.card,.pack-card,.source-panel,.form-card,.admin-panel{box-shadow:0 18px 50px rgba(15,28,17,.06)}
.svc-card:hover,.actu-card:hover,.pack-card:hover,.lgt-card:hover,.evt-card:hover{transform:translateY(-7px);box-shadow:var(--premium-shadow)}
.page-hero{padding:5rem 1.5rem 3.8rem}
.page-hero h1{font-size:clamp(2.35rem,4vw,3.65rem);letter-spacing:0}
.quick-links a{font-weight:900}

@media(max-width:1024px){
  .path-head{align-items:flex-start;flex-direction:column}
  .path-grid{grid-template-columns:1fr}
  .hero-shell{grid-template-columns:1fr;gap:2rem}
  .hero-media{max-width:760px}
  .feature-layout{grid-template-columns:1fr}
  .services-grid,.grid3{grid-template-columns:repeat(2,1fr)}
  .pack-grid{grid-template-columns:1fr}
  .stats-band-inner{grid-template-columns:repeat(2,1fr)}
  .footer-grid{grid-template-columns:1fr 1fr;gap:1.8rem}
}
@media(max-width:768px){
  .nav-links{display:none}.nav-ham{display:flex}
  .grid2{grid-template-columns:1fr}
  .hero{padding-top:5rem}
  .hero-stats{grid-template-columns:1fr 1fr}
  .hero-media{grid-template-columns:1fr;grid-template-rows:220px 150px 150px}
  .hero-photo.main-photo{grid-row:span 1}
  .moments-grid{grid-template-columns:1fr}
  .moment-card.large{grid-row:span 1;min-height:240px}
  .services-grid,.grid3{grid-template-columns:1fr}
  .grid4{grid-template-columns:repeat(2,1fr)}
  .actu-grid{grid-template-columns:1fr}
  .hero-gallery{grid-template-columns:repeat(3,1fr)}
  .offre-card{flex-direction:column}
  .footer-grid{grid-template-columns:1fr}
  .hero-stats{gap:1.5rem}
  .form-row{grid-template-columns:1fr}
  .admin-stats{grid-template-columns:1fr 1fr}
  .source-panel{grid-template-columns:1fr}
  .quick-links{grid-template-columns:1fr}
}
@media(max-width:480px){
  .grid4{grid-template-columns:1fr 1fr}
  .stats-band-inner{grid-template-columns:1fr 1fr}
  .hero-gallery{grid-template-columns:repeat(2,1fr)}
}

/* ── FRAMER SAAS + AFRO MODERN CULTURAL ── */
:root{
  --bg-dark:#060A0B;
  --bg-deep:#08120D;
  --panel-dark:#0D1713;
  --panel-soft:#101E18;
  --panel-line:rgba(255,255,255,.11);
  --txt-light:#F6FBF5;
  --txt-muted:rgba(246,251,245,.62);
  --accent-mint:#55E39B;
  --accent-gold:#FFD84D;
  --accent-red:#FF5964;
  --r10:10px;
  --r20:22px;
  --premium-shadow:0 28px 90px rgba(0,0,0,.28);
  --gl:rgba(85,227,155,.1);
  --yl:rgba(255,216,77,.14);
  --rl:rgba(255,89,100,.12);
}
body{
  background:
    radial-gradient(circle at 14% 7%,rgba(85,227,155,.16),transparent 27%),
    radial-gradient(circle at 82% 12%,rgba(255,216,77,.12),transparent 24%),
    radial-gradient(circle at 78% 78%,rgba(255,89,100,.08),transparent 26%),
    linear-gradient(180deg,var(--bg-dark) 0%,#0A1115 35%,var(--bg-deep) 100%);
  color:var(--txt-light);
}
body::before{
  background-image:
    linear-gradient(135deg,rgba(255,255,255,.035) 12.5%,transparent 12.5%,transparent 50%,rgba(255,255,255,.035) 50%,rgba(255,255,255,.035) 62.5%,transparent 62.5%,transparent),
    linear-gradient(45deg,rgba(255,216,77,.035) 12.5%,transparent 12.5%,transparent 50%,rgba(85,227,155,.035) 50%,rgba(85,227,155,.035) 62.5%,transparent 62.5%,transparent);
  background-size:96px 96px,96px 96px;
  opacity:.55;
}
.announce{
  background:linear-gradient(90deg,#07120A,#0B1C13 55%,#07120A);
  border-bottom:1px solid var(--panel-line);
}
.announce a{color:var(--accent-gold)}
.nav{
  top:0;
  width:100%;
  margin:0;
  min-height:64px;
  border:none;
  border-radius:0;
  border-bottom:1px solid rgba(15,28,17,.1);
  background:rgba(255,255,255,.97);
  box-shadow:0 2px 16px rgba(0,0,0,.07);
}
.nav-inner{padding:0 12px 0 20px}
.nav-title{color:var(--ink);font-family:var(--fb);font-weight:900;letter-spacing:-.03em}
.nav-title::first-letter{color:var(--g)}
.nav-sub{color:var(--ink5)}
.nav-links{
  background:rgba(15,28,17,.04);
  border-color:rgba(15,28,17,.1);
}
.nav-link{color:var(--ink8)}
.nav-link:hover,.nav-link.active{
  background:var(--gl);
  color:var(--g);
}
.nav-cta{
  background:var(--g);
  color:#fff;
  box-shadow:0 2px 12px rgba(0,119,58,.22);
}
.nav-cta:hover{
  background:var(--gd);
  color:#fff;
}
.lang-toggle{
  background:#fff;
  border-color:rgba(0,119,58,.32);
  color:var(--g);
  box-shadow:0 2px 10px rgba(15,28,17,.06);
}
.lang-toggle:hover{
  background:var(--gl);
  border-color:var(--g);
}
.mobile-menu{
  background:rgba(255,255,255,.99);
  border-top:1px solid rgba(15,28,17,.08);
}
.mobile-link{color:var(--ink8);border-bottom-color:rgba(15,28,17,.08)}
.mobile-link:hover{background:var(--gl);color:var(--g)}
.hero{
  min-height:calc(100vh - 64px);
  margin-top:0;
  padding-top:6rem;
  background:
    radial-gradient(circle at 18% 28%,rgba(85,227,155,.18),transparent 32%),
    radial-gradient(circle at 80% 22%,rgba(255,216,77,.13),transparent 26%),
    linear-gradient(135deg,#050807 0%,#07120D 48%,#0B1115 100%);
}
.hero::before{
  background:
    radial-gradient(ellipse 58% 68% at 10% 48%,rgba(85,227,155,.25),transparent 62%),
    radial-gradient(ellipse 44% 50% at 83% 16%,rgba(255,216,77,.18),transparent 56%),
    linear-gradient(135deg,rgba(6,10,11,.95),rgba(6,10,11,.64));
}
.hero::after{
  background-image:
    linear-gradient(135deg,rgba(255,255,255,.045) 12.5%,transparent 12.5%,transparent 50%,rgba(255,255,255,.045) 50%,rgba(255,255,255,.045) 62.5%,transparent 62.5%,transparent);
  background-size:110px 110px;
  opacity:.33;
}
.hero-shell{grid-template-columns:minmax(0,1fr) 430px}
.badge,.label-g{
  background:rgba(85,227,155,.1);
  border-color:rgba(85,227,155,.24);
  color:var(--accent-mint);
}
.hero-h1{
  font-family:var(--fb);
  font-size:clamp(3rem,6vw,5.7rem);
  line-height:.95;
  letter-spacing:-.055em;
}
.hero-h1 em{color:var(--accent-gold)}
.hero-p{color:var(--txt-muted)}
.btn-g{
  background:var(--accent-mint);
  color:#07120D;
  box-shadow:0 18px 42px rgba(85,227,155,.22);
}
.btn-g:hover{background:#78F0B1;color:#07120D}
.btn-out,.btn-outd{
  background:rgba(255,255,255,.055);
  color:#fff;
  border-color:var(--panel-line);
}
.btn-out:hover,.btn-outd:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.24)}
.hero-stats>div,
.hero-photo,
.temo-card{
  background:linear-gradient(180deg,rgba(255,255,255,.12),rgba(255,255,255,.045));
  border-color:var(--panel-line);
  backdrop-filter:blur(18px);
}
.hs-num,.sb-num{color:var(--accent-gold);font-family:var(--fb);letter-spacing:-.05em}
.hs-lbl,.sb-lbl{color:var(--txt-muted)}
.section,
.section:nth-of-type(even),
.section:nth-of-type(odd),
.featured-moments,
.premium-path{
  background:transparent;
}
.section{padding-top:6.2rem;padding-bottom:6.2rem}
.stats-band{
  background:linear-gradient(90deg,#07120A,#102119 50%,#07120A);
  border-top:1px solid var(--panel-line);
  border-bottom:1px solid var(--panel-line);
}
.stats-band-inner>div{
  padding:1rem;
  border-radius:18px;
  background:rgba(255,255,255,.045);
  border:1px solid var(--panel-line);
}
.h2,.h3,.path-card h3,.svc-title,.actu-title,.vc-name,.offre-info h4,.lgt-title,.evt-title,.pack-card h3,.stay-card strong{
  color:var(--txt-light);
}
.text-muted,
.path-card p,
.svc-card .svc-desc,
.actu-date,
.vc-info,
.offre-info p,
.lgt-loc,
.lgt-details,
.evt-loc,
.pack-card p,
.pack-card ul,
.stay-card p,
.fcheck label,
.step-d,
.info-box p,
.accordion-content,
.data-empty{
  color:var(--txt-muted);
}
.path-card,
.svc-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,.105),rgba(255,255,255,.045)),
    linear-gradient(135deg,rgba(85,227,155,.035),rgba(255,216,77,.025));
  border-color:var(--panel-line);
  box-shadow:0 22px 70px rgba(0,0,0,.16);
  backdrop-filter:blur(18px);
}
.path-card:hover,
.svc-card:hover,
.actu-card:hover,
.pack-card:hover,
.lgt-card:hover,
.evt-card:hover,
.card:hover,
.stay-card:hover{
  border-color:rgba(85,227,155,.34);
  box-shadow:0 30px 90px rgba(0,0,0,.28),0 0 0 1px rgba(85,227,155,.08);
}
.path-card span{
  background:var(--accent-mint);
  color:#07120D;
}
.svc-card.dark,
.card.dark{
  background:linear-gradient(135deg,#0C1812,#11261B);
}
.icon-box,.vc-icon,.amo-logo{
  background:rgba(85,227,155,.11);
  color:var(--accent-mint);
}
.ib-y{background:rgba(255,216,77,.13);color:var(--accent-gold)}
.ib-r{background:rgba(255,89,100,.12);color:var(--accent-red)}
.tag-g,.quick-links a,.evt-cat,.offre-tag{
  background:rgba(85,227,155,.11);
  color:var(--accent-mint);
  border:1px solid rgba(85,227,155,.16);
}
.tag-y,.offre-tag.y{background:rgba(255,216,77,.14);color:var(--accent-gold)}
.tag-r{background:rgba(255,89,100,.12);color:var(--accent-red)}
.actu-card,.evt-card,.lgt-card{background:linear-gradient(180deg,rgba(255,255,255,.105),rgba(255,255,255,.045))}
.actu-body,.evt-body,.lgt-body{background:transparent}
.feature-layout{
  border:1px solid var(--panel-line);
  border-radius:30px;
  padding:1.3rem;
  background:
    linear-gradient(135deg,rgba(85,227,155,.055),transparent 38%),
    rgba(255,255,255,.035);
}
.moment-card{border:1px solid var(--panel-line);box-shadow:0 28px 80px rgba(0,0,0,.25)}
.form-card input,
.finput,
.fselect,
.admin-input{
  background:rgba(255,255,255,.07);
  border-color:var(--panel-line);
  color:#fff;
}
.finput::placeholder{color:rgba(246,251,245,.34)}
.finput:focus,.fselect:focus,.admin-input:focus{
  background:rgba(255,255,255,.1);
  border-color:rgba(85,227,155,.44);
  box-shadow:0 0 0 4px rgba(85,227,155,.12);
}
.flabel,.pack-head,.admin-stat span{color:rgba(246,251,245,.48)}
.fsubmit,.admin-btn,.offre-cta{
  background:var(--accent-mint);
  color:#07120D;
  font-weight:900;
}
.fsubmit:hover,.admin-btn:hover,.offre-cta:hover{background:#78F0B1}
.accordion-head{background:rgba(255,255,255,.045);color:#fff}
.accordion-head:hover{background:rgba(255,255,255,.075)}
.tbl th{background:rgba(85,227,155,.11);color:var(--accent-mint)}
.tbl td{border-bottom-color:var(--panel-line);color:var(--txt-muted)}
.tbl tr:hover td{background:rgba(255,255,255,.045)}
.page-hero{
  background:#060A0B;
}
.page-hero::before{
  background:
    linear-gradient(135deg,rgba(6,10,11,.96),rgba(6,10,11,.72)),
    radial-gradient(ellipse 58% 80% at 8% 52%,rgba(85,227,155,.24),transparent 64%),
    radial-gradient(ellipse 42% 48% at 88% 18%,rgba(255,216,77,.13),transparent 54%);
}
footer{
  background:#050807;
  border-top:1px solid var(--panel-line);
}
footer::before{
  height:5px;
  background:linear-gradient(90deg,var(--g),var(--accent-gold),var(--accent-red),var(--g));
}
@media(max-width:768px){
  .hero{margin-top:0;padding-top:4rem}
  .hero-h1{letter-spacing:-.04em}
  .feature-layout{padding:0;border:none;background:transparent}
}

/* Contrast hardening across all pages */
:root{
  --surf:#0A1115;
  --wh:#0D1713;
  --ink:#07120D;
  --ink8:rgba(246,251,245,.82);
  --ink5:rgba(246,251,245,.62);
  --ink2:rgba(255,255,255,.11);
  --gd:#78F0B1;
  --gm:rgba(85,227,155,.22);
}
.page{
  background:
    radial-gradient(circle at 15% 8%,rgba(85,227,155,.09),transparent 24%),
    radial-gradient(circle at 88% 18%,rgba(255,216,77,.065),transparent 24%),
    linear-gradient(180deg,#060A0B 0%,#0A1115 48%,#07120D 100%);
}
.nav-ham{color:var(--ink)}
#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 18% 8%,rgba(85,227,155,.11),transparent 28%),
    linear-gradient(180deg,#07100F 0%,#0B1418 100%) !important;
}
.section .container{
  position:relative;
  z-index:1;
}
.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(17,31,25,.96),rgba(10,18,21,.94)),
    linear-gradient(135deg,rgba(85,227,155,.06),rgba(255,216,77,.025));
}
.svc-card.dark,
.card.dark{
  background:linear-gradient(135deg,#092015,#0D2A1B);
}
.svc-card .svc-title,
.svc-card.dark .svc-title,
.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{
  color:#F8FFF8;
}
.svc-card .svc-desc,
.svc-card.dark .svc-desc,
.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{
  color:rgba(246,251,245,.68);
}
.label-g{
  background:rgba(85,227,155,.12);
  color:#72F2AE;
}
.tag-g,
.tag-glow,
.evt-cat,
.offre-tag,
.quick-links a{
  background:rgba(85,227,155,.14);
  color:#72F2AE;
}
.tag-y,
.offre-tag.y{
  background:rgba(255,216,77,.16);
  color:#FFE06F;
}
.tag-r{color:#FF7A82}
.icon-box,
.vc-icon,
.amo-logo{
  background:rgba(85,227,155,.14);
}
.ib-y{background:rgba(255,216,77,.16)}
.ib-r{background:rgba(255,89,100,.14)}
.info-box.green,
.info-box.yellow,
.info-box.red,
.admin-notice{
  background:rgba(255,255,255,.055);
  color:rgba(246,251,245,.78);
}
.info-box strong,
.admin-notice strong{
  color:#fff;
}
.evt-date-badge{
  background:#F8FFF8;
  color:#07120D;
}
.fselect option{
  background:#0D1713;
  color:#F8FFF8;
}

/* Professional media placement */
.hero,
.hero::before,
.page-hero::before{
  background-image:none !important;
}
.hero{
  min-height:760px;
  background:
    radial-gradient(circle at 18% 28%,rgba(85,227,155,.18),transparent 32%),
    radial-gradient(circle at 80% 22%,rgba(255,216,77,.13),transparent 26%),
    linear-gradient(135deg,#050807 0%,#07120D 48%,#0B1115 100%) !important;
}
.hero::before{
  background:
    linear-gradient(135deg,rgba(5,8,7,.76),rgba(5,8,7,.28)),
    radial-gradient(ellipse 58% 72% at 8% 48%,rgba(85,227,155,.18),transparent 62%),
    radial-gradient(ellipse 42% 52% at 90% 18%,rgba(255,216,77,.12),transparent 56%) !important;
}
.page-hero::before{
  background:
    linear-gradient(135deg,rgba(5,8,7,.98),rgba(6,16,12,.84)),
    radial-gradient(ellipse 58% 80% at 8% 52%,rgba(85,227,155,.22),transparent 64%),
    radial-gradient(ellipse 42% 48% at 88% 18%,rgba(255,216,77,.13),transparent 54%) !important;
}
.hero-media{
  position:relative;
  grid-template-columns:1.12fr .88fr;
  grid-template-rows:210px 210px;
  gap:1rem;
  transform:none;
  padding:12px;
  border:1px solid var(--panel-line);
  border-radius:32px;
  background:linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));
  box-shadow:0 34px 100px rgba(0,0,0,.32);
}
.hero-media::before{
  content:'';
  position:absolute;
  inset:12px;
  border-radius:24px;
  border:1px solid rgba(255,255,255,.06);
  pointer-events:none;
}
.hero-photo{
  border-radius:22px;
  box-shadow:none;
  background:#0D1713;
}
.hero-photo.main-photo{
  grid-row:span 2;
}
.hero-photo img,
.moment-card img,
.actu-thumb img,
.evt-thumb img{
  object-position:center;
}
.hero-photo.main-photo img{
  object-position:center top;
}
.hero-photo:not(.main-photo) img[src$=".svg"]{
  object-fit:contain;
  padding:1.1rem;
  background:linear-gradient(135deg,rgba(85,227,155,.08),rgba(255,216,77,.08));
}
.hero-photo:not(.main-photo) img[src*="ugesm-hero"]{
  object-position:center;
}
.hero-photo::after{
  background:linear-gradient(to top,rgba(0,0,0,.72),rgba(0,0,0,.08) 62%);
}
.hero-photo span,
.moment-card strong,
.moment-card span{
  text-shadow:0 2px 16px rgba(0,0,0,.45);
}
.moments-grid{
  grid-template-columns:1.18fr .82fr;
  align-items:stretch;
}
.moment-card{
  border-radius:24px;
  min-height:210px;
}
.moment-card.large{
  min-height:430px;
}
.moment-card img[src$=".svg"]{
  object-fit:contain;
  padding:2rem;
  background:linear-gradient(135deg,rgba(85,227,155,.1),rgba(255,216,77,.08));
}
.actu-thumb,
.evt-thumb,
.lgt-thumb{
  background:
    radial-gradient(circle at 25% 20%,rgba(85,227,155,.13),transparent 34%),
    linear-gradient(135deg,#0A1410,#111A20);
}
.actu-thumb img[src$=".svg"],
.evt-thumb img[src$=".svg"]{
  object-fit:contain;
  padding:1.4rem;
}

/* Brand color signature */
.nav-title,
.footer-logo{
  display:inline-flex;
  align-items:baseline;
  font-family:var(--fb);
  font-weight:950;
  letter-spacing:-.04em;
  color:#fff;
  text-shadow:0 0 30px rgba(85,227,155,.16);
}
.brand-sen{color:var(--g)}
.brand-lik{color:#D6A800}
.brand-maroc{color:var(--r)}
.footer-logo{font-size:1.05rem}
.nav-cta{
  position:relative;
  overflow:hidden;
  background:
    linear-gradient(#F8FFF8,#F8FFF8) padding-box,
    linear-gradient(90deg,var(--accent-mint),var(--accent-gold),var(--accent-red)) border-box;
  border:2px solid transparent;
  color:#07120D;
}
.nav-cta::before{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(90deg,rgba(85,227,155,.18),rgba(255,216,77,.2),rgba(255,89,100,.14));
  opacity:0;
  transition:opacity .25s;
}
.nav-cta::after{
  content:'';
  position:absolute;
  left:16px;
  right:16px;
  bottom:7px;
  height:3px;
  border-radius:999px;
  background:linear-gradient(90deg,var(--g) 0 33%,var(--y) 33% 66%,var(--r) 66% 100%);
  transform:scaleX(.42);
  transform-origin:left;
  transition:transform .25s;
}
.nav-cta:hover{
  background:
    linear-gradient(#FFFFFF,#FFFFFF) padding-box,
    linear-gradient(90deg,var(--accent-mint),var(--accent-gold),var(--accent-red)) border-box;
  color:#07120D;
}
.nav-cta:hover::before{opacity:1}
.nav-cta:hover::after{transform:scaleX(1)}
.nav-cta{
  isolation:isolate;
}
.nav-cta{
  box-shadow:0 18px 46px rgba(0,0,0,.22),0 0 0 1px rgba(255,255,255,.08);
}
@media(max-width:1024px){
  .hero{min-height:auto}
  .hero-media{max-width:680px}
}
@media(max-width:768px){
  .hero-media{
    grid-template-columns:1fr;
    grid-template-rows:260px 190px 190px;
    padding:10px;
    border-radius:24px;
  }
  .hero-photo.main-photo{grid-row:span 1}
}

/* Typography and first-screen rhythm */
:root{
  --fd:var(--fb);
}
.h1,
.h2,
.page-hero h1{
  font-family:var(--fb);
  font-weight:900;
  letter-spacing:-.035em;
}
.h2,
.page-hero h1{
  letter-spacing:-.025em;
}
.hero{
  min-height:680px;
  padding-top:6.8rem;
  padding-bottom:2.6rem;
}
.hero-shell{
  align-items:center;
  gap:2.4rem;
}
.hero-h1{
  font-size:clamp(3.2rem,5.35vw,4.95rem);
  line-height:.94;
  margin-bottom:1rem;
  max-width:700px;
}
.hero-h1 small{
  font-family:var(--fb);
  font-size:.42em;
  line-height:1.15;
  letter-spacing:-.035em;
  font-style:italic;
  white-space:normal;
  margin-top:.65rem;
}
.hero-p{
  font-size:1rem;
  line-height:1.7;
  margin-bottom:1.7rem;
  max-width:560px;
}
.hero-btns{
  gap:.8rem;
}
.hero-stats{
  margin-top:1.8rem;
  padding-top:1.05rem;
  gap:.8rem;
}
.hero-stats>div{
  padding:.85rem 1rem;
}
.hs-num{
  font-size:2.1rem;
}
.hero-media{
  grid-template-rows:190px 190px;
}
.page-hero{
  padding:4.2rem 1.5rem 3rem;
}
.page-hero h1{
  font-size:clamp(2.2rem,4vw,3.35rem);
}
@media(max-width:1100px){
  .hero-shell{grid-template-columns:1fr}
  .hero-media{max-width:760px}
}
@media(max-width:768px){
  .hero{
    min-height:auto;
    padding-top:4rem;
  }
  .hero-h1{
    font-size:clamp(2.7rem,13vw,4rem);
  }
  .hero-stats{
    grid-template-columns:repeat(2,1fr);
  }
}

/* Homepage fold refinement */
.hero{
  min-height:620px;
  padding-top:5.9rem;
  padding-bottom:1.8rem;
}
.hero-shell{
  max-width:1320px;
  grid-template-columns:minmax(0,690px) minmax(390px,520px);
  justify-content:space-between;
  gap:3.2rem;
}
.hero-content{
  max-width:690px;
}
.hero-h1{
  font-size:clamp(3rem,4.8vw,4.45rem);
  line-height:.93;
  max-width:660px;
  margin-bottom:.75rem;
}
.hero-h1 small{
  font-size:.36em;
  margin-top:.55rem;
}
.hero-p{
  max-width:540px;
  margin-bottom:1.25rem;
}
.hero-btns{
  margin-bottom:0;
}
.hero-stats{
  margin-top:1.15rem;
  padding-top:.8rem;
}
.hero-media{
  justify-self:end;
  width:min(100%,520px);
  grid-template-rows:175px 175px;
}
.hero-photo span{
  bottom:.7rem;
  font-size:.7rem;
}
.badge{
  margin-bottom:.85rem;
}
@media(max-width:1180px){
  .hero-shell{
    grid-template-columns:minmax(0,1fr) 430px;
    gap:2rem;
  }
  .hero-media{
    width:430px;
    grid-template-rows:160px 160px;
  }
  .hero-h1{
    font-size:clamp(2.8rem,5vw,4rem);
  }
}
@media(max-width:980px){
  .hero-shell{
    grid-template-columns:1fr;
  }
  .hero-media{
    justify-self:start;
    width:min(100%,640px);
  }
}

/* City photo cards */
.ville-card{
  min-height:190px;
  display:flex;
  flex-direction:column;
  justify-content:flex-end;
  align-items:flex-start;
  text-align:left;
  padding:1rem;
  overflow:hidden;
  position:relative;
  isolation:isolate;
  background-image:var(--city-img);
  background-size:cover;
  background-position:center;
}
.ville-card::before{
  content:'';
  position:absolute;
  inset:0;
  z-index:-2;
  background-image:var(--city-img);
  background-size:cover;
  background-position:center;
  transform:scale(1.03);
  transition:transform .45s ease;
}
.ville-card::after{
  content:'';
  position:absolute;
  inset:0;
  z-index:-1;
  background:
    linear-gradient(to top,rgba(2,8,6,.88),rgba(2,8,6,.22) 62%,rgba(2,8,6,.08)),
    linear-gradient(135deg,rgba(0,119,58,.26),transparent 45%);
}
.ville-card:hover::before{
  transform:scale(1.1);
}
.ville-card .vc-icon{
  display:none;
}
.ville-card .vc-name{
  font-size:1.08rem;
  font-weight:950;
  color:#fff;
  text-shadow:0 2px 18px rgba(0,0,0,.55);
}
.ville-card .vc-info{
  color:rgba(255,255,255,.75);
  font-weight:700;
}
.ville-card .vc-badge{
  background:linear-gradient(90deg,var(--accent-mint),var(--accent-gold));
  color:#07120D;
}
.ville-card:nth-child(1){--city-img:url('https://commons.wikimedia.org/wiki/Special:FilePath/Hassan%20II%20Mosque%20-%20general%20framing%2C%20Casablanca%2C%20Morocco.jpg?width=900')}
.ville-card:nth-child(2){--city-img:url('https://commons.wikimedia.org/wiki/Special:FilePath/Hassan%20Tower.jpg?width=900')}
.ville-card:nth-child(3){--city-img:url('https://commons.wikimedia.org/wiki/Special:FilePath/Morocco%20-%20Fes%20-%20MedinaView.jpg?width=900')}
.ville-card:nth-child(4){--city-img:url('https://commons.wikimedia.org/wiki/Special:FilePath/Ancien%20Medina%2C%20Tangier%2C%20Morocco%20-%20panoramio.jpg?width=900')}
.ville-card:nth-child(5){--city-img:url('https://commons.wikimedia.org/wiki/Special:FilePath/Jemaa%20el-Fnaa%20at%20night.jpg?width=900')}
.ville-card:nth-child(6){--city-img:url('https://commons.wikimedia.org/wiki/Special:FilePath/OUJDA%20old%20medina.jpg?width=900')}
.ville-card:nth-child(7){--city-img:url('https://commons.wikimedia.org/wiki/Special:FilePath/Agadir%20Beach%20%2816749781061%29.jpg?width=900')}
.ville-card:nth-child(8){
  --city-img:linear-gradient(135deg,rgba(85,227,155,.28),rgba(255,216,77,.16),rgba(255,89,100,.18));
  border-style:dashed !important;
  opacity:1 !important;
}
@media(max-width:768px){
  .ville-card{
    min-height:170px;
  }
}

/* Achat & livraison Sénégal */
.invest-hero-panel{
  display:grid;
  grid-template-columns:1fr 520px;
  gap:2rem;
  align-items:center;
  border:1px solid var(--panel-line);
  border-radius:30px;
  padding:1.5rem;
  background:
    linear-gradient(135deg,rgba(85,227,155,.08),transparent 40%),
    linear-gradient(180deg,rgba(255,255,255,.08),rgba(255,255,255,.035));
}
.invest-photo-grid{
  display:grid;
  grid-template-columns:1.15fr .85fr;
  grid-template-rows:180px 180px;
  gap:.9rem;
}
.invest-photo,
.invest-thumb{
  background-image:var(--invest-img);
  background-size:cover;
  background-position:center;
  position:relative;
  overflow:hidden;
}
.invest-photo{
  border-radius:22px;
  border:1px solid var(--panel-line);
}
.invest-photo.large{grid-row:span 2}
.invest-photo::after,
.invest-thumb::after{
  content:'';
  position:absolute;
  inset:0;
  background:linear-gradient(to top,rgba(0,0,0,.68),transparent 60%);
}
.invest-photo span{
  position:absolute;
  left:1rem;
  bottom:.85rem;
  z-index:1;
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  font-size:.72rem;
  letter-spacing:.08em;
}
.invest-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1.2rem;
}
.invest-card{
  overflow:hidden;
  border:1px solid var(--panel-line);
  border-radius:24px;
  background:linear-gradient(180deg,rgba(17,31,25,.96),rgba(10,18,21,.94));
  box-shadow:0 22px 70px rgba(0,0,0,.16);
}
.invest-thumb{
  height:180px;
}
.invest-body{
  padding:1.25rem;
}
.invest-body h3{
  color:#fff;
  font-size:1.04rem;
  margin:.75rem 0 .45rem;
}
.invest-body p{
  color:rgba(246,251,245,.68);
  font-size:.84rem;
  line-height:1.65;
}
.bhs-panel{
  display:grid;
  grid-template-columns:.85fr 1.15fr;
  gap:1.2rem;
  margin-top:1.4rem;
  padding:1.3rem;
  border:1px solid rgba(255,216,77,.22);
  border-radius:24px;
  background:
    linear-gradient(135deg,rgba(255,216,77,.09),transparent 45%),
    rgba(255,255,255,.045);
}
.bhs-panel h3{
  color:#fff;
  font-size:1.25rem;
  margin-bottom:.55rem;
}
.bhs-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.75rem;
}
.bhs-mini{
  padding:1rem;
  border:1px solid var(--panel-line);
  border-radius:18px;
  background:rgba(5,8,7,.34);
}
.bhs-mini strong{
  display:block;
  color:#fff;
  font-size:.85rem;
  line-height:1.35;
}
.bhs-mini span{
  display:block;
  color:rgba(246,251,245,.65);
  font-size:.76rem;
  line-height:1.55;
  margin:.55rem 0;
}
.bhs-mini a{
  color:var(--accent-gold);
  font-weight:900;
  font-size:.78rem;
}
.shopping-steps{
  grid-template-columns:repeat(auto-fit,minmax(200px,1fr));
}
.student-photo-grid{
  display:grid;
  grid-template-columns:1.1fr .9fr;
  grid-template-rows:180px 180px;
  gap:.85rem;
  min-height:370px;
}
.student-photo{
  position:relative;
  overflow:hidden;
  border:1px solid var(--panel-line);
  border-radius:22px;
  background-image:linear-gradient(to top,rgba(0,0,0,.55),transparent),var(--student-img);
  background-size:cover;
  background-position:center;
}
.student-photo.large{grid-row:span 2}
.student-photo span{
  position:absolute;
  left:1rem;
  bottom:.9rem;
  color:#fff;
  font-weight:900;
  text-transform:uppercase;
  font-size:.72rem;
  letter-spacing:.08em;
}
.school-labels{
  display:flex;
  flex-wrap:wrap;
  gap:.65rem;
  margin:0 0 1.4rem;
}
.school-labels span{
  display:inline-flex;
  align-items:center;
  min-height:42px;
  padding:0 .95rem;
  border:1px solid var(--panel-line);
  border-radius:999px;
  background:linear-gradient(180deg,rgba(255,255,255,.105),rgba(255,255,255,.045));
  color:var(--txt-light);
  font-weight:900;
  font-size:.8rem;
  letter-spacing:.02em;
}
@media(max-width:1024px){
  .invest-hero-panel{grid-template-columns:1fr}
  .invest-photo-grid{max-width:640px}
  .student-photo-grid{
    max-width:640px;
    grid-template-columns:1fr;
    grid-template-rows:220px 160px 160px;
  }
  .student-photo.large{grid-row:span 1}
  .invest-grid{grid-template-columns:repeat(2,1fr)}
  .bhs-panel{grid-template-columns:1fr}
  .bhs-grid{grid-template-columns:1fr}
}
@media(max-width:768px){
  .invest-grid{grid-template-columns:1fr}
  .invest-photo-grid{grid-template-columns:1fr;grid-template-rows:220px 160px 160px}
  .student-photo-grid{grid-template-columns:1fr;grid-template-rows:220px 160px 160px}
  .invest-photo.large{grid-row:span 1}
  .student-photo.large{grid-row:span 1}
}

/* Logo mark and home alignment */
.nav-logo{
  width:44px;
  height:44px;
  border-radius:14px;
  flex-shrink:0;
  object-fit:contain;
  padding:3px;
  background:#fff;
  box-shadow:0 12px 30px rgba(0,0,0,.22),0 0 0 1px rgba(255,255,255,.18);
  transition:transform .25s ease;
}
.nav-brand:hover .nav-logo{
  transform:scale(1.05) rotate(-2deg);
}
.footer-logo-mark{
  width:54px;
  height:54px;
  border-radius:16px;
  object-fit:contain;
  padding:4px;
  background:#fff;
  box-shadow:0 14px 32px rgba(0,0,0,.18);
  display:block;
  margin-bottom:.75rem;
}
.nav-flag,
.footer-flag{
  display:none;
}
.container,
.hero-shell,
.nav-inner,
.footer-inner{
  max-width:1320px;
}
.premium-path{
  padding-top:4.6rem;
}
.path-head{
  align-items:flex-start;
}
.path-head .h2{
  max-width:820px;
}
.path-head .btn{
  margin-top:3.15rem;
}

/* Readability panels inside service cards */
.svc-content-panel{
  position:relative;
  z-index:1;
  margin-top:1rem;
  padding:1.18rem;
  border:1px solid rgba(15,28,17,.08);
  border-radius:18px;
  background:linear-gradient(180deg,rgba(255,255,255,.96),rgba(250,250,248,.94));
  color:var(--ink);
  box-shadow:0 14px 34px rgba(0,0,0,.12);
}
.svc-content-panel .svc-title,
.svc-card.dark .svc-content-panel .svc-title{
  color:#0F1C11;
  margin-bottom:.45rem;
  font-weight:800;
}
.svc-content-panel .svc-desc,
.svc-card.dark .svc-content-panel .svc-desc{
  color:rgba(15,28,17,.74);
  line-height:1.65;
}
.svc-content-panel .tag{
  margin-top:1rem;
}
.svc-content-panel .tag-g,
.svc-content-panel .tag-glow{
  background:rgba(0,119,58,.11);
  color:#006B34;
}
.svc-content-panel .tag-y{
  background:rgba(245,200,0,.18);
  color:#7A5A00;
}
.svc-content-panel .tag-r{
  background:rgba(204,33,40,.10);
  color:#A51B22;
}
.svc-card{
  display:flex;
  flex-direction:column;
}
.svc-card .svc-arrow{
  z-index:2;
}
@media(max-width:1024px){
  .path-head .btn{
    margin-top:0;
  }
}
@media(max-width:768px){
  .svc-content-panel{
    margin-top:.85rem;
    padding:1rem;
    border-radius:16px;
  }
}

/* Light readability refresh */
