:root{
  --brand-950:#0a0a0c;--brand-900:#131316;--brand-800:#131316;--brand-700:#e06f10;
  --gold-600:#f07c1a;--gold-500:#ff9b3f;--gold-300:#ffb26b;--gold-100:#f7efd7;
  --cream-100:#f8f6f0;--cream-200:#f1eee5;--white:#fff;
  --text-950:#131316;--text-700:#415b53;--text-500:#71837d;
  --success:#208b68;--warning:#e06f10;--error:#b84949;
  --line:#f1ede2;--shadow:0 24px 70px rgba(8,8,10,.1);--radius:24px;
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:90px}
body{font-family:Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif;color:var(--text-950);background:var(--cream-100);font-size:16px;line-height:1.6;-webkit-font-smoothing:antialiased}
body,button,input,select,textarea{font-family:inherit}
h1,h2,h3,h4,.brand,.ov-brand{font-family:Inter,system-ui,sans-serif;letter-spacing:-.035em}
a,button,input,select,summary{outline-offset:4px}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,summary:focus-visible{outline:3px solid var(--gold-500)}
.skip-link{position:fixed;left:16px;top:-80px;z-index:9999;background:#fff;color:var(--brand-950);padding:12px 18px;border-radius:10px;font-weight:700}
.skip-link:focus{top:16px}
.reveal,.reveal.visible{opacity:1!important;transform:none!important}
.btn{min-height:48px;border-radius:12px;display:inline-flex;align-items:center;justify-content:center;gap:10px;padding:12px 20px;font-weight:750;letter-spacing:-.01em;text-decoration:none;border:1px solid transparent;transition:transform .18s ease,background .18s ease,border-color .18s ease,box-shadow .18s ease;cursor:pointer}
.btn:hover{transform:translateY(-1px)}
.btn-primary{background:var(--brand-900);color:#fff;border-color:var(--brand-900);box-shadow:0 10px 28px rgba(8,8,10,.16)}
.btn-primary:hover{background:var(--brand-800);border-color:var(--brand-800)}
.btn-gold{background:var(--gold-500);color:var(--brand-950);border-color:var(--gold-500);box-shadow:0 12px 30px rgba(216,184,95,.2)}
.btn-gold:hover{background:var(--gold-300);border-color:var(--gold-300)}
.btn-secondary{background:#fff;color:var(--brand-900);border-color:#a8beb6}
.btn-secondary:hover{border-color:var(--brand-700);background:#f1ede2}
.btn-lg{min-height:56px;padding:15px 24px;font-size:1rem}.btn-block{width:100%}
.ov-link{color:var(--brand-700);font-weight:700;text-decoration:none}.ov-link:hover{text-decoration:underline}.ov-link--light{color:#fff}
.ov-kicker{margin:0 0 14px;text-transform:uppercase;letter-spacing:.14em;font-size:.75rem;font-weight:800;color:var(--brand-700)}
.ov-kicker--gold{color:var(--gold-300)}.ov-kicker--light{color:#b8d7cb}
.ov-center{text-align:center}.ov-section{width:min(1180px,calc(100% - 40px));margin:0 auto;padding:104px 0}
.ov-section__heading{max-width:720px;margin-bottom:48px}.ov-section__heading--center{text-align:center;margin-left:auto;margin-right:auto}
.ov-section__heading h2{font-size:clamp(2rem,4vw,3.35rem);line-height:1.08;margin:0 0 18px;color:var(--text-950)}
.ov-section__heading>p:last-child{font-size:1.08rem;color:var(--text-700);margin:0;max-width:680px}

/* Header */
.ov-header{position:fixed;z-index:1000;top:0;left:0;right:0;height:76px;padding:0 max(24px,calc((100vw - 1380px)/2));display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:34px;color:#fff;border-bottom:1px solid rgba(255,255,255,.13);transition:background .2s ease,box-shadow .2s ease,color .2s ease}
.ov-header.is-scrolled,body:not(.ov-home) .ov-header{background:rgba(255,255,255,.96);color:var(--text-950);box-shadow:0 8px 30px rgba(8,8,10,.08);backdrop-filter:blur(14px);border-color:rgba(8,8,10,.08)}
.ov-brand{display:inline-flex;align-items:center;gap:10px;color:inherit;text-decoration:none;font-size:1.24rem;font-weight:800;letter-spacing:-.04em;white-space:nowrap}
.ov-brand>b,.ov-brand span>b{color:var(--gold-500)}
.ov-brand--image{position:relative;width:218px;height:54px;max-width:218px;max-height:54px;flex:0 0 218px;display:flex;align-items:center;overflow:hidden}
.ov-brand__visual{display:block;width:100%;height:100%;max-width:218px;max-height:54px;background:url("/images/brand/omravisa-logo-header-light-v1.png") center/contain no-repeat}
.ov-brand__fallback{display:none}
.ov-header.is-scrolled .ov-brand__visual,body:not(.ov-home) .ov-header .ov-brand__visual,.ov-brand--static .ov-brand__visual{background-image:url("/images/brand/omravisa-logo-header-v1.png")}
.ov-brand__mark{width:30px;height:34px;border:2px solid currentColor;border-radius:10px 10px 8px 8px;position:relative;display:inline-block}
.ov-brand__mark::before{content:"";position:absolute;left:6px;right:6px;top:-7px;height:12px;border:2px solid currentColor;border-bottom:0;border-radius:50% 50% 0 0}
.ov-brand__mark>span{position:absolute;width:5px;height:5px;background:var(--gold-500);border-radius:50%;left:50%;top:17px;transform:translate(-50%,-50%)}
.nav-links{display:flex;align-items:center;justify-content:flex-end;gap:28px}.nav-links a{color:inherit;text-decoration:none;font-size:.92rem;font-weight:600;white-space:nowrap}.nav-links a:hover{color:var(--gold-500)}
.nav-follow{padding-left:28px;border-left:1px solid currentColor}.nav-cta{min-height:44px;padding:10px 16px;font-size:.9rem}.menu-toggle{display:none;background:transparent;border:0;width:46px;height:46px;padding:11px}.menu-toggle span{display:block;width:22px;height:2px;margin:5px auto;background:currentColor;border-radius:2px}

/* Hero */
.ov-hero{min-height:760px;background:linear-gradient(100deg,rgba(5,28,23,.97) 0%,rgba(5,28,23,.88) 30%,rgba(5,28,23,.55) 58%,rgba(7,33,27,.38) 100%),url(../images/omravisa-hero.webp) right center/cover no-repeat,var(--brand-950);padding:150px max(30px,calc((100vw - 1240px)/2)) 90px;color:#fff;display:grid;grid-template-columns:minmax(0,1.05fr) minmax(420px,.95fr);gap:84px;align-items:center;position:relative;overflow:hidden}
.ov-hero::before{content:"";position:absolute;inset:auto auto -280px -160px;width:660px;height:660px;border:1px solid rgba(216,184,95,.14);border-radius:50%}
.ov-hero::after{content:"";position:absolute;inset:0;background:linear-gradient(115deg,transparent 55%,rgba(255,255,255,.025));pointer-events:none}
.ov-hero__copy,.ov-product-preview{position:relative;z-index:1}.ov-hero h1{font-size:clamp(2.8rem,5.3vw,5.15rem);line-height:.99;margin:0 0 28px;max-width:760px}.ov-hero h1 span{color:var(--gold-300)}
.ov-hero__lead{font-size:clamp(1.05rem,1.6vw,1.25rem);line-height:1.72;color:#f1ede2;max-width:680px;margin:0 0 34px}.ov-hero__actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap}
.ov-microproof{display:flex;flex-wrap:wrap;gap:18px;margin:24px 0 12px;color:#f1ede2;font-size:.86rem}.ov-microproof span{display:flex;align-items:center;gap:8px}.ov-microproof span::before{content:"✓";color:var(--gold-300);font-weight:800}
.ov-private-note{font-size:.8rem;color:#9fb7ae;margin:0}
.ov-product-preview{background:#fff;color:var(--text-950);border:1px solid rgba(255,255,255,.28);border-radius:26px;box-shadow:0 38px 90px rgba(0,0,0,.32);overflow:hidden;transform:rotate(1deg)}
.ov-product-preview__bar{height:64px;display:flex;align-items:center;justify-content:space-between;padding:0 24px;background:#f1ede2;border-bottom:1px solid var(--line);font-size:.78rem}.ov-product-preview__bar span{font-weight:700}.ov-product-preview__bar i{display:inline-block;width:8px;height:8px;background:var(--success);border-radius:50%;margin-right:8px}.ov-product-preview__bar small{color:var(--text-500)}
.ov-product-preview__body{display:grid;grid-template-columns:1fr 1.06fr;gap:22px;padding:26px}.ov-document-demo{min-height:236px;background:#f1ede2;border:1px solid #f1ede2;border-radius:16px;position:relative;padding:27px 20px 20px 104px;overflow:hidden}
.ov-document-demo__photo{position:absolute;left:20px;top:29px;width:68px;height:90px;background:linear-gradient(#c1d1cb,#91aaa0);border-radius:8px}.ov-document-demo__line{height:8px;background:#bdccc6;border-radius:4px;display:block;margin-bottom:12px}.ov-document-demo .line-1{width:85%}.ov-document-demo .line-2{width:70%}.ov-document-demo .line-3{width:92%}.ov-document-demo__mrz{position:absolute;left:20px;right:20px;bottom:24px;height:32px;background:repeating-linear-gradient(90deg,#60786f 0 2px,transparent 2px 5px);opacity:.45}.ov-document-demo>i{position:absolute;left:0;right:0;top:48%;height:2px;background:linear-gradient(90deg,transparent,var(--success),transparent);box-shadow:0 0 14px var(--success)}
.ov-preview-checks{display:flex;flex-direction:column;gap:10px}.ov-preview-checks p{position:relative;margin:0;padding:12px 12px 12px 46px;border:1px solid var(--line);border-radius:12px}.ov-preview-checks p>span{position:absolute;left:13px;top:14px;width:24px;height:24px;border-radius:50%;display:grid;place-items:center;background:#f1ede2;color:var(--success);font-size:.75rem;font-weight:800}.ov-preview-checks b,.ov-preview-checks small{display:block}.ov-preview-checks b{font-size:.83rem}.ov-preview-checks small{font-size:.7rem;color:var(--text-500)}.ov-preview-checks .is-current{border-color:#91b8aa;background:#f1ede2}.ov-preview-checks .is-current>span{background:var(--brand-900);color:#fff}
.ov-product-preview__result{margin:0 26px 26px;padding:16px 18px;background:var(--gold-100);border:1px solid var(--gold-300);border-radius:14px;display:grid;grid-template-columns:auto 1fr auto;gap:13px;align-items:center}.ov-product-preview__result>span{width:34px;height:34px;border-radius:10px;background:#fff;display:grid;place-items:center;color:var(--brand-700)}.ov-product-preview__result p{margin:0}.ov-product-preview__result small,.ov-product-preview__result strong{display:block}.ov-product-preview__result small{font-size:.7rem;color:#796430}.ov-product-preview__result strong{font-size:.85rem}

/* Home sections */
.ov-reassurance{background:#fff;border-bottom:1px solid var(--line);display:grid;grid-template-columns:repeat(4,1fr);padding:22px max(30px,calc((100vw - 1180px)/2));gap:18px}.ov-reassurance>div{display:flex;align-items:center;gap:13px;padding:6px 16px;border-right:1px solid var(--line)}.ov-reassurance>div:last-child{border:0}.ov-reassurance>div>span{width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#f1ede2;color:var(--brand-700);font-weight:800}.ov-reassurance p{margin:0}.ov-reassurance strong,.ov-reassurance small{display:block}.ov-reassurance strong{font-size:.86rem}.ov-reassurance small{font-size:.72rem;color:var(--text-500)}
.ov-diagnostic__steps{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-bottom:38px}.ov-diagnostic__steps article{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px;display:flex;gap:20px;min-height:180px}.ov-diagnostic__steps article>span{font-weight:800;color:var(--brand-700);font-size:.8rem}.ov-diagnostic__steps h3{font-size:1.15rem;line-height:1.3;margin:0 0 10px}.ov-diagnostic__steps p{font-size:.92rem;color:var(--text-700);margin:0}
.ov-offers{padding-top:110px}.ov-offer-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.ov-offer-card{background:#fff;border:1px solid var(--line);border-radius:24px;padding:34px;display:flex;flex-direction:column;box-shadow:0 14px 48px rgba(8,8,10,.05)}.ov-offer-card--express{border:2px solid var(--brand-700)}.ov-offer-card header{display:flex;gap:16px;align-items:center;padding-bottom:25px;border-bottom:1px solid var(--line)}.ov-offer-icon{width:48px;height:48px;display:grid;place-items:center;border-radius:14px;background:#f1ede2;color:var(--brand-700);font-size:1.2rem}.ov-offer-card header small{color:var(--text-500);font-size:.78rem}.ov-offer-card h3{font-size:1.55rem;margin:2px 0 0}.ov-price{display:flex;align-items:baseline;gap:12px;margin:27px 0 12px}.ov-price strong{font-size:2.65rem;letter-spacing:-.06em}.ov-price span{color:var(--text-500);font-size:.8rem}.ov-offer-card>p{color:var(--text-700);margin:0 0 18px}.ov-offer-card ul{padding:0;margin:0 0 28px;list-style:none;display:grid;gap:13px;flex:1}.ov-offer-card li{display:flex;gap:11px;color:var(--text-700);font-size:.91rem}.ov-offer-card li span{color:var(--success);font-weight:800}.ov-offers__note{text-align:center;color:var(--text-500);font-size:.78rem;margin:20px auto;max-width:820px}.ov-comparison-link{display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:14px;padding:18px 22px;margin-top:24px;border:1px solid var(--line);border-radius:16px;background:#fff;color:var(--text-950);text-decoration:none}.ov-comparison-link>span{width:34px;height:34px;display:grid;place-items:center;border-radius:50%;background:var(--brand-900);color:#fff;font-weight:800}.ov-comparison-link p{margin:0}.ov-comparison-link strong,.ov-comparison-link small{display:block}.ov-comparison-link small{color:var(--text-500);margin-top:2px}.ov-comparison-link>b{font-size:1.3rem;color:var(--brand-700)}
.ov-service-section{background:var(--brand-900);color:#fff}.ov-service-section .ov-section__heading h2{color:#fff}.ov-service-timeline{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(5,1fr);gap:0}.ov-service-timeline li{position:relative;padding:0 20px;text-align:center}.ov-service-timeline li:not(:last-child)::after{content:"";position:absolute;left:62%;right:-38%;top:24px;height:1px;background:#446f62}.ov-service-timeline li>span{position:relative;z-index:1;width:48px;height:48px;border-radius:50%;display:grid;place-items:center;margin:0 auto 20px;background:var(--brand-800);border:1px solid #719589;color:var(--gold-300);font-weight:800}.ov-service-timeline h3{font-size:1rem;margin:0 0 8px;color:#fff}.ov-service-timeline p{font-size:.8rem;color:#bcd0c9;margin:0}
.ov-security{display:grid;grid-template-columns:.9fr 1.1fr;gap:90px;align-items:center}.ov-security__panel{background:var(--gold-100);border:1px solid var(--gold-300);border-radius:24px;padding:42px}.ov-security__panel h2{font-size:clamp(2rem,3.6vw,3rem);line-height:1.08;margin:0 0 18px}.ov-security__panel>p:not(.ov-kicker){color:var(--text-700);margin-bottom:24px}.ov-security__list{display:grid;gap:0}.ov-security__list>div{display:flex;gap:16px;padding:18px 0;border-bottom:1px solid var(--line)}.ov-security__list>div>span{width:32px;height:32px;flex:0 0 auto;border-radius:10px;background:#f1ede2;color:var(--success);display:grid;place-items:center;font-weight:800}.ov-security__list p{margin:0}.ov-security__list strong,.ov-security__list small{display:block}.ov-security__list small{color:var(--text-500)}
.ov-human{width:min(1180px,calc(100% - 40px));margin:0 auto 104px;background:#fff;border:1px solid var(--line);border-radius:28px;padding:54px;display:grid;grid-template-columns:.75fr 1.25fr;gap:70px;align-items:center;box-shadow:var(--shadow)}.ov-human h2{font-size:clamp(2rem,3.8vw,3rem);line-height:1.08;margin:0 0 18px}.ov-human p:not(.ov-kicker){color:var(--text-700)}.ov-human__visual{display:flex;align-items:center;justify-content:center}.ov-human__visual span{width:64px;height:64px;border-radius:18px;display:grid;place-items:center;background:#f1ede2;color:var(--brand-700);font-weight:800}.ov-human__visual i{width:48px;height:1px;background:#9eb9af}.ov-human__visual .is-human{background:var(--brand-900);color:var(--gold-300)}
.ov-faq{display:grid;grid-template-columns:.72fr 1.28fr;gap:80px;align-items:start}.ov-faq .ov-section__heading{position:sticky;top:110px}.ov-faq__list{display:grid;gap:10px}.ov-faq details{background:#fff;border:1px solid var(--line);border-radius:14px;padding:0 20px}.ov-faq summary{min-height:64px;display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer;font-weight:700;list-style:none}.ov-faq summary::-webkit-details-marker{display:none}.ov-faq summary span{font-size:1.25rem;color:var(--brand-700);transition:transform .2s}.ov-faq details[open] summary span{transform:rotate(45deg)}.ov-faq details p{margin:0 0 20px;color:var(--text-700);font-size:.92rem}
.ov-final-cta{background:var(--brand-950);color:#fff;padding:70px max(30px,calc((100vw - 1180px)/2));display:flex;align-items:center;justify-content:space-between;gap:60px}.ov-final-cta h2{font-size:clamp(2rem,4vw,3.4rem);line-height:1.05;margin:0 0 12px}.ov-final-cta p:not(.ov-kicker){margin:0;color:#f1ede2}.ov-final-cta>div:last-child{display:flex;flex-direction:column;align-items:center;gap:10px;flex:0 0 auto}.ov-final-cta small{color:#b6cac2}

/* Footer */
.ov-footer{background:#131316;color:#f1ede2;padding:72px max(30px,calc((100vw - 1180px)/2)) 26px}.ov-footer a{color:inherit;text-decoration:none}.ov-footer a:hover{color:#fff}.ov-footer__main{display:grid;grid-template-columns:1.6fr repeat(3,1fr);gap:50px;padding-bottom:44px}.ov-footer__main>div:not(.ov-footer__brand){display:flex;flex-direction:column;gap:10px}.ov-footer strong{color:#fff}.ov-footer__main>div>strong{font-size:.82rem;text-transform:uppercase;letter-spacing:.1em;margin-bottom:8px}.ov-footer__main a{font-size:.88rem}.ov-brand--light{color:#fff}.ov-footer__brand p{max-width:330px;font-size:.9rem}.ov-footer__brand>a:last-child{font-weight:700;color:var(--gold-300)}.ov-footer__company{border-top:1px solid #131316;border-bottom:1px solid #131316;padding:24px 0;display:flex;justify-content:space-between;gap:40px}.ov-footer__company p{font-size:.78rem;max-width:760px;margin:0}.ov-footer__bottom{display:flex;justify-content:space-between;gap:20px;padding-top:24px;color:#8fa9a0;font-size:.74rem}

/* Flow common */
.flow-body{background:linear-gradient(145deg,#f1ede2 0%,var(--cream-100) 65%,#f1ede2 100%);min-height:100vh}.flow-nav{height:76px!important;background:#fff!important;border-bottom:1px solid var(--line)!important;padding:0 max(20px,calc((100vw - 1260px)/2))!important;color:var(--text-950)!important}.flow-main{width:min(1280px,calc(100% - 32px));margin:0 auto;padding:38px 0 70px!important;min-height:calc(100vh - 76px)}
.secure-pill{background:#f1ede2!important;border-color:#f1ede2!important;color:var(--brand-900)!important}.secure-pill__pulse{background:var(--success)!important}.flow-help{color:var(--text-700)!important}.flow-help small{color:var(--text-500)!important}
.flow-progress-shell{margin:0 auto 28px;max-width:1160px}.flow-progress-mobile{display:none}.flow-steps{display:grid!important;grid-template-columns:auto 1fr auto 1fr auto 1fr auto 1fr auto!important;align-items:center!important;gap:10px!important}.flow-steps>div{min-width:112px!important;display:flex!important;align-items:center!important;gap:8px!important}.flow-steps>div span{width:34px!important;height:34px!important;flex:0 0 34px!important;background:#fff!important;border:1px solid #f1ede2!important;color:var(--text-500)!important;box-shadow:none!important}.flow-steps>div b{font-size:.76rem!important;color:var(--text-500)!important;white-space:nowrap}.flow-steps>div.active span,.flow-steps>div.done span{background:var(--brand-900)!important;color:#fff!important;border-color:var(--brand-900)!important}.flow-steps>div.active b,.flow-steps>div.done b{color:var(--text-950)!important}.flow-steps>i{height:1px!important;background:#f1ede2!important}.flow-steps>i.done{background:var(--brand-700)!important}
.flow-step-assurance{margin-top:18px!important;background:#fff!important;border:1px solid var(--line)!important;box-shadow:none!important;border-radius:14px!important;padding:14px 18px!important}.flow-step-assurance__icon{width:34px!important;height:34px!important;display:grid!important;place-items:center!important;background:#f1ede2!important;color:var(--success)!important;border-radius:10px!important}.flow-step-assurance__copy strong{font-size:.82rem!important}.flow-step-assurance__copy small{font-size:.74rem!important}.flow-step-assurance__state{font-size:.72rem!important;color:var(--text-500)!important}
.flow-card,.pf-capture,.vf-shell,.status-shell,.ad-shell{border:1px solid var(--line)!important;box-shadow:0 24px 70px rgba(8,8,10,.08)!important}.flow-card{border-radius:22px!important}.flow-heading h1,.pf-capture__intro h1,.vf-head h1,.ad-head h1{letter-spacing:-.045em!important}.flow-heading p,.pf-capture__intro p,.vf-head p,.ad-head p{color:var(--text-700)!important}.flow-kicker{color:var(--brand-700)!important}.data-form label{font-size:.84rem!important;font-weight:700!important}.data-form input,.vf-grid input,.vf-grid select{min-height:50px!important;font-size:16px!important;border-color:#bccdc6!important;border-radius:11px!important}.data-form input:focus,.vf-grid input:focus,.vf-grid select:focus{border-color:var(--brand-700)!important;box-shadow:0 0 0 3px rgba(23,97,79,.12)!important}
.flow-footer{background:transparent!important}.flow-proof-strip{max-width:1160px!important;background:#fff!important;border:1px solid var(--line)!important;border-radius:18px!important}.proof-icon{width:34px;height:34px;border-radius:10px;background:#f1ede2;color:var(--brand-700);display:grid;place-items:center;font-weight:800}.flow-legal{max-width:1160px!important;color:var(--text-500)!important}.flow-legal a{color:var(--text-700)!important}

/* Existing tunnel improvements */
.pf-capture__intro .flow-kicker::after,.vf-head .flow-kicker::after{content:" sur 5"}.pf-capture__intro .flow-kicker,.vf-head .flow-kicker{font-size:0!important}.pf-capture__intro .flow-kicker::before{content:"Étape 1";font-size:.75rem}.vf-head .flow-kicker::before{content:"Étape 2";font-size:.75rem}.pf-capture__intro .flow-kicker::after,.vf-head .flow-kicker::after{font-size:.75rem}
.pf-drop{background:#f1ede2!important;border-color:#91afa4!important;border-radius:18px!important}.pf-drop:hover{background:#f1ede2!important;border-color:var(--brand-700)!important}.pf-drop__hint,.pf-tips,.pf-security{font-size:.8rem!important}.pf-consent{font-size:.86rem!important;line-height:1.55!important}.pf-consent input{width:20px!important;height:20px!important}.pf-loading__steps span{font-size:.7rem!important}.pf-preview img{object-fit:contain!important}.pf-preview__scan{background:linear-gradient(90deg,transparent,rgba(104,255,205,.95),transparent)!important;height:2px!important;box-shadow:0 0 16px #5effc7!important}
.vf-form label{font-size:.8rem!important}.vf-form__title p{font-size:.8rem!important}.vf-head__status{font-size:.76rem!important}.vf-passport img{object-fit:contain!important;max-height:100%!important}.vf-warning{background:#fff7e6!important;color:#78531f!important;border:1px solid #e9c87d!important}.vf-form-step .btn{font-size:1rem!important}.not-eligible{color:var(--text-700)!important;background:#f1ede2!important;border-color:var(--line)!important}.choice-card.disabled{opacity:.68!important}.choice-card.disabled::after{content:"Ce parcours n’est pas recommandé pour votre profil";display:block;margin-top:14px;color:var(--text-700);font-size:.78rem}.choice-card{border-radius:20px!important}.choice-card.recommended{border:2px solid var(--brand-700)!important}.recommend-tag{background:var(--brand-700)!important}.choice-price strong{font-size:2.4rem!important}.offer-compare-list li{grid-template-columns:84px 1fr!important;font-size:.83rem!important}.legal-note{font-size:.75rem!important;line-height:1.55!important}
.checkout-layout{align-items:start!important}.order-summary{border:1px solid var(--line)!important;border-radius:20px!important;box-shadow:0 18px 50px rgba(8,8,10,.07)!important}.payment-security{font-size:.73rem!important}.payment-consents label{font-size:.84rem!important;line-height:1.5!important}.payment-consents input{width:20px!important;height:20px!important;flex:0 0 auto}
.status-shell{background:#fff!important;border-radius:24px!important;padding:38px!important}.status-head h1{font-size:clamp(2rem,4vw,3.1rem)!important}.status-details>div{background:#f1ede2!important;border:1px solid var(--line)!important}.status-help{font-size:.86rem!important}.documents-callout,.action-alert,.visa-ready{border-radius:18px!important}.documents-callout h2,.visa-ready h2{font-size:1.35rem!important}

@media (max-width:1100px){
  .ov-header{gap:18px}.ov-brand--image{width:190px;height:47px;max-width:190px;max-height:47px;flex-basis:190px}.ov-brand__visual{max-width:190px;max-height:47px}.nav-links{gap:16px}.nav-links a{font-size:.8rem}.nav-follow{padding-left:16px}
  .ov-hero{grid-template-columns:1fr 420px;gap:42px}.ov-product-preview__body{grid-template-columns:1fr}.ov-document-demo{min-height:180px}.ov-preview-checks{display:none}
  .ov-service-timeline{grid-template-columns:repeat(3,1fr);row-gap:34px}.ov-service-timeline li::after{display:none}
  .ov-footer__main{grid-template-columns:1.4fr repeat(3,1fr);gap:28px}
  .flow-steps>div b{display:none}.flow-steps>div{min-width:auto!important}
}
@media (max-width:900px){
  .ov-header{height:68px;grid-template-columns:auto 1fr auto;padding:0 18px;background:rgba(8,8,10,.97)}.ov-header.is-scrolled,body:not(.ov-home) .ov-header{background:rgba(255,255,255,.97)}
  .menu-toggle{display:block;justify-self:end;color:inherit}.nav-cta{display:none}.nav-links{display:none;position:absolute;left:12px;right:12px;top:74px;background:#fff;color:var(--text-950);border:1px solid var(--line);border-radius:16px;padding:12px;box-shadow:var(--shadow);align-items:stretch}.nav-links.open{display:flex;flex-direction:column;gap:0}.nav-links a{font-size:1rem;padding:13px 12px;border-bottom:1px solid #f1ede2}.nav-links a:last-child{border:0}.nav-follow{padding-left:12px}
  .ov-hero{min-height:auto;padding:120px 24px 70px;grid-template-columns:1fr;gap:50px;background:linear-gradient(180deg,rgba(5,28,23,.93) 0%,rgba(5,28,23,.8) 55%,rgba(5,28,23,.62) 100%),url(../images/omravisa-hero.webp) 68% center/cover no-repeat,var(--brand-950)}.ov-hero__copy{max-width:720px}.ov-product-preview{max-width:620px;width:100%;margin:auto;transform:none}
  .ov-reassurance{grid-template-columns:repeat(2,1fr);padding:20px}.ov-reassurance>div:nth-child(2){border-right:0}
  .ov-diagnostic__steps{grid-template-columns:1fr}.ov-diagnostic__steps article{min-height:auto}.ov-offer-grid{grid-template-columns:1fr}.ov-security{grid-template-columns:1fr;gap:30px}.ov-human{grid-template-columns:1fr;gap:36px}.ov-faq{grid-template-columns:1fr;gap:20px}.ov-faq .ov-section__heading{position:static}.ov-footer__main{grid-template-columns:repeat(2,1fr)}.ov-footer__brand{grid-column:1/-1}.ov-footer__company{flex-direction:column;gap:10px}.ov-final-cta{align-items:flex-start;flex-direction:column}
  .flow-nav{height:68px!important}.flow-main{padding-top:24px!important}.flow-help small,.secure-pill__copy small{display:none!important}.flow-progress-shell{margin-bottom:20px}.flow-step-assurance__state{display:none!important}
}
@media (max-width:620px){
  body{font-size:16px}.ov-section{width:min(100% - 28px,1180px);padding:72px 0}.ov-section__heading{margin-bottom:32px}.ov-section__heading h2{font-size:2.05rem}.ov-section__heading>p:last-child{font-size:1rem}
  .ov-brand{font-size:1.08rem}.ov-brand--image{width:170px;height:42px;max-width:170px;max-height:42px;flex-basis:170px}.ov-brand__visual{max-width:170px;max-height:42px}.ov-brand__mark{width:26px;height:30px}.ov-header{height:64px}.nav-links{top:70px}
  .ov-hero{padding:102px 18px 54px}.ov-hero h1{font-size:2.55rem;line-height:1.02}.ov-hero__lead{font-size:1rem;line-height:1.58}.ov-hero__actions{align-items:stretch;flex-direction:column;gap:14px}.ov-hero__actions .btn{width:100%}.ov-link--light{text-align:center}.ov-microproof{display:grid;grid-template-columns:1fr 1fr;gap:9px 14px;font-size:.74rem}.ov-private-note{font-size:.74rem}
  .ov-product-preview__bar{height:52px;padding:0 14px}.ov-product-preview__body{padding:14px}.ov-document-demo{min-height:164px;padding-left:96px}.ov-product-preview__result{margin:0 14px 14px;padding:12px}.ov-product-preview__result strong{font-size:.75rem}
  .ov-reassurance{grid-template-columns:1fr;padding:12px 18px}.ov-reassurance>div{border-right:0;border-bottom:1px solid var(--line);padding:10px 0}.ov-reassurance>div:last-child{border-bottom:0}.ov-reassurance strong{font-size:.9rem}.ov-reassurance small{font-size:.76rem}
  .ov-diagnostic__steps article{padding:22px;gap:14px}.ov-offer-card{padding:24px 20px}.ov-offer-card h3{font-size:1.35rem}.ov-price strong{font-size:2.3rem}.ov-comparison-link{padding:15px}.ov-comparison-link small{display:none}
  .ov-service-section .ov-section{padding:72px 0}.ov-service-timeline{grid-template-columns:1fr;gap:0}.ov-service-timeline li{text-align:left;display:grid;grid-template-columns:44px 1fr;gap:15px;padding:15px 0;border-bottom:1px solid #31554b}.ov-service-timeline li>span{width:42px;height:42px;margin:0}.ov-service-timeline h3{font-size:1rem}.ov-service-timeline p{font-size:.82rem}
  .ov-security__panel{padding:26px 22px}.ov-human{width:min(100% - 28px,1180px);margin-bottom:72px;padding:28px 22px}.ov-human__visual span{width:50px;height:50px}.ov-human__visual i{width:32px}.ov-human h2{font-size:2rem}.ov-faq details{padding:0 16px}.ov-faq summary{min-height:60px;font-size:.92rem}.ov-faq details p{font-size:.88rem}.ov-final-cta{padding:55px 20px}.ov-final-cta>div:last-child{width:100%}.ov-final-cta .btn{width:100%}.ov-final-cta h2{font-size:2.2rem}
  .ov-footer{padding:54px 22px 24px}.ov-footer__main{grid-template-columns:1fr;gap:30px}.ov-footer__brand{grid-column:auto}.ov-footer__bottom{flex-direction:column;gap:6px}
  .flow-nav{height:64px!important;padding:0 16px!important}.secure-pill{padding:8px 11px!important}.secure-pill__copy strong{font-size:.72rem!important}.flow-help{display:none!important}.flow-main{width:min(100% - 20px,1280px)!important;padding:18px 0 50px!important}
  .flow-progress-mobile{display:flex;align-items:center;justify-content:space-between;margin-bottom:10px;font-size:.75rem;color:var(--text-500)}.flow-progress-mobile strong{color:var(--brand-900)}.flow-steps{grid-template-columns:repeat(9,auto)!important;gap:5px!important}.flow-steps>div span{width:28px!important;height:28px!important;flex-basis:28px!important;font-size:.7rem!important}.flow-steps>div b{display:none!important}.flow-steps>i{width:100%!important;min-width:12px}.flow-step-assurance{padding:11px 12px!important;margin-top:10px!important}.flow-step-assurance__copy small{display:none!important}.flow-step-assurance__copy strong{font-size:.76rem!important}
  .flow-card,.pf-capture,.vf-shell,.status-shell,.ad-shell{border-radius:18px!important;box-shadow:0 12px 36px rgba(8,8,10,.07)!important}.flow-card{padding:24px 20px!important}.flow-heading h1,.pf-capture__intro h1,.vf-head h1,.ad-head h1{font-size:2rem!important;line-height:1.05!important}.flow-heading p,.pf-capture__intro p,.vf-head p,.ad-head p{font-size:.94rem!important}.pf-capture{padding:26px 14px!important}.pf-drop{min-height:290px!important;padding:22px 14px!important}.pf-drop__empty strong{font-size:1rem!important}.pf-tips{display:grid!important;grid-template-columns:1fr!important;gap:5px!important}.pf-consent{align-items:flex-start!important}.pf-security{font-size:.7rem!important}
  .vf-shell{padding:20px 10px!important}.vf-head{padding:0 4px!important}.vf-head__status{align-self:flex-start!important}.vf-layout{gap:14px!important}.vf-form{padding:18px 14px!important}.vf-document__bar{align-items:flex-start!important}.vf-tools{display:grid!important;grid-template-columns:repeat(2,1fr)!important}.vf-tools button{min-height:42px!important}.vf-grid{grid-template-columns:1fr!important}.vf-grid__wide{grid-column:auto!important}.vf-form label{font-size:.82rem!important}.vf-form__title{align-items:flex-start!important}.vf-form__title h2{font-size:1.2rem!important}.vf-passport{min-height:280px!important}.vf-portrait{grid-template-columns:86px 1fr!important}.vf-crop__body{grid-template-columns:1fr!important}.vf-crop__preview{display:none!important}.vf-crop__foot{align-items:stretch!important;flex-direction:column!important}.vf-crop__foot>div{display:flex;flex-wrap:wrap;gap:8px}.vf-crop__foot button{min-height:44px!important}
  .choice-grid{grid-template-columns:1fr!important}.choice-card{padding:24px 18px!important}.choice-head h2{font-size:1.3rem!important}.offer-compare-list li{grid-template-columns:76px 1fr!important}.checkout-layout{grid-template-columns:1fr!important}.order-summary{order:-1;padding:22px!important}.payment-security{display:grid!important;gap:8px!important}.status-shell{padding:24px 18px!important}.status-head{align-items:flex-start!important;flex-direction:column!important}.status-timeline{grid-template-columns:1fr!important}.status-timeline>div{display:grid!important;grid-template-columns:36px 1fr!important;text-align:left!important}.status-timeline>div span{grid-row:1/3!important}.documents-callout,.visa-ready{align-items:stretch!important;flex-direction:column!important}.documents-callout .btn,.visa-ready .btn{width:100%!important}.status-details{grid-template-columns:1fr!important}.flow-proof-strip{grid-template-columns:1fr!important}.flow-proof-strip>div{border-right:0!important;border-bottom:1px solid var(--line)!important}.flow-proof-strip>div:last-child{border-bottom:0!important}.flow-legal{align-items:flex-start!important;flex-direction:column!important;gap:7px!important}
}
@media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}.btn:hover{transform:none}}

/* Checkout, confirmation and customer tracking */
.checkout-included{margin:22px 0 26px;padding:22px;background:#f1ede2;border:1px solid var(--line);border-radius:16px}.checkout-included h2{font-size:1rem;margin:0 0 12px}.checkout-included ul{list-style:none;padding:0;margin:0;display:grid;gap:8px}.checkout-included li{position:relative;padding-left:24px;color:var(--text-700);font-size:.88rem}.checkout-included li::before{content:"✓";position:absolute;left:0;color:var(--success);font-weight:800}.checkout-included p{margin:14px 0 0;padding-top:12px;border-top:1px solid var(--line);color:var(--text-500);font-size:.76rem}.payment-security a{color:inherit}
.confirmation-panel{max-width:1080px;margin:0 auto 28px;padding:38px;background:#fff;border:1px solid #b8d8cc;border-radius:24px;box-shadow:var(--shadow);display:grid;grid-template-columns:auto 1fr;gap:16px 24px;align-items:start}.confirmation-panel__icon{grid-row:1/3;width:54px;height:54px;display:grid;place-items:center;border-radius:50%;background:#f1ede2;color:var(--success);font-size:1.45rem;font-weight:900}.confirmation-panel h1{font-size:clamp(2rem,4vw,3rem);line-height:1.05;margin:0 0 12px}.confirmation-panel p{margin:0;color:var(--text-700)}.confirmation-panel dl{grid-column:2;display:grid;grid-template-columns:repeat(2,1fr);gap:0;margin:14px 0 6px;border:1px solid var(--line);border-radius:14px;overflow:hidden}.confirmation-panel dl>div{padding:14px 16px;border-bottom:1px solid var(--line)}.confirmation-panel dl>div:nth-child(odd){border-right:1px solid var(--line)}.confirmation-panel dl>div:nth-last-child(-n+2){border-bottom:0}.confirmation-panel dt{font-size:.7rem;color:var(--text-500);text-transform:uppercase;letter-spacing:.08em}.confirmation-panel dd{margin:3px 0 0;font-size:.88rem;font-weight:700;overflow-wrap:anywhere}.confirmation-panel>.btn{grid-column:2;justify-self:start}
.status-next-action{margin:28px 0;padding:24px 26px;border:1px solid #bad8cd;border-radius:18px;background:#f1ede2;display:flex;align-items:center;justify-content:space-between;gap:24px}.status-next-action.is-required{background:#fff6df;border-color:#e7c16b}.status-next-action>div>span{display:block;color:var(--brand-700);font-size:.72rem;text-transform:uppercase;letter-spacing:.1em;font-weight:800}.status-next-action h2{font-size:1.3rem;margin:5px 0 5px}.status-next-action p{margin:0;color:var(--text-700);font-size:.9rem}
.customer-timeline{display:grid;grid-template-columns:repeat(5,1fr);gap:0;margin:36px 0}.customer-timeline>div{position:relative;text-align:center;padding:0 8px}.customer-timeline>div:not(:last-child)::after{content:"";position:absolute;left:60%;right:-40%;top:18px;height:1px;background:#f1ede2}.customer-timeline>div.done:not(:last-child)::after{background:var(--success)}.customer-timeline>div>span{position:relative;z-index:1;width:38px;height:38px;margin:0 auto 12px;display:grid;place-items:center;border-radius:50%;background:#f1ede2;border:1px solid #f1ede2;color:var(--text-500);font-size:.74rem;font-weight:800}.customer-timeline>div.done>span{background:var(--success);border-color:var(--success);color:#fff}.customer-timeline>div.active>span{box-shadow:0 0 0 6px rgba(32,139,104,.12)}.customer-timeline p{margin:0}.customer-timeline strong,.customer-timeline small{display:block}.customer-timeline strong{font-size:.78rem}.customer-timeline small{font-size:.66rem;color:var(--text-500);line-height:1.4;margin-top:3px}
.customer-message{margin:26px 0;padding:24px;border-left:4px solid var(--warning);background:#fff9ea;border-radius:4px 16px 16px 4px}.customer-message h2{font-size:1.15rem;margin:0 0 8px}.customer-message>p:not(.flow-kicker){margin:0;color:var(--text-700)}.customer-message small{display:block;margin-top:12px;color:var(--text-500)}
.status-dashboard-grid{display:grid;grid-template-columns:1fr 1fr;gap:20px;margin:26px 0}.status-documents,.traveller-summary{border:1px solid var(--line);border-radius:18px;padding:24px}.status-section-heading{display:flex;justify-content:space-between;gap:20px;align-items:start;margin-bottom:16px}.status-section-heading .flow-kicker{margin-bottom:4px}.status-section-heading h2{font-size:1.2rem;margin:0}.status-section-heading>small{background:#f1ede2;color:var(--brand-700);border-radius:999px;padding:5px 9px;font-size:.68rem}.status-documents ul{list-style:none;padding:0;margin:0;display:grid}.status-documents li{display:flex;align-items:center;gap:12px;padding:11px 0;border-bottom:1px solid var(--line)}.status-documents li:last-child{border:0}.status-documents li>span{width:30px;height:30px;border-radius:9px;background:#f1ede2;color:var(--text-500);display:grid;place-items:center;font-weight:800}.status-documents li.is-received>span{background:#f1ede2;color:var(--success)}.status-documents li.is-missing>span{background:#fff1d4;color:var(--warning)}.status-documents p{margin:0}.status-documents strong,.status-documents small{display:block}.status-documents small{color:var(--text-500)}.traveller-summary dl{margin:0 0 16px;display:grid;gap:0}.traveller-summary dl>div{padding:10px 0;border-bottom:1px solid var(--line)}.traveller-summary dt{font-size:.7rem;color:var(--text-500);text-transform:uppercase;letter-spacing:.07em}.traveller-summary dd{margin:2px 0 0;font-weight:700;font-size:.86rem;overflow-wrap:anywhere}.visa-instructions{margin:26px 0;padding:24px;background:var(--gold-100);border:1px solid var(--gold-300);border-radius:18px}.visa-instructions h2{font-size:1.2rem;margin:0 0 10px}.visa-instructions ul{margin:0;padding-left:20px;color:var(--text-700)}
.track-layout{max-width:1040px;margin:26px auto 0;display:grid;grid-template-columns:1fr .8fr;gap:24px;align-items:stretch}.track-layout .flow-card{margin:0!important;max-width:none!important}.track-help{margin:18px 0 0;text-align:center;font-size:.78rem;color:var(--text-500)}.track-help a{color:var(--brand-700);font-weight:700}.track-promise{background:var(--brand-900);color:#fff;border-radius:22px;padding:34px}.track-promise h2{font-size:1.75rem;line-height:1.15;margin:0 0 20px}.track-promise ul{list-style:none;padding:0;margin:0;display:grid;gap:13px}.track-promise li{display:flex;gap:10px;color:#f1ede2;font-size:.87rem}.track-promise li span{color:var(--gold-300);font-weight:800}

@media(max-width:760px){.confirmation-panel{grid-template-columns:1fr;padding:26px 20px}.confirmation-panel__icon{grid-row:auto}.confirmation-panel dl,.confirmation-panel>.btn{grid-column:1}.confirmation-panel dl{grid-template-columns:1fr}.confirmation-panel dl>div,.confirmation-panel dl>div:nth-child(odd){border-right:0;border-bottom:1px solid var(--line)}.confirmation-panel dl>div:last-child{border-bottom:0}.confirmation-panel>.btn{width:100%}.status-next-action{align-items:stretch;flex-direction:column}.status-next-action .btn{width:100%}.customer-timeline{grid-template-columns:1fr;margin:24px 0}.customer-timeline>div{display:grid;grid-template-columns:38px 1fr;text-align:left;gap:12px;padding:10px 0}.customer-timeline>div:not(:last-child)::after{left:18px;right:auto;top:48px;bottom:-10px;width:1px;height:auto}.customer-timeline>div>span{margin:0}.customer-timeline p{padding-top:2px}.customer-timeline strong{font-size:.84rem}.customer-timeline small{font-size:.72rem}.status-dashboard-grid,.track-layout{grid-template-columns:1fr}.track-promise{padding:26px 22px}.status-documents,.traveller-summary{padding:20px 16px}}

/* How it works */
.ov-page-hero{padding:150px max(30px,calc((100vw - 1180px)/2)) 90px;background:var(--brand-950);color:#fff;display:grid;grid-template-columns:1.3fr .7fr;gap:80px;align-items:center}.ov-page-hero h1{font-size:clamp(2.7rem,5vw,5rem);line-height:1;margin:0 0 24px}.ov-page-hero h1 span{color:var(--gold-300)}.ov-page-hero>div>p:not(.ov-kicker){color:#f1ede2;font-size:1.1rem;max-width:690px;margin:0 0 28px}.ov-page-hero aside{border:1px solid #3f695d;border-radius:20px;padding:28px;background:#131316}.ov-page-hero aside span,.ov-page-hero aside strong,.ov-page-hero aside small{display:block}.ov-page-hero aside span{color:var(--gold-300);font-size:.74rem;text-transform:uppercase;letter-spacing:.09em;font-weight:800}.ov-page-hero aside strong{font-size:1.35rem;line-height:1.3;margin:12px 0}.ov-page-hero aside small{color:#b8cec6}
.how-steps{display:grid;gap:0}.how-steps article{display:grid;grid-template-columns:70px 1fr 42px;gap:28px;align-items:center;padding:34px 0;border-bottom:1px solid var(--line)}.how-steps__number{font-size:.82rem;font-weight:800;color:var(--brand-700)}.how-steps article .ov-kicker{margin-bottom:5px}.how-steps h2{font-size:clamp(1.5rem,3vw,2.25rem);margin:0 0 8px}.how-steps article p:last-child{max-width:720px;margin:0;color:var(--text-700)}.how-steps__state{width:38px;height:38px;border-radius:50%;display:grid;place-items:center;background:#f1ede2;color:var(--success);font-weight:800}
.how-help{background:#fff;border:1px solid var(--line);border-radius:26px;padding:50px!important;margin-bottom:104px;display:grid;grid-template-columns:1fr 1fr;gap:70px;box-shadow:var(--shadow)}.how-help h2{font-size:clamp(2rem,4vw,3rem);margin:0 0 14px}.how-help>div>p:last-child{color:var(--text-700)}.how-help ul{list-style:none;padding:0;margin:0;display:grid;gap:14px}.how-help li{display:flex;gap:12px;padding:12px 0;border-bottom:1px solid var(--line)}.how-help li span{color:var(--success);font-weight:800}
@media(max-width:800px){.ov-page-hero{grid-template-columns:1fr;gap:36px;padding:120px 22px 64px}.ov-page-hero h1{font-size:2.8rem}.how-help{grid-template-columns:1fr;gap:28px;padding:30px!important}.how-steps article{grid-template-columns:44px 1fr;gap:14px}.how-steps__state{display:none}}
@media(max-width:520px){.ov-page-hero{padding-top:100px}.ov-page-hero h1{font-size:2.4rem}.ov-page-hero>div>p:not(.ov-kicker){font-size:1rem}.how-steps article{padding:26px 0}.how-steps h2{font-size:1.45rem}}

/* Temoignages voyageurs (section masquee tant que non alimentee en vrais avis) */
.ov-reviews__preview-note{margin:0 0 26px;padding:10px 14px;border:1px dashed #f07c1a;border-radius:10px;background:#fdf6e3;color:#7a5d10;font-size:12px;font-weight:700}
.ov-reviews__grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px;margin-top:34px}
.ov-review-card{display:flex;flex-direction:column;gap:12px;margin:0;padding:24px;background:#fff;border:1px solid #f1ede2;border-radius:18px;box-shadow:0 14px 40px rgba(0,0,0,.07)}
.ov-review-card__stars{color:#f07c1a;font-size:15px;letter-spacing:3px}
.ov-review-card blockquote{margin:0;color:#131316;font-size:13.5px;line-height:1.65;flex:1}
.ov-review-card blockquote::before{content:"�C A0"}.ov-review-card blockquote::after{content:" A0�D"}
.ov-review-card figcaption{display:flex;flex-direction:column;gap:2px;padding-top:12px;border-top:1px solid #f1ede2}
.ov-review-card figcaption strong{font-size:13px;color:#131316}
.ov-review-card figcaption small{color:#75837c;font-size:11px}
@media(max-width:1100px){.ov-reviews__grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:640px){.ov-reviews__grid{grid-template-columns:1fr}}

/* Selecteur de nationalite (accueil, section tarifs) */
.ov-nationality{display:grid;grid-template-columns:minmax(240px,1fr) minmax(230px,320px);gap:14px 22px;align-items:center;max-width:820px;margin:0 auto 40px;padding:22px 26px;background:#fff;border:1px solid #f1ede2;border-radius:16px;box-shadow:0 16px 44px rgba(0,0,0,.08)}
.ov-nationality label strong{display:block;font-size:16px;color:#131316}
.ov-nationality label span{display:block;margin-top:3px;color:#6b7a73;font-size:12px;line-height:1.5}
.ov-nationality select{height:46px;padding:0 13px;border:1.5px solid #f1ede2;border-radius:11px;background:#fff;color:#131316;font-size:14px;font-weight:600}
.ov-nationality select:focus{outline:2px solid #f07c1a;outline-offset:1px}
.ov-nationality__result{grid-column:1/-1;margin:0;padding:13px 15px;border-radius:11px;background:#f1ede2;border:1px solid #f1ede2;color:#131316;font-size:13.5px;line-height:1.6}
.ov-nationality__result a{color:#a8500a;font-weight:800;text-decoration:underline;text-underline-offset:3px;white-space:nowrap}
@media(max-width:640px){.ov-nationality{grid-template-columns:1fr;padding:18px}}

/* Page pays et passeports + lien sous le selecteur */
.ov-countries{display:grid;gap:26px;max-width:1050px;margin:0 auto}
.ov-countries__panel{padding:30px 32px;background:#fff;border:1px solid #f1ede2;border-radius:18px;box-shadow:0 16px 44px rgba(0,0,0,.07)}
.ov-countries__panel--accompagne{border-color:#d9c68a;background:#fffdf6}
.ov-countries__panel h2{display:flex;flex-wrap:wrap;align-items:baseline;gap:10px;margin:0 0 10px;font-size:21px}
.ov-countries__panel h2 span{color:#8a6d1f;font-size:13px;font-weight:800}
.ov-countries__panel--express h2 span{color:#14573b}
.ov-countries__panel>p{color:#4c5c55;font-size:13.5px;line-height:1.65;margin:0 0 18px}
.ov-countries__panel h3{margin:18px 0 8px;font-size:12px;text-transform:uppercase;letter-spacing:.08em;color:#75837c}
.ov-flag-grid{list-style:none;margin:0 0 6px;padding:0;display:grid;grid-template-columns:repeat(auto-fill,minmax(170px,1fr));gap:7px}
.ov-flag-grid li{display:flex;align-items:center;gap:8px;padding:7px 10px;background:#f1ede2;border:1px solid #f1ede2;border-radius:9px;font-size:12.5px;color:#131316}
.ov-countries__panel--accompagne .ov-flag-grid li{background:#fbf7ea;border-color:#eadfbd}
.ov-flag-grid li span{font-size:16px}
.ov-countries__panel .btn{margin-top:14px}
.ov-countries__note{max-width:1050px;margin:0 auto;color:#75837c;font-size:11px;line-height:1.6}
.ov-nationality__more{grid-column:1/-1;margin:0;font-size:12px}
.ov-nationality__more a{color:#a8500a;font-weight:800;text-decoration:underline;text-underline-offset:3px}
.ov-flag{width:20px;height:20px;vertical-align:-4px;border-radius:3px}

/* Rappel dossier sur l'en-tete vert sombre : or, pas vert-sur-vert. */
.status-head .flow-kicker, .status-shell .status-head .flow-kicker { color: #ffb26b !important; }

/* Avis clients : carrousel qui defile de droite a gauche, pause au survol. */
.ov-reviews__intro { max-width: 560px; margin: 10px auto 0; font-size: 14.5px; line-height: 1.6; color: #4a5d55; text-align: center; }
.ov-reviews__viewport { overflow: hidden; margin-top: 28px; -webkit-mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); mask-image: linear-gradient(90deg, transparent, #000 6%, #000 94%, transparent); }
.ov-reviews__track { display: flex; gap: 18px; width: max-content; animation: ov-reviews-defile 45s linear infinite; }
.ov-reviews__viewport:hover .ov-reviews__track { animation-play-state: paused; }
.ov-reviews__track .ov-review-card { flex: 0 0 320px; }
.ov-review-card__avatar { width: 40px; height: 40px; border-radius: 50%; background: #131316; color: #fff; font-weight: 800; display: inline-flex; align-items: center; justify-content: center; flex: none; }
.ov-review-card figcaption { display: flex; align-items: center; gap: 10px; }
.ov-review-card figcaption strong { display: block; }
@keyframes ov-reviews-defile { from { transform: translateX(0); } to { transform: translateX(-50%); } }
@media (prefers-reduced-motion: reduce) {
    .ov-reviews__track { animation: none; }
    .ov-reviews__viewport { overflow-x: auto; -webkit-mask-image: none; mask-image: none; }
}

/* Ecrase les regles corrompues plus haut (octets casses) : guillemets propres. */
.ov-review-card blockquote::before { content: "C A0"; }
.ov-review-card blockquote::after { content: " A0D"; }

/* Guillemets des avis, ecrits en caracteres directs (aucun echappement). */
.ov-review-card blockquote::before { content: "“ "; }
.ov-review-card blockquote::after { content: " ”"; }

/* Defilement des avis ralenti (demande Otman 07-08). */
.ov-reviews__track { animation-duration: 100s; }

/* Cartes tarifs en miroir : lignes de comparaison alignees entre les 2 cartes. */
.ov-offer-compare li { min-height: 46px; align-items: flex-start; }
@media (min-width: 760px) { .ov-offer-card > p { min-height: 128px; } }
@media (max-width: 759px) { .ov-offer-compare li { min-height: 0; } }

/* Hero : video de fond (photo en secours mobile + reduced-motion). */
.ov-hero { position: relative; overflow: hidden; }
.ov-hero__video { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; z-index: 0; pointer-events: none; }
.ov-hero__veil { position: absolute; inset: 0; z-index: 0; background: linear-gradient(180deg, rgba(8,8,10,.72), rgba(8,8,10,.52) 55%, rgba(8,8,10,.78)); }
.ov-hero > :not(.ov-hero__video):not(.ov-hero__veil) { position: relative; z-index: 1; }
@media (max-width: 640px) { .ov-hero__video, .ov-hero__veil { display: none; } }
@media (prefers-reduced-motion: reduce) { .ov-hero__video, .ov-hero__veil { display: none; } }

/* Hero « HD » : mot dynamique or eclatant, contrastes profonds, texte net. */
.ov-rotator { display: inline-block; color: #ffb26b; min-height: 1.1em; transition: opacity .3s ease, transform .3s ease; text-shadow: 0 2px 24px rgba(255,178,107,.28); }
.ov-rotator.is-out { opacity: 0; transform: translateY(10px); }
.ov-hero__copy h1 { text-shadow: 0 2px 18px rgba(0,0,0,.45); letter-spacing: -0.015em; }
.ov-hero__veil { background: linear-gradient(180deg, rgba(6,6,8,.82), rgba(8,8,10,.55) 52%, rgba(6,6,8,.88)) !important; }
.ov-hero .btn-gold { box-shadow: 0 10px 30px rgba(240,124,26,.35); }
.ov-microproof span { color: rgba(255,255,255,.92); }

/* Hero epure (07-08) : texte seul, centre sur la video. */
.ov-hero { display: block; }
.ov-hero__copy { max-width: 760px; margin: 0 auto; text-align: center; }
.ov-hero__copy .ov-hero__lead { margin-left: auto; margin-right: auto; }
.ov-hero__actions { justify-content: center; }
.ov-microproof { justify-content: center; }
.ov-private-note { text-align: center; }

/* Encart groupe sur la page de scan. */
.pf-groupe { max-width: 720px; margin: 22px auto 0; background: #f7f4ec; border: 1px solid #e7e0cf; border-radius: 14px; padding: 18px 22px; }
.pf-groupe strong { color: #131316; font-size: 15px; display: block; margin-bottom: 6px; }
.pf-groupe p { margin: 0; font-size: 13.5px; line-height: 1.65; color: #3d4f48; }
.pf-groupe b { color: #131316; }

/* Ossature noire (07-08, esprit maquettes Otman) : topbar + header + footer. */
.ov-topbar { background: #0a0a0c; color: #b9b5ac; font-size: 12.5px; display: flex; justify-content: space-between; align-items: center; gap: 14px; padding: 8px 26px; flex-wrap: wrap; }
.ov-topbar a { color: #ff9b3f; text-decoration: none; font-weight: 700; }
.ov-topbar a:hover { text-decoration: underline; }
.ov-topbar__left { display: inline-flex; align-items: center; gap: 10px; }
.ov-topbar__left i { color: #4a4a4f; font-style: normal; }
.ov-topbar__stars { color: #ff9b3f; letter-spacing: 2px; font-weight: 400; }
.ov-header { background: #0d0d10 !important; }
.ov-header.is-scrolled { background: #0d0d10 !important; box-shadow: 0 8px 22px rgba(0,0,0,.4); }
.ov-header .ov-logo, .ov-header.is-scrolled .ov-logo, body:not(.ov-home) .ov-header .ov-logo { color: #fff; }
.ov-header .nav-links a { color: #d6d3ca; }
.ov-header .nav-links a:hover { color: #fff; }
.ov-header .nav-links.is-open, .ov-header .nav-links.open { background: #0d0d10; }
.ov-footer { background: #060607 !important; }
@media (max-width: 640px) { .ov-topbar { justify-content: center; text-align: center; } }

/* Section finale « Pret a commencer » alignee sur l'ossature noire. */
.ov-cta { background: #0d0d10 !important; }

/* Photos du site (ZIP 07-08) : cadre commun. */
.ov-photo { border-radius: 18px; overflow: hidden; margin: 26px auto; max-width: 980px; box-shadow: 0 14px 40px rgba(0,0,0,.12); }
.ov-photo img { width: 100%; height: auto; display: block; }
.ov-photo--panel { margin: 22px 0 0; max-width: none; box-shadow: none; border-radius: 14px; }
.ov-photo--page { max-width: 980px; margin: 26px auto; }

/* Page 404. */
.err-page { max-width: 760px; margin: 0 auto; padding: 50px 20px 80px; text-align: center; }
.err-photo { max-width: 560px; }
.err-page h1 { font-size: clamp(28px, 4.5vw, 40px); color: #131316; margin: 12px 0 10px; }
.err-texte { color: #5c5850; font-size: 16px; margin-bottom: 26px; }
.err-actions { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; }


/* ==================================================================
   08-08-2026 - Remontee du selecteur, avis en grille, barre mobile.
   Voir docs/CONTEXTE_PROJET.md pour le raisonnement complet.
   ================================================================== */

/* Le selecteur de passeport, desormais juste sous le hero. */
.ov-passeport{background:var(--cream-100);border-bottom:1px solid var(--line);padding:clamp(38px,5vw,60px) max(24px,calc((100vw - 1180px)/2))}
.ov-passeport__inner{max-width:820px;margin:0 auto;display:flex;flex-direction:column;gap:10px}
.ov-passeport h2{margin:0;font-size:clamp(23px,3vw,31px);line-height:1.15;letter-spacing:-.02em;color:var(--text-950)}
.ov-passeport__lead{margin:0 0 10px;color:var(--text-700);font-size:15px;line-height:1.6}
.ov-passeport .ov-nationality{margin:0}

/* Avis : grille fixe. Plus de defilement automatique, plus de duplication. */
.ov-reviews__grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;align-items:start}
.ov-reviews__grid .ov-review-card{width:auto;min-width:0;flex:none}
@media (max-width:980px){.ov-reviews__grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:640px){
  /* En colonne unique, six avis empiles ajoutaient 1 600 px a la page.
     Defilement horizontal commande par le doigt : pas d'animation
     automatique, pas de duplication, la page reste courte. */
  .ov-reviews__grid{display:flex;grid-template-columns:none;overflow-x:auto;scroll-snap-type:x mandatory;-webkit-overflow-scrolling:touch;padding-bottom:6px;scrollbar-width:thin}
  .ov-reviews__grid .ov-review-card{min-width:82%;scroll-snap-align:start}
}

/* Barre d'action fixe, mobile uniquement : le bouton du header
   disparait sous 900 px (voir .nav-cta{display:none} plus haut). */
.ov-sticky-cta{display:none}
@media (max-width:900px){
  .ov-sticky-cta{position:fixed;left:0;right:0;bottom:0;z-index:60;display:flex;align-items:center;justify-content:space-between;gap:14px;padding:10px 14px calc(10px + env(safe-area-inset-bottom));background:rgba(255,255,255,.97);border-top:1px solid var(--line);box-shadow:0 -8px 26px rgba(8,8,10,.12)}
  .ov-sticky-cta__prix{display:flex;flex-direction:column;line-height:1.25}
  .ov-sticky-cta__prix strong{font-size:16px;color:var(--text-950)}
  .ov-sticky-cta__prix small{font-size:11px;color:var(--text-500)}
  .ov-sticky-cta .btn{min-height:48px;padding:0 18px;font-size:14px;white-space:nowrap}
  /* La barre recouvrirait la fin du pied de page. */
  .ov-footer{padding-bottom:86px}
  /* Cibles tactiles confortables : public mobile, parfois age,
     formulaire sensible. 24x24 suffit a WCAG 2.2 AA, on vise mieux. */
  .pf-submit,.pf-drop .btn,.flow-main .btn{min-height:48px}
}

/* Tarif annonce des l'etape 1 du tunnel : un visiteur venu d'une
   publicite ne doit pas donner son passeport avant de connaitre le prix. */
.pf-tarif{display:flex;flex-direction:column;gap:3px;margin:0 0 14px;padding:13px 16px;border:1px solid var(--line);border-left:3px solid var(--gold-600);border-radius:12px;background:var(--cream-100)}
.pf-tarif strong{font-size:15px;color:var(--text-950)}
.pf-tarif span{font-size:13px;color:var(--text-700);line-height:1.55}

/* Contact WhatsApp. Affiche seulement si services.whatsapp.number est
   renseigne : pas de logo WhatsApp sans personne au bout. */
.pf-whatsapp{margin:0 0 18px}
.pf-whatsapp a{display:flex;align-items:center;gap:12px;min-height:48px;padding:11px 16px;border:1px solid var(--line);border-radius:12px;background:#fff;color:var(--text-950)}
.pf-whatsapp a:hover{border-color:#25d366}
.pf-whatsapp__icone{flex:none;width:34px;height:34px;display:grid;place-items:center;border-radius:10px;background:#25d366;color:#fff}
.pf-whatsapp strong{display:block;font-size:14px}
.pf-whatsapp small{display:block;font-size:12.5px;color:var(--text-500);line-height:1.45}

/* Prestataire de paiement : precision discrete, sous les garanties. */
.payment-processor{margin:8px 0 0;font-size:11.5px;color:var(--text-500);line-height:1.5}

/* ==================================================================
   Drapeaux du selecteur de nationalite (08-08-2026).
   Windows ne fournit aucune police de drapeaux en couleur : Chrome et
   Edge y remplacent chaque drapeau par ses deux lettres (« FR France »).
   Cette police ne contient QUE les indicateurs regionaux U+1F1E6-1F1FF,
   donc elle ne touche a aucun autre caractere et n'est telechargee que
   si un drapeau est affiche (78 Ko, une seule fois).
   Fichier : public/fonts/TwemojiCountryFlags.woff2, issu de
   country-flag-emoji-polyfill 0.1.8 (Twemoji, CC-BY 4.0). Il doit etre
   present dans public_html/fonts/ ET omravisa-app/public/fonts/.
   ================================================================== */
@font-face{
  font-family:"Drapeaux";
  src:url("/fonts/TwemojiCountryFlags.woff2") format("woff2");
  unicode-range:U+1F1E6-1F1FF;
  font-display:swap;
}
/* La classe est posee par js/drapeaux.js, uniquement sur les systemes qui
   ne savent pas dessiner les drapeaux. Ailleurs, rien n'est telecharge. */
.sans-drapeaux body{font-family:"Drapeaux",Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}
.sans-drapeaux .ov-nationality select,.sans-drapeaux .ov-nationality option{font-family:"Drapeaux",Inter,system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}

/* ==================================================================
   Lien WhatsApp (08-08-2026). Affiche uniquement si WHATSAPP_NUMBER
   est renseigne — voir resources/views/partials/whatsapp.blade.php.
   ================================================================== */
.ov-whatsapp{display:inline-flex;align-items:center;gap:6px;color:inherit}
.ov-whatsapp svg{flex:none;color:#25d366}
.ov-whatsapp:hover span{text-decoration:underline;text-underline-offset:3px}

/* Bandeau du haut : discret, aligne sur le reste de la barre. */
.ov-whatsapp--barre{font-weight:600}

/* Pied de page : sous l'adresse e-mail. */
.ov-whatsapp--pied{margin-top:6px;font-weight:700}

/* En-tete du tunnel : bouton court, a cote de « Besoin d'aide ? ». */
.flow-contact{display:flex;align-items:center;gap:14px;justify-self:end}
.ov-whatsapp--tunnel{min-height:40px;padding:0 13px;border:1px solid var(--line);border-radius:10px;font-size:13px;font-weight:700;background:#fff}
.ov-whatsapp--tunnel:hover{border-color:#25d366}
@media (max-width:640px){
  /* Sur mobile l'adresse e-mail passe a la ligne et deborde : on garde
     WhatsApp, qui est le canal reellement utilise sur telephone. */
  .flow-contact .flow-help small{display:none}
  .ov-whatsapp--tunnel span{display:none}
  /* Cible tactile confortable : le lien devient une pastille sans texte. */
  .ov-whatsapp--tunnel{min-height:44px;min-width:44px;justify-content:center;padding:0}
}

/* ==================================================================
   Images d'identite (08-08-2026). Quatre visuels dans le meme
   traitement : lumiere chaude, aucun visage, tons sable et ambre.
   Le bandeau d'arcades est le motif qui revient de page en page.
   ================================================================== */

/* Section « decision humaine » : la photo remplace le schema 1-2-coche. */
.ov-human__photo{margin:0;border-radius:20px;overflow:hidden;background:var(--cream-200)}
.ov-human__photo img{display:block;width:100%;height:100%;object-fit:cover;aspect-ratio:4/3}

/* Cloture : la photo passe derriere le texte, assombrie pour garder
   le contraste du titre et du bouton. */
.ov-final-cta--photo{position:relative;isolation:isolate;overflow:hidden}
.ov-final-cta__fond{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 62%;z-index:-2}
.ov-final-cta--photo::after{content:"";position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(8,8,10,.92) 0%,rgba(8,8,10,.82) 46%,rgba(8,8,10,.58) 100%)}
@media (max-width:900px){
  .ov-final-cta--photo::after{background:linear-gradient(180deg,rgba(8,8,10,.88),rgba(8,8,10,.93))}
}

/* Bandeau d'arcades, juste au-dessus du pied de page de toutes les
   pages publiques. Volontairement discret : s'il attire l'oeil plus
   que les boutons, il est rate. */

/* Exemple de cadrage a l'etape 1 du tunnel. */
.pf-exemple{margin:0 0 16px;display:flex;flex-direction:column;gap:7px}
.pf-exemple img{display:block;width:100%;border-radius:14px;border:1px solid var(--line)}
.pf-exemple figcaption{font-size:12.5px;color:var(--text-500);line-height:1.5}

/* ==================================================================
   Ecran d'attente de l'accueil (08-08-2026).
   L'animation « ov-preload-secours » est un filet de securite : elle
   fait disparaitre l'ecran a 2,2 s meme si js/preload.js n'est jamais
   execute. Ne pas la retirer.
   ================================================================== */
.ov-preload{
  position:fixed;inset:0;z-index:9999;
  display:grid;place-content:center;justify-items:center;gap:26px;
  background:var(--brand-950);color:#fff;
  animation:ov-preload-secours .5s ease 2.2s forwards;
}
.ov-preload .ov-logo{font-size:1.5rem}

/* Anneau qui tourne autour de la marque, et marque qui respire.
   Repris du prechargeur Salam Omra (header.php), en ambre. */
.ov-preload__pastille{position:relative;width:148px;height:148px;display:grid;place-items:center}
.ov-preload__anneau{position:absolute;inset:0;width:100%;height:100%}
.ov-preload__anneau circle{fill:none;stroke-width:3}
.ov-preload__anneau .piste{stroke:rgba(255,255,255,.13)}
.ov-preload__anneau .arc{
  stroke:var(--gold-300);stroke-linecap:round;stroke-dasharray:70 320;
  transform-origin:center;animation:ov-preload-tour 1.15s linear infinite;
}
.ov-preload__marque{animation:ov-preload-souffle 1.8s ease-in-out infinite}
@keyframes ov-preload-tour{to{transform:rotate(360deg)}}
@keyframes ov-preload-souffle{0%,100%{transform:scale(.95);opacity:.85}50%{transform:scale(1.05);opacity:1}}

.ov-preload__barre{width:150px;height:3px;border-radius:3px;background:rgba(255,255,255,.16);overflow:hidden}
.ov-preload__barre i{
  display:block;height:100%;width:38%;border-radius:3px;
  background:linear-gradient(90deg,var(--gold-300),var(--gold-600));
  animation:ov-preload-course 1.05s ease-in-out infinite;
}
/* Il reste dans le DOM pour pouvoir etre rejoue au depart vers une autre
   page : « visibility:hidden » et « pointer-events:none » le rendent
   totalement inerte entre-temps. */
.ov-preload.is-parti{
  opacity:0;visibility:hidden;pointer-events:none;animation:none;
  transition:opacity .4s ease,visibility 0s linear .4s;
}
@keyframes ov-preload-course{from{transform:translateX(-115%)}to{transform:translateX(330%)}}
@keyframes ov-preload-secours{to{opacity:0;visibility:hidden}}

@media (prefers-reduced-motion:reduce){
  .ov-preload__barre i{animation:none;width:100%}
  .ov-preload__anneau .arc,.ov-preload__marque{animation:none}
  .ov-preload.is-parti{transition:none}
}

/* ==================================================================
   08-08-2026 — « Site vivant ». Repris du theme Salam Omra
   (Documents/salamomra/wp-theme/salam-omra/style.css) et transpose
   du vert-or vers l'ambre-encre d'OmraVisa. Quatre familles :
   apparition au defilement, entree du hero, halos de lumiere,
   verre depoli et reliefs au survol.
   ================================================================== */

/* --- 1. Apparition au defilement ---------------------------------
   La classe est posee par js/anim.js, jamais dans le HTML : sans le
   script, rien n'est masque. Opacite et transform uniquement, donc
   aucun decalage de mise en page. */
.is-reveal{
  opacity:0;transform:translateY(26px);
  transition:opacity .7s cubic-bezier(.22,.61,.36,1),transform .7s cubic-bezier(.22,.61,.36,1);
}
.is-reveal.in{opacity:1;transform:none}

/* --- 2. Entree du hero au chargement -----------------------------
   Purement CSS : elle part au premier rendu, sans attendre un script. */
.ov-hero__copy > *{opacity:0;transform:translateY(20px);animation:ov-entree .78s cubic-bezier(.22,.61,.36,1) forwards}
.ov-hero__copy > *:nth-child(1){animation-delay:.10s}
.ov-hero__copy > *:nth-child(2){animation-delay:.20s}
.ov-hero__copy > *:nth-child(3){animation-delay:.30s}
.ov-hero__copy > *:nth-child(4){animation-delay:.40s}
.ov-hero__copy > *:nth-child(5){animation-delay:.50s}
.ov-hero__copy > *:nth-child(6){animation-delay:.58s}
@keyframes ov-entree{to{opacity:1;transform:none}}

/* --- 3. Halos de lumiere -----------------------------------------
   Une nappe ambre en haut a droite des sections claires : la page
   cesse d'etre une suite d'aplats. */
.ov-passeport{
  background:
    radial-gradient(900px 420px at 88% 0%,rgba(240,124,26,.13),transparent 62%),
    linear-gradient(180deg,#fff,var(--cream-100));
}
/* ⚠️ Halos en ::before RETIRES le 08-08-2026.
   Ils etaient poses en `inset:-40px 0 auto 0`, donc debordaient de 40 px
   AU-DESSUS de la section. Comme les sections ont maintenant un fond
   opaque et que le halo est en `z-index:-1`, il etait masque a
   l'interieur : on ne voyait QUE la partie qui depassait, sous la forme
   d'une lueur orange par-dessus la separation de section. Signale par
   Otman sur les captures du 09-08.
   Le rythme des fonds suffit desormais. Ne pas remettre de pseudo-element
   lumineux en debordement. */

/* --- 4. Verre depoli sur l'en-tete -------------------------------- */
.ov-header{-webkit-backdrop-filter:blur(12px) saturate(1.05);backdrop-filter:blur(12px) saturate(1.05)}
@supports (backdrop-filter:blur(1px)) or (-webkit-backdrop-filter:blur(1px)){
  .ov-header.is-scrolled,body:not(.ov-home) .ov-header{background:rgba(255,255,255,.82)}
}

/* --- 5. Reliefs au survol ---------------------------------------- */
.ov-offer-card,.ov-review-card,.ov-comparison-link{
  transition:transform .3s cubic-bezier(.22,.61,.36,1),box-shadow .3s ease,border-color .3s ease;
}
.ov-offer-card:hover{transform:translateY(-4px);box-shadow:0 26px 60px rgba(8,8,10,.11)}
.ov-review-card:hover{transform:translateY(-3px);box-shadow:0 22px 50px rgba(8,8,10,.10)}
.ov-comparison-link:hover{transform:translateY(-2px);border-color:var(--gold-600)}
.ov-nationality{transition:box-shadow .3s ease}
.ov-nationality:focus-within{box-shadow:0 22px 54px rgba(240,124,26,.16)}

/* Rien de tout cela en mouvement reduit. */
@media (prefers-reduced-motion:reduce){
  .is-reveal,.is-reveal.in{opacity:1;transform:none;transition:none}
  .ov-hero__copy > *{opacity:1;transform:none;animation:none}
  .ov-offer-card,.ov-review-card,.ov-comparison-link{transition:none}
  .ov-offer-card:hover,.ov-review-card:hover,.ov-comparison-link:hover{transform:none}
}

/* ==================================================================
   08-08-2026 — Cartes flottantes et onglets collants.
   Repris de .float-card et .voyage-tabs (theme Salam Omra).
   ================================================================== */

/* --- Cartes flottantes du hero ------------------------------------
   Absolues dans le hero, jamais sous 1180 px : en dessous elles
   passeraient sur le texte centre. */
.ov-flottantes{display:none}
/* Seuil calcule, pas choisi au hasard : le texte du hero fait 760 px de
   large et reste centre. A 1320 px il laisse 280 px de chaque cote ; une
   carte de 200 px posee a 24 px du bord s'arrete donc a 224 px, sans
   jamais toucher le texte. Verifie le 08-08-2026 : a 1180 px la carte de
   droite mordait de 58 px sur le bloc de texte. */
@media (min-width:1320px){
  .ov-flottantes{display:block;position:absolute;inset:0;z-index:1;pointer-events:none}
  .ov-flottante{
    position:absolute;display:flex;flex-direction:column;gap:2px;max-width:200px;
    padding:14px 20px;border-radius:16px;
    background:rgba(255,255,255,.11);border:1px solid rgba(255,255,255,.22);
    -webkit-backdrop-filter:blur(16px);backdrop-filter:blur(16px);
    box-shadow:0 22px 55px -30px rgba(0,0,0,.65);color:#fff;
  }
  .ov-flottante b{font-size:1.34rem;line-height:1.05;color:var(--gold-300)}
  .ov-flottante small{font-size:.78rem;color:rgba(255,255,255,.76)}
  .ov-flottante--prix{top:29%;left:clamp(24px,5vw,86px);animation:ov-flotte 5s ease-in-out 1.1s infinite}
  .ov-flottante--simple{bottom:24%;right:clamp(24px,5vw,86px);animation:ov-flotte 6s ease-in-out 1.5s infinite}
}
@keyframes ov-flotte{0%,100%{transform:translateY(0)}50%{transform:translateY(-8px)}}

@media (prefers-reduced-motion:reduce){
  .ov-flottante--prix,.ov-flottante--simple{animation:none}
}


/* ==================================================================
   08-08-2026 — Rythme des sections, repris du site Salam Omra EN LIGNE
   (https://salamomra.com/wp-content/themes/salam-omra/style.css, v1.8.6).
   La copie locale du theme est une v1 : elle ne contenait NI le motif
   NI les fonds de section. Toujours verifier la version en ligne.

   Trois principes transposes en ambre :
   1. un motif geometrique tres discret (cercles entrelaces, dalle 56 px,
      trace a 6,2 % d'opacite) ;
   2. une section sur deux sur fond creme, les autres blanches ;
   3. des chapeaux de section centres, bornes, avec un filet sous le titre.
   ================================================================== */
:root{
  --ov-motif:url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='56'%20height='56'%20viewBox='0%200%2056%2056'%3E%3Cg%20fill='none'%20stroke='%23f07c1a'%20stroke-opacity='0.062'%20stroke-width='1'%3E%3Ccircle%20cx='0'%20cy='0'%20r='28'/%3E%3Ccircle%20cx='56'%20cy='0'%20r='28'/%3E%3Ccircle%20cx='0'%20cy='56'%20r='28'/%3E%3Ccircle%20cx='56'%20cy='56'%20r='28'/%3E%3Ccircle%20cx='28'%20cy='28'%20r='28'/%3E%3C/g%3E%3C/svg%3E");
}

/* --- 1 et 2. Alternance des fonds -------------------------------- */
.ov-diagnostic,.ov-reviews,.ov-human{
  background-color:var(--cream-100);
  background-image:var(--ov-motif);
}
/* La section passeport garde son halo, on ajoute le motif dessous. */
.ov-passeport{
  background:
    var(--ov-motif),
    radial-gradient(900px 420px at 88% 0%,rgba(240,124,26,.13),transparent 62%),
    linear-gradient(180deg,#fff,var(--cream-100));
}
/* Le motif traverse aussi les zones sombres, en clair cette fois. */
.ov-final-cta--photo::after{
  background-image:
    linear-gradient(90deg,rgba(8,8,10,.92) 0%,rgba(8,8,10,.82) 46%,rgba(8,8,10,.58) 100%);
}

/* --- 3. Chapeaux de section --------------------------------------
   Centres et bornes a 660 px comme chez Salam Omra : le regard trouve
   toujours le titre au meme endroit. Le filet sous le titre est le
   detail qui fait « theme » plutot que « page ». */
.ov-section__heading{
  max-width:660px;margin-left:auto;margin-right:auto;text-align:center;
}
.ov-section__heading h2::after{
  content:"";display:block;width:74px;height:3px;border-radius:3px;
  margin:18px auto 0;
  background:linear-gradient(90deg,var(--gold-600),var(--gold-300));
}
/* L'oeil accroche le trait avant le mot : meme repere que .eyebrow::before. */
.ov-kicker::before{
  content:"";display:inline-block;width:22px;height:2px;border-radius:2px;
  background:var(--gold-600);margin:0 10px 4px 0;vertical-align:middle;
}

/* ==================================================================
   08-08-2026 — STRUCTURE DES SECTIONS (correctif de fond).
   Le site melangeait deux systemes : `.ov-section` etait elle-meme le
   conteneur borne a 1180 px, alors que `.ov-passeport` et
   `.ov-reassurance` etaient en pleine largeur. Resultat : un fond pose
   sur une section apparaissait encadre ici et pleine largeur la, sans
   separation lisible entre les sections.

   Un seul systeme desormais, celui de Salam Omra :
     - la SECTION est toujours pleine largeur et porte le fond ;
     - le CONTENU reste borne a 1180 px par le padding lateral.
   Ne pas revenir a `width:min(...)` sur une section.
   ================================================================== */
.ov-section{
  width:auto;margin:0;
  padding:104px max(20px,calc((100vw - 1180px)/2));
}

/* « Decision humaine » etait une carte blanche arrondie de 1180 px : le
   motif s'y affichait dans un cadre pendant qu'il etait pleine largeur
   ailleurs. Elle devient une section comme les autres. */
.ov-human{
  width:auto;margin:0;
  padding:96px max(20px,calc((100vw - 1180px)/2));
  border:0;border-radius:0;box-shadow:none;
}

/* Separation nette entre deux sections claires qui se suivent : sans
   changement de fond, l'oeil ne voit plus la coupure. */
.ov-section + .ov-section,
.ov-human + .ov-section,
.ov-section + .ov-human{
  border-top:1px solid var(--line);
}


/* ==================================================================
   08-08-2026 — Alternance AUTOMATIQUE des fonds + pied de page revele.
   Repris de https://salamomra.com (theme v1.8.6).
   ================================================================== */

/* --- Alternance automatique --------------------------------------
   L'alternance etait faite a la main, section par section : au moindre
   ajout ou deplacement, le rythme sautait. Elle est desormais calculee
   par le navigateur, comme chez Salam Omra
   (`body.home main > section:nth-of-type(even)`).
   Le hero et la cloture gardent leur fond sombre : ils sont exclus. */
.ov-home main > section:nth-of-type(even):not(.ov-hero):not(.ov-final-cta){
  background-color:var(--cream-100);
  background-image:var(--ov-motif);
}
.ov-home main > section:nth-of-type(odd):not(.ov-hero):not(.ov-final-cta){
  background-color:var(--white);
  background-image:none;
}
/* La section passeport garde son halo par-dessus le motif. */
.ov-home main > section.ov-passeport{
  background-color:var(--cream-100);
  background-image:
    var(--ov-motif),
    radial-gradient(900px 420px at 88% 0%,rgba(240,124,26,.13),transparent 62%);
}

/* --- Pied de page revele -----------------------------------------
   Le pied de page est fixe DERRIERE le contenu ; la page glisse
   par-dessus et le decouvre en fin de course. La classe `ov-frv` est
   posee par js/footer-reveal.js, et seulement si le pied de page tient
   dans l'ecran — sinon il resterait partiellement inaccessible. */
html.ov-frv .ov-footer{
  position:fixed;left:0;right:0;bottom:0;z-index:1;margin-top:0;
}
html.ov-frv body{
  padding-bottom:var(--ov-footer-h,520px);
}
html.ov-frv main,
html.ov-frv .ov-liseret{
  position:relative;z-index:2;
}
/* Le contenu doit etre opaque, sinon on verrait le pied de page a
   travers pendant tout le defilement. */
html.ov-frv main{background:var(--white)}

/* Fond du pied de page : deux halos ambres et le motif fin, sur un
   degrade d'encre. Aucun aplat. */
.ov-footer{
  background-color:#0f1113!important;
  background-image:
    radial-gradient(1300px 560px at 50% -18%,rgba(255,255,255,.10),transparent 68%),
    radial-gradient(950px 520px at 86% 122%,rgba(240,124,26,.26),transparent 70%),
    radial-gradient(700px 400px at 2% 112%,rgba(240,124,26,.13),transparent 70%),
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='28'%20height='28'%20viewBox='0%200%2028%2028'%3E%3Cg%20fill='none'%20stroke='%23f07c1a'%20stroke-opacity='0.06'%20stroke-width='0.7'%3E%3Ccircle%20cx='0'%20cy='0'%20r='14'/%3E%3Ccircle%20cx='28'%20cy='0'%20r='14'/%3E%3Ccircle%20cx='0'%20cy='28'%20r='14'/%3E%3Ccircle%20cx='28'%20cy='28'%20r='14'/%3E%3Ccircle%20cx='14'%20cy='14'%20r='14'/%3E%3C/g%3E%3C/svg%3E"),
    linear-gradient(180deg,#17191d,#0f1113)!important;
  background-size:auto,auto,auto,28px 28px,auto!important;
  background-repeat:no-repeat,no-repeat,no-repeat,repeat,no-repeat!important;
}


/* ==================================================================
   08-08-2026 — Avis : traitement repris de `.test` (Salam Omra en
   ligne). Guillemet fantome en haut a droite, pastille d'initiales
   cerclee d'ambre, etoiles ambrees, et la carte du milieu remontee de
   14 px pour casser l'alignement.
   ================================================================== */
.ov-review-card{
  position:relative;overflow:hidden;
  padding:30px 26px;
  border:1px solid var(--line);
  border-radius:var(--radius,18px);
  box-shadow:0 1px 2px rgba(8,8,10,.05),0 1px 3px rgba(8,8,10,.06);
}
/* Le guillemet est decoratif : il ne doit ni etre lu ni intercepter
   un clic, d'ou pointer-events:none. */
.ov-review-card::after{
  content:"\201D";
  position:absolute;top:-26px;right:12px;
  font-family:Georgia,"Times New Roman",serif;font-size:7.5rem;line-height:1;
  color:rgba(240,124,26,.16);pointer-events:none;
}
.ov-review-card > *{position:relative;z-index:1}
.ov-review-card__stars{display:flex;gap:2px;color:var(--gold-600);margin-bottom:.5rem}
.ov-review-card blockquote{font-size:.97rem;color:var(--text-950);line-height:1.6}
.ov-review-card figcaption{margin-top:1.1rem;display:flex;align-items:center;gap:.7rem}
.ov-review-card__avatar{
  width:42px;height:42px;flex:none;border-radius:50%;
  background:linear-gradient(140deg,var(--gold-500),var(--brand-700));
  color:#fff;display:grid;place-items:center;font-weight:700;
  border:2px solid rgba(240,124,26,.5);
  box-shadow:0 0 0 3px rgba(240,124,26,.14);
}
.ov-review-card figcaption strong{font-size:.92rem;display:block}
.ov-review-card figcaption small{display:block;color:var(--text-500);font-size:.8rem}
/* Decalage de la carte centrale : l'alignement parfait fait catalogue. */
@media (min-width:761px){
  .ov-reviews__grid .ov-review-card:nth-child(2){margin-top:-14px}
}

/* ==================================================================
   08-08-2026 — En-tete clair et icones du menu.
   Le site ouvrait sur un en-tete sombre pose sur une video sombre :
   l'ensemble faisait lourd. En-tete blanc translucide, comme
   `header.nav` chez Salam Omra, avec les icones du meme jeu.
   ================================================================== */
.ov-header{
  background:rgba(255,255,255,.86)!important;
  border-bottom:1px solid var(--line);
  color:var(--text-950);
}
.ov-header .ov-logo,
.ov-header.is-scrolled .ov-logo,
body:not(.ov-home) .ov-header .ov-logo{color:var(--text-950)}
.ov-header .nav-links a{color:var(--text-700)}
.ov-header .nav-links a:hover{color:var(--text-950)}
.ov-header .menu-toggle span{background:var(--text-950)}

/* Icones du menu : alignees au texte, elles s'ambrent au survol et sur
   la page courante. Le mouvement est minuscule — 1 px — c'est ce qui
   le rend agreable plutot que gadget. */
.nav-links a{display:inline-flex;align-items:center;gap:8px}
.ov-icone{flex:none;color:var(--text-500);transition:color .18s ease,transform .18s ease}
.nav-links a:hover .ov-icone{color:var(--gold-600);transform:translateY(-1px)}
.nav-links a:focus-visible .ov-icone{color:var(--gold-600)}

/* Le menu deroulant mobile reprend le fond clair. */
@media (max-width:900px){
  .ov-header .nav-links.is-open,.ov-header .nav-links.open{
    background:#fff;border-bottom:1px solid var(--line);
  }
  .ov-header .nav-links a{padding:14px 18px}
}


/* ==================================================================
   08-08-2026 — En-tete : copie du traitement de salamomra.com, mesure
   sur le site en ligne (et non deduite du CSS).
   Trois couches, comme chez eux : voile blanc de haut en bas, motif
   geometrique tres discret, base blanc vers creme. Plus une ombre
   portee et un liseré.

   ⚠️ POINT CENTRAL : leur en-tete NE CHANGE PAS au defilement — meme
   fond en haut de page et apres 900 px, aucune classe basculee.
   Chez nous, `.ov-header.is-scrolled{background:#0d0d10!important}`
   (regle « ossature noire ») est PLUS SPECIFIQUE que `.ov-header` :
   l'en-tete repassait donc en noir des qu'on defilait. On neutralise
   les trois etats d'un coup. Ne jamais reintroduire d'etat sombre.
   ================================================================== */
.ov-header,
.ov-header.is-scrolled,
body:not(.ov-home) .ov-header,
body.ov-home .ov-header.is-scrolled{
  background-color:transparent!important;
  background-image:
    linear-gradient(180deg,rgba(255,255,255,0) 0%,rgba(255,255,255,.55) 60%,rgba(255,255,255,.92) 100%),
    url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='56'%20height='56'%20viewBox='0%200%2056%2056'%3E%3Cg%20fill='none'%20stroke='%23f07c1a'%20stroke-opacity='0.10'%20stroke-width='1'%3E%3Ccircle%20cx='0'%20cy='0'%20r='28'/%3E%3Ccircle%20cx='56'%20cy='0'%20r='28'/%3E%3Ccircle%20cx='0'%20cy='56'%20r='28'/%3E%3Ccircle%20cx='56'%20cy='56'%20r='28'/%3E%3Ccircle%20cx='28'%20cy='28'%20r='28'/%3E%3C/g%3E%3C/svg%3E"),
    linear-gradient(180deg,#fff,#faf7f1)!important;
  background-size:auto,56px 56px,auto!important;
  background-repeat:no-repeat,repeat,no-repeat!important;
  box-shadow:0 12px 30px rgba(8,8,10,.08)!important;
  border-bottom:1px solid rgba(240,124,26,.14)!important;
  color:var(--text-950)!important;
}
/* Le flou n'a plus lieu d'etre : le fond est desormais opaque. */
.ov-header{-webkit-backdrop-filter:none;backdrop-filter:none}

/* Les elements de l'en-tete suivent, quel que soit l'etat. */
.ov-header .ov-logo,
.ov-header.is-scrolled .ov-logo{color:var(--text-950)!important}
.ov-header .nav-links a,
.ov-header.is-scrolled .nav-links a{color:var(--text-950)!important}
.ov-header .nav-links a:hover{color:var(--text-950)!important}
.ov-header .menu-toggle span{background:var(--text-950)!important}

/* ==================================================================
   08-08-2026 — Menu : effet de survol de Salam Omra, couleurs OmraVisa.
   Chez eux : `.menu-link:hover{background:#e9f5f0;border-radius:999px}`
   — une pastille arrondie qui apparait sous l'entree survolee. C'est
   l'EFFET qu'on reprend ; la teinte reste la notre (ambre), pas leur
   vert.

   Icones inversees a la demande d'Otman : ambre en permanence, texte
   en encre. Elles ne s'allument plus au survol, elles sont deja la.
   ================================================================== */
.nav-links{gap:6px}
.ov-header .nav-links a{
  padding:9px 14px;border-radius:999px;
  transition:background .18s ease,color .18s ease;
}
.ov-header .nav-links a:hover,
.ov-header .nav-links a:focus-visible{
  background:rgba(240,124,26,.10)!important;
  color:var(--text-950)!important;
}
/* L'icone porte la couleur de marque, le texte reste lisible en encre. */
.ov-header .nav-links .ov-icone{color:var(--gold-600)}
.ov-header .nav-links a:hover .ov-icone{color:var(--gold-600);transform:none}

/* Le liseré de « Suivre ma demande » gênait la pastille. */
.ov-header .nav-follow{padding-left:14px;border-left:0;margin-left:6px}
.ov-header .nav-follow::before{
  content:"";display:inline-block;width:1px;height:18px;
  background:var(--line);margin-right:10px;vertical-align:middle;
}


/* ==================================================================
   09-08-2026 — Liseré de fin de page, a la place du bandeau d'arcades.
   Otman : « c'est moche, remets une ligne de 10 px orange a la place ».
   Le bandeau d'images pesait 70 Ko et occupait 84 px de haut pour une
   simple separation. Ne pas y remettre d'image.
   ================================================================== */
.ov-liseret{
  height:10px;
  background:linear-gradient(90deg,var(--gold-600),var(--gold-300),var(--gold-600));
}
html.ov-frv .ov-liseret{position:relative;z-index:2}


/* ==================================================================
   09-08-2026 — Logo : moins d'ambre. Seul « omra » reste ambre ;
   l'icone Kaaba et « visa » prennent la couleur du contexte (encre sur
   fond clair, blanc sur fond sombre) au lieu d'etre ambres eux aussi.
   `app.css` pose `.ov-logo svg{color:#f07c1a}` : on le neutralise ici.
   ================================================================== */
/* ⚠️ `.ov-brand span>b{color:var(--gold-500)}` existe plus haut et vaut
   (0,1,2) : un simple `.ov-logo__text b` (0,1,1) perdait. D'ou le
   `.ov-logo` en tete, qui remonte a (0,2,1). Verifie le 09-08-2026 en
   desactivant les feuilles une a une. */
.ov-logo svg{color:inherit}
.ov-logo .ov-logo__text b{color:var(--gold-600)}
/* Sur fond sombre — pied de page, ecran d'attente — le reste passe en
   blanc, « omra » garde l'ambre clair pour rester lisible. */
.ov-footer .ov-logo,
.ov-preload .ov-logo{color:#fff}
.ov-footer .ov-logo .ov-logo__text b,
.ov-preload .ov-logo .ov-logo__text b{color:var(--gold-300)}

/* ==================================================================
   09-08-2026 — Texte du logo : capitales espacees (variante 2 choisie
   par Otman sur la planche de comparaison).
   L'ancien bas de casse etait crene a -0,035em : les lettres se
   touchaient presque a cote d'une icone geometrique. Les capitales
   espacees font echo aux vides du dessin.

   Crenage en `em` et non en px : il suit la taille de chaque contexte
   (en-tete 21 px, facture 24 px, barre laterale admin 19 px).
   ================================================================== */
.ov-logo .ov-logo__text{
  font-size:.88em;
  font-weight:600;
  letter-spacing:.22em;
  text-transform:uppercase;
  /* Le crenage ajoute un vide APRES la derniere lettre : on le reprend,
     sinon le logo parait decale vers la gauche. */
  margin-right:-.22em;
}

/* ==================================================================
   09-08-2026 — Prechargeur : disposition du prechargeur Salam Omra.
   L'anneau ne contient QUE l'icone ; le nom se lit en dessous, comme
   `.so-pl-badge` puis `.so-pl-word` chez eux. Avant, le logo entier
   etait tasse dans l'anneau et le texte en sortait.
   ================================================================== */
.ov-preload__marque{display:grid;place-items:center}
.ov-preload__marque .ov-logo__icone{width:60px;height:60px;color:#fff;display:block}
.ov-preload__mot{display:inline-flex;font-size:1.15rem}
.ov-preload__mot .ov-logo__text{color:#fff}
.ov-preload .ov-logo .ov-logo__text b{color:var(--gold-300)}

/* ==================================================================
   09-08-2026 — Prechargeur en verre depoli clair.
   Chez Salam Omra : `background:linear-gradient(rgba(14,122,95,.48),
   rgba(8,63,48,.60)); backdrop-filter:blur(15px) saturate(1.05)`.
   Meme principe ici, mais en CLAIR : Otman ne veut pas assombrir le
   site le temps du chargement. La page transparait a travers.

   ⚠️ Consequence : le contenu du prechargeur repasse en encre. Sur un
   voile clair, du blanc serait illisible.
   ================================================================== */
.ov-preload{
  background:linear-gradient(180deg,rgba(255,255,255,.74),rgba(248,246,240,.84))!important;
  -webkit-backdrop-filter:blur(16px) saturate(1.05);
  backdrop-filter:blur(16px) saturate(1.05);
  color:var(--text-950);
}
/* Icone et « VISA » en encre, « OMRA » en ambre soutenu. */
.ov-preload__marque .ov-logo__icone{color:var(--text-950)}
.ov-preload__mot .ov-logo__text{color:var(--text-950)}
.ov-preload .ov-logo .ov-logo__text b{color:var(--gold-600)}
/* Anneau et barre : pistes sombres sur fond clair. */
.ov-preload__anneau .piste{stroke:rgba(19,19,22,.12)}
.ov-preload__anneau .arc{stroke:var(--gold-600)}
.ov-preload__barre{background:rgba(19,19,22,.10)}
.ov-preload__barre i{background:linear-gradient(90deg,var(--gold-300),var(--gold-600))}

/* ==================================================================
   09-08-2026 — CORRECTIFS de largeur, signales par Otman sur
   /pays-eligibles (contenu tasse dans une colonne de 790 px au milieu
   d'un ecran de 1425).

   Deux causes distinctes, toutes deux heritees de l'ancien systeme ou
   la SECTION etait le conteneur :

   1. `.ov-countries` posait `max-width:1050px;margin:0 auto` sur la
      section elle-meme. Avec le nouveau padding lateral, la largeur
      utile tombait a 1050 - 2x130 = 790 px.
   2. Sous 620 px, une regle remettait `.ov-section` et `.ov-human` en
      `width:min(...)` : le systeme pleine largeur ne s'appliquait donc
      QUE sur grand ecran, et les fonds de section redevenaient
      encadres sur telephone.

   ⚠️ Une section ne doit jamais porter de largeur. Si un contenu doit
   etre plus etroit, le borner sur un enfant.
   ================================================================== */
.ov-countries{max-width:none;margin:0}
.ov-countries__panel,.ov-countries__note{max-width:1050px;margin-left:auto;margin-right:auto}

@media (max-width:620px){
  .ov-section{width:auto;margin:0;padding:72px max(14px,calc((100vw - 1180px)/2))}
  .ov-human{width:auto;margin:0;padding:56px max(14px,calc((100vw - 1180px)/2))}
}

/* ==================================================================
   10-08-2026 — LE THEME DE L'ACCUEIL S'APPLIQUE A TOUT LE SITE.
   Le fond creme et son motif, le rythme des sections et l'apparition
   au defilement etaient reserves a `body.ov-home` : les pages
   interieures (guide, conseils, fiches pays, comparatif, mentions)
   tombaient sur un fond plat, sans motif et sans animation. On avait
   deux sites dans le meme site.

   Trois familles de gabarits coexistent et on ne les refond pas :
     - `.ov-*`  : accueil, comment ca marche, pays eligibles
                  -> sections pleine largeur qui portent le fond ;
     - `.gd-*`  : guide et conseils (article borne a 780 px) ;
     - `.sp-*`  : fiches pays (article borne a 860 px).
   Les deux dernieres sont deja faites de PANNEAUX BLANCS. Il suffit
   donc de poser le fond creme + motif sous la page pour que ces
   panneaux ressortent : aucune restructuration, meme air de famille.
   ================================================================== */

/* --- 1. Le fond de toutes les pages publiques --------------------
   Le tunnel (`.flow-body`) et l'administration (`.admin-body`) gardent
   le leur : ce sont des outils de travail, pas des pages de site. */
body:not(.flow-body):not(.admin-body){
  background-color:var(--cream-100);
  background-image:var(--ov-motif);
}

/* --- 2. Alternance des fonds hors accueil ------------------------
   Meme calcul que sur l'accueil, mais restreint aux sections qui
   portent `.ov-section` : sur les gabarits `.gd-*` et `.sp-*` ce sont
   les panneaux qui portent le blanc, pas la section. `nth-of-type`
   compte toutes les <section> soeurs, hero compris — le rythme reste
   donc calcule par le navigateur et survit a un ajout de section. */
body:not(.ov-home) main > section.ov-section:nth-of-type(even){
  background-color:var(--cream-100);
  background-image:var(--ov-motif);
}
body:not(.ov-home) main > section.ov-section:nth-of-type(odd){
  background-color:var(--white);
  background-image:none;
}

/* --- 3. Les panneaux des pages interieures -----------------------
   Meme ombre portee et meme reaction au survol que les cartes de
   l'accueil, pour que le clic se sente au meme endroit partout. */
.gd-panel,.sp-panel,.gd-chapitre,.sp-offer{
  box-shadow:0 10px 30px rgba(8,8,10,.05);
}
.gd-chapitre,.sp-offer,.visa-guide-card{
  transition:transform .16s ease,box-shadow .16s ease,border-color .16s ease;
}
.gd-chapitre:hover,.sp-offer:hover,.visa-guide-card:hover{
  transform:translateY(-3px);
  box-shadow:0 18px 42px rgba(8,8,10,.10);
  border-color:var(--gold-300);
}
/* Les blocs sombres (`.gd-cta`, `.sp-cta`) ne prennent pas l'ombre
   claire : elle ne se voit pas et alourdit le rendu. */
.gd-cta,.sp-cta{box-shadow:none}

/* --- 4. Le filet dore sous les titres de page --------------------
   Detail repris de `.ov-section__heading h2::after`. C'est lui qui
   fait lire une fiche pays comme une page du meme site. */
.gd-head--hub h1::after,
.sp-hero h1::after{
  content:"";display:block;width:74px;height:3px;border-radius:3px;
  margin:18px auto 0;
  background:linear-gradient(90deg,var(--gold-600),var(--gold-300));
}

/* --- 5. « Comment ca marche » : la carte devient une section ------
   `.how-help` etait une carte blanche (bord, rayon 26px, ombre) mais
   elle porte aussi `.ov-section`, dont la regle de structure lui donne
   `width:auto; margin:0`. Elle s'etirait donc d'un bord a l'autre de
   l'ecran avec des coins arrondis dans le vide — exactement le defaut
   corrige sur `.ov-human` le 08-08. Meme traitement : une section
   pleine largeur, contenu borne par le padding lateral. */
.how-help{
  border:0;border-radius:0;box-shadow:none;
  padding:96px max(20px,calc((100vw - 1180px)/2))!important;
}
/* Le `padding:30px!important` du bloc @media 800px de la ligne 142 est
   ecrit AVANT celui-ci : sans ce rappel, les 96px du dessus
   s'appliqueraient aussi sur telephone. */
@media(max-width:800px){
  .how-help{padding:56px max(14px,calc((100vw - 1180px)/2))!important}
}

/* ==================================================================
   10-08-2026 — /comment-ca-marche refaite (`.hcm-*`).
   Ancien gabarit : `.how-steps` (cinq lignes separees par un filet) et
   `.how-help`. Il reste dans la feuille, plus aucune page ne s'en sert.
   Le nouveau recit suit celui d'Otman : je photographie -> le systeme
   lit -> on me dit quel visa -> je complete -> je valide -> un humain
   verifie -> je suis prevenu.
   ================================================================== */

/* --- La frise des 7 etapes ---------------------------------------
   Numero a gauche relie par un filet dore, contenu dans une carte
   blanche. La section porte le fond creme + motif (alternance
   automatique), donc les cartes ressortent seules. */
.hcm-frise{list-style:none;max-width:900px;margin:46px auto 0;padding:0}
.hcm-etape{
  position:relative;display:grid;grid-template-columns:56px 1fr;gap:24px;
  padding-bottom:26px;
}
.hcm-etape:last-child{padding-bottom:0}
/* Le filet part SOUS la pastille et s'arrete au bas de l'etape : il
   relie les numeros sans traverser la derniere carte. */
.hcm-etape::before{
  content:"";position:absolute;left:27px;top:56px;bottom:0;width:2px;
  background:linear-gradient(180deg,var(--gold-300),rgba(255,178,107,.15));
}
.hcm-etape:last-child::before{display:none}
.hcm-etape__num{
  position:relative;z-index:1;
  width:56px;height:56px;border-radius:50%;display:grid;place-items:center;
  background:#fff;border:2px solid var(--gold-300);color:var(--gold-600);
  font-weight:800;font-size:1rem;
  box-shadow:0 6px 18px rgba(240,124,26,.16);
}
.hcm-etape__carte{
  background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:22px 26px;box-shadow:0 10px 30px rgba(8,8,10,.05);
}
.hcm-etape__head{
  display:flex;align-items:center;justify-content:space-between;
  gap:14px;flex-wrap:wrap;margin-bottom:8px;
}
.hcm-etape__carte h3{margin:0;font-size:1.22rem;line-height:1.25}
.hcm-etape__carte p{margin:0;color:var(--text-700);line-height:1.65}
.hcm-etape__carte p b{color:var(--text-950)}
.hcm-etape__duree{
  display:inline-block;margin-top:12px;
  font-size:.78rem;font-weight:700;color:var(--text-500);
  background:var(--cream-100);border:1px solid var(--line);
  border-radius:999px;padding:4px 11px;
}
/* Qui agit : c'est la question que se pose un premier client. */
.hcm-qui{
  flex:0 0 auto;font-size:.7rem;font-weight:800;letter-spacing:.07em;
  text-transform:uppercase;border-radius:999px;padding:5px 11px;
}
.hcm-qui--vous{background:rgba(240,124,26,.12);color:#a4562a}
.hcm-qui--nous{background:#eaf3ef;color:var(--success)}
.hcm-qui--duo{background:var(--cream-200);color:var(--text-700)}

/* Delais et decision finale : dits une fois, a l'endroit ou la
   question se pose. Ne pas transformer en promesse. */
.hcm-delais{
  max-width:900px;margin:34px auto 0;padding:18px 22px;
  background:#fff;border:1px solid var(--line);border-left:3px solid var(--gold-600);
  border-radius:0 14px 14px 0;
  color:var(--text-700);font-size:.95rem;line-height:1.65;
}
.hcm-delais strong{display:block;color:var(--text-950);margin-bottom:4px}
.hcm-delais b{color:var(--text-950)}

/* --- Qui fait quoi ----------------------------------------------- */
.hcm-roles__grille{
  display:grid;grid-template-columns:1fr 1fr;gap:26px;
  max-width:1000px;margin:40px auto 0;
}
.hcm-role{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px 28px}
.hcm-role--nous{background-color:var(--cream-100);background-image:var(--ov-motif)}
.hcm-role__titre{
  display:flex;align-items:center;gap:10px;margin:0 0 14px;
  font-weight:800;font-size:1.05rem;color:var(--text-950);
}
.hcm-role__titre svg{color:var(--gold-600);flex:0 0 auto}
.hcm-role ul{list-style:none;margin:0;padding:0;display:grid;gap:10px}
.hcm-role li{position:relative;padding-left:26px;color:var(--text-700);line-height:1.55}
.hcm-role li::before{
  content:"";position:absolute;left:0;top:.62em;
  width:12px;height:2px;border-radius:2px;background:var(--gold-600);
}
.hcm-photo{max-width:520px;margin:40px auto 0}

/* --- Ce que vous recevez ------------------------------------------ */
.hcm-recevez__grille{
  display:grid;grid-template-columns:repeat(3,1fr);gap:22px;
  max-width:1080px;margin:40px auto 0;
}
.hcm-recevez article{
  background:#fff;border:1px solid var(--line);border-radius:18px;
  padding:26px 24px;box-shadow:0 10px 30px rgba(8,8,10,.05);
}
.hcm-recevez__ico{
  display:grid;place-items:center;width:44px;height:44px;border-radius:14px;
  background:var(--gold-100);color:var(--gold-600);margin-bottom:14px;
}
.hcm-recevez h3{margin:0 0 8px;font-size:1.08rem}
.hcm-recevez p{margin:0;color:var(--text-700);font-size:.95rem;line-height:1.6}
.hcm-recevez__aide{text-align:center;margin:30px auto 0;color:var(--text-700)}
.hcm-recevez__aide a{color:var(--gold-600);font-weight:700}

@media(max-width:820px){
  .hcm-roles__grille,.hcm-recevez__grille{grid-template-columns:1fr}
}
@media(max-width:520px){
  .hcm-etape{grid-template-columns:44px 1fr;gap:14px}
  .hcm-etape__num{width:44px;height:44px;font-size:.86rem}
  .hcm-etape::before{left:21px;top:44px}
  .hcm-etape__carte{padding:18px}
  .hcm-etape__carte h3{font-size:1.06rem}
  .hcm-role{padding:22px 20px}
}

/* ==================================================================
   10-08-2026 — Ligne telephonique du site.
   Otman a pris un numero dedie : le precedent etait son numero perso,
   ecrit en dur dans le pied de page. Meme habillage que WhatsApp, pour
   que les deux canaux se lisent comme une paire.
   ================================================================== */
.ov-tel{display:inline-flex;align-items:center;gap:6px;color:inherit}
.ov-tel svg{flex:none;color:var(--gold-600)}
.ov-tel:hover span{text-decoration:underline;text-underline-offset:3px}
.ov-tel--barre{font-weight:600}
.ov-tel--pied{display:flex;margin-top:6px;font-weight:700}
.ov-tel--tunnel{
  min-height:40px;padding:0 13px;border:1px solid var(--line);border-radius:10px;
  font-size:13px;font-weight:700;background:#fff;
}
.ov-tel--tunnel:hover{border-color:var(--gold-300)}

@media(max-width:900px){
  /* Meme regle que WhatsApp : sous cette largeur, l'icone seule suffit
     dans l'entete du tunnel, la place manque. */
  .ov-tel--tunnel span{display:none}
}

/* ==================================================================
   10-08-2026 — Bas de page ramene a UNE ligne.
   Otman : « c'est tout à la ligne, à droite PERTICOM LLC — OmraVisa,
   comme ça footer pas trop de hauteur ». Le bloc `.ov-footer__company`
   n'existe plus dans le gabarit ; sa regle reste plus haut dans la
   feuille, inoffensive, et sera nettoyee au prochain passage.
   ================================================================== */
.ov-footer__bottom{
  align-items:baseline;
  border-top:1px solid #262629;
  padding-top:18px;
}
.ov-footer__bottom span:first-child{max-width:760px}

@media(max-width:720px){
  /* Empile deja (regle a 720 px plus haut) : on resserre juste l'ecart. */
  .ov-footer__bottom{gap:4px}
}

/* ==================================================================
   10-08-2026 — Un fond, tres discret, sur l'entete de « Comment ca
   marche ». Otman : « ce serait bien de mettre un petit fond, mais
   qu'on voie juste un peu ».
   « Juste un peu » est le cahier des charges : l'image est couverte a
   92-97 % de noir. Elle donne de la profondeur, elle ne raconte rien
   et elle ne dispute jamais le titre.
   L'image est DEJA en ligne (45 Ko, elle sert au hero de l'accueil) :
   aucun telechargement supplementaire pour le visiteur.
   ⚠️ Ne pas eclaircir le voile : le titre est en blanc pur et la carte
   « Ce qu'il vous faut » en gris clair. En dessous de 90 % d'opacite,
   le contraste passe sous le seuil de lisibilite.
   ================================================================== */
.ov-page-hero{
  position:relative;
  background-color:var(--brand-950);
  background-image:
    linear-gradient(100deg,rgba(10,10,12,.97) 0%,rgba(10,10,12,.94) 46%,rgba(10,10,12,.90) 100%),
    var(--ov-motif),
    url("../images/hero-medine-3.webp");
  background-size:auto,56px 56px,cover;
  background-position:center,top left,center 38%;
  background-repeat:no-repeat,repeat,no-repeat;
}

@media(max-width:800px){
  /* Sur telephone le titre occupe presque tout l'ecran : on assombrit
     encore, l'image ne servirait qu'a gener la lecture. */
  .ov-page-hero{
    background-image:
      linear-gradient(180deg,rgba(10,10,12,.97),rgba(10,10,12,.95)),
      var(--ov-motif),
      url("../images/hero-medine-3.webp");
  }
}


/* ==================================================================
   11-08-2026 — La video de presentation.

   Elle vit sur « Comment ca marche » : c'est la seule page ou le
   visiteur a explicitement pose la question a laquelle elle repond.
   Volontairement PAS dans le hero de l'accueil : le hero porte deja
   une video de fond, et juste dessous se trouve le selecteur de
   passeport — la seule chose que le visiteur vient chercher. Deux
   minutes de lecture a cet endroit, ce sont deux minutes sans clic,
   et sur telephone le lecteur pousserait le selecteur hors de l'ecran.

   L'affiche est une IMAGE (72 Ko) tant qu'on n'a pas clique. Le
   rapport de forme est pose en dur : sans lui, la page saute au
   chargement de l'image et Google compte le decalage contre nous.
   ================================================================== */
.hcm-video__grille{
  display:grid;
  grid-template-columns:minmax(0,1.7fr) minmax(0,1fr);
  gap:26px;
  align-items:stretch;
}

.ov-video{
  position:relative;
  aspect-ratio:16/9;
  border-radius:20px;
  overflow:hidden;
  background:var(--brand-950);
  border:1px solid var(--line);
  box-shadow:var(--shadow);
}

.ov-video__affiche{
  display:block;
  width:100%;
  height:100%;
  padding:0;
  margin:0;
  border:0;
  background:none;
  cursor:pointer;
  font:inherit;
  color:inherit;
  text-align:left;
}
.ov-video__affiche img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  transition:transform .5s ease;
}
.ov-video__affiche:hover img,
.ov-video__affiche:focus-visible img{transform:scale(1.03)}

/* Le voile n'est pas decoratif : le bouton de lecture est blanc et la
   legende aussi, et l'affiche est une capture d'ecran claire. */
.ov-video__voile{
  position:absolute;inset:0;
  background:linear-gradient(180deg,rgba(10,10,12,.06) 0%,rgba(10,10,12,.10) 42%,rgba(10,10,12,.72) 100%);
}

.ov-video__play{
  position:absolute;top:50%;left:50%;
  width:82px;height:82px;
  transform:translate(-50%,-50%);
  border-radius:50%;
  background:var(--gold-500);
  box-shadow:0 10px 30px rgba(10,10,12,.35);
  transition:transform .25s ease,box-shadow .25s ease;
}
/* Le triangle : dessine en CSS, pas d'image a telecharger pour ca. */
.ov-video__play::after{
  content:"";
  position:absolute;top:50%;left:54%;
  transform:translate(-50%,-50%);
  border-style:solid;
  border-width:15px 0 15px 25px;
  border-color:transparent transparent transparent #fff;
}
.ov-video__affiche:hover .ov-video__play,
.ov-video__affiche:focus-visible .ov-video__play{
  transform:translate(-50%,-50%) scale(1.08);
  box-shadow:0 14px 38px rgba(10,10,12,.45);
}

.ov-video__legende{
  position:absolute;left:22px;right:22px;bottom:18px;
  display:flex;flex-direction:column;gap:2px;
  color:#fff;
}
.ov-video__legende b{font-size:1.05rem;font-weight:800;letter-spacing:-.01em}
.ov-video__legende small{font-size:.8rem;color:rgba(255,255,255,.82)}

.ov-video__cadre{width:100%;height:100%;border:0;display:block}
.ov-video.is-lecture{background:#000}

.ov-video__repli{
  position:absolute;inset:auto 0 0 0;
  padding:12px 16px;
  background:var(--brand-950);
  color:#fff;
  font-weight:700;
  text-align:center;
}

/* Le panneau lateral : ce que la video montre, en une lecture de
   quelques secondes. Otman ne veut pas de gros paves — c'est donc une
   liste seche, pas un paragraphe. */
.hcm-video__aside{
  display:flex;flex-direction:column;
  gap:14px;
  padding:26px 24px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:20px;
  box-shadow:var(--shadow);
}
.hcm-video__aside > p:first-child{margin:0;font-size:1.12rem;font-weight:800;line-height:1.25}
.hcm-video__aside ol{margin:0;padding:0;list-style:none;display:flex;flex-direction:column;gap:10px}
.hcm-video__aside li{
  position:relative;
  padding-left:26px;
  font-size:.9rem;
  color:var(--text-700);
  line-height:1.45;
}
.hcm-video__aside li::before{
  content:"";
  position:absolute;left:0;top:.5em;
  width:9px;height:9px;border-radius:50%;
  background:var(--gold-500);
}
.hcm-video__aside small{
  margin-top:auto;
  font-size:.78rem;
  color:var(--text-500);
  line-height:1.45;
}

@media(max-width:900px){
  .hcm-video__grille{grid-template-columns:1fr;gap:18px}
  .ov-video__play{width:64px;height:64px}
  .ov-video__play::after{border-width:12px 0 12px 20px}
  .ov-video__legende{left:16px;right:16px;bottom:14px}
  .hcm-video__aside{padding:22px 20px}
}

/* --- Le rappel sur l'accueil -------------------------------------
   Une ligne, pas un lecteur. Elle est posee SOUS le selecteur de
   passeport : celui qui est decide continue, celui qui hesite a un
   endroit ou aller. Elle ne doit jamais grossir au point de disputer
   la place au selecteur. */
.ov-video-lien{
  display:flex;align-items:center;gap:14px;
  margin:22px auto 0;
  max-width:560px;
  padding:12px 16px;
  background:var(--white);
  border:1px solid var(--line);
  border-radius:16px;
  box-shadow:var(--shadow);
  text-decoration:none;
  color:inherit;
  transition:transform .2s ease,box-shadow .2s ease;
}
.ov-video-lien:hover{transform:translateY(-2px);box-shadow:0 14px 30px rgba(10,10,12,.10)}
.ov-video-lien img{
  width:104px;height:59px;
  object-fit:cover;
  border-radius:10px;
  flex:0 0 auto;
}
.ov-video-lien span{display:flex;flex-direction:column;gap:1px;min-width:0}
.ov-video-lien b{font-size:.94rem;font-weight:800}
.ov-video-lien small{font-size:.78rem;color:var(--text-500)}

@media(max-width:520px){
  .ov-video-lien{gap:12px;padding:10px 12px}
  .ov-video-lien img{width:84px;height:48px}
  .ov-video-lien b{font-size:.88rem}
}

/* Le repere de lecture sur la vignette de l'accueil : sans lui, l'image
   se lit comme une illustration, pas comme une video. Dessine en CSS. */
.ov-video-lien{position:relative}
.ov-video-lien::after{
  content:"";
  position:absolute;
  left:calc(16px + 52px);
  top:50%;
  transform:translate(-50%,-50%);
  width:0;height:0;
  border-style:solid;
  border-width:8px 0 8px 13px;
  border-color:transparent transparent transparent #fff;
  filter:drop-shadow(0 1px 3px rgba(10,10,12,.6));
  pointer-events:none;
}
@media(max-width:520px){
  .ov-video-lien::after{left:calc(12px + 42px);border-width:7px 0 7px 11px}
}

/* Lisibilite de la legende sur l'affiche : elle se pose sur une capture
   d'ecran claire et chargee. Sur telephone le cadre ne fait que ~140 px
   de haut, le degrade seul ne suffisait pas — le texte tombait sur la
   photo du passeport. Ombre portee + voile plus franc en bas. */
.ov-video__legende b,
.ov-video__legende small{text-shadow:0 1px 6px rgba(10,10,12,.75)}

@media(max-width:900px){
  .ov-video__voile{
    background:linear-gradient(180deg,rgba(10,10,12,.10) 0%,rgba(10,10,12,.18) 38%,rgba(10,10,12,.86) 100%);
  }
  .ov-video__legende b{font-size:.98rem}
}

/* ==================================================================
   11-08-2026 — Le selecteur de passeport debordait de l'ecran sur
   telephone (421 px de contenu pour 390 px d'ecran) : la page glissait
   lateralement et la fin du lien « Voir tous les pays eligibles »
   sortait du cadre. Constate a 390 px pendant la pose de la video.

   Cause : la largeur minimale automatique d'une piste de grille vaut
   son contenu minimal, et le <select> reclame la largeur de sa plus
   longue option — « Bosnie-Herzegovine », « Republique dominicaine »…
   `1fr` ne l'empechait pas de pousser. `minmax(0,1fr)` le fait, et le
   select est explicitement borne a la largeur disponible.

   ⚠️ C'est l'element que le visiteur vient chercher : verifier a
   360 px avant de toucher a cette grille.
   ================================================================== */
.ov-nationality{grid-template-columns:minmax(240px,1fr) minmax(0,320px)}
.ov-nationality select{width:100%;min-width:0;max-width:100%}
@media(max-width:640px){
  .ov-nationality{grid-template-columns:minmax(0,1fr)}
}

/* ── Hero resserré — 13-08-2026 ────────────────────────────────────────────
   Constaté en regardant enfin la page : le hero mesurait 760 px de haut pour
   un contenu qui s'arrêtait vers 60 %. Les 40 % restants n'étaient que de la
   photo, et le sélecteur de nationalité — la seule chose que le visiteur vient
   chercher — commençait sous la ligne de flottaison. On récupère ~200 px pour
   qu'il apparaisse dès le premier écran, sans le déplacer dans le DOM (la
   décision du 11-08 de le laisser SOUS le hero reste valable : dans le hero,
   il serait repoussé hors écran sur téléphone).                            */
.ov-hero { min-height: 600px; padding-top: 104px; padding-bottom: 58px; }

@media (max-width: 1180px) {
    .ov-hero { min-height: auto; padding-top: 96px; padding-bottom: 50px; }
}

@media (max-width: 640px) {
    .ov-hero { padding-top: 84px; padding-bottom: 42px; }
}

/* Le sélecteur enchaîne directement : moins d'air au-dessus de lui. */
.ov-passeport { padding-top: clamp(30px, 3.4vw, 42px); }

/* Le prix rejoint la ligne de preuves. Il porte l'accent doré : c'est
   l'information la plus regardée de la ligne, elle ne doit pas se fondre
   dans les trois mentions de réassurance qui la suivent. */
.ov-microproof__prix {
    font-weight: 700;
    color: var(--gold, #f0a34a);
}
