@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500;600;700;800&family=Playfair+Display:wght@600;700&display=swap');
:root{--navy:#082B59;--blue:#123BBD;--red:#E60000;--ink:#17243a;--muted:#66768b;--line:#E6ECF3;--mist:#F6F8FB;--white:#fff;--shadow:0 18px 50px rgba(8,43,89,.09);--shadow-sm:0 10px 28px rgba(8,43,89,.06);--radius:24px;--radius-lg:34px}
*{box-sizing:border-box}html{scroll-behavior:auto}body{margin:0;background:var(--white);color:var(--ink);font-family:Inter,Arial,sans-serif;overflow-x:hidden;-webkit-font-smoothing:antialiased}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}img{display:block;max-width:100%}::selection{background:var(--blue);color:#fff}.container{width:min(1420px,calc(100% - 42px));margin:auto}.serif{font-family:'Playfair Display',Georgia,serif}.red{color:var(--red)}.muted{color:var(--muted)}.eyebrow{font-size:11px;font-weight:800;letter-spacing:.14em;text-transform:uppercase;color:var(--red)}.section{padding:78px 0}.section-sm{padding:52px 0}.section-head{display:flex;align-items:end;justify-content:space-between;gap:18px;margin-bottom:28px}.section-head h2,.section-title{margin:4px 0 0;color:var(--navy);font:700 clamp(34px,4vw,52px)/1.03 'Playfair Display',Georgia,serif;letter-spacing:-.025em}.section-head p{max-width:620px;color:var(--muted);line-height:1.7}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}

/* header */
.site-header{position:sticky;top:0;z-index:100;height:76px;background:rgba(255,255,255,.94);backdrop-filter:blur(18px);border-bottom:1px solid rgba(8,43,89,.05);transition:box-shadow .25s}.site-header.scrolled{box-shadow:0 10px 34px rgba(8,43,89,.08)}.nav-row{height:76px;display:flex;align-items:center;gap:24px}.brand{width:172px;height:48px;display:flex;align-items:center;flex:0 0 auto}.brand img{width:100%;height:100%;object-fit:contain}.desktop-nav{display:flex;align-items:center;gap:19px;margin:auto}.desktop-nav a{position:relative;color:#254464;font-size:12.5px;font-weight:700;white-space:nowrap}.desktop-nav a:hover,.desktop-nav a.active{color:var(--navy)}.desktop-nav a.active::after{content:"";position:absolute;left:0;right:0;bottom:-13px;height:2px;border-radius:999px;background:var(--red)}.nav-side{display:flex;align-items:center;gap:12px}.languages{display:flex;align-items:center;gap:2px}.languages button{border:0;background:none;padding:6px 7px;color:#8090a3;font-size:11px;font-weight:900;border-radius:999px}.languages button.active{color:var(--red);background:#fff2f2}.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border:0;border-radius:999px;padding:12px 20px;font-weight:750;font-size:13px;transition:transform .25s,box-shadow .25s,background .25s,border-color .25s}.btn:hover{transform:translateY(-2px)}.btn-primary{background:var(--red);color:#fff;box-shadow:0 12px 28px rgba(230,0,0,.16)}.btn-primary:hover{box-shadow:0 16px 32px rgba(230,0,0,.24)}.btn-secondary{background:#fff;border:1px solid #d7e0eb;color:var(--navy)}.btn-secondary:hover{border-color:#9db0c8;box-shadow:var(--shadow-sm)}.mobile-toggle{display:none;width:44px;height:44px;border:0;border-radius:50%;background:var(--navy);color:#fff;font-size:20px}.mobile-menu{display:none;position:absolute;top:76px;left:0;right:0;background:#fff;padding:16px 20px 22px;box-shadow:0 20px 42px rgba(8,43,89,.12)}.mobile-menu.open{display:grid;gap:7px}.mobile-menu a{padding:12px 13px;border-radius:13px;color:var(--navy);font-weight:700}.mobile-menu a:hover,.mobile-menu a.active{background:var(--mist)}.mobile-langs{display:flex;gap:8px;margin-top:6px}.mobile-langs button{flex:1;border:1px solid var(--line);background:#fff;padding:9px;border-radius:12px;font-weight:800}.mobile-langs button.active{border-color:#ffc7c7;color:var(--red);background:#fff7f7}

/* floating */
.float-actions{position:fixed;right:14px;top:50%;transform:translateY(-50%);z-index:70;display:grid;gap:8px}.float-action{width:58px;min-height:58px;border-radius:18px;background:#fff;border:1px solid #e7edf4;box-shadow:0 12px 30px rgba(8,43,89,.10);display:grid;place-items:center;color:var(--navy);font-weight:800;font-size:9px;padding:7px;transition:.24s}.float-action .ico{font-size:22px;line-height:1}.float-action.whatsapp .ico{color:#18b95c}.float-action:hover{transform:translateX(-4px);box-shadow:0 16px 34px rgba(8,43,89,.16)}

/* companion: deliberately small and non intrusive */
.companion{position:fixed;left:18px;bottom:18px;z-index:64;width:82px;height:82px;border-radius:28px;background:linear-gradient(145deg,#fff,#eef4ff);border:1px solid #e5ecf5;box-shadow:0 20px 48px rgba(8,43,89,.16);display:grid;place-items:center;transform-style:preserve-3d;perspective:600px;transition:.38s;overflow:hidden}.companion:hover{transform:translateY(-4px) rotateY(8deg)}.companion-shape{width:50px;height:50px;position:relative;transform-style:preserve-3d;animation:idle3d 5s ease-in-out infinite}.companion-shape::before,.companion-shape::after{content:"";position:absolute;inset:6px;border-radius:15px;background:linear-gradient(145deg,var(--blue),var(--navy));box-shadow:inset 0 0 0 1px rgba(255,255,255,.2)}.companion-shape::after{inset:15px;background:var(--red);border-radius:50%}.companion[data-mode="maternelle"] .companion-shape::before{background:linear-gradient(145deg,#ffcb3d,#ff7a59);border-radius:14px}.companion[data-mode="primaire"] .companion-shape::before{background:#fff;border:4px solid var(--blue);border-radius:8px;transform:rotateX(58deg)}.companion[data-mode="college"] .companion-shape::before{background:transparent;border:4px solid var(--blue);border-radius:50%;transform:rotate(28deg)}.companion[data-mode="college"] .companion-shape::after{inset:20px;background:#e5b94a}.companion[data-mode="lycee"] .companion-shape::before{border-radius:50%;background:radial-gradient(circle at 35% 30%,#5a86ff,var(--navy));box-shadow:inset -8px -10px 16px rgba(0,0,0,.18)}.companion[data-mode="admissions"] .companion-shape::before{inset:10px 20px 4px;background:linear-gradient(var(--navy),#1e4c83);border-radius:10px 10px 2px 2px;transform:rotate(-28deg)}.companion[data-mode="actualites"] .companion-shape::before{inset:12px 4px;background:var(--navy);border-radius:10px}.companion[data-mode="contact"] .companion-shape::before{border-radius:50% 50% 50% 0;transform:rotate(-45deg);background:var(--red)}.companion-label{position:absolute;bottom:3px;font-size:7px;font-weight:800;color:#55708f}.assistant-pop{position:fixed;left:18px;bottom:110px;z-index:75;width:min(320px,calc(100vw - 36px));background:#fff;border:1px solid #e7edf4;border-radius:24px;padding:18px;box-shadow:0 24px 58px rgba(8,43,89,.18);display:none}.assistant-pop.open{display:block}.assistant-pop h3{margin:3px 0 6px;color:var(--navy)}.assistant-pop p{margin:0;color:var(--muted);font-size:13px;line-height:1.6}.assistant-links{display:grid;gap:8px;margin-top:14px}.assistant-links a{padding:10px 12px;border:1px solid var(--line);border-radius:12px;font-size:12px;font-weight:750;color:var(--navy)}@keyframes idle3d{50%{transform:translateY(-4px) rotateY(15deg) rotateX(4deg)}}

/* home hero */
.home-hero{position:relative;overflow:hidden;background:#fff}.home-hero-grid{min-height:630px;display:grid;grid-template-columns:42% 58%;align-items:stretch}.home-copy{display:flex;flex-direction:column;justify-content:center;padding:52px 48px 70px 0;position:relative;z-index:2}.home-copy h1{margin:0;color:var(--navy);font:700 clamp(52px,5.2vw,78px)/.98 'Playfair Display',Georgia,serif;letter-spacing:-.04em;max-width:600px}.home-copy p{max-width:520px;margin:22px 0 0;font-size:17px;line-height:1.65;color:var(--muted)}.home-actions{display:flex;gap:11px;flex-wrap:wrap;margin-top:28px}.hero-media{position:relative;min-height:630px;overflow:hidden}.hero-media .facade{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,rgba(255,255,255,.12) 18%,transparent 44%),linear-gradient(0deg,rgba(8,43,89,.10),transparent 38%)}.hero-student{position:absolute;z-index:3;left:-42px;bottom:24px;width:236px;height:330px;border-radius:32px;overflow:hidden;background:#fff;border:8px solid #fff;box-shadow:0 28px 64px rgba(8,43,89,.18)}.hero-student img{width:100%;height:100%;object-fit:cover}.hero-student-tag{position:absolute;z-index:4;left:-18px;bottom:18px;background:#fff;padding:10px 14px;border-radius:16px;box-shadow:var(--shadow-sm);font-size:12px;font-weight:800;color:var(--navy)}.hero-glow{position:absolute;right:-110px;top:-120px;width:380px;height:380px;border-radius:50%;background:radial-gradient(circle,rgba(18,59,189,.14),transparent 68%);pointer-events:none}.hero-video-link{display:inline-flex;align-items:center;gap:9px;margin-top:18px;font-size:12px;font-weight:800;color:var(--navy)}.hero-video-link span{width:32px;height:32px;border-radius:50%;display:grid;place-items:center;border:1px solid #cad6e5;color:var(--blue)}

.feature-bar{position:relative;z-index:8;margin-top:-32px;background:rgba(255,255,255,.97);backdrop-filter:blur(16px);border:1px solid #eef2f6;border-radius:25px;box-shadow:var(--shadow);display:grid;grid-template-columns:repeat(6,1fr);padding:10px 12px}.feature-item{min-height:76px;display:flex;align-items:center;gap:10px;padding:10px 12px;border-right:1px solid #edf1f5}.feature-item:last-child{border-right:0}.feature-icon{width:40px;height:40px;border-radius:14px;display:grid;place-items:center;background:#f1f6ff;color:var(--blue);font-size:21px;transition:.25s;box-shadow:inset 0 1px 0 #fff}.feature-item:hover .feature-icon{transform:translateY(-3px) rotateY(12deg);background:#e9f1ff}.feature-item b{display:block;font-size:12.5px;color:var(--navy);line-height:1.3}.feature-item small{display:block;margin-top:2px;font-size:10px;color:#8a98aa}

/* cards */
.cycle-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:18px}.cycle-card,.photo-card,.news-card,.soft-card{background:#fff;border:1px solid var(--line);border-radius:20px;overflow:hidden;box-shadow:var(--shadow-sm);transition:transform .3s,box-shadow .3s,border-color .3s;transform-style:preserve-3d}.cycle-card:hover,.photo-card:hover,.news-card:hover,.soft-card:hover{transform:translateY(-5px);box-shadow:0 20px 44px rgba(8,43,89,.12);border-color:#d9e3ef}.cycle-card img{height:230px;width:100%;object-fit:cover;transition:.5s}.cycle-card:hover img,.photo-card:hover img,.news-card:hover img{transform:scale(1.025)}.cycle-body{padding:18px;position:relative}.cycle-body h3{margin:0;color:var(--navy);font-size:20px}.cycle-body p{margin:6px 0 0;color:var(--red);font-size:12px;font-weight:800}.arrow-pill{position:absolute;right:15px;bottom:15px;width:34px;height:34px;border-radius:50%;display:grid;place-items:center;background:var(--navy);color:#fff}.cycle-card:hover .arrow-pill{background:var(--red)}

.home-lower{display:grid;grid-template-columns:1.1fr 1.25fr .85fr;gap:18px}.home-panel{padding:24px;background:#fff;border:1px solid var(--line);border-radius:22px;box-shadow:var(--shadow-sm)}.home-panel h3{margin:4px 0 12px;color:var(--navy);font-size:23px}.home-panel .pedagogy-media{height:180px;border-radius:16px;overflow:hidden;margin-bottom:14px}.home-panel .pedagogy-media img{width:100%;height:100%;object-fit:cover}.bullet-mini{display:grid;gap:8px;font-size:12px;color:var(--muted)}.bullet-mini div::before{content:"•";color:var(--red);font-weight:900;margin-right:7px}.mini-news{display:flex;gap:10px;padding:10px 0;border-top:1px solid #eef2f6}.mini-news:first-of-type{border-top:0}.mini-news img{width:76px;height:58px;object-fit:cover;border-radius:10px}.mini-news small{display:block;color:#9aa6b5;font-size:9px}.mini-news strong{display:block;margin-top:3px;color:var(--navy);font-size:12px;line-height:1.35}.contact-mini{display:grid;gap:13px;color:var(--muted);font-size:12.5px}.contact-mini strong{color:var(--navy)}

.cta-band{margin:22px auto 58px;background:linear-gradient(110deg,var(--navy),#0b3976 70%,#123BBD);border-radius:24px;padding:24px 30px;color:#fff;display:flex;align-items:center;justify-content:space-between;gap:20px}.cta-band h3{margin:0;font:700 26px/1.12 'Playfair Display',Georgia,serif}.cta-band p{margin:5px 0 0;color:rgba(255,255,255,.76);font-size:13px}

/* inner hero */
.inner-hero{position:relative;overflow:hidden;background:linear-gradient(110deg,#fff 0%,#fff 44%,#f6f9fd 100%)}.inner-hero-grid{min-height:460px;display:grid;grid-template-columns:42% 58%;align-items:stretch}.inner-copy{display:flex;flex-direction:column;justify-content:center;padding:48px 42px 62px 0}.inner-copy h1{margin:6px 0 0;color:var(--navy);font:700 clamp(52px,5.3vw,76px)/1 'Playfair Display',Georgia,serif;letter-spacing:-.035em}.inner-copy .tagline{margin:14px 0 0;font-size:21px;font-weight:650;color:var(--navy)}.inner-copy .lead{max-width:520px;margin:18px 0 0;color:var(--muted);font-size:15px;line-height:1.7}.inner-media{position:relative;min-height:460px;overflow:hidden;border-radius:0 0 0 52px}.inner-media img{width:100%;height:100%;object-fit:cover}.inner-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,#fff 0%,transparent 24%)}

.program-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:14px}.program-grid.eight{grid-template-columns:repeat(4,1fr)}.photo-card img{width:100%;height:185px;object-fit:cover}.photo-body{padding:15px 16px 17px}.photo-body h3{margin:0;color:var(--navy);font-size:15px}.photo-body .mini-line{width:26px;height:2px;background:var(--red);margin-top:10px}.timeline-wrap{display:grid;grid-template-columns:1.65fr .85fr;gap:18px}.timeline-card,.why-card{background:#fff;border:1px solid var(--line);border-radius:22px;padding:24px;box-shadow:var(--shadow-sm)}.timeline-row{display:grid;grid-template-columns:repeat(5,1fr);gap:10px;margin-top:20px}.timeline-row.long{grid-template-columns:repeat(8,1fr)}.timeline-node{position:relative;background:var(--mist);border:1px solid #edf1f5;border-radius:16px;padding:14px;min-height:95px}.timeline-node::before{content:"";position:absolute;top:-7px;left:20px;width:12px;height:12px;border-radius:50%;background:#fff;border:3px solid var(--blue)}.timeline-node time{display:block;color:var(--red);font-size:10px;font-weight:900;margin-top:9px}.timeline-node b{display:block;margin-top:4px;color:var(--navy);font-size:12px}.why-card h3,.timeline-card h3{margin:4px 0 0;color:var(--navy);font-size:24px}.check-list{display:grid;gap:10px;margin-top:16px}.check-list div{display:flex;gap:8px;color:var(--muted);font-size:12.5px}.check-list div::before{content:"✓";width:19px;height:19px;border-radius:50%;display:grid;place-items:center;background:#edf4ff;color:var(--blue);font-size:10px;font-weight:900;flex:0 0 auto}

/* editorial pages */
.editorial-hero{padding:62px 0 36px;background:#fff}.editorial-hero-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:42px;align-items:center}.editorial-hero h1{margin:4px 0 0;color:var(--navy);font:700 clamp(48px,5vw,72px)/1 'Playfair Display',Georgia,serif}.editorial-hero p{color:var(--muted);line-height:1.75}.editorial-media{height:410px;border-radius:34px;overflow:hidden;box-shadow:var(--shadow)}.editorial-media img{width:100%;height:100%;object-fit:cover}.pillars-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.pillar{padding:22px}.pillar-icon{width:46px;height:46px;border-radius:15px;display:grid;place-items:center;background:#f0f5ff;color:var(--blue);font-size:21px}.pillar h3{margin:15px 0 6px;color:var(--navy);font-size:18px}.pillar p{margin:0;color:var(--muted);font-size:12.5px;line-height:1.6}.media-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}.media-strip figure{margin:0;border-radius:18px;overflow:hidden;position:relative}.media-strip img{width:100%;height:210px;object-fit:cover}.media-strip figcaption{position:absolute;left:0;right:0;bottom:0;padding:28px 14px 12px;background:linear-gradient(transparent,rgba(8,43,89,.85));color:#fff;font-weight:800;font-size:12px}

/* clubs */
.filter-row{display:flex;gap:9px;flex-wrap:wrap;margin-bottom:22px}.filter-chip{border:1px solid #dfe6ef;background:#fff;color:var(--navy);padding:9px 14px;border-radius:999px;font-size:11px;font-weight:800}.filter-chip.active,.filter-chip:hover{background:var(--navy);color:#fff;border-color:var(--navy)}

/* news */
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.news-card img{width:100%;height:220px;object-fit:cover}.news-body{padding:18px}.news-meta{display:flex;justify-content:space-between;gap:8px;font-size:9px;font-weight:800;text-transform:uppercase;letter-spacing:.05em}.news-meta span{color:var(--red)}.news-meta time{color:#98a4b2}.news-body h3{margin:10px 0 0;color:var(--navy);font-size:17px;line-height:1.35}.news-body p{margin:8px 0 0;color:var(--muted);font-size:12px;line-height:1.55}

/* admissions */
.admission-shell{display:grid;grid-template-columns:1fr 320px;gap:24px}.progress{display:grid;grid-template-columns:repeat(6,1fr);gap:0;margin-bottom:26px}.progress-step{text-align:center;position:relative;color:#98a5b4;font-size:10px;font-weight:800}.progress-step::before{content:"";position:absolute;left:0;right:0;top:17px;height:1px;background:#dfe6ef;z-index:0}.progress-step:first-child::before{left:50%}.progress-step:last-child::before{right:50%}.progress-num{position:relative;z-index:1;width:36px;height:36px;border-radius:50%;margin:auto auto 7px;display:grid;place-items:center;border:1px solid #cfd9e6;background:#fff;color:var(--navy)}.progress-step.active .progress-num,.progress-step.done .progress-num{background:var(--navy);border-color:var(--navy);color:#fff}.progress-step.active{color:var(--navy)}.form-panel{background:#fff;border:1px solid var(--line);border-radius:26px;padding:28px;box-shadow:var(--shadow-sm)}.form-panel h2{margin:0;color:var(--navy);font-size:27px}.choice-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:12px;margin-top:20px}.choice{border:1px solid var(--line);background:#fff;border-radius:18px;overflow:hidden;text-align:left;padding:0;transition:.25s}.choice.selected{border-color:var(--blue);box-shadow:0 0 0 3px rgba(18,59,189,.08)}.choice img{width:100%;height:120px;object-fit:cover}.choice span{display:block;padding:12px;color:var(--navy);font-size:13px;font-weight:800}.fields{display:grid;grid-template-columns:1fr 1fr;gap:14px;margin-top:18px}.field{display:grid;gap:6px}.field.wide{grid-column:1/-1}.field label{font-size:11px;font-weight:800;color:var(--navy)}.field input,.field textarea,.field select{width:100%;border:1px solid #dce4ee;border-radius:14px;background:#fafbfd;padding:13px 14px;color:var(--ink);outline:none}.field textarea{min-height:120px;resize:vertical}.field input:focus,.field textarea:focus,.field select:focus{border-color:var(--blue);box-shadow:0 0 0 4px rgba(18,59,189,.07);background:#fff}.form-nav{display:flex;justify-content:space-between;gap:10px;margin-top:24px;padding-top:20px;border-top:1px solid #edf1f5}.admission-aside{position:sticky;top:100px;align-self:start}.admission-aside img{width:100%;height:310px;object-fit:cover;border-radius:26px}.aside-card{margin-top:12px;background:linear-gradient(145deg,var(--navy),#123BBD);color:#fff;border-radius:22px;padding:20px}.aside-card p{margin:6px 0 0;color:rgba(255,255,255,.75);font-size:12px;line-height:1.6}

/* contact */
.contact-layout{display:grid;grid-template-columns:360px 1fr;gap:26px}.contact-info h1{margin:0;color:var(--navy);font:700 clamp(50px,5vw,72px)/1 'Playfair Display',Georgia,serif}.contact-info>p{color:var(--muted);line-height:1.7}.contact-list{display:grid;gap:16px;margin-top:26px}.contact-row{display:flex;gap:12px;font-size:13px;color:var(--muted)}.contact-row .dot{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;background:#eef4ff;color:var(--blue);flex:0 0 auto}.contact-row strong{display:block;color:var(--navy);margin-bottom:2px}.map-card{height:390px;border-radius:30px;overflow:hidden;box-shadow:var(--shadow);border:1px solid var(--line)}.map-card iframe{width:100%;height:100%;border:0}.contact-form{margin-top:18px;background:#fff;border:1px solid var(--line);border-radius:24px;padding:22px;box-shadow:var(--shadow-sm)}

/* footer */
.footer{background:var(--navy);color:#fff;padding:42px 0 20px}.footer-grid{display:grid;grid-template-columns:1.25fr .8fr .8fr 1fr;gap:34px}.footer-logo{width:190px;filter:brightness(0) invert(1)}.footer p,.footer a{font-size:12px;color:rgba(255,255,255,.7);line-height:1.7}.footer h4{margin:0 0 10px;font-size:13px}.footer-links{display:grid;gap:6px}.footer-bottom{border-top:1px solid rgba(255,255,255,.12);margin-top:30px;padding-top:16px;display:flex;justify-content:space-between;gap:16px;font-size:10px;color:rgba(255,255,255,.55)}

/* motion */
.reveal{opacity:0;transform:translateY(18px);transition:opacity .68s cubic-bezier(.2,.75,.25,1),transform .68s cubic-bezier(.2,.75,.25,1)}.reveal.visible{opacity:1;transform:none}.route-curtain{position:fixed;z-index:200;inset:0;background:linear-gradient(120deg,var(--navy),var(--blue) 72%,var(--red));transform:translateX(-105%);pointer-events:none}.route-curtain.animate{animation:routeSwipe .58s cubic-bezier(.72,0,.2,1)}@keyframes routeSwipe{0%{transform:translateX(-105%)}45%{transform:translateX(0)}55%{transform:translateX(0)}100%{transform:translateX(105%)}}

/* RTL */
html[dir="rtl"] body{text-align:right}html[dir="rtl"] .desktop-nav a.active::after{left:auto;right:0}html[dir="rtl"] .feature-item{border-right:0;border-left:1px solid #edf1f5}html[dir="rtl"] .feature-item:last-child{border-left:0}html[dir="rtl"] .hero-student{left:auto;right:-42px}html[dir="rtl"] .arrow-pill{right:auto;left:15px}html[dir="rtl"] .float-actions{right:auto;left:14px}html[dir="rtl"] .companion{left:auto;right:18px}html[dir="rtl"] .assistant-pop{left:auto;right:18px}html[dir="rtl"] .inner-media{border-radius:0 0 52px 0}html[dir="rtl"] .inner-media::after{background:linear-gradient(270deg,#fff 0%,transparent 24%)}

@media(max-width:1180px){.desktop-nav{display:none}.mobile-toggle{display:grid;place-items:center}.nav-side{margin-left:auto}.home-hero-grid,.inner-hero-grid{grid-template-columns:1fr}.home-copy,.inner-copy{padding:52px 0 30px}.hero-media,.inner-media{min-height:480px;border-radius:32px}.hero-media::after,.inner-media::after{background:linear-gradient(180deg,#fff 0%,transparent 20%)}.hero-student{left:24px}.feature-bar{grid-template-columns:repeat(3,1fr);margin-top:-26px}.feature-item:nth-child(3){border-right:0}.feature-item:nth-child(-n+3){border-bottom:1px solid #edf1f5}.home-lower{grid-template-columns:1fr 1fr}.home-lower .home-panel:last-child{grid-column:1/-1}.program-grid{grid-template-columns:repeat(3,1fr)!important}.timeline-wrap{grid-template-columns:1fr}.timeline-row.long{grid-template-columns:repeat(4,1fr)}.pillars-grid{grid-template-columns:repeat(2,1fr)}.media-strip{grid-template-columns:repeat(2,1fr)}.admission-shell{grid-template-columns:1fr}.admission-aside{position:static;display:grid;grid-template-columns:260px 1fr;gap:14px}.admission-aside img{height:220px}.contact-layout{grid-template-columns:1fr}.contact-info{max-width:700px}.footer-grid{grid-template-columns:1.2fr 1fr 1fr}}
@media(max-width:760px){.container{width:min(100% - 28px,1420px)}.site-header{height:68px}.nav-row{height:68px}.brand{width:145px;height:42px}.mobile-menu{top:68px}.nav-side>.btn{display:none}.languages{display:none}.home-hero-grid{min-height:auto}.home-copy{padding:38px 0 22px}.home-copy h1{font-size:48px}.home-copy p{font-size:15px}.hero-media{min-height:390px}.hero-student{width:150px;height:220px;border-width:5px;left:12px;bottom:14px;border-radius:24px}.hero-student-tag{display:none}.feature-bar{grid-template-columns:repeat(2,1fr);border-radius:20px}.feature-item{min-height:68px}.feature-item:nth-child(2n){border-right:0}.feature-item:nth-child(-n+4){border-bottom:1px solid #edf1f5}.section{padding:58px 0}.section-head{align-items:flex-start}.section-head .text-link{display:none}.cycle-grid{display:flex;overflow-x:auto;gap:12px;padding-bottom:10px;scroll-snap-type:x mandatory}.cycle-card{min-width:78vw;scroll-snap-align:start}.cycle-card img{height:220px}.home-lower{grid-template-columns:1fr}.home-lower .home-panel:last-child{grid-column:auto}.cta-band{align-items:flex-start;flex-direction:column;padding:22px;margin-bottom:42px}.inner-copy h1,.editorial-hero h1{font-size:46px}.inner-copy .tagline{font-size:18px}.inner-media{min-height:330px}.program-grid,.program-grid.eight{display:flex;overflow-x:auto;gap:12px;padding-bottom:10px}.photo-card{min-width:72vw}.photo-card img{height:190px}.timeline-row,.timeline-row.long{display:flex;overflow-x:auto;gap:10px;padding-bottom:8px}.timeline-node{min-width:145px}.editorial-hero{padding-top:38px}.editorial-hero-grid{grid-template-columns:1fr;gap:22px}.editorial-media{height:310px}.pillars-grid{grid-template-columns:1fr}.media-strip{display:flex;overflow-x:auto}.media-strip figure{min-width:76vw}.news-grid{grid-template-columns:1fr}.news-card img{height:210px}.choice-grid{grid-template-columns:1fr 1fr}.fields{grid-template-columns:1fr}.field.wide{grid-column:auto}.progress{overflow-x:auto;display:flex;padding-bottom:8px}.progress-step{min-width:108px}.admission-aside{display:block}.admission-aside img{height:250px}.footer-grid{grid-template-columns:1fr 1fr}.footer-grid>div:first-child{grid-column:1/-1}.footer-bottom{flex-direction:column}.float-actions{right:7px}.float-action{width:48px;min-height:48px;border-radius:15px;font-size:0}.float-action .ico{font-size:20px}.companion{left:8px;bottom:8px;width:68px;height:68px;border-radius:22px}.companion-shape{width:42px;height:42px}.assistant-pop{left:8px;bottom:86px}.home-actions{gap:8px}.btn{padding:11px 16px}.hero-video-link{display:none}}
@media(max-width:480px){.home-copy h1{font-size:43px}.feature-bar{padding:8px}.feature-item{padding:8px}.feature-item small{display:none}.feature-item b{font-size:11px}.cycle-card{min-width:84vw}.photo-card{min-width:82vw}.footer-grid{grid-template-columns:1fr}.footer-grid>div:first-child{grid-column:auto}}
@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation:none!important;transition:none!important;scroll-behavior:auto!important}.reveal{opacity:1!important;transform:none!important}.companion-shape{animation:none!important}}

.brand{position:relative;overflow:hidden}.brand-static,.brand-motion{position:absolute;inset:0;width:100%;height:100%;object-fit:contain;background:#fff}.brand-static{z-index:1}.brand-motion{z-index:2;mix-blend-mode:multiply}.brand:hover .brand-motion{transform:scale(1.02)}

/* ===== V7 FINAL UX / CYCLES / NAVIGATION ===== */
.site-header{height:auto;overflow:visible}
.nav-row{height:72px}
.brand{height:46px}
.brand-static{position:static;background:transparent}
.brand-motion{display:none!important}

.cycle-nav-wrap{border-top:1px solid rgba(8,43,89,.045);border-bottom:1px solid rgba(8,43,89,.075);background:rgba(248,250,253,.97)}
.cycle-nav{height:46px;display:grid;grid-template-columns:repeat(4,1fr);align-items:stretch;max-width:900px}
.cycle-nav a{position:relative;display:flex;align-items:center;justify-content:center;gap:7px;color:#5f7188;font-size:11px;font-weight:800;transition:.22s;border-inline-end:1px solid #e8edf4}
.cycle-nav a:last-child{border-inline-end:0}
.cycle-nav a small{font-size:9px;font-weight:700;color:#9aa6b4}
.cycle-nav a:hover,.cycle-nav a.active{color:var(--navy);background:#fff}
.cycle-nav a.active::after{content:"";position:absolute;left:24%;right:24%;bottom:-1px;height:3px;border-radius:999px;background:var(--red)}
.mobile-cycle-links{display:grid;grid-template-columns:1fr 1fr;gap:7px;padding-top:10px;margin-top:4px;border-top:1px solid var(--line)}
.mobile-cycle-links a{display:flex;flex-direction:column;gap:2px;background:#f7f9fc}
.mobile-cycle-links a small{font-size:9px;color:#8795a6}
.mobile-cycle-links a.active{background:#fff3f3;color:var(--red)}

.hero-cycle-chooser{margin-top:18px;display:grid;gap:8px}
.hero-cycle-chooser>span{font-size:10px;letter-spacing:.11em;text-transform:uppercase;font-weight:900;color:#788ba2}
.hero-cycle-chooser>div{display:flex;gap:7px;flex-wrap:wrap}
.hero-cycle-chooser a{padding:8px 12px;border:1px solid #dce4ee;border-radius:999px;background:#fff;color:var(--navy);font-size:11px;font-weight:800;box-shadow:0 6px 16px rgba(8,43,89,.035);transition:.22s}
.hero-cycle-chooser a:hover{border-color:#ffb7b7;color:var(--red);transform:translateY(-2px)}

.journey-grid{display:grid;gap:14px}
.journey-step{display:grid;grid-template-columns:62px 150px 1fr 34px;align-items:center;gap:18px;padding:14px;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow-sm);transition:.28s}
.journey-step:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.journey-step img{width:150px;height:105px;object-fit:cover;border-radius:17px}
.journey-step h3{margin:0;color:var(--navy);font:700 28px/1.05 'Playfair Display',Georgia,serif}
.journey-step p{margin:4px 0;color:var(--red);font-size:11px;font-weight:900}
.journey-step small{color:var(--muted);font-size:12px}
.journey-step>b{width:34px;height:34px;border-radius:50%;background:#eef4ff;display:grid;place-items:center;color:var(--blue)}
.journey-num{width:48px;height:48px;border-radius:16px;display:grid;place-items:center;background:linear-gradient(145deg,var(--navy),var(--blue));color:#fff;font-size:12px;font-weight:900;box-shadow:0 10px 24px rgba(8,43,89,.14)}
.journey-principles{background:linear-gradient(180deg,#fff,#f7f9fc)}
.about-pathway{background:#f8fafc}

.footer-logo{width:200px;filter:none!important;background:transparent!important}
.footer-cta{display:inline-flex!important;margin-top:10px;padding:9px 13px!important;border:1px solid rgba(255,255,255,.22);border-radius:999px;color:#fff!important;font-weight:800!important}
.map-external{margin-top:22px}

/* cleaner floating controls: contact rail + one independent assistant companion */
.float-actions{gap:7px}
.float-action{width:54px;min-height:54px;border-radius:16px}
.float-action:hover{transform:translateX(-2px)}
.companion{z-index:72}
.assistant-pop{z-index:80}

/* page transition is shorter and less intrusive */
.route-curtain{background:linear-gradient(110deg,var(--navy),#103d78 70%,var(--red))}
.route-curtain.animate{animation-duration:.46s}

/* prevent old scroll positions from creating false page starts */
html,body{scroll-padding-top:130px}

/* consistency: inner pages start with the same visual rhythm */
.inner-hero,.editorial-hero{scroll-margin-top:130px}
.inner-copy h1,.editorial-hero h1{font-size:clamp(48px,5vw,72px)}

html[dir="rtl"] .cycle-nav a{border-inline-end:1px solid #e8edf4}
html[dir="rtl"] .cycle-nav a:last-child{border-inline-end:0}
html[dir="rtl"] .journey-step{grid-template-columns:34px 1fr 150px 62px}
html[dir="rtl"] .journey-step>b{grid-column:1}

@media(max-width:1180px){
  .cycle-nav{max-width:none}
  .cycle-nav a{font-size:10.5px}
  .cycle-nav a small{display:none}
}
@media(max-width:760px){
  .nav-row{height:68px}
  .cycle-nav-wrap{overflow:hidden}
  .cycle-nav{height:43px;display:flex;overflow-x:auto;max-width:none;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 8px}
  .cycle-nav::-webkit-scrollbar{display:none}
  .cycle-nav a{min-width:132px;scroll-snap-align:center;border-inline-end:0;border-right:0;gap:5px}
  .cycle-nav a small{display:inline;font-size:8px}
  .mobile-menu{top:68px;max-height:calc(100vh - 68px);overflow:auto}
  .home-copy{padding-top:34px}
  .hero-cycle-chooser>div{display:grid;grid-template-columns:1fr 1fr}
  .hero-cycle-chooser a{text-align:center}
  .journey-step{grid-template-columns:44px 92px 1fr 28px;gap:10px;padding:10px;border-radius:19px}
  .journey-step img{width:92px;height:76px;border-radius:13px}
  .journey-step h3{font-size:21px}
  .journey-step small{display:none}
  .journey-num{width:40px;height:40px;border-radius:13px}
  .journey-step>b{width:28px;height:28px}
  .float-action{width:46px;min-height:46px}
  html,body{scroll-padding-top:112px}
}
@media(max-width:480px){
  .cycle-nav a{min-width:116px;font-size:10px}
  .journey-step{grid-template-columns:38px 78px 1fr}
  .journey-step img{width:78px;height:68px}
  .journey-step>b{display:none}
  .journey-step h3{font-size:19px}
}

/* =========================================================
   V8 — PALMARÈS PREMIUM ARTISTIC SYSTEM
   Unified dark-navy hero, soft 3D education objects, smooth
   transitions and permanent cycle access across every page.
   ========================================================= */
:root{
  --navy-deep:#031a39;
  --navy-art:#062b59;
  --navy-electric:#0b4a92;
  --red-bright:#ef1515;
  --gold-soft:#e7c273;
  --surface:#f5f7fb;
  --surface-2:#eef3f9;
  --glass:rgba(255,255,255,.94);
  --art-shadow:0 28px 80px rgba(2,23,52,.18);
  --art-shadow-soft:0 15px 42px rgba(5,35,70,.10);
}
body{background:var(--surface);}
body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:-2;background:radial-gradient(circle at 15% 10%,rgba(18,59,189,.045),transparent 28%),radial-gradient(circle at 86% 75%,rgba(230,0,0,.035),transparent 24%),#f5f7fb}

/* Header as a premium floating white capsule */
.site-header{top:0;background:rgba(245,247,251,.76);backdrop-filter:blur(18px);border:0;padding-top:9px;box-shadow:none;transition:padding .3s,background .3s}
.site-header.scrolled{background:rgba(245,247,251,.92);box-shadow:none;padding-top:5px}
.nav-row{height:68px;background:rgba(255,255,255,.98);border:1px solid rgba(8,43,89,.06);border-radius:22px;padding:0 20px;box-shadow:0 12px 38px rgba(5,35,70,.09);transition:.35s cubic-bezier(.22,.8,.2,1)}
.site-header.scrolled .nav-row{height:64px;box-shadow:0 14px 42px rgba(5,35,70,.12)}
.brand{width:166px;height:46px}
.desktop-nav{gap:18px}
.desktop-nav a{font-size:12px;letter-spacing:-.01em}
.desktop-nav a.active::after{bottom:-12px;height:3px;background:var(--red-bright)}
.languages{background:#f5f7fa;border-radius:999px;padding:3px}
.languages button{min-width:34px;padding:6px 8px}
.languages button.active{background:var(--red-bright);color:white;box-shadow:0 6px 14px rgba(230,0,0,.17)}
.nav-side>.btn{padding:12px 18px}

/* Always-visible cycle navigator, unified on every route */
.cycle-nav-wrap{margin-top:7px;border:0;background:transparent;padding-bottom:7px}
.cycle-nav{height:48px;max-width:100%;background:rgba(255,255,255,.94);border:1px solid rgba(8,43,89,.065);border-radius:17px;box-shadow:0 8px 22px rgba(5,35,70,.055);overflow:hidden}
.cycle-nav a{font-size:11.5px;border-inline-end:1px solid #edf1f6;color:#66798f;transition:background .25s,color .25s,transform .25s}
.cycle-nav a::before{content:"";width:26px;height:26px;border-radius:9px;background:linear-gradient(145deg,#f6f8ff,#edf3ff);box-shadow:inset 0 0 0 1px rgba(18,59,189,.08);transition:.3s;flex:0 0 auto}
.cycle-nav a:nth-child(1)::before{background:radial-gradient(circle at 35% 35%,#fff0e7,#ffe1d4)}
.cycle-nav a:nth-child(2)::before{background:radial-gradient(circle at 35% 35%,#eef4ff,#dce8ff)}
.cycle-nav a:nth-child(3)::before{background:radial-gradient(circle at 35% 35%,#e9fff4,#d9f3e7)}
.cycle-nav a:nth-child(4)::before{background:radial-gradient(circle at 35% 35%,#f2edff,#e6ddff)}
.cycle-nav a:hover,.cycle-nav a.active{background:white;color:var(--navy);transform:translateY(-1px)}
.cycle-nav a:hover::before,.cycle-nav a.active::before{transform:rotateY(18deg) rotateX(7deg) scale(1.06);box-shadow:0 8px 16px rgba(8,43,89,.11)}
.cycle-nav a.active::after{left:12%;right:12%;height:3px;background:var(--red-bright)}

/* Buttons */
.btn{position:relative;overflow:hidden;isolation:isolate;transition:transform .32s cubic-bezier(.2,.8,.2,1),box-shadow .32s,background .32s,color .32s,border-color .32s}
.btn::before{content:"";position:absolute;inset:-2px;z-index:-1;background:linear-gradient(110deg,transparent 15%,rgba(255,255,255,.30),transparent 65%);transform:translateX(-130%);transition:transform .6s}
.btn:hover::before{transform:translateX(130%)}
.btn:hover{transform:translateY(-3px) scale(1.015)}
.btn-primary{background:linear-gradient(135deg,#ed0e0e,#f22a21);box-shadow:0 13px 30px rgba(230,0,0,.22)}
.btn-primary:hover{box-shadow:0 18px 38px rgba(230,0,0,.32)}
.btn-glass{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:999px;padding:12px 20px;border:1px solid rgba(255,255,255,.32);color:#fff;background:rgba(255,255,255,.055);backdrop-filter:blur(10px);font-weight:750;font-size:13px;transition:.3s}
.btn-glass:hover{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.65);transform:translateY(-3px)}
.text-link{display:inline-flex;align-items:center;gap:7px;color:var(--navy);font-size:12px;font-weight:800;transition:.25s}
.text-link:hover{color:var(--red-bright);transform:translateX(3px)}
html[dir="rtl"] .text-link:hover{transform:translateX(-3px)}

/* Shared artistic hero system */
.premium-art-hero{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(circle at 68% 20%,rgba(21,92,173,.54),transparent 28%),linear-gradient(120deg,var(--navy-deep) 0%,#073468 52%,#0a4a83 100%);color:#fff}
.premium-art-hero::before{content:"";position:absolute;inset:0;z-index:0;pointer-events:none;background:radial-gradient(circle at 21% 80%,rgba(53,119,202,.18),transparent 22%),linear-gradient(100deg,rgba(1,18,41,.50),transparent 55%)}
.premium-art-hero::after{content:"";position:absolute;inset:auto 0 0;height:130px;z-index:1;pointer-events:none;background:linear-gradient(180deg,transparent,rgba(2,25,55,.14))}
.premium-art-hero .container{position:relative;z-index:3}
.premium-art-hero .eyebrow{color:#ff4747}
.premium-art-hero h1,.premium-art-hero h2,.premium-art-hero .tagline{color:#fff}
.premium-art-hero p,.premium-art-hero .lead{color:rgba(255,255,255,.79)}

/* Home hero modeled after the selected artistic reference */
.home-hero{background:radial-gradient(circle at 67% 17%,rgba(25,100,186,.50),transparent 30%),linear-gradient(115deg,#021831 0%,#052d5b 52%,#0b538f 100%)}
.home-hero-grid{min-height:630px;grid-template-columns:43% 57%;position:relative}
.home-copy{padding:62px 34px 62px 6px;color:#fff;z-index:6}
.home-copy .eyebrow{color:#ff3838;letter-spacing:.24em;font-size:10px}
.home-copy h1{color:#fff;font-size:clamp(52px,5.2vw,80px);line-height:.98;letter-spacing:-.038em;max-width:690px;text-shadow:0 8px 35px rgba(0,0,0,.08)}
.home-copy h1 .red{color:#fff}
.home-copy h1 .red::after{content:"";display:block;width:68px;height:3px;border-radius:99px;background:var(--red-bright);margin-top:18px}
.home-copy p{color:rgba(255,255,255,.82);font-size:16px;max-width:500px;margin-top:24px}
.home-actions{margin-top:26px}
.hero-proof-row{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:0;margin-top:46px;border-top:1px solid rgba(255,255,255,.18);padding-top:18px;max-width:670px}
.hero-proof-row span{min-height:58px;padding:0 15px;border-right:1px solid rgba(255,255,255,.18);color:rgba(255,255,255,.77);font-size:10px;line-height:1.35;font-weight:700;display:flex;align-items:center;gap:10px}
.hero-proof-row span:first-child{padding-left:0}.hero-proof-row span:last-child{border-right:0}
.hero-proof-row b{font-family:'Playfair Display',Georgia,serif;color:#fff;font-size:30px;line-height:1;font-weight:700}
.artistic-home-media{min-height:630px;overflow:visible;position:relative}
.artistic-home-media .facade{inset:0 -60px 0 0;width:calc(100% + 60px);height:100%;object-fit:cover;object-position:center 40%;filter:saturate(.96) contrast(1.04);transform:translateY(var(--parallax-y,0)) scale(1.025);transition:transform .08s linear}
.artistic-home-media::before{content:"";position:absolute;z-index:2;inset:0;background:linear-gradient(90deg,#052d5b 0%,rgba(5,45,91,.80) 8%,rgba(5,45,91,.18) 31%,transparent 56%),linear-gradient(0deg,rgba(2,23,49,.25),transparent 45%);pointer-events:none}
.artistic-home-media::after{content:"";position:absolute;z-index:2;inset:0;box-shadow:inset 0 -70px 80px rgba(2,24,50,.28);pointer-events:none}
.home-student-portrait{position:absolute;z-index:5;left:2%;bottom:0;width:min(42%,360px);height:82%;overflow:hidden;border-radius:44% 44% 18px 18px;filter:drop-shadow(0 30px 36px rgba(0,0,0,.23));animation:portraitFloat 7s ease-in-out infinite}
.home-student-portrait img{width:100%;height:100%;object-fit:cover;object-position:26% center;filter:saturate(.92) contrast(1.05);mask-image:linear-gradient(180deg,#000 0 82%,transparent 100%)}
.home-student-group{position:absolute;z-index:6;left:-7%;bottom:26px;width:230px;height:148px;border:6px solid rgba(255,255,255,.94);border-radius:30px;overflow:hidden;box-shadow:0 26px 60px rgba(0,0,0,.23);transform:rotate(-1.6deg)}
.home-student-group img{width:100%;height:100%;object-fit:cover}
@keyframes portraitFloat{0%,100%{transform:translateY(0)}50%{transform:translateY(-7px)}}

/* Floating 3D artistic educational objects */
.art-scene{position:absolute;inset:0;z-index:4;pointer-events:none;perspective:900px;overflow:hidden;--scroll-depth:0}
.art-grid{position:absolute;left:4%;bottom:3%;width:56%;height:42%;opacity:.16;background-image:radial-gradient(circle,rgba(140,198,255,.85) 1.2px,transparent 1.4px);background-size:18px 18px;mask-image:linear-gradient(90deg,transparent,#000 20% 75%,transparent);transform:perspective(600px) rotateX(64deg) translateY(calc(var(--scroll-depth)*10px));transform-origin:bottom}
.art-orb{position:absolute;border-radius:50%;background:radial-gradient(circle at 30% 24%,#fff 0 8%,#f3d9ae 18%,#c39861 48%,#735337 100%);box-shadow:inset -7px -8px 12px rgba(0,0,0,.2),0 14px 28px rgba(0,0,0,.16);transform:translate(var(--mx,0),var(--my,0)) translateZ(20px);transition:transform .12s linear;animation:orbFloat 6s ease-in-out infinite}
.orb-a{width:22px;height:22px;left:48%;top:16%}.orb-b{width:15px;height:15px;left:67%;top:26%;animation-delay:-1.5s}.orb-c{width:30px;height:30px;left:57%;top:64%;animation-delay:-3s;background:radial-gradient(circle at 30% 25%,#66a2ef,#204e91 54%,#0a2346 100%)}
@keyframes orbFloat{0%,100%{margin-top:0}50%{margin-top:-13px}}
.art-cap{position:absolute;left:46%;top:22%;width:86px;height:66px;transform-style:preserve-3d;transform:translate(var(--mx,0),var(--my,0)) rotate(-10deg) rotateY(-14deg);filter:drop-shadow(0 18px 24px rgba(0,0,0,.25));animation:capFloat 7s ease-in-out infinite}
.art-cap::before{content:"";position:absolute;left:8px;top:8px;width:70px;height:46px;background:linear-gradient(145deg,#264c98,#071d4a);clip-path:polygon(50% 0,100% 42%,50% 84%,0 42%);border-radius:5px;box-shadow:inset 8px 8px 12px rgba(255,255,255,.13),inset -7px -9px 13px rgba(0,0,0,.2)}
.art-cap::after{content:"";position:absolute;left:67px;top:27px;width:3px;height:35px;background:#e8be45;border-radius:8px;box-shadow:0 30px 0 2px #e8be45}
.art-cap i{position:absolute;left:26px;top:39px;width:42px;height:18px;background:#09234b;border-radius:0 0 20px 20px;transform:perspective(80px) rotateX(-48deg)}
@keyframes capFloat{0%,100%{margin-top:0;rotate:0deg}50%{margin-top:-10px;rotate:2deg}}
.art-book{position:absolute;right:6%;bottom:8%;width:84px;height:58px;transform:translate(var(--mx,0),var(--my,0)) rotate(-13deg) rotateX(18deg);filter:drop-shadow(0 15px 22px rgba(0,0,0,.25));animation:bookFloat 6.4s ease-in-out infinite}
.art-book::before,.art-book::after{content:"";position:absolute;top:8px;width:45px;height:48px;background:linear-gradient(110deg,#fff,#efe6d5);border:2px solid rgba(119,89,48,.26);box-shadow:inset 0 0 12px rgba(126,91,45,.08)}
.art-book::before{left:1px;transform:skewY(-10deg);border-radius:4px 0 2px 10px}.art-book::after{right:1px;transform:skewY(10deg);border-radius:0 4px 10px 2px}
.art-book i{position:absolute;z-index:2;left:42px;top:7px;width:2px;height:49px;background:#a88356}.art-book b{position:absolute;z-index:3;left:16px;right:16px;bottom:-7px;height:3px;border-radius:99px;background:#e60000}
@keyframes bookFloat{0%,100%{margin-bottom:0}50%{margin-bottom:9px}}
.art-atom{position:absolute;left:39%;bottom:18%;width:82px;height:82px;transform:translate(var(--mx,0),var(--my,0)) rotateX(16deg);opacity:.78;animation:atomSpin 15s linear infinite}
.art-atom i{position:absolute;inset:19px 3px;border:1.5px solid rgba(125,186,255,.52);border-radius:50%}.art-atom i:nth-child(2){transform:rotate(60deg)}.art-atom i:nth-child(3){transform:rotate(120deg)}.art-atom b{position:absolute;left:35px;top:35px;width:12px;height:12px;border-radius:50%;background:radial-gradient(circle at 30% 25%,#fff,#ee2525 50%,#9a0505);box-shadow:0 0 20px rgba(255,54,54,.45)}
@keyframes atomSpin{to{rotate:360deg}}
.art-maternelle .art-atom{display:none}.art-primaire .art-cap{top:14%}.art-college .art-atom{left:auto;right:38%;bottom:10%}.art-lycee .art-cap{left:auto;right:34%;top:16%}.art-contact .art-book{right:34%;bottom:12%}.art-admissions .art-cap{left:auto;right:34%}

/* Feature strip */
.home-feature-overlap{position:relative;z-index:12;margin-top:-44px}
.home-feature-overlap .feature-bar{margin-top:0}
.feature-bar{grid-template-columns:repeat(5,1fr);border-radius:23px;padding:10px;background:rgba(255,255,255,.97);box-shadow:0 20px 55px rgba(4,33,69,.17)}
.feature-item{min-height:74px;transform-style:preserve-3d;transition:.34s cubic-bezier(.2,.8,.2,1)}
.feature-item:hover{transform:translateY(-4px)}
.feature-icon{position:relative;transform-style:preserve-3d;background:linear-gradient(145deg,#f9fbff,#eaf1fb);box-shadow:inset 1px 1px 0 #fff,0 7px 15px rgba(4,40,82,.08)}
.feature-icon::after{content:"";position:absolute;inset:5px;border-radius:10px;border:1px solid rgba(18,59,189,.08);transform:translateZ(-8px)}
.feature-icon span{display:block;transition:.38s cubic-bezier(.2,.8,.2,1);transform:translateZ(10px)}
.feature-item:hover .feature-icon span{transform:translateZ(22px) rotateY(18deg) rotateX(-8deg) scale(1.08)}

/* Home cycle strip */
.home-cycles-section{padding:70px 0 18px;background:linear-gradient(180deg,#f5f7fb,#f8f9fc)}
.home-cycle-strip{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.home-cycle-link{--rx:0deg;--ry:0deg;position:relative;display:grid;grid-template-columns:58px 1fr 26px;align-items:center;gap:14px;padding:20px 17px;background:#fff;border:1px solid #e8edf5;border-radius:24px;box-shadow:0 14px 38px rgba(5,35,70,.07);transform:perspective(950px) rotateX(var(--rx)) rotateY(var(--ry));transition:transform .32s cubic-bezier(.2,.8,.2,1),box-shadow .32s,border-color .32s}
.home-cycle-link:hover,.home-cycle-link.is-tilting{box-shadow:0 25px 55px rgba(5,35,70,.13);border-color:#dce4f0}
.cycle-3d-icon{width:58px;height:58px;border-radius:20px;display:grid;place-items:center;font-size:26px;color:var(--navy);background:linear-gradient(145deg,#f7f9ff,#e8eef9);box-shadow:inset 2px 2px 2px #fff,7px 10px 18px rgba(5,35,70,.08);transform:perspective(220px) rotateY(-10deg) rotateX(5deg);transition:.35s}
.home-cycle-link:nth-child(1) .cycle-3d-icon{color:#dd402f;background:linear-gradient(145deg,#fff0ea,#ffe4da)}
.home-cycle-link:nth-child(3) .cycle-3d-icon{color:#17805a;background:linear-gradient(145deg,#eafff5,#daf5e8)}
.home-cycle-link:nth-child(4) .cycle-3d-icon{color:#3d4aa4;background:linear-gradient(145deg,#f3f0ff,#e6e0ff)}
.home-cycle-link:hover .cycle-3d-icon{transform:perspective(220px) rotateY(12deg) rotateX(-5deg) translateY(-3px)}
.home-cycle-link strong{display:block;font:700 24px/1.05 'Playfair Display',Georgia,serif;color:var(--navy)}
.home-cycle-link small{display:block;color:#6d7e91;font-size:11px;font-weight:700;margin-top:3px}
.home-cycle-link em{display:block;color:#8996a5;font-size:10px;line-height:1.45;font-style:normal;margin-top:8px}
.home-cycle-link>b{width:26px;height:26px;border-radius:50%;display:grid;place-items:center;background:#f4f7fc;color:var(--red-bright)}

/* Home lower panels */
.premium-home-lower{padding-top:34px;background:#f8f9fc}
.home-lower{grid-template-columns:1.15fr .9fr 1fr;gap:16px}
.home-panel{border-radius:26px;border:1px solid #e8edf4;box-shadow:0 14px 34px rgba(5,35,70,.06);background:rgba(255,255,255,.95);transition:.3s}
.home-panel:hover{transform:translateY(-4px);box-shadow:0 22px 48px rgba(5,35,70,.10)}
.visual-panel{display:grid;grid-template-columns:1fr .8fr;padding:0;overflow:hidden;min-height:245px}
.visual-panel .panel-copy{padding:25px}
.visual-panel .panel-photo{min-height:100%;overflow:hidden}
.visual-panel .panel-photo img{width:100%;height:100%;object-fit:cover;transition:transform .6s cubic-bezier(.2,.8,.2,1)}
.visual-panel:hover .panel-photo img{transform:scale(1.045)}
.map-panel{grid-template-columns:1fr 1fr}.facade-mini img{object-position:center}

/* Unified inner/editorial heroes */
.inner-hero,.editorial-hero{background:radial-gradient(circle at 68% 18%,rgba(32,105,190,.50),transparent 28%),linear-gradient(118deg,#031a39,#063363 58%,#0a4e88);color:#fff;position:relative;overflow:hidden}
.inner-hero-grid{min-height:500px;grid-template-columns:43% 57%;align-items:center;position:relative}
.inner-copy{padding:60px 18px 60px 0;z-index:6}.inner-copy .eyebrow{color:#ff4545}.inner-copy h1{font-size:clamp(58px,6vw,88px);color:#fff;line-height:.96}.inner-copy .tagline{color:#fff;font-size:24px;font-family:'Playfair Display',Georgia,serif}.inner-copy .lead{color:rgba(255,255,255,.78);max-width:500px}
.inner-media{height:440px;min-height:0;border-radius:46% 8% 8% 46%;overflow:hidden;margin:32px 0;box-shadow:0 32px 70px rgba(0,0,0,.23);position:relative;z-index:4;transform:perspective(900px) rotateY(-2deg)}
html[dir="rtl"] .inner-media{border-radius:8% 46% 46% 8%;transform:perspective(900px) rotateY(2deg)}
.inner-media img{width:100%;height:100%;object-fit:cover;object-position:center;transform:translateY(var(--parallax-y,0)) scale(1.045);transition:transform .08s linear}
.inner-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(3,26,57,.25),transparent 38%),linear-gradient(0deg,rgba(3,26,57,.18),transparent 45%)}
.media-ring{position:absolute;right:10%;top:8%;width:120px;height:120px;border:1px solid rgba(255,255,255,.28);border-radius:50%;box-shadow:0 0 0 16px rgba(255,255,255,.035),0 0 0 34px rgba(255,255,255,.022);animation:ringPulse 5s ease-in-out infinite}
@keyframes ringPulse{50%{transform:scale(1.06);opacity:.55}}
.editorial-hero{padding:0}
.editorial-hero-grid{min-height:490px;grid-template-columns:44% 56%;align-items:center;position:relative}
.editorial-hero h1{color:#fff;font-size:clamp(50px,5vw,74px);max-width:680px}.editorial-hero p{color:rgba(255,255,255,.78);font-size:16px;line-height:1.7;max-width:580px}.editorial-hero .btn{margin-top:12px}
.editorial-media{height:390px;border-radius:44% 12% 12% 44%;overflow:hidden;box-shadow:0 30px 70px rgba(0,0,0,.23);z-index:4;position:relative}
.editorial-media img{width:100%;height:100%;object-fit:cover;transform:translateY(var(--parallax-y,0)) scale(1.04);transition:transform .08s linear}
html[dir="rtl"] .editorial-media{border-radius:12% 44% 44% 12%}

/* Compact hero for Admissions and Contact */
.compact-art-hero{position:relative;overflow:hidden;background:radial-gradient(circle at 70% 25%,rgba(28,105,194,.52),transparent 28%),linear-gradient(118deg,#031a39,#063363 57%,#0a4d86);color:#fff}
.compact-art-grid{min-height:360px;display:grid;grid-template-columns:48% 52%;align-items:center;position:relative}
.compact-art-copy{padding:48px 30px 48px 0;z-index:5}.compact-art-copy .eyebrow{color:#ff4545}.compact-art-copy h1{margin:7px 0 12px;color:#fff;font:700 clamp(48px,5vw,72px)/1 'Playfair Display',Georgia,serif;letter-spacing:-.035em}.compact-art-copy p{max-width:600px;color:rgba(255,255,255,.76);line-height:1.7}
.compact-art-media{height:310px;border-radius:44% 12% 12% 44%;overflow:hidden;z-index:4;box-shadow:0 25px 60px rgba(0,0,0,.22)}.compact-art-media img{width:100%;height:100%;object-fit:cover;transform:translateY(var(--parallax-y,0)) scale(1.04)}
html[dir="rtl"] .compact-art-media{border-radius:12% 44% 44% 12%}
.admission-main,.contact-main{background:linear-gradient(180deg,#f5f7fb,#fff)}

/* Content cards and depth */
.program-section{background:linear-gradient(180deg,#f5f7fb,#fff)}
.photo-card,.soft-card,.news-card,.choice,.form-panel,.contact-form,.map-card{border-radius:24px;border-color:#e8edf4;box-shadow:0 14px 36px rgba(5,35,70,.065);transform-style:preserve-3d;transition:transform .35s cubic-bezier(.2,.8,.2,1),box-shadow .35s,border-color .35s}
.tilt{transform:perspective(950px) rotateX(var(--rx,0deg)) rotateY(var(--ry,0deg));will-change:transform}
.tilt.is-tilting{box-shadow:0 25px 56px rgba(5,35,70,.14)}
.photo-card:hover,.soft-card:hover,.news-card:hover{box-shadow:0 24px 54px rgba(5,35,70,.12);border-color:#dce5f1}
.photo-card img,.news-card img,.media-strip img{transition:transform .65s cubic-bezier(.2,.8,.2,1),filter .65s}
.photo-card:hover img,.news-card:hover img,.media-strip figure:hover img{transform:scale(1.045);filter:saturate(1.04)}
.pillars-grid{gap:16px}.pillar-icon{box-shadow:0 8px 20px rgba(8,43,89,.08);transform:perspective(200px) rotateY(-8deg);transition:.35s}.soft-card:hover .pillar-icon{transform:perspective(200px) rotateY(14deg) translateY(-3px)}

/* CTA and footer */
.cta-band{background:radial-gradient(circle at 85% 0,rgba(37,109,196,.28),transparent 25%),linear-gradient(115deg,#031a39,#063a70);border-radius:28px;box-shadow:0 22px 56px rgba(5,35,70,.19);position:relative;overflow:hidden}
.cta-band::before{content:"";position:absolute;inset:0;opacity:.20;background-image:radial-gradient(circle,rgba(140,194,255,.8) 1px,transparent 1px);background-size:18px 18px;mask-image:linear-gradient(90deg,transparent,#000 30%,transparent)}
.cta-band>*{position:relative;z-index:2}
.footer{position:relative;overflow:hidden;background:linear-gradient(120deg,#021831,#06315e)}
.footer::before{content:"";position:absolute;inset:0;opacity:.08;background-image:radial-gradient(circle,#93c6ff 1px,transparent 1px);background-size:21px 21px;mask-image:linear-gradient(0deg,#000,transparent 65%)}
.footer .container{position:relative;z-index:2}

/* Floating actions and assistant */
.float-actions{right:16px}.float-action{border-radius:18px;box-shadow:0 14px 34px rgba(3,26,57,.14);transition:.32s cubic-bezier(.2,.8,.2,1)}.float-action:hover{transform:translateX(-7px) rotateY(-7deg)}
.companion{background:linear-gradient(145deg,#fff,#eaf1fc);box-shadow:0 22px 55px rgba(3,26,57,.20);transform-style:preserve-3d}.companion:hover{transform:translateY(-6px) rotateY(14deg) rotateX(-4deg) scale(1.03)}

/* Staggered reveal */
.reveal{opacity:0;transform:translateY(24px) scale(.99);transition:opacity .72s cubic-bezier(.2,.75,.2,1),transform .72s cubic-bezier(.2,.75,.2,1);transition-delay:calc(var(--reveal-index,0)*35ms)}
.reveal.visible{opacity:1;transform:none}
.home-cycle-link,.feature-item,.photo-card{transition-delay:calc(var(--stagger,0)*28ms)}

/* Route morph / page transition */
.route-curtain{position:fixed;inset:0;z-index:999;pointer-events:none;background:transparent;overflow:hidden;opacity:0}
.route-curtain span{position:absolute;border-radius:50%;transform:scale(0);background:linear-gradient(135deg,#041d3d,#0a4b89 72%,#e60000);box-shadow:0 0 0 999vmax rgba(3,26,57,.04)}
.route-curtain span:nth-child(1){width:120vmax;height:120vmax;left:-45vmax;top:-45vmax}.route-curtain span:nth-child(2){width:92vmax;height:92vmax;right:-38vmax;bottom:-42vmax;background:linear-gradient(135deg,#082b59,#123bbd)}.route-curtain span:nth-child(3){width:34vmax;height:34vmax;right:15%;top:33%;background:var(--red-bright)}
.route-curtain.animate{animation:v8Curtain .6s ease both}
.route-curtain.animate span:nth-child(1){animation:v8Blob .6s cubic-bezier(.55,.02,.22,1) both}.route-curtain.animate span:nth-child(2){animation:v8Blob .6s .035s cubic-bezier(.55,.02,.22,1) both}.route-curtain.animate span:nth-child(3){animation:v8Blob .52s .05s cubic-bezier(.55,.02,.22,1) both}
@keyframes v8Curtain{0%{opacity:0}20%,72%{opacity:1}100%{opacity:0}}
@keyframes v8Blob{0%{transform:scale(0)}47%{transform:scale(1)}100%{transform:scale(1.07)}}
.scroll-progress{--progress:0%;position:fixed;left:0;top:0;z-index:1100;height:3px;width:var(--progress);background:linear-gradient(90deg,var(--red-bright),#ff6b62);box-shadow:0 1px 10px rgba(230,0,0,.35);pointer-events:none;transition:width .08s linear}

/* RTL artistic corrections */
html[dir="rtl"] .home-copy{padding:62px 6px 62px 34px}
html[dir="rtl"] .hero-proof-row span{border-right:0;border-left:1px solid rgba(255,255,255,.18)}
html[dir="rtl"] .hero-proof-row span:first-child{padding-right:0;padding-left:15px}
html[dir="rtl"] .home-copy h1 .red::after{margin-right:0;margin-left:auto}
html[dir="rtl"] .home-student-portrait{left:auto;right:2%}
html[dir="rtl"] .home-student-group{left:auto;right:-7%}
html[dir="rtl"] .inner-copy,.compact-art-copy{padding-right:0;padding-left:18px}

/* Responsive premium system */
@media(max-width:1180px){
  .site-header{padding-top:6px}.nav-row{border-radius:18px;padding:0 14px}.desktop-nav{gap:12px}.desktop-nav a{font-size:11px}.nav-side>.btn{padding:10px 13px;font-size:11px}
  .home-hero-grid{grid-template-columns:45% 55%;min-height:570px}.artistic-home-media{min-height:570px}.home-copy h1{font-size:clamp(48px,5.4vw,66px)}
  .hero-proof-row{grid-template-columns:1fr 1fr;margin-top:32px}.hero-proof-row span:nth-child(2){border-right:0}.hero-proof-row span:nth-child(-n+2){border-bottom:1px solid rgba(255,255,255,.14);padding-bottom:10px;margin-bottom:10px}
  .home-student-portrait{width:43%}.home-student-group{width:190px;height:128px}
  .home-cycle-strip{grid-template-columns:1fr 1fr}.home-lower{grid-template-columns:1fr 1fr}.home-lower .home-panel:last-child{grid-column:1/-1}
  .inner-hero-grid,.editorial-hero-grid,.compact-art-grid{grid-template-columns:46% 54%}.inner-media{height:390px}.editorial-media{height:350px}
}
@media(max-width:900px){
  .site-header{padding:4px 0 0}.nav-row{border-radius:16px}.desktop-nav{display:none}.mobile-toggle{display:grid;place-items:center}.brand{margin-right:auto}.nav-side{margin-left:auto}
  .cycle-nav-wrap{padding-bottom:4px}.cycle-nav{border-radius:14px}
  .home-hero-grid{display:block;min-height:auto}.home-copy{padding:52px 4px 28px}.home-copy h1{max-width:700px}.artistic-home-media{min-height:470px}.home-student-portrait{width:270px;left:5%;height:82%}.home-student-group{left:31%;width:175px;height:118px}
  .home-feature-overlap{margin-top:-30px}.feature-bar{grid-template-columns:repeat(5,minmax(150px,1fr));overflow-x:auto;scrollbar-width:none}.feature-item{min-width:155px;border-bottom:0!important}.feature-bar::-webkit-scrollbar{display:none}
  .home-cycle-strip{grid-template-columns:1fr 1fr}.visual-panel{grid-template-columns:1fr .75fr}
  .inner-hero-grid,.editorial-hero-grid,.compact-art-grid{grid-template-columns:1fr;min-height:auto;padding:46px 0}.inner-copy,.compact-art-copy{padding:0 0 30px}.inner-media,.editorial-media,.compact-art-media{height:360px;margin:0;border-radius:30px!important;transform:none}
  .art-cap{left:auto;right:6%;top:8%}.art-atom{left:auto;right:18%;bottom:2%}.art-book{right:4%;bottom:2%}
}
@media(max-width:760px){
  .container{width:min(100% - 24px,1420px)}.site-header{padding-top:0}.nav-row{height:64px;border-radius:0;border-left:0;border-right:0;padding:0 12px}.brand{width:138px}.mobile-menu{top:64px}
  .cycle-nav-wrap{margin-top:0;padding-bottom:3px;background:#fff}.cycle-nav{height:43px;border-radius:0;border-left:0;border-right:0;box-shadow:none}.cycle-nav a::before{display:none}
  .home-copy{padding-top:38px}.home-copy h1{font-size:46px}.home-copy p{font-size:14px}.hero-proof-row{display:none}.home-actions{gap:8px}.btn-glass,.btn{padding:11px 15px;font-size:12px}
  .artistic-home-media{min-height:390px}.artistic-home-media .facade{object-position:60% center}.home-student-portrait{width:205px;height:82%;left:2%;border-radius:35% 35% 16px 16px}.home-student-group{width:140px;height:92px;left:34%;bottom:16px;border-width:4px;border-radius:19px}
  .art-cap{width:64px;height:50px;left:auto;right:13%;top:9%}.art-book{width:62px;height:44px;right:3%;bottom:8%}.art-atom{width:62px;height:62px;right:22%;bottom:9%}.art-orb{display:none}.art-grid{width:100%;opacity:.11}
  .home-feature-overlap{margin-top:-22px}.feature-bar{border-radius:18px}.feature-item{min-height:65px;padding:8px 10px}.feature-item b{font-size:11px}.feature-item small{font-size:9px}.feature-icon{width:36px;height:36px}
  .home-cycles-section{padding:50px 0 10px}.home-cycle-strip{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;padding-bottom:10px;scrollbar-width:none}.home-cycle-strip::-webkit-scrollbar{display:none}.home-cycle-link{min-width:82vw;scroll-snap-align:center;grid-template-columns:52px 1fr 25px;padding:17px;border-radius:21px}.cycle-3d-icon{width:52px;height:52px;border-radius:17px}.home-cycle-link strong{font-size:21px}
  .home-lower{grid-template-columns:1fr}.home-lower .home-panel:last-child{grid-column:auto}.visual-panel{grid-template-columns:1fr 145px;min-height:220px}.visual-panel .panel-copy{padding:20px}.visual-panel .panel-photo{min-height:220px}
  .inner-hero-grid,.editorial-hero-grid,.compact-art-grid{padding:32px 0}.inner-copy h1,.editorial-hero h1,.compact-art-copy h1{font-size:46px}.inner-copy .tagline{font-size:20px}.inner-media,.editorial-media,.compact-art-media{height:300px;border-radius:25px!important}
  .route-curtain span:nth-child(3){display:none}.scroll-progress{height:2px}
  .cta-band{border-radius:23px}.float-actions{right:7px}.companion{width:64px;height:64px;border-radius:20px}
}
@media(max-width:480px){
  .home-copy h1{font-size:42px}.artistic-home-media{min-height:345px}.home-student-portrait{width:176px}.home-student-group{width:118px;height:82px;left:37%}
  .home-cycle-link{min-width:88vw}.visual-panel{display:block}.visual-panel .panel-photo{height:190px;min-height:0}.map-panel{display:grid;grid-template-columns:1fr}.feature-item{min-width:145px}
  .inner-media,.editorial-media,.compact-art-media{height:250px}.inner-copy h1,.editorial-hero h1,.compact-art-copy h1{font-size:42px}
}
@media(prefers-reduced-motion:reduce){
  .art-cap,.art-book,.art-atom,.art-orb,.home-student-portrait{animation:none!important}.parallax-img{transform:none!important}.route-curtain{display:none!important}.tilt{transform:none!important}
}

/* V8 final polish */
.feature-bar:has(.feature-item:nth-child(6)){grid-template-columns:repeat(6,1fr)}
html.is-routing main{opacity:.72;transform:scale(.995);filter:blur(1.5px);transition:opacity .25s,transform .25s,filter .25s}
main{animation:v8PageEnter .48s cubic-bezier(.2,.8,.2,1) both}
@keyframes v8PageEnter{from{opacity:.25;transform:translateY(8px)}to{opacity:1;transform:none}}
@media(max-width:900px){.mobile-menu{top:119px}}
@media(max-width:760px){.mobile-menu{top:107px}.feature-bar:has(.feature-item:nth-child(6)){grid-template-columns:repeat(6,minmax(145px,1fr))}}
@media(prefers-reduced-motion:reduce){main{animation:none!important}.is-routing main{filter:none!important;opacity:1!important;transform:none!important}}

/* =========================================================
   V9 MOBILE QA FIXES — based on real 720x1604 phone recording
   Goals: all 4 cycles visible, balanced Home hero crop,
   no overlapping assistant, reduced mobile visual clutter.
   ========================================================= */
.mobile-assistant-action{display:none;border:1px solid #e7edf4;font:inherit}

@media(max-width:760px){
  /* Keep the four school cycles visible from the first screen. */
  .cycle-nav-wrap{overflow:visible!important;padding-bottom:0!important;border-bottom:1px solid #e6ebf3!important}
  .cycle-nav{
    display:grid!important;
    grid-template-columns:repeat(4,minmax(0,1fr))!important;
    width:100%!important;
    height:48px!important;
    padding:0!important;
    overflow:visible!important;
    scroll-snap-type:none!important;
  }
  .cycle-nav a{
    min-width:0!important;
    width:auto!important;
    padding:5px 2px 4px!important;
    gap:0!important;
    flex-direction:column!important;
    line-height:1.05!important;
    text-align:center!important;
    overflow:hidden!important;
    border-inline-end:1px solid #edf1f5!important;
  }
  .cycle-nav a:last-child{border-inline-end:0!important}
  .cycle-nav a span{
    display:block!important;
    max-width:100%!important;
    white-space:nowrap!important;
    overflow:hidden!important;
    text-overflow:ellipsis!important;
    font-size:9.3px!important;
    font-weight:850!important;
    color:inherit!important;
  }
  .cycle-nav a small{
    display:block!important;
    white-space:nowrap!important;
    margin-top:3px!important;
    font-size:7.2px!important;
    line-height:1!important;
    color:#8b98a8!important;
  }
  .cycle-nav a.active::after{left:18%!important;right:18%!important;bottom:0!important;height:2px!important}
  .mobile-menu{top:112px!important;max-height:calc(100dvh - 112px)!important;overflow:auto!important}
  html,body{scroll-padding-top:116px!important}

  /* Home hero: the old portrait used a narrow crop of a landscape photo,
     which enlarged the girl's face. On phones it becomes a small editorial card. */
  .home-copy{padding:28px 0 20px!important}
  .home-copy h1{font-size:clamp(36px,10.6vw,42px)!important;line-height:1.01!important;letter-spacing:-.035em!important;max-width:96%!important}
  .home-copy p{font-size:13.5px!important;line-height:1.55!important;max-width:92%!important;margin-top:16px!important}
  .home-actions{margin-top:20px!important}
  .artistic-home-media{min-height:330px!important;overflow:hidden!important}
  .artistic-home-media .facade{
    inset:0!important;
    width:100%!important;
    height:100%!important;
    object-position:54% 46%!important;
    transform:translateY(var(--parallax-y,0)) scale(1.015)!important;
  }
  .artistic-home-media::before{background:linear-gradient(180deg,rgba(4,38,75,.08),transparent 30%),linear-gradient(90deg,rgba(5,45,91,.34),transparent 32%)!important}
  .home-student-portrait{
    left:12px!important;
    right:auto!important;
    bottom:15px!important;
    width:min(46vw,174px)!important;
    height:146px!important;
    border:4px solid rgba(255,255,255,.96)!important;
    border-radius:24px!important;
    background:#fff!important;
    filter:drop-shadow(0 16px 24px rgba(0,0,0,.20))!important;
    animation:portraitFloatMobile 7s ease-in-out infinite!important;
  }
  .home-student-portrait img{
    width:100%!important;
    height:100%!important;
    object-fit:cover!important;
    object-position:22% 45%!important;
    mask-image:none!important;
    -webkit-mask-image:none!important;
  }
  .home-student-group{
    left:auto!important;
    right:13px!important;
    bottom:18px!important;
    width:min(37vw,142px)!important;
    height:88px!important;
    border-width:4px!important;
    border-radius:18px!important;
  }
  .art-cap{width:50px!important;height:40px!important;right:10%!important;top:8%!important}
  .art-book{width:48px!important;height:34px!important;right:5%!important;bottom:36%!important;opacity:.86!important}
  .art-atom{display:none!important}
  .art-orb{display:none!important}
  @keyframes portraitFloatMobile{0%,100%{transform:translateY(0)}50%{transform:translateY(-3px)}}

  /* The 4 Home cycle cards are all visible: 2 × 2 instead of a one-card carousel. */
  .home-cycles-section{padding:42px 0 14px!important}
  .home-cycle-strip{
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    gap:10px!important;
    overflow:visible!important;
    padding-bottom:0!important;
    scroll-snap-type:none!important;
  }
  .home-cycle-link{
    min-width:0!important;
    width:100%!important;
    grid-template-columns:42px minmax(0,1fr) 20px!important;
    gap:9px!important;
    padding:13px 11px!important;
    border-radius:18px!important;
    min-height:94px!important;
  }
  .cycle-3d-icon{width:42px!important;height:42px!important;border-radius:14px!important;font-size:20px!important}
  .home-cycle-link strong{font-size:17px!important;line-height:1.05!important}
  .home-cycle-link small{font-size:9px!important}
  .home-cycle-link em{display:none!important}
  .home-cycle-link>b{width:20px!important;height:20px!important;font-size:11px!important}

  /* Mobile contact rail: WhatsApp + phone + assistant in one place.
     The large lower-left companion is hidden so it never covers CTA text. */
  .mobile-assistant-action{display:grid!important}
  .companion{display:none!important}
  .float-actions{right:6px!important;top:52%!important;gap:6px!important;z-index:85!important}
  .float-action{width:43px!important;min-height:43px!important;border-radius:14px!important;padding:5px!important}
  .float-action .ico{font-size:17px!important}
  .assistant-pop{
    left:12px!important;
    right:12px!important;
    bottom:max(12px,env(safe-area-inset-bottom))!important;
    width:auto!important;
    max-height:min(70dvh,520px)!important;
    overflow:auto!important;
  }

  /* Better mobile content density; prevent hidden/clipped cards. */
  .feature-bar{overflow-x:auto!important;overscroll-behavior-x:contain!important;scrollbar-width:none!important}
  .feature-bar::-webkit-scrollbar{display:none!important}
  .feature-item{scroll-snap-align:start!important}
  .section-head{margin-bottom:20px!important}
  .section-head h2,.section-title{font-size:clamp(31px,9vw,38px)!important}
  .cta-band{margin-bottom:22px!important}
}

@media(max-width:420px){
  .cycle-nav a span{font-size:8.6px!important;letter-spacing:-.015em!important}
  .cycle-nav a small{font-size:6.8px!important}
  .home-copy h1{font-size:36px!important}
  html[dir="rtl"] .home-copy h1{font-size:34px!important;line-height:1.18!important}
  .artistic-home-media{min-height:310px!important}
  .home-student-portrait{width:43vw!important;height:132px!important}
  .home-student-group{width:34vw!important;height:80px!important}
  .home-cycle-link{grid-template-columns:38px minmax(0,1fr) 18px!important;gap:7px!important;padding:12px 9px!important;min-height:88px!important}
  .cycle-3d-icon{width:38px!important;height:38px!important;font-size:18px!important}
  .home-cycle-link strong{font-size:15px!important}
}

@media(min-width:761px){
  .mobile-assistant-action{display:none!important}
}

@media(max-width:760px){
  /* All six benefit items are visible; no hidden horizontal strip on phones. */
  .feature-bar,
  .feature-bar:has(.feature-item:nth-child(6)){
    display:grid!important;
    grid-template-columns:repeat(2,minmax(0,1fr))!important;
    overflow:visible!important;
    padding:8px!important;
    gap:0!important;
  }
  .feature-item{min-width:0!important;border-right:1px solid #edf1f5!important;border-bottom:1px solid #edf1f5!important}
  .feature-item:nth-child(2n){border-right:0!important}
  .feature-item:nth-last-child(-n+2){border-bottom:0!important}

  /* Lightweight route transition on mobile to avoid GPU jank from huge morphing blobs. */
  .route-curtain{opacity:0!important;background:linear-gradient(110deg,#031a39,#0a4b89 72%,#ef1515)!important;transform:translateY(8px)!important}
  .route-curtain span{display:none!important}
  .route-curtain.animate{animation:v9MobileRoute .34s cubic-bezier(.22,.75,.2,1) both!important}
  @keyframes v9MobileRoute{0%{opacity:0;transform:translateY(8px)}42%{opacity:.97;transform:translateY(0)}58%{opacity:.97;transform:translateY(0)}100%{opacity:0;transform:translateY(-6px)}}
  html.is-routing main{filter:none!important;transform:none!important;opacity:.88!important}
}

/* =========================================================
   V10 RESPONSIVE + ONE-PAGE HOME SYSTEM
   Desktop/tablet/mobile QA based on the latest recording.
   ========================================================= */

/* One-page anchors must land below sticky header + cycle strip. */
.home-onepage-section,.cycle-showcase{scroll-margin-top:140px}

/* Desktop hero correction: preserve façade, reduce portrait crop, avoid oversized face. */
@media(min-width:1181px){
  .home-hero-grid{grid-template-columns:minmax(440px,44%) minmax(0,56%);min-height:620px}
  .home-copy{padding:54px 34px 72px 0}
  .home-copy h1{font-size:clamp(52px,4.55vw,70px);max-width:570px}
  .artistic-home-media{min-height:620px;overflow:hidden}
  .artistic-home-media .facade{object-position:57% 46%;inset:0!important;width:100%!important}
  .home-student-portrait{width:min(29%,275px)!important;height:66%!important;left:4%!important;bottom:18px!important;border-radius:36% 36% 20px 20px!important}
  .home-student-portrait img{object-position:50% 44%!important}
  .home-student-group{left:29%!important;bottom:24px!important;width:190px!important;height:120px!important}
  .art-cap{right:22%!important;top:10%!important}
}

/* Laptop and tablet landscape: keep the split hero, but never let the portrait dominate. */
@media(min-width:901px) and (max-width:1180px){
  .home-hero-grid{display:grid!important;grid-template-columns:46% 54%!important;min-height:560px!important}
  .home-copy{padding:46px 28px 58px 0!important}
  .home-copy h1{font-size:clamp(45px,5vw,60px)!important;max-width:520px}
  .artistic-home-media{min-height:560px!important;overflow:hidden!important}
  .home-student-portrait{width:225px!important;height:360px!important;left:3%!important;bottom:18px!important}
  .home-student-portrait img{object-position:50% 45%!important}
  .home-student-group{width:158px!important;height:102px!important;left:31%!important;bottom:22px!important}
}

/* Header resilience at laptop widths. */
@media(min-width:1181px) and (max-width:1380px){
  .nav-row{gap:15px}
  .desktop-nav{gap:13px}
  .desktop-nav a{font-size:11.4px}
  .brand{width:154px}
  .nav-side{gap:7px}
  .nav-side>.btn{padding:11px 15px;font-size:11.5px}
}

/* Shared editorial rhythm for the complete scroll-home. */
.onepage-home{background:#fff}
.home-onepage-section{padding:86px 0;position:relative}
.home-onepage-section:nth-of-type(even){background:linear-gradient(180deg,#fff,#f8fafe 52%,#fff)}
.home-onepage-section .section-head{margin-bottom:34px}
.home-onepage-section .section-head p{margin:12px 0 0;max-width:700px}

.brand-story-section{background:linear-gradient(125deg,#061f43,#0a3a70 68%,#0b4f88)!important;color:#fff;overflow:hidden}
.brand-story-section::before{content:"";position:absolute;inset:auto -120px -190px auto;width:520px;height:520px;border-radius:50%;background:radial-gradient(circle,rgba(255,255,255,.12),transparent 68%)}
.brand-story-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1.4fr);gap:54px;align-items:center}
.brand-story-copy h2,.home-admissions-copy h2,.home-contact-copy h2{font:700 clamp(38px,4.2vw,58px)/1.04 'Playfair Display',Georgia,serif;letter-spacing:-.025em;margin:8px 0 18px}
.brand-story-copy h2{color:#fff}
.brand-story-copy p{color:rgba(255,255,255,.76);font-size:16px;line-height:1.75;max-width:620px}
.brand-story-copy .btn{margin-top:10px;background:rgba(255,255,255,.08);color:#fff;border-color:rgba(255,255,255,.24)}
.brand-values-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}
.brand-value-card{min-height:230px;border-radius:28px;padding:26px;background:rgba(255,255,255,.09);border:1px solid rgba(255,255,255,.14);backdrop-filter:blur(12px);box-shadow:0 18px 44px rgba(0,0,0,.12)}
.brand-value-card>span{display:grid;place-items:center;width:52px;height:52px;border-radius:18px;background:#fff;color:var(--navy);font-size:24px}
.brand-value-card h3{font:700 25px/1.1 'Playfair Display',Georgia,serif;margin:18px 0 8px}
.brand-value-card p{margin:0;color:rgba(255,255,255,.7);font-size:13px;line-height:1.65}

.pedagogy-home-section{background:#fff}
.home-editorial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.home-editorial-card{background:#fff;border:1px solid #e8edf4;border-radius:30px;overflow:hidden;box-shadow:0 16px 42px rgba(8,43,89,.07);transform-style:preserve-3d}
.home-editorial-card img{width:100%;height:245px;object-fit:cover}
.home-editorial-card>div{padding:22px 24px 26px}
.home-editorial-card .mini-number{display:inline-grid;place-items:center;width:38px;height:38px;border-radius:13px;background:#eef4ff;color:var(--blue);font-weight:900;font-size:11px}
.home-editorial-card h3{font:700 25px/1.1 'Playfair Display',Georgia,serif;color:var(--navy);margin:14px 0 8px}
.home-editorial-card p{margin:0;color:var(--muted);line-height:1.65;font-size:13px}

.home-cycle-deep-section{padding:20px 0 82px;background:#f7f9fc}
.cycle-showcase-list{display:grid;gap:28px}
.cycle-showcase{min-height:420px;background:#fff;border:1px solid #e8edf4;border-radius:34px;box-shadow:0 20px 60px rgba(8,43,89,.07);overflow:hidden;display:grid;grid-template-columns:52% 48%;align-items:stretch}
.cycle-showcase.reverse .cycle-showcase-media{order:2}
.cycle-showcase.reverse .cycle-showcase-copy{order:1}
.cycle-showcase-media{position:relative;min-height:420px;overflow:hidden}
.cycle-showcase-media::after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 65%,rgba(255,255,255,.4))}
.cycle-showcase.reverse .cycle-showcase-media::after{background:linear-gradient(270deg,transparent 65%,rgba(255,255,255,.4))}
.cycle-showcase-media img{width:100%;height:100%;object-fit:cover;transform:translateY(var(--parallax-y,0)) scale(1.035)}
.cycle-showcase-icon{position:absolute;left:24px;bottom:24px;z-index:2;width:58px;height:58px;border-radius:20px;display:grid;place-items:center;background:#fff;color:var(--blue);box-shadow:0 18px 42px rgba(8,43,89,.18);font-size:27px}
.cycle-showcase-copy{padding:46px;display:flex;flex-direction:column;justify-content:center;align-items:flex-start}
.cycle-showcase-copy h2{font:700 clamp(34px,3.5vw,50px)/1.04 'Playfair Display',Georgia,serif;color:var(--navy);margin:8px 0 15px}
.cycle-showcase-copy>p{color:var(--muted);line-height:1.7;max-width:520px}
.cycle-mini-features{display:grid;grid-template-columns:1fr;gap:8px;margin:16px 0 24px;width:100%}
.cycle-mini-features span{display:flex;align-items:center;gap:10px;font-size:12px;font-weight:750;color:#36516f}
.cycle-mini-features b{display:grid;place-items:center;width:32px;height:32px;border-radius:11px;background:#eff5ff;color:var(--blue)}

.home-life-section{background:#fff}
.life-mosaic{height:500px;display:grid;grid-template-columns:1.25fr .75fr 1fr;grid-template-rows:1fr 1fr;gap:14px}
.life-tile{position:relative;border-radius:28px;overflow:hidden;min-height:0;box-shadow:0 14px 36px rgba(8,43,89,.08)}
.life-tile.tile-1{grid-row:1/3}.life-tile.tile-4{grid-column:3;grid-row:1/3}
.life-tile img{width:100%;height:100%;object-fit:cover;transition:transform .5s}
.life-tile:hover img{transform:scale(1.035)}
.life-tile::after{content:"";position:absolute;inset:0;background:linear-gradient(0deg,rgba(4,25,54,.76),transparent 55%)}
.life-tile span{position:absolute;z-index:2;left:22px;bottom:18px;color:#fff;font:700 23px/1.1 'Playfair Display',Georgia,serif}

.home-clubs-section{background:#f7f9fc!important}
.club-preview-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:14px}
.club-preview-card{min-height:300px;background:#fff;border-radius:25px;overflow:hidden;border:1px solid #e7edf4;box-shadow:0 12px 34px rgba(8,43,89,.055)}
.club-preview-card img{width:100%;height:225px;object-fit:cover}
.club-preview-card>div{display:flex;align-items:center;gap:10px;padding:14px 16px}
.club-preview-card span{font-size:9px;font-weight:900;color:var(--red)}
.club-preview-card strong{font-size:13px;color:var(--navy)}

.home-news-section{background:#fff}
.home-news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.home-news-card{background:#fff;border:1px solid #e7edf4;border-radius:28px;overflow:hidden;box-shadow:0 14px 38px rgba(8,43,89,.065);transition:.3s}
.home-news-card:hover{transform:translateY(-5px);box-shadow:0 22px 48px rgba(8,43,89,.11)}
.home-news-card img{width:100%;height:230px;object-fit:cover}
.home-news-card>div{padding:20px 22px 24px}
.home-news-card h3{font:700 23px/1.16 'Playfair Display',Georgia,serif;color:var(--navy);margin:12px 0 17px}

.home-admissions-section{background:linear-gradient(125deg,#061d3e,#0a3d75)!important;color:#fff}
.home-admissions-shell{display:grid;grid-template-columns:.9fr 1.4fr;gap:48px;align-items:center}
.home-admissions-copy h2{color:#fff}
.home-admissions-copy p{color:rgba(255,255,255,.74);line-height:1.7;max-width:560px}
.home-admissions-copy .btn{margin-top:14px}
.admission-preview-steps{display:grid;grid-template-columns:repeat(4,1fr);gap:12px}
.admission-preview-step{min-height:160px;border-radius:25px;padding:22px;background:rgba(255,255,255,.08);border:1px solid rgba(255,255,255,.14);display:flex;flex-direction:column;justify-content:space-between}
.admission-preview-step b{font:700 36px/1 'Playfair Display',Georgia,serif;color:#fff}
.admission-preview-step span{font-size:12px;font-weight:750;color:rgba(255,255,255,.8)}

.home-contact-section{background:#fff}
.home-contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:36px;align-items:center}
.home-contact-copy h2{color:var(--navy)}
.home-contact-copy p{color:var(--muted);font-size:15px;line-height:1.7}
.home-contact-actions{display:flex;flex-wrap:wrap;gap:9px;margin-top:24px}
.home-map-card{height:420px;border-radius:32px;overflow:hidden;border:1px solid #e4eaf2;box-shadow:0 18px 48px rgba(8,43,89,.09)}
.home-map-card iframe{width:100%;height:100%;border:0}

/* Scrollspy: current home section is visible in the global navigation. */
.home-nav-link.active{color:var(--navy)!important}
.home-nav-link.active::after{content:"";position:absolute;left:0;right:0;bottom:-13px;height:2px;border-radius:99px;background:var(--red)}
.mobile-menu .home-nav-link.active{background:#f2f6fc;color:var(--red)!important}
.mobile-menu .home-nav-link.active::after{display:none}

/* Wide-screen rhythm. */
@media(min-width:1600px){
  .container{width:min(1500px,calc(100% - 80px))}
  .home-hero-grid{min-height:680px}
  .artistic-home-media{min-height:680px}
  .home-onepage-section{padding:100px 0}
}

/* Tablet layouts. */
@media(max-width:1180px){
  .brand-story-grid,.home-admissions-shell,.home-contact-grid{grid-template-columns:1fr}
  .brand-values-grid{grid-template-columns:repeat(3,1fr)}
  .home-editorial-grid{grid-template-columns:repeat(2,1fr)}
  .home-editorial-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:42% 58%}
  .home-editorial-card:last-child img{height:100%}
  .cycle-showcase{grid-template-columns:1fr 1fr}
  .club-preview-grid{grid-template-columns:repeat(3,1fr)}
  .home-news-grid{grid-template-columns:repeat(3,1fr)}
}

@media(max-width:900px){
  .home-onepage-section{padding:66px 0}
  .brand-values-grid{grid-template-columns:1fr 1fr 1fr}
  .cycle-showcase{grid-template-columns:1fr;min-height:auto}
  .cycle-showcase.reverse .cycle-showcase-media,.cycle-showcase.reverse .cycle-showcase-copy{order:initial}
  .cycle-showcase-media{min-height:330px}
  .cycle-showcase-copy{padding:34px}
  .cycle-showcase-media::after,.cycle-showcase.reverse .cycle-showcase-media::after{background:linear-gradient(0deg,rgba(255,255,255,.3),transparent 35%)}
  .life-mosaic{height:auto;grid-template-columns:1fr 1fr;grid-template-rows:260px 260px}
  .life-tile.tile-1,.life-tile.tile-4{grid-row:auto;grid-column:auto}
  .club-preview-grid{grid-template-columns:repeat(3,1fr)}
  .home-news-grid{grid-template-columns:1fr 1fr}
  .home-news-card:last-child{grid-column:1/-1;display:grid;grid-template-columns:40% 60%}
  .home-news-card:last-child img{height:100%}
  .admission-preview-steps{grid-template-columns:repeat(2,1fr)}
}

/* Phone: no hidden cycle, no oversized portrait, every one-page section stacks naturally. */
@media(max-width:760px){
  .home-onepage-section,.cycle-showcase{scroll-margin-top:118px}
  .home-onepage-section{padding:52px 0}
  .home-onepage-section .section-head{margin-bottom:22px}
  .home-onepage-section .section-head p{font-size:13px;line-height:1.6}
  .brand-story-grid{gap:28px}.brand-story-copy h2,.home-admissions-copy h2,.home-contact-copy h2{font-size:36px}
  .brand-values-grid{grid-template-columns:1fr}
  .brand-value-card{min-height:auto;padding:20px}
  .home-editorial-grid{grid-template-columns:1fr}
  .home-editorial-card:last-child{grid-column:auto;display:block}
  .home-editorial-card img,.home-editorial-card:last-child img{height:210px}
  .cycle-showcase-list{gap:16px}
  .cycle-showcase{border-radius:25px}
  .cycle-showcase-media{min-height:245px}
  .cycle-showcase-copy{padding:24px 20px 26px}
  .cycle-showcase-copy h2{font-size:32px}
  .cycle-showcase-icon{left:16px;bottom:15px;width:48px;height:48px;border-radius:16px}
  .life-mosaic{grid-template-columns:1fr 1fr;grid-template-rows:190px 190px;gap:10px}
  .life-tile{border-radius:20px}.life-tile span{font-size:17px;left:14px;bottom:13px}
  .club-preview-grid{grid-template-columns:1fr 1fr;gap:10px}
  .club-preview-card{min-height:218px;border-radius:20px}
  .club-preview-card img{height:165px}
  .home-news-grid{grid-template-columns:1fr}
  .home-news-card:last-child{grid-column:auto;display:block}
  .home-news-card img,.home-news-card:last-child img{height:205px}
  .home-admissions-shell{gap:28px}
  .admission-preview-steps{grid-template-columns:1fr 1fr;gap:8px}
  .admission-preview-step{min-height:118px;padding:16px;border-radius:20px}
  .admission-preview-step b{font-size:28px}
  .home-contact-grid{gap:24px}
  .home-map-card{height:300px;border-radius:24px}
  .home-contact-actions{display:grid;grid-template-columns:1fr}.home-contact-actions .btn{width:100%}
  .home-nav-link.active::after{display:none}
}

@media(max-width:420px){
  .brand-story-copy h2,.home-admissions-copy h2,.home-contact-copy h2{font-size:32px}
  .life-mosaic{grid-template-columns:1fr;grid-template-rows:repeat(4,190px)}
  .club-preview-grid{grid-template-columns:1fr 1fr}
  .admission-preview-steps{grid-template-columns:1fr 1fr}
}

/* V10 small final corrections */
.home-feature-overlap .feature-bar{grid-template-columns:repeat(5,minmax(0,1fr))}
.home-feature-overlap .feature-item:nth-child(5){border-right:0}
@media(max-width:900px){.home-feature-overlap .feature-bar{grid-template-columns:repeat(3,minmax(0,1fr))}.home-feature-overlap .feature-item:nth-child(3){border-right:0}.home-feature-overlap .feature-item:nth-child(5){border-right:1px solid #edf1f5}}
@media(max-width:760px){.home-feature-overlap .feature-bar{grid-template-columns:repeat(2,minmax(0,1fr))!important}.home-feature-overlap .feature-item:nth-child(3){border-right:1px solid #edf1f5}.home-feature-overlap .feature-item:nth-child(2n){border-right:0}.home-feature-overlap .feature-item:last-child{grid-column:1/-1;border-right:0;justify-content:center}}

/* ==========================================================
   PALMARÈS V11 — Premium actions + developed Home interface
   No Google Sheets dependency: forms remain Netlify-native.
   ========================================================== */
:root{--wa:#25D366;--call:#0b4aa0;--assistant:#082B59}
.svg-ico{width:25px;height:25px;display:grid;place-items:center}
.svg-ico svg,.btn-icon svg,.assistant-mark svg{width:100%;height:100%;display:block}
.btn-icon{width:17px;height:17px;display:grid;place-items:center;flex:0 0 auto}

/* Real, recognisable quick-action icons */
.float-actions{right:18px;gap:10px}
.float-action{position:relative;width:64px;min-height:64px;border-radius:20px;padding:8px 5px 7px;background:rgba(255,255,255,.97);border:1px solid rgba(8,43,89,.09);box-shadow:0 14px 36px rgba(3,30,64,.14);backdrop-filter:blur(14px);overflow:visible}
.float-action .ico{transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.float-action>span:last-child{font-size:9px;line-height:1.05;margin-top:2px;color:#274766}
.float-action.whatsapp .svg-ico{color:var(--wa)}
.float-action.call .svg-ico{color:var(--call)}
.float-action.assistant-action .svg-ico{color:var(--assistant)}
.float-action:hover{transform:translateX(-5px) scale(1.025);border-color:rgba(8,43,89,.16)}
.float-action:hover .ico{transform:scale(1.08) rotate(-3deg)}
.float-action.whatsapp::before{content:"";position:absolute;inset:10px;border-radius:14px;background:rgba(37,211,102,.07);z-index:-1;opacity:0;transition:.25s}
.float-action.whatsapp:hover::before{opacity:1}
.mobile-assistant-action{display:grid!important}

/* Assistant panel now behaves as a real UI control */
.assistant-pop{padding:20px 20px 18px;border-radius:26px;border-color:rgba(8,43,89,.08);box-shadow:0 28px 80px rgba(4,27,58,.22);animation:assistantIn .26s cubic-bezier(.2,.8,.2,1)}
.assistant-close{position:absolute;right:12px;top:10px;width:32px;height:32px;border:0;border-radius:50%;background:#f3f6fa;color:var(--navy);font-size:22px;line-height:1}
.assistant-mark{width:38px;height:38px;border-radius:13px;display:grid;place-items:center;padding:8px;margin-bottom:10px;background:linear-gradient(145deg,#eef4ff,#fff);color:var(--navy);box-shadow:inset 0 0 0 1px rgba(8,43,89,.07)}
@keyframes assistantIn{from{opacity:0;transform:translateY(10px) scale(.97)}to{opacity:1;transform:none}}
html[dir="rtl"] .assistant-close{right:auto;left:12px}

/* Developed home: clearer hierarchy and direct pathway access */
.home-copy{max-width:700px}
.hero-cycle-quick{display:flex;align-items:center;flex-wrap:wrap;gap:7px;margin-top:24px;max-width:680px}
.hero-cycle-quick>span{width:100%;font-size:9.5px;letter-spacing:.12em;text-transform:uppercase;font-weight:850;color:rgba(255,255,255,.58);margin-bottom:2px}
.hero-cycle-quick a{display:inline-flex;align-items:center;gap:6px;padding:7px 10px;border-radius:999px;border:1px solid rgba(255,255,255,.18);background:rgba(255,255,255,.055);color:#fff;font-size:10.5px;font-weight:760;backdrop-filter:blur(9px);transition:.25s}
.hero-cycle-quick a small{font-size:8.5px;color:rgba(255,255,255,.58);font-weight:700}
.hero-cycle-quick a:hover{background:#fff;color:var(--navy);transform:translateY(-2px);border-color:#fff;box-shadow:0 12px 30px rgba(0,0,0,.12)}
.hero-cycle-quick a:hover small{color:#61738a}

/* More premium visual balance: preserve the real façade and keep portrait secondary */
@media(min-width:1181px){
  .home-hero-grid{grid-template-columns:minmax(500px,45%) minmax(0,55%)!important;min-height:650px!important}
  .home-copy{padding:58px 44px 58px 8px!important}
  .artistic-home-media{min-height:650px!important}
  .home-student-portrait{width:min(34%,300px)!important;height:72%!important;left:5%!important;border-radius:42% 42% 20px 20px!important}
  .home-student-group{left:26%!important;bottom:34px!important;width:205px!important;height:130px!important}
  .hero-proof-row{margin-top:30px!important}
}

/* Add a subtle premium separation between one-page chapters */
.home-onepage-section{position:relative}
.home-onepage-section:not(.home-cycles-section)::before{content:"";position:absolute;left:50%;top:0;width:min(92%,1340px);height:1px;transform:translateX(-50%);background:linear-gradient(90deg,transparent,rgba(8,43,89,.10),transparent)}
.home-cycles-section{background:linear-gradient(180deg,#f7f9fc 0,#fff 100%)}
.home-cycle-link,.home-panel,.cycle-showcase,.home-admissions-shell,.home-contact-grid{box-shadow:0 20px 60px rgba(5,35,70,.07)}
.home-cycle-link{border:1px solid rgba(8,43,89,.07)!important}
.home-cycle-link:hover{box-shadow:0 25px 65px rgba(5,35,70,.13)!important;transform:translateY(-5px) perspective(800px) rotateX(1.5deg)!important}

/* Real icon treatment on the CTA */
.btn-primary .btn-icon{color:#fff}
.btn-primary .btn-icon svg{stroke-width:2}

/* Tablet */
@media(min-width:761px) and (max-width:1180px){
  .float-actions{right:10px}
  .float-action{width:58px;min-height:58px;border-radius:17px}
  .home-student-portrait{width:245px!important;max-width:35%!important;height:70%!important;left:4%!important}
  .home-student-group{width:165px!important;height:110px!important;left:27%!important}
  .hero-cycle-quick{margin-top:18px}
}

/* Phone: actions remain visible, but never cover the Hero or CTA */
@media(max-width:760px){
  .float-actions{right:9px!important;top:auto!important;bottom:92px!important;transform:none!important;gap:6px!important;z-index:72!important}
  .float-action{width:48px!important;min-height:48px!important;height:48px!important;border-radius:15px!important;padding:7px!important;display:grid!important;grid-template-rows:1fr!important}
  .float-action .svg-ico{width:23px!important;height:23px!important}
  .float-action>span:last-child{display:none!important}
  .float-action:hover{transform:none!important}
  .companion{display:none!important}
  .assistant-pop{left:12px!important;right:12px!important;bottom:82px!important;width:auto!important;max-width:none!important}
  .hero-cycle-quick{display:grid!important;grid-template-columns:1fr 1fr!important;gap:6px!important;margin-top:16px!important}
  .hero-cycle-quick>span{grid-column:1/-1!important;font-size:8.5px!important}
  .hero-cycle-quick a{justify-content:space-between!important;padding:8px 10px!important;font-size:9.5px!important;min-width:0!important}
  .hero-cycle-quick a small{font-size:7.5px!important}
  .home-copy h1{font-size:clamp(38px,12vw,50px)!important;line-height:1!important}
  .home-copy p{font-size:13px!important;line-height:1.55!important}
  .home-actions{margin-top:20px!important}
}
@media(max-width:420px){
  .float-actions{bottom:78px!important}
  .float-action{width:44px!important;min-height:44px!important;height:44px!important;border-radius:14px!important}
  .float-action .svg-ico{width:21px!important;height:21px!important}
  .home-copy h1{font-size:40px!important}
}

/* Keep the assistant/contact rail away from the footer on very short screens */
@media(max-height:650px) and (min-width:761px){.float-actions{top:54%;transform:translateY(-50%) scale(.9);transform-origin:right center}}

/* ==========================================================
   PALMARÈS V12 — STRICT APPROVED ART DIRECTION
   Approved reference: deep navy editorial hero, real pupils,
   white pathway rail, elegant Playfair titles, compact 3D UI.
   ========================================================== */
:root{
  --v12-navy:#031b3b;
  --v12-navy-2:#062f61;
  --v12-navy-3:#0a4f88;
  --v12-red:#ef1717;
  --v12-cream:#fbfcff;
  --v12-soft:#f5f7fb;
  --v12-line:rgba(8,43,89,.10);
  --v12-shadow:0 22px 65px rgba(2,24,54,.12);
}
body{background:var(--v12-cream)}

/* Global header: one identity across every route */
.site-header{background:rgba(3,27,59,.96)!important;padding:0!important;border:0!important;box-shadow:none!important;backdrop-filter:blur(18px)!important}
.site-header.scrolled{background:rgba(3,27,59,.985)!important;box-shadow:0 12px 34px rgba(2,18,42,.16)!important}
.nav-row{height:82px!important}
.brand{width:165px!important;height:50px!important}
.brand img{filter:none!important;object-fit:contain!important}
.desktop-nav a{color:rgba(255,255,255,.88)!important;font-size:12px!important;font-weight:700!important}
.desktop-nav a:hover,.desktop-nav a.active{color:#fff!important}
.desktop-nav a.active::after{bottom:-17px!important;height:3px!important;background:var(--v12-red)!important}
.languages{padding:3px;border:1px solid rgba(255,255,255,.24);border-radius:999px;background:rgba(255,255,255,.04)}
.languages button{color:rgba(255,255,255,.72)!important;padding:7px 12px!important}
.languages button.active{background:var(--v12-red)!important;color:#fff!important}
.nav-side>.btn{background:var(--v12-red)!important;box-shadow:0 12px 28px rgba(239,23,23,.22)!important}
.mobile-toggle{background:transparent!important;border:1px solid rgba(255,255,255,.28)!important;color:#fff!important}
.mobile-menu{background:rgba(3,27,59,.985)!important;border-top:1px solid rgba(255,255,255,.09)!important}
.mobile-menu a{color:#fff!important}
.mobile-menu a:hover,.mobile-menu a.active{background:rgba(255,255,255,.08)!important}
.mobile-langs button{border-color:rgba(255,255,255,.15)!important;background:rgba(255,255,255,.06)!important;color:#fff!important}
.mobile-langs button.active{background:var(--v12-red)!important;border-color:var(--v12-red)!important}

/* White pathway rail directly under the dark navigation */
.cycle-nav-wrap{margin:0!important;padding:0 0 9px!important;background:var(--v12-navy)!important;border:0!important}
.cycle-nav{height:60px!important;max-width:1420px!important;background:#fff!important;border:1px solid rgba(255,255,255,.16)!important;border-radius:18px!important;box-shadow:0 16px 38px rgba(0,0,0,.18)!important;overflow:hidden!important}
.cycle-nav a{display:flex!important;justify-content:center!important;gap:12px!important;padding:8px 16px!important;color:#213c63!important;background:#fff!important;border-inline-end:1px solid #edf1f6!important;transform:none!important}
.cycle-nav a:last-child{border-inline-end:0!important}
.cycle-nav a::before{display:none!important}
.cycle-nav a.active,.cycle-nav a:hover{background:#fbfcff!important;color:var(--v12-navy)!important}
.cycle-nav a.active::after{bottom:0!important;left:16%!important;right:16%!important;height:3px!important;background:var(--v12-red)!important}
.cycle-nav-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:13px;flex:0 0 auto;color:#153e84;background:#eef4ff;box-shadow:inset 0 0 0 1px rgba(18,59,189,.06);transition:transform .28s cubic-bezier(.2,.8,.2,1)}
.cycle-nav-icon svg{width:23px;height:23px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cycle-nav a:nth-child(1) .cycle-nav-icon{background:#fff0ef;color:#e34949}
.cycle-nav a:nth-child(3) .cycle-nav-icon{background:#eafbf2;color:#13905c}
.cycle-nav a:nth-child(4) .cycle-nav-icon{background:#f1efff;color:#4357c5}
.cycle-nav a:hover .cycle-nav-icon{transform:translateY(-2px) rotateY(14deg)}
.cycle-nav-copy{display:flex;flex-direction:column;align-items:flex-start;line-height:1.1}
.cycle-nav-copy strong{font-size:13px;color:var(--v12-navy)}
.cycle-nav-copy small{margin-top:5px!important;font-size:10px!important;color:#7d8999!important}

/* Approved hero */
.approved-home-hero{position:relative;background:radial-gradient(circle at 72% 10%,rgba(32,105,186,.42),transparent 31%),linear-gradient(112deg,#02162f 0%,#032650 54%,#0a4e88 100%)!important;overflow:visible!important;color:#fff}
.approved-home-hero::before{content:"";position:absolute;inset:auto 0 0;height:180px;background:radial-gradient(ellipse at 25% 100%,rgba(18,83,150,.22),transparent 60%);pointer-events:none}
.approved-home-hero .home-hero-grid{min-height:520px!important;grid-template-columns:minmax(450px,42%) minmax(0,58%)!important;align-items:stretch!important;position:relative}
.approved-home-hero .home-copy{padding:52px 34px 74px 8px!important;color:#fff!important;justify-content:center!important;z-index:7}
.approved-home-hero .home-copy .eyebrow{color:#ff3939!important;letter-spacing:.24em!important;font-size:10px!important;margin-bottom:14px}
.approved-home-hero .home-copy h1{color:#fff!important;font-size:clamp(48px,4.6vw,70px)!important;line-height:1.01!important;letter-spacing:-.035em!important;max-width:620px!important;text-shadow:0 16px 44px rgba(0,0,0,.12)}
.approved-home-hero .home-copy h1::after{content:"";display:block;width:68px;height:3px;border-radius:999px;background:var(--v12-red);margin-top:20px}
.approved-home-hero .home-copy p{color:rgba(255,255,255,.82)!important;font-size:15px!important;line-height:1.65!important;max-width:480px!important;margin-top:20px!important}
.approved-home-hero .btn-primary{background:var(--v12-red)!important;box-shadow:0 16px 34px rgba(239,23,23,.22)!important}
.approved-home-hero .btn-glass{color:#fff!important;border:1px solid rgba(255,255,255,.30)!important;background:rgba(255,255,255,.04)!important;backdrop-filter:blur(8px)}
.approved-home-hero .btn-glass:hover{background:rgba(255,255,255,.12)!important}
.approved-hero-media{min-height:520px!important;position:relative!important;overflow:hidden!important;background:#052a54!important}
.approved-hero-media picture{position:absolute;inset:0;display:block;z-index:1}
.approved-hero-visual{width:100%!important;height:100%!important;object-fit:cover!important;object-position:center center!important;transform:translate3d(var(--hero-x,0),calc(var(--hero-y,0) + var(--parallax-y,0px)),0) scale(1.035);transition:transform .15s linear;will-change:transform}
.approved-hero-media::before{content:"";position:absolute;z-index:3;inset:0;background:linear-gradient(90deg,#032650 0%,rgba(3,38,80,.60) 9%,rgba(3,38,80,.12) 27%,transparent 48%),linear-gradient(0deg,rgba(2,22,47,.18),transparent 40%);pointer-events:none}
.approved-hero-media::after{content:"";position:absolute;z-index:3;inset:auto 0 0;height:90px;background:linear-gradient(transparent,rgba(2,22,47,.30));pointer-events:none}
.hero-depth-orbs{position:absolute;z-index:4;inset:0;pointer-events:none;transform-style:preserve-3d}
.hero-depth-orbs i{position:absolute;width:13px;height:13px;border-radius:50%;background:radial-gradient(circle at 30% 30%,#fff7db,#d7ae77 38%,#875d37 100%);box-shadow:0 8px 18px rgba(0,0,0,.20);animation:v12Orb 6s ease-in-out infinite}
.hero-depth-orbs i:nth-child(1){left:12%;top:14%}.hero-depth-orbs i:nth-child(2){left:46%;top:9%;animation-delay:-1.8s}.hero-depth-orbs i:nth-child(3){right:8%;top:19%;animation-delay:-3s}
@keyframes v12Orb{50%{transform:translate3d(6px,-10px,22px) scale(1.06)}}
.hero-cycle-quick{margin-top:24px!important}
.hero-cycle-quick>span{color:rgba(255,255,255,.58)!important}
.hero-cycle-quick a{background:rgba(255,255,255,.055)!important;border-color:rgba(255,255,255,.17)!important}
.hero-proof-row{display:none!important}

/* Feature band merges visually with the hero */
.home-feature-overlap{margin-top:-38px!important;position:relative;z-index:15}
.home-feature-overlap .feature-bar{width:min(1080px,calc(100% - 42px))!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;background:linear-gradient(100deg,#06244b,#0a3d76)!important;border:1px solid rgba(255,255,255,.14)!important;border-radius:18px!important;box-shadow:0 18px 42px rgba(1,20,45,.28)!important;padding:4px 10px!important}
.home-feature-overlap .feature-item{min-height:62px!important;border-color:rgba(255,255,255,.14)!important;color:#fff!important;padding:8px 12px!important}
.home-feature-overlap .feature-item:last-child{border-right:0!important}
.home-feature-overlap .feature-icon{width:36px!important;height:36px!important;background:transparent!important;color:#fff!important;box-shadow:none!important;border-radius:0!important}
.home-feature-overlap .feature-icon span{width:26px;height:26px;display:grid;place-items:center}
.home-feature-overlap .feature-icon svg{width:25px;height:25px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.home-feature-overlap .feature-item b{color:#fff!important;font-size:11.5px!important}
.home-feature-overlap .feature-item small{color:rgba(255,255,255,.62)!important;font-size:9px!important}

/* Approved cycle cards */
.home-cycles-section{padding:64px 0 22px!important;background:linear-gradient(180deg,#fff 0,#f8faff 100%)!important}
.home-cycles-section .section-head{margin-bottom:20px!important}
.home-cycles-section .section-head h2{font-size:42px!important}
.home-cycle-strip{grid-template-columns:repeat(4,minmax(0,1fr))!important;gap:14px!important}
.home-cycle-link{position:relative!important;min-height:156px!important;display:grid!important;grid-template-columns:54px minmax(0,1fr) 42%!important;grid-template-rows:auto 1fr!important;align-items:start!important;gap:12px!important;padding:18px!important;border-radius:22px!important;background:#fff!important;border:1px solid rgba(8,43,89,.08)!important;overflow:hidden!important;box-shadow:0 12px 38px rgba(4,31,66,.07)!important}
.home-cycle-link:hover{transform:translateY(-4px)!important;box-shadow:0 24px 55px rgba(4,31,66,.13)!important}
.cycle-card-icon{width:44px;height:44px;display:grid;place-items:center;border-radius:15px;color:#e34949;background:#fff0ef;grid-row:1/3;z-index:3}
.home-cycle-link:nth-child(2) .cycle-card-icon{color:#2767d7;background:#eef4ff}.home-cycle-link:nth-child(3) .cycle-card-icon{color:#13905c;background:#eafbf2}.home-cycle-link:nth-child(4) .cycle-card-icon{color:#4357c5;background:#f1efff}
.cycle-card-icon svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.cycle-card-copy{z-index:3;min-width:0}
.home-cycle-link strong{font:700 22px/1.05 'Playfair Display',Georgia,serif!important;color:var(--v12-navy)!important}
.home-cycle-link small{font-size:11px!important;color:#68798e!important;margin-top:5px!important}
.home-cycle-link em{font-size:10px!important;color:#6e7d90!important;max-width:145px!important;margin-top:12px!important}
.home-cycle-link>img{position:absolute;right:0;bottom:0;width:47%;height:100%;object-fit:cover;object-position:center;z-index:1;mask-image:linear-gradient(90deg,transparent 0,#000 28%);transition:transform .45s cubic-bezier(.2,.8,.2,1)}
.home-cycle-link:hover>img{transform:scale(1.05)}
.home-cycle-link>b{position:absolute!important;right:13px!important;bottom:13px!important;z-index:4!important;background:#fff!important;box-shadow:0 8px 20px rgba(4,31,66,.12)!important;color:var(--v12-navy)!important}

/* Snapshot row mirrors the approved home visual */
.home-snapshot-section{padding:0 0 34px;background:#f8faff}
.home-snapshot-grid{display:grid;grid-template-columns:1.08fr 1.1fr .92fr;gap:16px}
.snapshot-card{min-height:220px;background:#fff;border:1px solid rgba(8,43,89,.08);border-radius:22px;box-shadow:0 14px 38px rgba(4,31,66,.07);padding:20px;overflow:hidden;position:relative}
.snapshot-card h3{margin:4px 0 9px;color:var(--v12-navy);font:700 23px/1.08 'Playfair Display',Georgia,serif}.snapshot-card p{margin:0;color:#68798e;font-size:12px;line-height:1.55}.snapshot-card .text-link{display:inline-flex;margin-top:14px;font-size:11px;font-weight:800;color:var(--v12-navy)}
.snapshot-pedagogy{display:grid;grid-template-columns:1.05fr .85fr;gap:15px}.snapshot-pedagogy img{width:100%;height:100%;min-height:170px;object-fit:cover;border-radius:15px}
.snapshot-news-list{display:grid;gap:8px;margin-top:8px}.snapshot-news-list a{display:grid;grid-template-columns:66px 1fr;gap:9px;align-items:center;padding-top:7px;border-top:1px solid #edf1f5}.snapshot-news-list a:first-child{border-top:0;padding-top:0}.snapshot-news-list img{width:66px;height:48px;object-fit:cover;border-radius:9px}.snapshot-news-list strong{display:block;font-size:10px;line-height:1.3;color:var(--v12-navy)}.snapshot-news-list small{display:block;margin-top:3px;color:#9aa5b3;font-size:8px}
.snapshot-location{padding-right:48%}.snapshot-location img{position:absolute;right:0;top:0;width:48%;height:100%;object-fit:cover;mask-image:linear-gradient(90deg,transparent,#000 25%)}

/* Same visual language across the long one-page experience */
.home-onepage-section,.home-cycle-deep-section,.home-snapshot-section{scroll-margin-top:156px}
.brand-story-section,.pedagogy-home-section,.home-life-section,.home-clubs-section,.home-news-section,.home-admissions-section,.home-contact-section{background:#fff!important}
.brand-story-section:nth-of-type(even),.home-life-section,.home-news-section{background:#f7f9fc!important}
.home-editorial-card,.brand-value-card,.life-tile,.club-preview-card,.home-news-card,.home-admissions-shell,.home-contact-grid,.cycle-showcase{border-radius:24px!important;border:1px solid rgba(8,43,89,.08)!important;box-shadow:0 18px 52px rgba(4,31,66,.07)!important}
.section-head h2,.brand-story-copy h2,.cycle-showcase-copy h2,.home-admissions-copy h2,.home-contact-copy h2{color:var(--v12-navy)!important}

/* Global inner pages: dark artistic heroes + same pathway rail */
.premium-art-hero,.compact-art-hero,.editorial-hero{background:radial-gradient(circle at 76% 12%,rgba(31,100,180,.28),transparent 30%),linear-gradient(112deg,#02162f,#06396d)!important;color:#fff!important}
.premium-art-hero h1,.compact-art-hero h1,.editorial-hero h1,.inner-copy h1{color:#fff!important}
.premium-art-hero p,.compact-art-hero p,.editorial-hero p,.inner-copy .lead,.inner-copy .tagline{color:rgba(255,255,255,.78)!important}
.inner-media,.editorial-media,.compact-art-media{border-radius:28px!important}

/* Floating actions: approved compact vertical rail */
.float-actions{right:12px!important;gap:8px!important}
.float-action{width:58px!important;min-height:58px!important;border-radius:18px!important;background:#fff!important;box-shadow:0 14px 36px rgba(2,24,54,.16)!important}
.float-action .svg-ico{width:26px!important;height:26px!important}
.float-action.whatsapp .svg-ico{color:#25D366!important}.float-action.call .svg-ico{color:#0b4aa0!important}.float-action.assistant-action .svg-ico{color:#082B59!important}
.companion{display:none!important}

/* Desktop wide */
@media(min-width:1440px){
  .container{width:min(1420px,calc(100% - 64px))}
  .approved-home-hero .home-hero-grid{min-height:555px!important}
  .approved-hero-media{min-height:555px!important}
}

/* Laptop / tablet */
@media(max-width:1180px){
  .nav-row{height:74px!important}.brand{width:150px!important}.desktop-nav{display:none!important}.mobile-toggle{display:grid!important;place-items:center!important}
  .cycle-nav-wrap{padding-bottom:8px!important}.cycle-nav{height:58px!important}
  .approved-home-hero .home-hero-grid{grid-template-columns:48% 52%!important;min-height:560px!important}
  .approved-home-hero .home-copy{padding:42px 24px 66px 4px!important}.approved-home-hero .home-copy h1{font-size:clamp(44px,5.4vw,60px)!important}
  .approved-hero-media{min-height:560px!important}
  .home-cycle-strip{grid-template-columns:repeat(2,1fr)!important}
  .home-snapshot-grid{grid-template-columns:1fr 1fr!important}.snapshot-location{grid-column:1/-1;min-height:190px}
}

/* Tablet portrait */
@media(max-width:900px){
  .site-header{position:sticky!important}.cycle-nav a{padding:7px 8px!important;gap:7px!important}.cycle-nav-icon{width:32px;height:32px;border-radius:11px}.cycle-nav-icon svg{width:20px;height:20px}.cycle-nav-copy strong{font-size:11px}.cycle-nav-copy small{font-size:8.5px!important}
  .approved-home-hero .home-hero-grid{grid-template-columns:1fr!important;min-height:auto!important}.approved-home-hero .home-copy{padding:40px 20px 26px!important}.approved-home-hero .home-copy h1{max-width:660px!important}.approved-hero-media{min-height:430px!important;border-radius:26px 26px 0 0!important;margin:0 14px}.approved-hero-media::before{background:linear-gradient(180deg,#032650 0%,rgba(3,38,80,.12) 22%,transparent 45%)!important}
  .home-feature-overlap{margin-top:-20px!important}.home-feature-overlap .feature-bar{width:min(94%,820px)!important}
  .snapshot-pedagogy{grid-template-columns:1fr!important}.snapshot-pedagogy img{height:180px}
}

/* Phone — mirrors the approved mobile reference */
@media(max-width:760px){
  .site-header{background:var(--v12-navy)!important;padding:0!important}.nav-row{height:78px!important;gap:10px!important;padding:0 2px}.brand{width:155px!important;height:48px!important}.nav-side{gap:8px!important}.nav-side>.btn{display:inline-flex!important;padding:10px 13px!important;font-size:11px!important}.languages{display:flex!important}.languages button{padding:6px 9px!important;font-size:9px!important}.mobile-toggle{width:44px!important;height:44px!important;flex:0 0 auto}.mobile-menu{top:138px!important}
  .cycle-nav-wrap{padding:0 8px 10px!important}.cycle-nav{width:100%!important;height:82px!important;border-radius:16px!important;grid-template-columns:repeat(4,minmax(0,1fr))!important}.cycle-nav a{padding:8px 3px!important;gap:4px!important;flex-direction:column!important}.cycle-nav-icon{width:34px;height:34px!important}.cycle-nav-copy{align-items:center!important}.cycle-nav-copy strong{font-size:10.5px!important}.cycle-nav-copy small{font-size:8.5px!important;margin-top:3px!important}.cycle-nav a.active::after{left:8%!important;right:8%!important}
  .approved-home-hero{padding-bottom:0!important}.approved-home-hero .home-hero-grid{display:flex!important;flex-direction:column!important}.approved-home-hero .home-copy{padding:42px 18px 24px!important;order:1!important}.approved-home-hero .home-copy .eyebrow{font-size:9px!important;margin-bottom:12px}.approved-home-hero .home-copy h1{font-size:clamp(42px,12vw,58px)!important;line-height:.98!important;max-width:560px!important}.approved-home-hero .home-copy h1::after{width:56px;margin-top:16px}.approved-home-hero .home-copy p{font-size:14px!important;max-width:430px!important;margin-top:18px!important}.approved-home-hero .home-actions{margin-top:20px!important}.approved-home-hero .home-actions .btn{min-height:48px!important;padding:12px 18px!important;font-size:12px!important}.hero-cycle-quick{display:none!important}
  .approved-hero-media{order:2!important;margin:0 18px!important;min-height:440px!important;border-radius:28px 28px 0 0!important;overflow:hidden!important}.approved-hero-visual{object-fit:cover!important;object-position:center!important;transform:scale(1.02)!important}.approved-hero-media::before{background:linear-gradient(180deg,rgba(3,38,80,.25),transparent 25%),linear-gradient(0deg,rgba(2,22,47,.34),transparent 38%)!important}
  .home-feature-overlap{order:3!important;margin-top:-1px!important;padding:0 18px!important;background:var(--v12-navy)!important}.home-feature-overlap .feature-bar{width:100%!important;margin:0!important;border-radius:0 0 24px 24px!important;grid-template-columns:repeat(5,minmax(0,1fr))!important;padding:12px 6px!important;box-shadow:none!important}.home-feature-overlap .feature-item{min-width:0!important;min-height:92px!important;display:flex!important;flex-direction:column!important;text-align:center!important;justify-content:center!important;gap:7px!important;padding:7px 4px!important;border-bottom:0!important}.home-feature-overlap .feature-icon{width:30px!important;height:30px!important}.home-feature-overlap .feature-icon span,.home-feature-overlap .feature-icon svg{width:24px!important;height:24px!important}.home-feature-overlap .feature-item b{font-size:9.5px!important;line-height:1.3!important}.home-feature-overlap .feature-item small{display:none!important}
  .home-cycles-section{padding:52px 0 18px!important}.home-cycles-section .section-head{align-items:center!important;margin-bottom:18px!important}.home-cycles-section .section-head h2{font-size:38px!important}.home-cycles-section .section-head p{display:none!important}.home-cycles-section .section-head .text-link{display:inline-flex!important;font-size:10px!important}
  .home-cycle-strip{grid-template-columns:repeat(2,minmax(0,1fr))!important;gap:12px!important}.home-cycle-link{min-height:230px!important;grid-template-columns:44px 1fr!important;grid-template-rows:auto auto 1fr!important;padding:16px!important}.home-cycle-link>img{width:70%!important;height:70%!important;top:auto!important;bottom:0!important}.cycle-card-icon{width:40px;height:40px;grid-row:auto!important}.home-cycle-link strong{font-size:22px!important}.home-cycle-link em{font-size:10px!important;max-width:130px!important}.home-cycle-link>b{width:34px!important;height:34px!important}
  .home-snapshot-grid{grid-template-columns:1fr!important}.snapshot-card{min-height:auto!important}.snapshot-location{grid-column:auto!important;min-height:210px!important}
  .float-actions{right:9px!important;bottom:18px!important;top:auto!important;transform:none!important;z-index:80!important}.float-action{width:52px!important;min-height:52px!important;height:52px!important;border-radius:16px!important;padding:8px!important}.float-action>span:last-child{display:none!important}.float-action .svg-ico{width:24px!important;height:24px!important}
  .home-onepage-section,.home-cycle-deep-section,.home-snapshot-section{scroll-margin-top:170px}
}

@media(max-width:560px){
  .nav-side>.btn{display:none!important}.brand{width:145px!important}.languages button{padding:6px 8px!important}
  .approved-hero-media{min-height:400px!important;margin-inline:14px!important}.approved-home-hero .home-copy{padding-inline:14px!important}.approved-home-hero .home-copy h1{font-size:clamp(39px,12vw,52px)!important}
  .home-feature-overlap{padding-inline:14px!important}.home-feature-overlap .feature-item b{font-size:8.5px!important}.home-feature-overlap .feature-item{padding-inline:2px!important}.home-feature-overlap .feature-icon{width:27px!important;height:27px!important}
  .home-cycle-strip{grid-template-columns:1fr 1fr!important}.home-cycle-link{min-height:220px!important}.home-cycle-link strong{font-size:20px!important}.home-cycle-link em{font-size:9.5px!important}
}

@media(max-width:420px){
  .container{width:min(100% - 22px,1420px)!important}.nav-row{height:72px!important}.brand{width:132px!important}.mobile-toggle{width:40px!important;height:40px!important}.cycle-nav-wrap{padding-inline:6px!important}.cycle-nav{height:76px!important}.cycle-nav-icon{width:30px!important;height:30px!important}.cycle-nav-copy strong{font-size:9.5px!important}.cycle-nav-copy small{font-size:7.8px!important}.approved-home-hero .home-copy h1{font-size:42px!important}.approved-hero-media{min-height:360px!important;margin-inline:10px!important}.home-feature-overlap{padding-inline:10px!important}.home-feature-overlap .feature-item b{font-size:7.8px!important}.home-cycle-strip{gap:9px!important}.home-cycle-link{min-height:205px!important;padding:13px!important}.home-cycle-link strong{font-size:18px!important}.home-cycle-link em{max-width:105px!important}.snapshot-pedagogy{grid-template-columns:1fr!important}
}

@media(prefers-reduced-motion:reduce){.approved-hero-visual,.hero-depth-orbs i,.cycle-nav-icon{animation:none!important;transform:none!important;transition:none!important}}
/* V12 compact mobile header: keep FR/AR/EN + visit + menu visible */
@media(max-width:560px){
  .site-header>.container.nav-row{width:calc(100% - 14px)!important}
  .brand{width:112px!important;height:42px!important}
  .nav-side{gap:5px!important}
  .nav-side>.btn{display:inline-flex!important;min-height:38px!important;padding:8px 9px!important;font-size:9.5px!important;gap:5px!important;white-space:nowrap}
  .nav-side>.btn .btn-icon{width:13px!important;height:13px!important}
  .languages{gap:0!important;padding:2px!important}
  .languages button{padding:5px 6px!important;font-size:8px!important}
  .mobile-toggle{width:38px!important;height:38px!important;font-size:17px!important}
}
@media(max-width:390px){
  .brand{width:104px!important}
  .nav-side>.btn{padding:8px 7px!important;font-size:8.8px!important}
  .languages button{padding:5px!important;font-size:7.6px!important}
  .mobile-toggle{width:36px!important;height:36px!important}
}

/* ==========================================================
   PALMARÈS V13 — ANIMATED LOGO INTEGRATION
   The supplied logo animation has its own light background.
   It is intentionally presented as a premium light "logo stage"
   rather than using blend modes that would damage the artwork.
   ========================================================== */
.brand.brand-video-shell{
  position:relative!important;
  isolation:isolate;
  overflow:hidden!important;
  flex:0 0 auto;
  width:178px!important;
  height:52px!important;
  border-radius:14px!important;
  background:#f7f7f5!important;
  border:1px solid rgba(255,255,255,.30)!important;
  box-shadow:0 9px 28px rgba(0,0,0,.16),inset 0 0 0 1px rgba(8,43,89,.025)!important;
  transform:translateZ(0);
}
.brand-video-shell::after{
  content:"";
  position:absolute;
  inset:0;
  z-index:4;
  pointer-events:none;
  border-radius:inherit;
  background:linear-gradient(110deg,rgba(255,255,255,.18),transparent 38%,transparent 70%,rgba(255,255,255,.08));
}
.brand-video-shell .brand-video-poster,
.brand-video-shell .brand-video{
  position:absolute!important;
  inset:0!important;
  display:block!important;
  width:100%!important;
  height:100%!important;
  max-width:none!important;
  object-fit:cover!important;
  object-position:center 50%!important;
  filter:none!important;
  mix-blend-mode:normal!important;
  background:#f7f7f5!important;
  pointer-events:none!important;
  transform:none!important;
}
.brand-video-shell .brand-video-poster{z-index:1!important;opacity:1!important}
.brand-video-shell .brand-video{z-index:2!important;opacity:0!important;transition:opacity .20s ease!important}
.brand-video-shell .brand-video.is-playing{opacity:1!important}
.brand-video-shell:hover{transform:translateY(-1px)!important;box-shadow:0 12px 32px rgba(0,0,0,.20)!important}
.brand-video-shell:focus-visible{outline:2px solid #fff!important;outline-offset:3px}

/* The video background stays intentional on every breakpoint. */
@media(max-width:1180px){
  .brand.brand-video-shell{width:160px!important;height:48px!important;border-radius:13px!important}
}
@media(max-width:760px){
  .brand.brand-video-shell{width:150px!important;height:46px!important;border-radius:12px!important;box-shadow:0 7px 20px rgba(0,0,0,.14)!important}
}
@media(max-width:560px){
  .brand.brand-video-shell{width:118px!important;height:40px!important;border-radius:10px!important}
}
@media(max-width:420px){
  .brand.brand-video-shell{width:108px!important;height:38px!important;border-radius:9px!important}
}
@media(max-width:390px){
  .brand.brand-video-shell{width:102px!important;height:37px!important}
}
@media(prefers-reduced-motion:reduce){
  .brand-video-shell .brand-video{display:none!important}
  .brand-video-shell .brand-video-poster{opacity:1!important}
}

/* ==========================================================
   PALMARÈS V14 — VISUAL CLARITY / ICONS / FAÇADE RESPONSIVE
   Based on the 09 Aug mobile screen + recording review.
   Goals:
   - readable near-black text on every light surface
   - cleaner, correctly sized SVG action/cycle icons
   - preserve the complete school façade instead of aggressive crop
   - keep premium dark hero and smooth motion on every viewport
   ========================================================== */
:root{
  --v14-ink:#0b1728;
  --v14-body:#26374b;
  --v14-muted:#4b5f76;
  --v14-soft-text:#64758a;
  --v14-border:#dfe6ef;
  --v14-card:#ffffff;
}

/* ---------- Global readability ---------- */
body{color:var(--v14-ink)!important;text-rendering:optimizeLegibility}
main :where(p,li){color:var(--v14-body)}
main :where(.muted,.lead,.section-head p,.snapshot-card p,.home-editorial-card p,.cycle-showcase-copy>p,.home-contact-copy p){color:var(--v14-muted)!important}
.section-head h2,.section-title,.snapshot-card h3,.home-editorial-card h3,.cycle-showcase-copy h2,.home-news-card h3,.home-contact-copy h2{color:var(--v14-ink)!important}
.text-link,.snapshot-card .text-link,.home-cycle-link strong,.cycle-card-copy strong{color:#082b59!important}
.snapshot-news-list strong,.snapshot-news-list small{color:var(--v14-body)!important}
.snapshot-news-list small{opacity:.82}
.home-cycle-link small,.cycle-nav-copy small{color:#5d6e82!important}
.home-cycle-link em{color:#34495f!important;font-weight:560!important;line-height:1.5!important}

/* Light surfaces receive stronger contrast and crisper separation. */
.home-cycles-section,.home-snapshot-section,.home-cycle-deep-section,.home-contact-section{background:#f7f9fc!important}
.snapshot-card,.home-cycle-link,.home-editorial-card,.cycle-showcase,.home-contact-grid,.photo-card,.news-card{background:#fff!important;border-color:var(--v14-border)!important}

/* ---------- Header: clean white stage integrates the animated logo background ---------- */
.site-header,.site-header.scrolled{background:rgba(255,255,255,.975)!important;border-bottom:1px solid #e7ecf2!important;box-shadow:0 10px 34px rgba(3,27,59,.07)!important;backdrop-filter:blur(18px)!important}
.desktop-nav a{color:#18324f!important;font-weight:760!important}
.desktop-nav a:hover,.desktop-nav a.active{color:#031b3b!important}
.languages{background:#f5f7fa!important;border-color:#e1e7ef!important}
.languages button{color:#687a8f!important}
.languages button.active{background:#ef1717!important;color:#fff!important}
.mobile-toggle{background:#082b59!important;color:#fff!important;border-color:#082b59!important}
.mobile-menu{background:#fff!important;border-color:#e7ecf2!important}
.mobile-menu a{color:#082b59!important}.mobile-menu a:hover,.mobile-menu a.active{background:#f2f6fb!important}
.mobile-langs button{background:#fff!important;color:#082b59!important;border-color:#dde5ee!important}

/* Animated logo: make the video background look intentional, not like a white patch. */
.brand.brand-video-shell{background:#fff!important;border:1px solid #eef1f5!important;box-shadow:0 7px 22px rgba(3,27,59,.09)!important}
.brand-video-shell::after{opacity:.35}

/* ---------- Cycle rail ---------- */
.cycle-nav-wrap{background:#fff!important;padding:0!important;border-bottom:1px solid #e7edf4!important}
.cycle-nav{height:66px!important;max-width:none!important;width:100%!important;border:0!important;border-radius:0!important;box-shadow:none!important;background:#fff!important}
.cycle-nav a{background:#fff!important;color:#0b2647!important;padding:9px 18px!important;gap:11px!important}
.cycle-nav a:hover,.cycle-nav a.active{background:#f8faff!important}
.cycle-nav-icon{width:42px!important;height:42px!important;border-radius:14px!important;box-shadow:0 5px 14px rgba(8,43,89,.06),inset 0 0 0 1px rgba(8,43,89,.06)!important}
.cycle-nav-icon svg{width:25px!important;height:25px!important;stroke-width:2.1!important}
.cycle-nav-copy strong{font-size:13.5px!important;color:#102c4c!important;font-weight:800!important}
.cycle-nav-copy small{font-size:10px!important;font-weight:650!important}

/* ---------- Hero: clearer text + less destructive facade crop ---------- */
.approved-home-hero .home-copy p{color:rgba(255,255,255,.93)!important;font-weight:500!important}
.approved-home-hero .home-copy h1{color:#fff!important}
.approved-home-hero .btn-glass{color:#fff!important;border-color:rgba(255,255,255,.52)!important;background:rgba(255,255,255,.06)!important}
.approved-hero-visual{object-position:52% 50%!important;transform:translate3d(var(--hero-x,0),calc(var(--hero-y,0) + var(--parallax-y,0px)),0) scale(1.005)!important}
.approved-hero-media::before{background:linear-gradient(90deg,#032650 0%,rgba(3,38,80,.50) 7%,rgba(3,38,80,.08) 22%,transparent 42%),linear-gradient(0deg,rgba(2,22,47,.12),transparent 34%)!important}
.hero-depth-orbs i{opacity:.82}

/* Feature band: icons slightly larger and copy more legible. */
.home-feature-overlap .feature-item b{font-size:12px!important;font-weight:780!important;letter-spacing:-.01em}
.home-feature-overlap .feature-item small{font-size:9.5px!important;color:rgba(255,255,255,.78)!important}
.home-feature-overlap .feature-icon{width:40px!important;height:40px!important}
.home-feature-overlap .feature-icon svg{width:28px!important;height:28px!important;stroke-width:2!important}

/* ---------- Cycle cards ---------- */
.home-cycle-link{box-shadow:0 13px 34px rgba(5,35,72,.08)!important}
.home-cycle-link strong{font-weight:760!important}
.home-cycle-link>img{filter:saturate(.96) contrast(1.02)}
.cycle-card-icon{box-shadow:0 8px 20px rgba(8,43,89,.08)!important}

/* ---------- Quick actions: genuine icons, consistent geometry ---------- */
.float-actions{right:14px!important;gap:9px!important}
.float-action{width:60px!important;min-height:60px!important;border:1px solid #dfe7f0!important;border-radius:19px!important;padding:7px 5px!important;background:rgba(255,255,255,.98)!important;box-shadow:0 15px 34px rgba(3,27,59,.16)!important;color:#082b59!important}
.float-action .svg-ico{width:27px!important;height:27px!important;display:grid!important;place-items:center!important}
.float-action .svg-ico svg{width:100%!important;height:100%!important;stroke-width:2.2!important}
.float-action>span:last-child{font-size:9px!important;font-weight:800!important;letter-spacing:-.01em!important;color:#18324f!important}
.float-action.whatsapp .svg-ico{color:#19ad55!important}
.float-action.call .svg-ico{color:#0b56ad!important}
.float-action.assistant-action .svg-ico{color:#082b59!important}
.float-action:hover{transform:translateX(-3px) scale(1.025)!important}

/* ---------- Tablet ---------- */
@media(max-width:900px){
  .cycle-nav{height:64px!important}
  .cycle-nav-icon{width:38px!important;height:38px!important}.cycle-nav-icon svg{width:23px!important;height:23px!important}
  .cycle-nav-copy strong{font-size:12px!important}.cycle-nav-copy small{font-size:9px!important}
  .approved-hero-media{background:#032650!important}
  .approved-hero-visual{transform:translate3d(0,var(--parallax-y,0px),0) scale(1)!important;object-position:center!important}
}

/* ---------- Phone: full façade, larger text, non-obstructive action dock ---------- */
@media(max-width:760px){
  body{font-size:15px!important}
  .site-header{background:rgba(255,255,255,.985)!important}
  .nav-row{height:72px!important}
  .mobile-toggle{border:0!important}
  .cycle-nav-wrap{background:#fff!important;padding:0!important}
  .cycle-nav{height:72px!important;border-radius:0!important;border-top:1px solid #edf1f5!important}
  .cycle-nav a{padding:7px 2px!important;gap:3px!important}
  .cycle-nav-icon{width:34px!important;height:34px!important;border-radius:11px!important}.cycle-nav-icon svg{width:21px!important;height:21px!important}
  .cycle-nav-copy strong{font-size:10.5px!important;color:#162f4d!important}.cycle-nav-copy small{font-size:8.5px!important;color:#66778b!important}

  .approved-home-hero .home-copy p{font-size:15px!important;line-height:1.62!important;color:rgba(255,255,255,.94)!important}
  .approved-home-hero .home-actions .btn{font-size:12px!important;font-weight:780!important}

  /* Preserve the whole approved composition; no more clipped school façade. */
  .approved-hero-media{margin:0 12px!important;min-height:0!important;height:auto!important;aspect-ratio:510/525!important;border-radius:26px 26px 0 0!important;background:#032650!important}
  .approved-hero-media picture{inset:0!important;display:flex!important;align-items:center!important;justify-content:center!important}
  .approved-hero-visual{width:100%!important;height:100%!important;object-fit:contain!important;object-position:center!important;transform:none!important}
  .approved-hero-media::before{background:linear-gradient(180deg,rgba(3,38,80,.10),transparent 22%),linear-gradient(0deg,rgba(2,22,47,.20),transparent 32%)!important}
  .approved-hero-media::after{height:55px!important}
  .hero-depth-orbs i{width:9px!important;height:9px!important;opacity:.65}

  .home-feature-overlap .feature-bar{grid-template-columns:repeat(5,minmax(0,1fr))!important;padding:10px 4px!important}
  .home-feature-overlap .feature-item{min-height:82px!important;padding:7px 2px!important;gap:5px!important}
  .home-feature-overlap .feature-icon{width:29px!important;height:29px!important}.home-feature-overlap .feature-icon svg{width:23px!important;height:23px!important}
  .home-feature-overlap .feature-item b{font-size:9.6px!important;line-height:1.25!important}

  /* Body text on cards was too pale/small in the recording. */
  .section-head p,.snapshot-card p,.home-cycle-link em,.home-editorial-card p,.cycle-showcase-copy>p{font-size:12px!important;color:#3f5166!important;line-height:1.55!important}
  .snapshot-card h3{font-size:24px!important;color:#0b1b2f!important}
  .snapshot-news-list strong{font-size:11px!important;color:#152a43!important}.snapshot-news-list small{font-size:9px!important;color:#5f7185!important}
  .home-cycle-link small{font-size:10px!important;color:#53677d!important}.home-cycle-link em{font-size:10.5px!important;font-weight:600!important}

  /* Replace the content-covering vertical rail by a compact bottom dock. */
  .float-actions{left:auto!important;right:12px!important;bottom:max(12px,env(safe-area-inset-bottom))!important;top:auto!important;transform:none!important;display:flex!important;gap:4px!important;padding:5px!important;border:1px solid rgba(8,43,89,.11)!important;border-radius:20px!important;background:rgba(255,255,255,.94)!important;box-shadow:0 16px 42px rgba(3,27,59,.18)!important;backdrop-filter:blur(14px)!important;z-index:90!important}
  .float-action{width:46px!important;min-height:46px!important;height:46px!important;border:0!important;border-radius:15px!important;padding:10px!important;box-shadow:none!important;background:transparent!important}
  .float-action .svg-ico{width:25px!important;height:25px!important}
  .float-action>span:last-child{display:none!important}
  .float-action:hover{transform:translateY(-2px)!important;background:#f5f8fc!important}

  .home-cycle-link strong{color:#0b1b2f!important}.home-cycles-section .section-head h2{color:#0b1b2f!important}
}

@media(max-width:420px){
  .approved-home-hero .home-copy h1{font-size:40px!important;line-height:1!important}
  .approved-home-hero .home-copy p{font-size:14px!important}
  .approved-hero-media{margin-inline:8px!important;border-radius:22px 22px 0 0!important}
  .cycle-nav{height:68px!important}.cycle-nav-icon{width:31px!important;height:31px!important}.cycle-nav-icon svg{width:19px!important;height:19px!important}
  .cycle-nav-copy strong{font-size:9.5px!important}.cycle-nav-copy small{font-size:7.8px!important}
  .float-actions{right:8px!important;bottom:max(8px,env(safe-area-inset-bottom))!important}
  .float-action{width:43px!important;height:43px!important;min-height:43px!important;padding:9px!important}
}

@media(prefers-reduced-motion:reduce){
  .approved-hero-visual{transform:none!important}
  .float-action,.cycle-nav-icon{transition:none!important}
}

/* V14 mobile header fit: keep logo + all languages + visit + menu visible. */
.visit-short{display:none}
@media(max-width:560px){
  .site-header>.container.nav-row{width:calc(100% - 14px)!important;gap:7px!important}
  .brand.brand-video-shell{width:108px!important;min-width:108px!important;height:40px!important}
  .nav-side{margin-left:auto!important;gap:4px!important;min-width:0!important}
  .languages{flex:0 0 auto!important}.languages button{padding:5px 5px!important;font-size:7.8px!important;min-width:23px!important}
  .nav-visit{flex:0 0 auto!important;min-width:59px!important;min-height:38px!important;padding:8px 9px!important;gap:4px!important}
  .nav-visit .visit-label{display:none!important}.nav-visit .visit-short{display:inline!important;font-size:8.8px!important;font-weight:800!important}
  .mobile-toggle{flex:0 0 36px!important;width:36px!important;height:36px!important}
}
@media(max-width:390px){
  .brand.brand-video-shell{width:96px!important;min-width:96px!important;height:37px!important}
  .languages button{padding:4px!important;min-width:21px!important;font-size:7.3px!important}
  .nav-visit{min-width:52px!important;padding:7px!important}.nav-visit .visit-short{font-size:8px!important}
  .mobile-toggle{flex-basis:34px!important;width:34px!important;height:34px!important}
}

/* =========================================================
   V15 — LOOP LOGO + IMPORTANT WEB PAGES
   ========================================================= */
.brand-video-shell .brand-video.is-playing{opacity:1!important}
.brand-video-shell.video-ready .brand-video-poster{opacity:0!important}

.web-priority-section,.web-method-section{background:#f7f9fc}
.web-priority-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}
.web-priority-card{background:#fff;border:1px solid #e6ebf2;border-radius:24px;padding:28px;box-shadow:0 14px 38px rgba(9,36,76,.06)}
.web-priority-card>span{display:inline-flex;width:44px;height:44px;align-items:center;justify-content:center;border-radius:50%;background:#eef4ff;color:#0b3975;font-weight:800;margin-bottom:18px}
.web-priority-card h3{color:#0b1728;margin:0 0 10px;font-size:1.2rem}.web-priority-card p{color:#46586d;margin:0;line-height:1.7}
.web-method-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:14px}
.web-method-step{background:#fff;border-radius:22px;padding:24px;border:1px solid #e7ecf3;position:relative;overflow:hidden}
.web-method-step::after{content:"";position:absolute;width:90px;height:90px;border-radius:50%;right:-36px;bottom:-36px;background:radial-gradient(circle,#dce8ff 0,#eef4ff 45%,transparent 70%)}
.web-method-step b{color:#e60000;font-size:.82rem;letter-spacing:.12em}.web-method-step h3{color:#0b1728;margin:10px 0 8px}.web-method-step p{color:#46586d;line-height:1.65;margin:0;position:relative;z-index:1}
.web-assurance-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px;margin:8px 0 26px}
.web-assurance-grid>div{display:flex;flex-direction:column;gap:4px;padding:16px 18px;border:1px solid #e7ecf3;background:#fff;border-radius:17px}.web-assurance-grid strong{color:#0b2c59}.web-assurance-grid span{color:#53677d;font-size:.9rem}
.web-contact-quick{display:grid;grid-template-columns:1fr;gap:10px;margin:22px 0}
.web-contact-quick a{display:flex;justify-content:space-between;gap:18px;padding:14px 16px;border-radius:15px;background:#f6f8fb;border:1px solid #e5eaf1;text-decoration:none;color:#0b2c59;transition:.22s ease}.web-contact-quick a:hover{transform:translateY(-2px);background:#fff;box-shadow:0 10px 26px rgba(9,36,76,.08)}.web-contact-quick span{color:#53677d;text-align:end}
@media(max-width:980px){.web-priority-grid{grid-template-columns:1fr 1fr}.web-method-grid{grid-template-columns:1fr 1fr}}
@media(max-width:620px){.web-priority-grid,.web-method-grid,.web-assurance-grid{grid-template-columns:1fr}.web-priority-card,.web-method-step{padding:20px}.web-contact-quick a{flex-direction:column;gap:2px}.web-contact-quick span{text-align:start}}

/* =========================================================
   V16 VISUAL CLARITY + ICON ALIGNMENT + VISITOR GUIDANCE
   Final contrast and navigation pass based on mobile review.
   ========================================================= */
:root{
  --v16-ink:#08172a;
  --v16-body:#26384f;
  --v16-muted:#52657b;
  --v16-line:#e4eaf2;
  --v16-soft:#f7f9fc;
}

/* 1) Never allow white/light text to leak onto light surfaces. */
:is(.soft-card,.cycle-card,.photo-card,.news-card,.home-panel,.home-editorial-card,.snapshot-card,.home-news-card,.home-cycle-link,.web-priority-card,.web-method-step,.form-panel,.contact-form,.timeline-card,.why-card,.page-guide-card,.choice,.map-card,.contact-info){color:var(--v16-ink)!important}
:is(.soft-card,.cycle-card,.photo-card,.news-card,.home-panel,.home-editorial-card,.snapshot-card,.home-news-card,.home-cycle-link,.web-priority-card,.web-method-step,.form-panel,.contact-form,.timeline-card,.why-card,.page-guide-card,.choice,.contact-info) h1,
:is(.soft-card,.cycle-card,.photo-card,.news-card,.home-panel,.home-editorial-card,.snapshot-card,.home-news-card,.home-cycle-link,.web-priority-card,.web-method-step,.form-panel,.contact-form,.timeline-card,.why-card,.page-guide-card,.choice,.contact-info) h2,
:is(.soft-card,.cycle-card,.photo-card,.news-card,.home-panel,.home-editorial-card,.snapshot-card,.home-news-card,.home-cycle-link,.web-priority-card,.web-method-step,.form-panel,.contact-form,.timeline-card,.why-card,.page-guide-card,.choice,.contact-info) h3,
:is(.soft-card,.cycle-card,.photo-card,.news-card,.home-panel,.home-editorial-card,.snapshot-card,.home-news-card,.home-cycle-link,.web-priority-card,.web-method-step,.form-panel,.contact-form,.timeline-card,.why-card,.page-guide-card,.choice,.contact-info) strong{color:var(--v16-ink)!important}
:is(.soft-card,.cycle-card,.photo-card,.news-card,.home-panel,.home-editorial-card,.snapshot-card,.home-news-card,.home-cycle-link,.web-priority-card,.web-method-step,.form-panel,.contact-form,.timeline-card,.why-card,.page-guide-card,.choice,.contact-info) p,
:is(.soft-card,.cycle-card,.photo-card,.news-card,.home-panel,.home-editorial-card,.snapshot-card,.home-news-card,.home-cycle-link,.web-priority-card,.web-method-step,.form-panel,.contact-form,.timeline-card,.why-card,.page-guide-card,.choice,.contact-info) small{color:var(--v16-body)!important}
.section-head h2,.section-title{color:var(--v16-ink)!important}
.section-head p,.muted{color:var(--v16-muted)!important}

/* Keep deliberate dark-surface text white. */
:is(.approved-home-hero,.premium-art-hero,.compact-art-hero,.editorial-hero,.brand-story-section,.home-admissions-section,.cta-band,.footer) :is(h1,h2,h3,h4){color:#fff}
:is(.approved-home-hero,.premium-art-hero,.compact-art-hero,.editorial-hero,.brand-story-section,.home-admissions-section,.cta-band,.footer) p{color:rgba(255,255,255,.86)}

/* 2) Icon system: one optical box, one stroke language, no drifting glyphs. */
.svg-ico,.cycle-nav-icon svg,.feature-icon svg,.cycle-card-icon svg,.pillar-icon svg,.page-guide-icon svg,.guide-arrow svg,.btn-icon svg,.assistant-mark svg{display:block;width:100%;height:100%;overflow:visible}
.cycle-nav-icon,.feature-icon,.cycle-card-icon,.pillar-icon,.page-guide-icon{display:inline-grid!important;place-items:center!important;flex:0 0 auto;line-height:1!important}
.cycle-nav-icon svg,.feature-icon svg,.cycle-card-icon svg,.pillar-icon svg,.page-guide-icon svg{fill:none;stroke:currentColor;stroke-width:1.75;stroke-linecap:round;stroke-linejoin:round}
.cycle-nav-icon{width:38px!important;height:38px!important;padding:8px!important;border-radius:13px!important}
.cycle-nav a{display:flex!important;align-items:center!important;justify-content:center!important;gap:12px!important;min-width:0!important;padding:8px 14px!important}
.cycle-nav-copy{display:grid!important;gap:2px!important;min-width:0!important;text-align:start!important}
.cycle-nav-copy strong{line-height:1.1!important}.cycle-nav-copy small{line-height:1.1!important}
.feature-item{display:flex!important;align-items:center!important;justify-content:flex-start!important;gap:12px!important}
.feature-icon{width:42px!important;height:42px!important;padding:8px!important}
.feature-item>span:last-child{display:grid!important;gap:2px!important;min-width:0!important}
.feature-item b,.feature-item small{line-height:1.18!important}
.glyph-icon{display:grid!important;place-items:center!important;width:100%;height:100%;font-size:.9em;line-height:1!important}
.pillar-icon{width:48px!important;height:48px!important;padding:11px!important}
.cycle-mini-features b{display:grid!important;place-items:center!important;width:34px!important;height:34px!important;padding:7px!important}
.cycle-mini-features b svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}

/* Floating quick actions: aligned icons and labels. */
.float-actions{gap:8px!important}
.float-action{display:grid!important;grid-template-rows:30px auto!important;align-items:center!important;justify-items:center!important;gap:5px!important;min-width:66px!important;padding:10px 8px!important}
.float-action .ico{display:grid!important;place-items:center!important;width:28px!important;height:28px!important;margin:0!important}
.float-action .ico svg{width:27px!important;height:27px!important}
.float-action>span:last-child{font-size:10px!important;font-weight:800!important;line-height:1.05!important;text-align:center!important}
.float-action.whatsapp .ico{color:#25D366!important}.float-action.call .ico,.float-action.assistant-btn .ico{color:#0b4da8!important}

/* 3) Important page text is explicitly readable on the web. */
.web-priority-section,.web-method-section,.admission-main,.contact-main,.about-pathway{color:var(--v16-ink)!important}
.web-priority-section .section-head p,.web-method-section .section-head p,.admission-main .section-head p,.contact-main p{color:var(--v16-body)!important}
.web-priority-card p,.web-method-step p,.web-assurance-grid span,.web-contact-quick span{color:var(--v16-body)!important;font-size:max(.9rem,14px)!important}
.web-priority-card h3,.web-method-step h3,.web-assurance-grid strong,.web-contact-quick b{color:var(--v16-ink)!important}

/* 4) Animated discovery rail: clearly tells visitors that more pages exist. */
.page-guide{position:relative;padding:62px 0 66px;background:linear-gradient(180deg,#fff 0%,#f7f9fd 100%);border-top:1px solid var(--v16-line);overflow:hidden}
.page-guide::before{content:"";position:absolute;width:440px;height:440px;right:-180px;top:-240px;border-radius:50%;background:radial-gradient(circle,rgba(18,59,189,.08),transparent 68%);pointer-events:none}
.page-guide-head{display:flex;align-items:flex-end;justify-content:space-between;gap:28px;margin-bottom:24px;position:relative;z-index:1}
.page-guide-head h2{margin:5px 0 7px;color:var(--v16-ink)!important;font:700 clamp(30px,3vw,44px)/1.06 'Playfair Display',Georgia,serif;letter-spacing:-.025em}
.page-guide-head p{margin:0;color:var(--v16-muted)!important;max-width:650px;line-height:1.6}
.guide-motion{display:flex;align-items:center;gap:7px;padding-bottom:8px;direction:ltr}
.guide-motion i{display:block;width:28px;height:2px;border-radius:999px;background:#e60000;opacity:.22;animation:v16GuidePulse 1.8s ease-in-out infinite}
.guide-motion i:nth-child(2){animation-delay:.18s}.guide-motion i:nth-child(3){animation-delay:.36s}
@keyframes v16GuidePulse{0%,100%{opacity:.18;transform:translateX(-8px) scaleX(.7)}50%{opacity:1;transform:translateX(7px) scaleX(1)}}
.page-guide-grid{position:relative;z-index:1;display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:14px}
.page-guide-card{min-height:136px;padding:19px;border:1px solid var(--v16-line);border-radius:22px;background:#fff;box-shadow:0 12px 34px rgba(8,43,89,.055);display:grid;grid-template-columns:44px minmax(0,1fr) 30px;align-items:center;gap:13px;text-decoration:none;transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease}
.page-guide-card:hover{transform:translateY(-5px);border-color:#cdd9eb;box-shadow:0 20px 46px rgba(8,43,89,.11)}
.page-guide-icon{width:44px!important;height:44px!important;padding:10px!important;border-radius:15px!important;background:#eef4ff;color:#0b4da8}
.page-guide-card:nth-child(2) .page-guide-icon{background:#fff0f0;color:#e60000}.page-guide-card:nth-child(3) .page-guide-icon{background:#edfaf4;color:#0f9c64}.page-guide-card:nth-child(4) .page-guide-icon{background:#f1efff;color:#5b52c8}
.page-guide-copy{display:grid;gap:5px;min-width:0}.page-guide-copy strong{font:700 19px/1.05 'Playfair Display',Georgia,serif!important;color:var(--v16-ink)!important}.page-guide-copy small{font-size:11.5px!important;line-height:1.45!important;color:var(--v16-muted)!important}
.guide-arrow{width:30px;height:30px;display:grid;place-items:center;color:#0b4da8;transition:transform .25s ease;color:#0b4da8}
.guide-arrow svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2}
.page-guide-card:hover .guide-arrow{animation:v16ArrowNudge .7s ease-in-out infinite alternate}
@keyframes v16ArrowNudge{from{transform:translateX(-2px)}to{transform:translateX(6px)}}
[dir="rtl"] .guide-arrow svg{transform:scaleX(-1)}
[dir="rtl"] .page-guide-card:hover .guide-arrow{animation:v16ArrowNudgeRTL .7s ease-in-out infinite alternate}
@keyframes v16ArrowNudgeRTL{from{transform:translateX(2px)}to{transform:translateX(-6px)}}

/* More obvious textual navigation arrows across existing links. */
.text-link,.footer-cta,.map-external{position:relative}
.text-link::after{content:"";display:inline-block;width:18px;height:1.5px;background:currentColor;margin-inline-start:8px;vertical-align:middle;transform-origin:left center;animation:v16LinkLine 2s ease-in-out infinite}
@keyframes v16LinkLine{0%,100%{transform:scaleX(.45);opacity:.45}50%{transform:scaleX(1);opacity:1}}

/* 5) Responsive alignment. */
@media(max-width:1100px){
  .page-guide-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
  .page-guide-card{min-height:120px}
}
@media(max-width:760px){
  .cycle-nav a{gap:6px!important;padding:7px 4px!important;flex-direction:column!important;text-align:center!important}
  .cycle-nav-icon{width:31px!important;height:31px!important;padding:6px!important}
  .cycle-nav-copy{text-align:center!important;gap:1px!important}.cycle-nav-copy strong{font-size:10px!important}.cycle-nav-copy small{font-size:8.5px!important}
  .feature-item{gap:8px!important;min-height:72px!important;padding:9px!important}.feature-icon{width:34px!important;height:34px!important;padding:6px!important}.feature-item b{font-size:10.5px!important}.feature-item small{font-size:8px!important}
  .page-guide{padding:44px 0 52px}.page-guide-head{align-items:flex-start}.guide-motion{display:none}.page-guide-grid{grid-template-columns:1fr 1fr;gap:10px}.page-guide-card{min-height:118px;padding:14px;grid-template-columns:38px minmax(0,1fr) 24px;gap:9px;border-radius:18px}.page-guide-icon{width:38px!important;height:38px!important;padding:8px!important}.page-guide-copy strong{font-size:16px!important}.page-guide-copy small{font-size:10px!important}.guide-arrow{width:24px;height:24px}.guide-arrow svg{width:18px;height:18px}
  .float-action{min-width:58px!important;grid-template-rows:25px auto!important;padding:8px 6px!important}.float-action .ico,.float-action .ico svg{width:24px!important;height:24px!important}.float-action>span:last-child{font-size:8.5px!important}
}
@media(max-width:480px){
  .page-guide-grid{grid-template-columns:1fr}.page-guide-card{min-height:92px;grid-template-columns:40px minmax(0,1fr) 26px}.page-guide-copy strong{font-size:17px!important}.page-guide-copy small{font-size:11px!important}
}
@media(prefers-reduced-motion:reduce){.guide-motion i,.guide-arrow,.text-link::after{animation:none!important;transition:none!important}}

/* =========================================================
   PALMARÈS V17 — CONTRAST / PAGE DISCOVERY / MENU CLARITY
   Review fixes based on user mobile screenshots.
   ========================================================= */
:root{
  --v17-ink:#071a30;
  --v17-body:#2d4056;
  --v17-muted:#607287;
  --v17-line:#e1e8f0;
  --v17-soft:#f7f9fc;
  --v17-blue:#082b59;
  --v17-red:#e8171f;
}

/* 1. Fix the white-on-white sections introduced by previous theme overrides. */
.brand-story-section,
.home-admissions-section{
  background:linear-gradient(180deg,#f7f9fc 0%,#ffffff 100%)!important;
  color:var(--v17-ink)!important;
}
.brand-story-section::before,
.home-admissions-section::before{opacity:.45!important}
.brand-story-copy h2,
.brand-story-copy h3,
.home-admissions-copy h2,
.home-admissions-copy h3{
  color:var(--v17-ink)!important;
}
.brand-story-copy p,
.home-admissions-copy p{
  color:var(--v17-body)!important;
  opacity:1!important;
}
.brand-story-copy .eyebrow,
.home-admissions-copy .eyebrow{color:var(--v17-red)!important}
.brand-story-copy .btn-secondary{
  color:var(--v17-blue)!important;
  background:#fff!important;
  border-color:#cfd9e6!important;
  box-shadow:0 9px 24px rgba(8,43,89,.08)!important;
}
.brand-value-card,
.admission-preview-step{
  background:#fff!important;
  border:1px solid var(--v17-line)!important;
  box-shadow:0 16px 42px rgba(8,43,89,.065)!important;
}
.brand-value-card>span{
  background:#eef4ff!important;
  color:var(--v17-blue)!important;
  box-shadow:inset 0 0 0 1px rgba(8,43,89,.06)!important;
}
.brand-value-card h3,
.admission-preview-step b{color:var(--v17-ink)!important}
.brand-value-card p,
.admission-preview-step span{color:var(--v17-body)!important;opacity:1!important}

/* Defensive readability rule for every light one-page section. */
:is(.brand-story-section,.pedagogy-home-section,.home-life-section,.home-clubs-section,.home-news-section,.home-admissions-section,.home-contact-section) :is(h1,h2,h3,h4,strong){color:var(--v17-ink)!important}
:is(.brand-story-section,.pedagogy-home-section,.home-life-section,.home-clubs-section,.home-news-section,.home-admissions-section,.home-contact-section) :is(p,small,li){color:var(--v17-body)!important}
:is(.brand-story-section,.pedagogy-home-section,.home-life-section,.home-clubs-section,.home-news-section,.home-admissions-section,.home-contact-section) .eyebrow{color:var(--v17-red)!important}

/* Preserve white only on surfaces that are visually dark in V17. */
:is(.approved-home-hero,.premium-art-hero,.compact-art-hero,.editorial-hero,.cta-band,.footer) :is(h1,h2,h3,h4){color:#fff!important}
:is(.approved-home-hero,.premium-art-hero,.compact-art-hero,.editorial-hero,.cta-band,.footer) p{color:rgba(255,255,255,.9)!important}

/* 2. Real three-line hamburger + smooth animated menu. */
.mobile-toggle{
  position:relative!important;
  display:none;
  place-items:center;
  padding:0!important;
  overflow:hidden;
}
.mobile-toggle span{
  position:absolute;
  width:18px;
  height:2px;
  border-radius:999px;
  background:#fff;
  transition:transform .32s cubic-bezier(.2,.8,.2,1),opacity .2s ease,top .32s cubic-bezier(.2,.8,.2,1);
  left:50%;
  transform:translateX(-50%);
}
.mobile-toggle span:nth-child(1){top:14px}
.mobile-toggle span:nth-child(2){top:20px}
.mobile-toggle span:nth-child(3){top:26px}
.mobile-toggle.open span:nth-child(1){top:20px;transform:translateX(-50%) rotate(45deg)}
.mobile-toggle.open span:nth-child(2){opacity:0;transform:translateX(-70%)}
.mobile-toggle.open span:nth-child(3){top:20px;transform:translateX(-50%) rotate(-45deg)}
.mobile-menu{
  display:grid!important;
  gap:7px!important;
  opacity:0;
  visibility:hidden;
  pointer-events:none;
  transform:translateY(-12px) scale(.985);
  transform-origin:top center;
  transition:opacity .24s ease,transform .32s cubic-bezier(.2,.8,.2,1),visibility .24s;
}
.mobile-menu.open{
  opacity:1;
  visibility:visible;
  pointer-events:auto;
  transform:translateY(0) scale(1);
}
.mobile-menu-priority{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:8px;
  margin-bottom:4px;
}
.mobile-menu-priority a{
  background:linear-gradient(135deg,#082b59,#0d4179)!important;
  color:#fff!important;
  min-height:48px;
  display:flex!important;
  align-items:center;
  justify-content:center;
  text-align:center;
  border-radius:14px!important;
  box-shadow:0 9px 24px rgba(8,43,89,.12);
}

/* 3. Important web pages remain visible beside the menu in intermediate desktop/tablet layouts. */
.header-priority-links{display:none;align-items:center;gap:6px;white-space:nowrap}
.header-priority-links a{
  color:#173451;
  text-decoration:none;
  font-size:10.5px;
  font-weight:800;
  padding:8px 10px;
  border-radius:999px;
  border:1px solid #e0e7ef;
  background:#fff;
  transition:.22s ease;
}
.header-priority-links a:hover{color:var(--v17-red);border-color:#f5b9bd;background:#fff7f7;transform:translateY(-1px)}
@media(min-width:761px) and (max-width:1180px){
  .header-priority-links{display:flex!important}
}

/* 4. Three animated discovery paths on the homepage. */
.home-route-rail{
  padding:22px 0 54px;
  background:linear-gradient(180deg,#f7f9fc,#fff);
}
.home-route-head{
  display:flex;
  align-items:end;
  justify-content:space-between;
  gap:24px;
  margin-bottom:15px;
}
.home-route-head p{margin:0;max-width:610px;color:var(--v17-muted)!important;line-height:1.55}
.home-route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}
.home-route-card{
  position:relative;
  min-height:112px;
  display:grid;
  grid-template-columns:48px minmax(0,1fr) 86px;
  align-items:center;
  gap:14px;
  padding:17px 18px;
  border:1px solid var(--v17-line);
  border-radius:22px;
  background:#fff;
  box-shadow:0 12px 34px rgba(8,43,89,.055);
  text-decoration:none;
  overflow:hidden;
  transition:transform .28s ease,box-shadow .28s ease,border-color .28s ease;
}
.home-route-card::after{
  content:"";
  position:absolute;
  inset:auto -80px -100px auto;
  width:190px;
  height:190px;
  border-radius:50%;
  background:radial-gradient(circle,rgba(18,59,189,.075),transparent 68%);
  pointer-events:none;
}
.home-route-card:hover{transform:translateY(-5px);border-color:#cbd8e8;box-shadow:0 20px 46px rgba(8,43,89,.11)}
.home-route-icon{
  width:48px;height:48px;display:grid;place-items:center;padding:11px;border-radius:16px;
  color:#0b4da8;background:#eef4ff;position:relative;z-index:1;
}
.home-route-card:nth-child(2) .home-route-icon{color:#0e9b62;background:#edf9f3}
.home-route-card:nth-child(3) .home-route-icon{color:#e8171f;background:#fff0f1}
.home-route-icon svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.9;stroke-linecap:round;stroke-linejoin:round}
.home-route-copy{display:grid;gap:4px;position:relative;z-index:1}
.home-route-copy strong{color:var(--v17-ink)!important;font:700 20px/1.05 'Playfair Display',Georgia,serif}
.home-route-copy small{color:var(--v17-muted)!important;font-size:11px;line-height:1.4}
.home-route-motion{display:flex;align-items:center;justify-content:flex-end;gap:4px;direction:ltr;position:relative;z-index:1;color:var(--v17-blue)}
.home-route-motion i{width:10px;height:2px;border-radius:99px;background:var(--v17-red);opacity:.22;animation:v17RoutePulse 1.55s ease-in-out infinite}
.home-route-motion i:nth-child(2){animation-delay:.14s}.home-route-motion i:nth-child(3){animation-delay:.28s}
.home-route-motion svg{width:22px;height:22px;fill:none;stroke:currentColor;stroke-width:2}
@keyframes v17RoutePulse{0%,100%{opacity:.18;transform:translateX(-6px) scaleX(.65)}50%{opacity:1;transform:translateX(5px) scaleX(1)}}
[dir="rtl"] .home-route-motion svg{transform:scaleX(-1)}

/* 5. Keep cycle labels/ages fully visible on all phones. */
.cycle-nav-wrap,.cycle-nav{overflow:visible!important}
@media(max-width:760px){
  .cycle-nav{height:auto!important;min-height:78px!important;padding:5px 0!important;align-items:stretch!important}
  .cycle-nav a{min-height:68px!important;overflow:visible!important}
  .cycle-nav-copy small{display:block!important;line-height:1.2!important;opacity:1!important}
  .home-route-rail{padding:16px 0 38px}
  .home-route-head{display:block;margin-bottom:12px}.home-route-head p{font-size:12px;margin-top:5px}
  .home-route-grid{grid-template-columns:1fr!important;gap:9px}
  .home-route-card{min-height:88px;grid-template-columns:42px minmax(0,1fr) 64px;padding:13px 14px;border-radius:18px}
  .home-route-icon{width:42px;height:42px;padding:9px;border-radius:14px}
  .home-route-copy strong{font-size:17px}.home-route-copy small{font-size:10px}
  .home-route-motion{gap:2px}.home-route-motion i{width:7px}.home-route-motion svg{width:18px;height:18px}
  .header-priority-links{display:none!important}
}

/* 6. Floating action dock must never cover text. */
@media(max-width:760px){
  main{padding-bottom:76px}
  .float-actions{right:50%!important;transform:translateX(50%)!important;bottom:max(10px,env(safe-area-inset-bottom))!important}
  [dir="rtl"] .float-actions{right:50%!important;left:auto!important;transform:translateX(50%)!important}
}

@media(prefers-reduced-motion:reduce){
  .mobile-toggle span,.mobile-menu,.home-route-card,.home-route-motion i{transition:none!important;animation:none!important}
}

/* =========================================================
   PALMARÈS V18 — FLUID ALIGNMENT / ICON MOTION / MORPH NAV
   Final mobile + tablet + desktop harmonisation pass.
   ========================================================= */
:root{
  --v18-ink:#06172b;
  --v18-body:#26394f;
  --v18-muted:#5b6f86;
  --v18-blue:#082b59;
  --v18-blue-2:#0c427a;
  --v18-red:#ef1821;
  --v18-line:#e3e9f1;
  --v18-soft:#f7f9fc;
}

/* A. Absolute readability: no white typography on pale surfaces. */
:is(.brand-story-section,.pedagogy-home-section,.home-life-section,.home-clubs-section,.home-news-section,.home-admissions-section,.home-contact-section,.home-cycle-deep-section,.home-route-rail,.page-guide,.section,.section-sm) :is(h1,h2,h3,h4,strong){color:var(--v18-ink)!important}
:is(.brand-story-section,.pedagogy-home-section,.home-life-section,.home-clubs-section,.home-news-section,.home-admissions-section,.home-contact-section,.home-cycle-deep-section,.home-route-rail,.page-guide,.section,.section-sm) :is(p,small,li,span.muted){color:var(--v18-body)!important}
:is(.brand-story-section,.pedagogy-home-section,.home-life-section,.home-clubs-section,.home-news-section,.home-admissions-section,.home-contact-section,.home-cycle-deep-section,.home-route-rail,.page-guide,.section,.section-sm) .eyebrow{color:var(--v18-red)!important}
:is(.brand-story-section,.pedagogy-home-section,.home-life-section,.home-clubs-section,.home-news-section,.home-admissions-section,.home-contact-section,.home-cycle-deep-section,.home-route-rail,.page-guide) a:not(.btn):not(.home-route-card){color:var(--v18-blue)!important}

/* Deliberately dark surfaces stay light. */
:is(.approved-home-hero,.premium-art-hero,.compact-art-hero,.editorial-hero,.cta-band,.footer,.feature-bar) :is(h1,h2,h3,h4,strong,b){color:#fff!important}
:is(.approved-home-hero,.premium-art-hero,.compact-art-hero,.editorial-hero,.cta-band,.footer,.feature-bar) :is(p,small){color:rgba(255,255,255,.9)!important}

/* B. Better vertical rhythm and safe scrolling below the sticky header. */
[id]{scroll-margin-top:150px}
.home-onepage-section,.home-cycle-deep-section,.home-route-rail{position:relative;isolation:isolate}
.section-head,.home-route-head{gap:20px}
.section-head>div,.home-route-head>*{min-width:0}
.section-head h2,.home-route-head h2{overflow-wrap:anywhere}

/* C. Text + image alignment: editorial cards do not drift or crop awkwardly. */
.home-editorial-grid,.home-snapshot-grid,.brand-story-grid,.cycle-showcase,.contact-layout{align-items:stretch}
.home-editorial-card,.snapshot-card,.brand-value-card,.cycle-showcase-media,.cycle-showcase-copy{min-width:0}
.home-editorial-card img,.snapshot-card img,.cycle-showcase-media img{display:block;width:100%;object-fit:cover}
.home-editorial-card>div,.snapshot-copy,.cycle-showcase-copy{display:flex;flex-direction:column;justify-content:center}
.brand-story-copy{align-self:center}
.brand-values-grid{align-items:stretch}
.brand-value-card{display:flex!important;flex-direction:column!important;justify-content:flex-start!important;min-height:220px!important}
.brand-value-card h3{margin:18px 0 8px!important}
.brand-value-card p{margin:0!important;line-height:1.58!important}

/* D. Feature/value bar: no overlapping labels in any language. */
.feature-bar{background:linear-gradient(135deg,#082b59 0%,#0b3d70 100%)!important;border:1px solid rgba(255,255,255,.12)!important;box-shadow:0 18px 50px rgba(2,24,52,.22)!important}
.feature-item{min-width:0!important;padding:16px 18px!important;align-items:center!important;justify-content:center!important;text-align:start!important}
.feature-item>span:last-child{min-width:0!important}
.feature-item b{font-size:13px!important;line-height:1.18!important;white-space:normal!important;overflow-wrap:anywhere!important}
.feature-item small{font-size:10px!important;line-height:1.25!important;white-space:normal!important}
.feature-icon{flex:0 0 42px!important;color:#fff!important}
[dir="rtl"] .feature-item{text-align:right!important}

/* E. Subtle animated icon language — coherent, not distracting. */
@keyframes v18IconFloat{0%,100%{transform:translate3d(0,0,0) rotate(0deg)}50%{transform:translate3d(0,-4px,0) rotate(2deg)}}
@keyframes v18IconGlow{0%,100%{box-shadow:0 7px 18px rgba(8,43,89,.05),inset 0 0 0 1px rgba(8,43,89,.06)}50%{box-shadow:0 10px 24px rgba(18,59,189,.13),inset 0 0 0 1px rgba(18,59,189,.10)}}
.cycle-nav-icon,.home-route-icon,.cycle-card-icon,.pillar-icon,.feature-icon{will-change:transform}
.cycle-nav a:hover .cycle-nav-icon,.cycle-nav a.active .cycle-nav-icon,.home-route-card:hover .home-route-icon,.home-cycle-link:hover .cycle-card-icon,.page-guide-card:hover .page-guide-icon{animation:v18IconFloat 1.35s ease-in-out infinite}
.cycle-nav a.active .cycle-nav-icon{animation:v18IconFloat 2.2s ease-in-out infinite,v18IconGlow 2.2s ease-in-out infinite}
.feature-item:nth-child(1) .feature-icon{animation:v18IconFloat 3.0s ease-in-out infinite}
.feature-item:nth-child(2) .feature-icon{animation:v18IconFloat 3.2s .2s ease-in-out infinite}
.feature-item:nth-child(3) .feature-icon{animation:v18IconFloat 3.4s .4s ease-in-out infinite}
.feature-item:nth-child(4) .feature-icon{animation:v18IconFloat 3.1s .6s ease-in-out infinite}
.feature-item:nth-child(5) .feature-icon{animation:v18IconFloat 3.3s .8s ease-in-out infinite}

/* F. Animated page trails: the three strokes clearly indicate more pages. */
.home-route-card,.page-guide-card{position:relative;overflow:hidden}
.home-route-card::before,.page-guide-card::before{content:"";position:absolute;left:18px;right:18px;bottom:0;height:2px;background:linear-gradient(90deg,transparent,var(--v18-red),transparent);transform:scaleX(.05);transform-origin:center;opacity:0;transition:transform .5s cubic-bezier(.2,.8,.2,1),opacity .3s}
.home-route-card:hover::before,.page-guide-card:hover::before{transform:scaleX(1);opacity:1}
.home-route-motion{min-width:76px!important}
.home-route-motion i{height:3px!important;border-radius:999px!important;background:var(--v18-red)!important;transform-origin:left center}
.home-route-motion i:nth-child(1){width:9px!important}.home-route-motion i:nth-child(2){width:16px!important}.home-route-motion i:nth-child(3){width:25px!important}
@keyframes v18Trail{0%{opacity:.18;transform:translateX(-8px) scaleX(.35)}45%{opacity:1;transform:translateX(4px) scaleX(1)}100%{opacity:.2;transform:translateX(10px) scaleX(.45)}}
.home-route-motion i{animation:v18Trail 1.35s cubic-bezier(.2,.7,.25,1) infinite!important}
.home-route-motion i:nth-child(2){animation-delay:.12s!important}.home-route-motion i:nth-child(3){animation-delay:.24s!important}
.guide-motion i{height:3px!important;background:var(--v18-red)!important}

/* G. More coherent 4-cycle row. */
.cycle-nav{grid-template-columns:repeat(4,minmax(0,1fr))!important}
.cycle-nav a{min-width:0!important}
.cycle-nav-copy{min-width:0!important}
.cycle-nav-copy strong,.cycle-nav-copy small{overflow-wrap:anywhere!important}
.cycle-nav-copy strong{font-weight:850!important}

/* H. Smoothed morph between routes. */
.route-curtain{background:transparent!important;opacity:1!important;perspective:900px}
.route-curtain::after{content:"";position:absolute;inset:-18%;background:radial-gradient(circle at 30% 40%,rgba(255,255,255,.12),transparent 26%),linear-gradient(125deg,#041d3d 0%,#0a3d71 64%,#e8171f 120%);border-radius:44% 56% 62% 38% / 48% 38% 62% 52%;transform:translate3d(-115%,10%,0) rotate(-10deg) scale(.8);opacity:0}
.route-curtain.animate::after{animation:v18MorphCurtain .72s cubic-bezier(.76,0,.2,1) both}
.route-curtain.animate span{animation:v18MorphBlob .72s cubic-bezier(.76,0,.2,1) both!important}
.route-curtain.animate span:nth-child(2){animation-delay:.025s!important}.route-curtain.animate span:nth-child(3){animation-delay:.05s!important}
@keyframes v18MorphCurtain{0%{transform:translate3d(-115%,10%,0) rotate(-10deg) scale(.8);opacity:0}35%{opacity:1}52%{transform:translate3d(0,0,0) rotate(0) scale(1.15);opacity:1}100%{transform:translate3d(118%,-8%,0) rotate(8deg) scale(.9);opacity:0}}
@keyframes v18MorphBlob{0%{transform:scale(0) rotate(-12deg);opacity:0}48%{transform:scale(1.05) rotate(0);opacity:.88}100%{transform:scale(0) rotate(14deg);opacity:0}}
.is-routing main{transform:scale(.995);filter:saturate(.96);transition:transform .22s ease,filter .22s ease}

/* I. Mobile/tablet: readable 2x2 value grid + last centered row; balanced cards. */
@media(max-width:980px){
  .feature-bar{grid-template-columns:repeat(2,minmax(0,1fr))!important;padding:4px!important;border-radius:24px!important}
  .feature-item{min-height:86px!important;border:0!important;border-bottom:1px solid rgba(255,255,255,.13)!important;border-inline-end:1px solid rgba(255,255,255,.13)!important}
  .feature-item:nth-child(2n){border-inline-end:0!important}
  .feature-item:nth-last-child(1){grid-column:1/-1!important;border-bottom:0!important;border-inline-end:0!important;justify-content:center!important;max-width:100%!important}
  .feature-item:nth-last-child(2){border-bottom:0!important}
  .brand-story-grid{grid-template-columns:1fr!important;gap:28px!important}
  .brand-values-grid{grid-template-columns:repeat(3,minmax(0,1fr))!important}
  .brand-value-card{min-height:180px!important}
}

@media(max-width:760px){
  [id]{scroll-margin-top:146px}
  .feature-bar{margin-top:0!important;grid-template-columns:repeat(2,minmax(0,1fr))!important;border-radius:0 0 26px 26px!important;width:100%!important}
  .feature-item{padding:15px 10px!important;gap:9px!important;text-align:center!important;flex-direction:column!important;justify-content:flex-start!important;min-height:118px!important}
  .feature-icon{width:38px!important;height:38px!important;flex-basis:38px!important}
  .feature-item>span:last-child{align-items:center!important;text-align:center!important}
  .feature-item b{font-size:12px!important;line-height:1.22!important}
  .feature-item small{font-size:9.5px!important}
  .feature-item:nth-child(5){min-height:94px!important;flex-direction:row!important;align-items:center!important}
  .feature-item:nth-child(5)>span:last-child{align-items:flex-start!important;text-align:start!important}
  [dir="rtl"] .feature-item:nth-child(5)>span:last-child{align-items:flex-end!important;text-align:right!important}

  .brand-values-grid{grid-template-columns:1fr!important;gap:12px!important}
  .brand-value-card{min-height:0!important;padding:22px!important;border-radius:24px!important}
  .brand-value-card h3{font-size:28px!important;margin:13px 0 6px!important}
  .brand-value-card p{font-size:14px!important;line-height:1.55!important}

  .home-editorial-card{grid-template-columns:1fr!important}
  .home-editorial-card img{height:220px!important;object-position:center 32%!important}
  .home-editorial-card>div{padding:20px!important}

  .home-route-card{grid-template-columns:44px minmax(0,1fr) 72px!important;align-items:center!important}
  .home-route-copy strong{font-size:19px!important;line-height:1.12!important}
  .home-route-copy small{font-size:11px!important}

  .cycle-showcase,.cycle-showcase.reverse{display:grid!important;grid-template-columns:1fr!important;gap:0!important}
  .cycle-showcase-media{order:1!important;min-height:250px!important;border-radius:26px 26px 0 0!important;overflow:hidden!important}
  .cycle-showcase-copy{order:2!important;padding:24px!important;border:1px solid var(--v18-line)!important;border-top:0!important;border-radius:0 0 26px 26px!important;background:#fff!important}

  .page-guide-card{grid-template-columns:42px minmax(0,1fr) 28px!important}
  .page-guide-copy strong{font-size:18px!important}
}

@media(max-width:480px){
  .cycle-nav{min-height:84px!important}
  .cycle-nav a{padding:7px 1px!important;gap:4px!important}
  .cycle-nav-icon{width:34px!important;height:34px!important;padding:7px!important}
  .cycle-nav-copy strong{font-size:11px!important;line-height:1.05!important}
  .cycle-nav-copy small{font-size:8.5px!important;line-height:1.05!important}
  .feature-item{min-height:112px!important}
  .feature-item b{font-size:11.5px!important}
  .home-route-card{grid-template-columns:40px minmax(0,1fr) 56px!important;padding:14px!important}
  .home-route-motion{min-width:52px!important}
  .home-route-motion i:nth-child(1){width:6px!important}.home-route-motion i:nth-child(2){width:11px!important}.home-route-motion i:nth-child(3){width:17px!important}
}

@media(prefers-reduced-motion:reduce){
  .cycle-nav-icon,.home-route-icon,.cycle-card-icon,.pillar-icon,.feature-icon,.home-route-motion i,.route-curtain::after,.route-curtain span{animation:none!important;transition:none!important}
}

/* =========================================================
   V19 — RTL ARABIC UI/UX POLISH (CSS ONLY)
   Objectif : respiration, lisibilité, alignement RTL,
   CTA confortables et actions flottantes non intrusives.
   Aucune modification HTML / JavaScript.
   ========================================================= */
:root{
  --rtl-space-1:.5rem;
  --rtl-space-2:.875rem;
  --rtl-space-3:1.25rem;
  --rtl-space-4:1.5rem;
  --rtl-space-5:2rem;
  --rtl-space-6:2.75rem;
  --rtl-card-gap:2rem;
  --rtl-safe-rail:5.75rem;
  --rtl-radius:16px;
  --rtl-line-height:1.75;
}

/* Base RTL : direction, lecture et rythme typographique arabe */
html[dir="rtl"] body{
  direction:rtl;
  text-align:right;
}

html[dir="rtl"] :where(p,li,.lead,.muted,.section-head p,.inner-copy .lead,.home-copy p,.snapshot-card p,.web-intro-card p,.web-method-step p,.page-guide p){
  line-height:var(--rtl-line-height) !important;
  letter-spacing:0;
  text-align:right;
  text-wrap:pretty;
}

html[dir="rtl"] :where(h1,h2,h3,h4,.section-title,.tagline){
  text-align:right;
  text-wrap:balance;
  line-height:1.28;
}

/* Header : plus d'air entre les groupes et entre les liens */
html[dir="rtl"] .nav-row{
  gap:clamp(1rem,1.7vw,1.75rem);
  padding-inline:clamp(1rem,2vw,1.5rem);
}

html[dir="rtl"] .desktop-nav{
  gap:clamp(1rem,1.45vw,1.5rem);
}

html[dir="rtl"] .desktop-nav a{
  padding-inline:.45rem;
  padding-block:.35rem;
  line-height:1.45;
}

html[dir="rtl"] .nav-side,
html[dir="rtl"] .languages{
  gap:.5rem;
}

html[dir="rtl"] .languages button{
  padding:.45rem .65rem;
  line-height:1.25;
}

/* Menu mobile RTL : alignement logique, grandes zones tactiles */
html[dir="rtl"] .mobile-menu{
  text-align:right;
  padding:1rem 1.15rem 1.35rem;
}

html[dir="rtl"] .mobile-menu a{
  padding:.8rem 1rem;
  line-height:1.5;
}

/* CTA : texte dégagé des bords, hauteur tactile confortable */
html[dir="rtl"] :where(.btn,.btn-primary,.btn-secondary,.btn-glass,.footer-cta){
  min-height:44px;
  padding:12px 24px;
  border-radius:var(--rtl-radius);
  line-height:1.35;
  white-space:nowrap;
  transition:transform .28s cubic-bezier(.2,.8,.2,1),box-shadow .28s ease,background-color .28s ease,border-color .28s ease,color .28s ease;
}

html[dir="rtl"] :where(.btn,.btn-primary,.btn-secondary,.btn-glass):hover{
  transform:translateY(-2px);
}

html[dir="rtl"] .home-actions,
html[dir="rtl"] .form-nav{
  gap:.75rem;
}

/* Actions flottantes : rail à gauche en RTL + zone sûre sur grand écran */
html[dir="rtl"] .float-actions{
  right:auto;
  left:clamp(.75rem,1.25vw,1.25rem);
  gap:.65rem;
}

html[dir="rtl"] .float-action{
  width:58px;
  min-height:58px;
  padding:.5rem .35rem;
  border-radius:17px;
  line-height:1.2;
}

html[dir="rtl"] .float-action:hover{
  transform:translateX(3px);
}

/* Le compagnon/assistant passe du côté opposé pour éviter les collisions */
html[dir="rtl"] .companion{
  left:auto;
  right:1.125rem;
}

html[dir="rtl"] .assistant-pop{
  left:auto;
  right:1.125rem;
  text-align:right;
}

/* Grilles : whitespace cohérent et cartes moins tassées */
html[dir="rtl"] :where(.program-grid,.program-grid.eight,.choice-grid,.timeline-wrap,.home-lower,.journey-grid,.value-grid,.editorial-grid,.web-method-grid,.page-guide-grid,.home-route-grid,.news-grid,.clubs-grid,.cycle-grid,.snapshot-grid){
  gap:clamp(1.25rem,2vw,var(--rtl-card-gap));
}

html[dir="rtl"] :where(.photo-card,.timeline-card,.why-card,.home-panel,.form-panel,.journey-step,.snapshot-card,.web-intro-card,.web-method-step,.page-guide-card,.home-route-card){
  padding-block:clamp(1rem,1.6vw,1.5rem);
}

/* Titres de section : marge verticale plus généreuse */
html[dir="rtl"] .section-head{
  margin-bottom:clamp(1.75rem,2.8vw,2.5rem);
  gap:1.5rem;
}

html[dir="rtl"] :where(.section-head h2,.section-title,.home-panel h3,.form-panel h2){
  margin-bottom:.75rem;
}

html[dir="rtl"] .section,
html[dir="rtl"] .home-onepage-section{
  scroll-margin-top:clamp(112px,10vw,144px);
}

/* Barre des cycles : séparation et lisibilité en arabe */
html[dir="rtl"] .cycle-nav{
  direction:rtl;
  gap:0;
}

html[dir="rtl"] .cycle-nav a{
  gap:.65rem;
  padding-inline:clamp(.7rem,1.2vw,1rem);
  line-height:1.45;
  text-align:right;
}

html[dir="rtl"] .cycle-nav a small{
  line-height:1.35;
}

/* Utiliser les propriétés logiques pour les listes et petites puces */
html[dir="rtl"] .bullet-mini div::before{
  margin-right:0;
  margin-left:.45rem;
}

html[dir="rtl"] .text-link{
  gap:.5rem;
}

html[dir="rtl"] .text-link::after{
  margin-inline-start:.5rem;
  transform-origin:right center;
}

/* Formulaires RTL : champs lisibles ; email et téléphone restent LTR */
html[dir="rtl"] :where(input,textarea,select){
  direction:rtl;
  text-align:right;
  line-height:1.6;
}

html[dir="rtl"] input[type="email"],
html[dir="rtl"] input[type="tel"]{
  direction:ltr;
  text-align:left;
}

/* La grille principale conserve une zone de sécurité pour le rail fixe */
@media (min-width:1181px){
  html[dir="rtl"] main .container{
    width:min(1420px,calc(100% - 7.5rem));
  }
}

/* Tablette : réduire les gaps sans revenir à une interface tassée */
@media (max-width:1180px){
  html[dir="rtl"] .nav-row{
    gap:1rem;
    padding-inline:1rem;
  }
  html[dir="rtl"] .desktop-nav{
    gap:.75rem;
  }
  html[dir="rtl"] .desktop-nav a{
    padding-inline:.25rem;
  }
  html[dir="rtl"] :where(.program-grid,.program-grid.eight,.choice-grid,.home-lower,.journey-grid,.value-grid,.editorial-grid,.web-method-grid,.page-guide-grid,.home-route-grid,.news-grid,.clubs-grid,.cycle-grid,.snapshot-grid){
    gap:1.25rem;
  }
}

/* Mobile RTL : aucune occlusion par les actions flottantes, respiration stable */
@media (max-width:760px){
  html[dir="rtl"] .nav-row{
    gap:.65rem;
    padding-inline:.75rem;
  }

  html[dir="rtl"] :where(.btn,.btn-primary,.btn-secondary,.btn-glass,.footer-cta){
    min-height:42px;
    padding:10px 16px;
    border-radius:12px;
  }

  html[dir="rtl"] .cycle-nav a{
    padding-inline:.6rem;
    line-height:1.4;
  }

  html[dir="rtl"] :where(.section,.section-sm,.home-onepage-section){
    padding-block:clamp(2.6rem,9vw,4rem);
  }

  html[dir="rtl"] .section-head{
    align-items:start;
    margin-bottom:1.6rem;
  }

  /* Le dock mobile est centré : ne recouvre plus le texte latéral */
  html[dir="rtl"] .float-actions{
    left:50%;
    right:auto;
    top:auto;
    bottom:max(.75rem,env(safe-area-inset-bottom));
    transform:translateX(-50%);
    display:flex;
    gap:.5rem;
    padding:.45rem;
    border-radius:22px;
    background:rgba(255,255,255,.96);
    border:1px solid rgba(8,43,89,.08);
    box-shadow:0 14px 36px rgba(8,43,89,.16);
    backdrop-filter:blur(14px);
  }

  html[dir="rtl"] .float-action{
    width:52px;
    min-height:52px;
    border:0;
    box-shadow:none;
    background:transparent;
  }

  html[dir="rtl"] .float-action:hover{
    transform:translateY(-2px);
  }

  html[dir="rtl"] main{
    padding-bottom:88px;
  }

  html[dir="rtl"] .companion{
    display:none;
  }

  html[dir="rtl"] .assistant-pop{
    right:1rem;
    left:1rem;
    bottom:5.8rem;
    width:auto;
  }
}

@media (max-width:420px){
  html[dir="rtl"] .nav-row{
    gap:.45rem;
    padding-inline:.6rem;
  }

  html[dir="rtl"] .languages button{
    min-width:30px;
    padding:.4rem .5rem;
  }

  html[dir="rtl"] :where(p,li,.lead,.muted,.section-head p,.inner-copy .lead,.home-copy p){
    line-height:1.82 !important;
  }

  html[dir="rtl"] .section-head{
    gap:1rem;
  }

  html[dir="rtl"] .float-actions{
    gap:.35rem;
  }
}

/* =====================================================================
   PALMARÈS V20 — CSS-only overlay / contact / footer refinement
   Objectif : corriger les superpositions fixed LTR/RTL et équilibrer
   Contact + Footer sans modifier le HTML ni la logique JavaScript.
   ===================================================================== */

:root{
  --v20-safe-rail:84px;
  --v20-safe-edge:20px;
  --v20-card-radius:22px;
  --v20-contact-shadow:0 10px 30px rgba(0,0,0,.10),0 2px 8px rgba(8,43,89,.05);
  --v20-soft-border:1px solid rgba(8,43,89,.08);
}

/* ---------------------------------------------------------------------
   1) ACTIONS FLOTTANTES
   - FR/EN (LTR) : rail à droite
   - AR (RTL)    : rail à gauche
   - aucune translation qui ramène le bouton dans le contenu
   --------------------------------------------------------------------- */
html:not([dir="rtl"]) .float-actions{
  right:var(--v20-safe-edge) !important;
  left:auto !important;
}

html[dir="rtl"] .float-actions{
  left:var(--v20-safe-edge) !important;
  right:auto !important;
}

html:not([dir="rtl"]) .float-action:hover{
  transform:translateX(-3px) !important;
}

html[dir="rtl"] .float-action:hover{
  transform:translateX(3px) !important;
}

/* Réserver une vraie zone de lecture uniquement dans les conteneurs de
   contenu, sans réduire les fonds pleine largeur du Hero / sections. */
@media (min-width:1181px){
  html:not([dir="rtl"]) main :is(.section,.section-sm,.home-onepage-section) > .container{
    padding-inline-end:var(--v20-safe-rail);
  }

  html[dir="rtl"] main :is(.section,.section-sm,.home-onepage-section) > .container{
    padding-inline-start:var(--v20-safe-rail);
    padding-inline-end:0;
  }

  /* Les zones déjà étroites ne doivent pas perdre trop de largeur. */
  html:not([dir="rtl"]) main :is(.section,.section-sm,.home-onepage-section) > .container > :is(.contact-layout,.home-contact-grid,.news-grid,.program-grid,.cycle-grid),
  html[dir="rtl"] main :is(.section,.section-sm,.home-onepage-section) > .container > :is(.contact-layout,.home-contact-grid,.news-grid,.program-grid,.cycle-grid){
    min-width:0;
  }
}

/* Tablettes : rail plus compact, pas de réservation excessive. */
@media (min-width:761px) and (max-width:1180px){
  html:not([dir="rtl"]) .float-actions{right:12px !important}
  html[dir="rtl"] .float-actions{left:12px !important}

  .float-action{
    width:54px !important;
    min-height:54px !important;
    border-radius:16px !important;
  }
}

/* Mobile : dock bas centré pour les DEUX directions afin d'éviter toute
   occlusion latérale des textes et des cartes. */
@media (max-width:760px){
  html:not([dir="rtl"]) .float-actions,
  html[dir="rtl"] .float-actions{
    left:50% !important;
    right:auto !important;
    top:auto !important;
    bottom:max(12px,env(safe-area-inset-bottom)) !important;
    transform:translateX(-50%) !important;
    display:flex !important;
    align-items:center !important;
    justify-content:center !important;
    gap:8px !important;
    padding:8px !important;
    border-radius:24px !important;
    background:rgba(255,255,255,.97) !important;
    border:var(--v20-soft-border) !important;
    box-shadow:0 16px 40px rgba(8,43,89,.18) !important;
    backdrop-filter:blur(16px) saturate(1.1) !important;
    -webkit-backdrop-filter:blur(16px) saturate(1.1) !important;
  }

  html:not([dir="rtl"]) .float-action:hover,
  html[dir="rtl"] .float-action:hover{
    transform:translateY(-2px) !important;
  }

  .float-action{
    width:52px !important;
    min-height:52px !important;
    border:0 !important;
    box-shadow:none !important;
    background:transparent !important;
  }

  main{padding-bottom:96px !important}
}

/* ---------------------------------------------------------------------
   2) CONTACT + GOOGLE MAPS
   Le panneau d'adresse devient une vraie carte premium avec profondeur.
   --------------------------------------------------------------------- */
.contact-info,
.home-contact-copy{
  position:relative;
  z-index:3;
  background:#fff !important;
  border:var(--v20-soft-border);
  border-radius:var(--v20-card-radius);
  box-shadow:var(--v20-contact-shadow);
}

.contact-info{
  padding:clamp(22px,2.5vw,34px);
}

.home-contact-copy{
  padding:clamp(20px,2.2vw,30px);
}

.contact-layout{
  align-items:start;
}

.map-card,
.home-map-card{
  position:relative;
  z-index:1;
  background:#eef3f8;
  border:1px solid rgba(8,43,89,.10) !important;
  box-shadow:0 16px 42px rgba(8,43,89,.10) !important;
}

/* Chevauchement éditorial très léger sur desktop : le bloc contact semble
   réellement posé sur la carte sans masquer les informations utiles. */
@media (min-width:1181px){
  html:not([dir="rtl"]) .contact-layout .contact-info{
    margin-inline-end:-34px;
  }

  html[dir="rtl"] .contact-layout .contact-info{
    margin-inline-end:-34px;
  }

  .contact-layout > div:last-child{
    min-width:0;
  }
}

/* Sur tablette/mobile, aucun chevauchement : cartes séparées et respirantes. */
@media (max-width:1180px){
  .contact-info,
  .home-contact-copy{
    margin-inline:0 !important;
  }

  .contact-layout,
  .home-contact-grid{
    gap:24px !important;
  }
}

/* RTL : alignement interne du contact, sans inverser les données techniques. */
html[dir="rtl"] .contact-info,
html[dir="rtl"] .home-contact-copy,
html[dir="rtl"] .contact-list,
html[dir="rtl"] .contact-row{
  text-align:right;
}

html[dir="rtl"] .contact-row{
  flex-direction:row;
}

/* ---------------------------------------------------------------------
   3) FOOTER — grille équilibrée en FR/EN et AR
   --------------------------------------------------------------------- */
.footer-grid{
  display:grid !important;
  grid-template-columns:minmax(240px,1.2fr) repeat(2,minmax(150px,.75fr)) minmax(220px,1fr) !important;
  column-gap:clamp(24px,3vw,48px) !important;
  row-gap:28px !important;
  align-items:start !important;
  justify-content:space-between !important;
  padding-block:4px !important;
}

.footer-grid > div{
  min-width:0;
}

.footer h4{
  margin-bottom:12px !important;
  line-height:1.45;
}

.footer p,
.footer a{
  line-height:1.8 !important;
}

html[dir="rtl"] .footer-grid{
  direction:rtl;
  text-align:right;
}

html[dir="rtl"] .footer-links{
  justify-items:start;
  text-align:right;
}

html[dir="rtl"] .footer-bottom{
  direction:rtl;
  text-align:right;
}

@media (max-width:1180px){
  .footer-grid{
    grid-template-columns:minmax(220px,1.2fr) repeat(2,minmax(150px,1fr)) !important;
  }
  .footer-grid > div:last-child{
    grid-column:auto;
  }
}

@media (max-width:760px){
  .footer{
    padding:38px 0 112px !important;
  }

  .footer-grid{
    grid-template-columns:1fr 1fr !important;
    gap:24px 20px !important;
  }

  .footer-grid > div:first-child{
    grid-column:1/-1 !important;
  }

  html[dir="rtl"] .footer-grid,
  html[dir="rtl"] .footer-bottom{
    text-align:right;
  }
}

@media (max-width:480px){
  .footer-grid{
    grid-template-columns:1fr !important;
  }

  .footer-grid > div:first-child{
    grid-column:auto !important;
  }

  .footer-bottom{
    gap:8px !important;
  }
}

/* ============================================================
   PALMARÈS V21 — OFFICIAL ARABIC NAME + UNIFIED ICON MOTION
   Exact Arabic institutional name: مجموعة مدارس بالمارس
   Responsive motion system: desktop / tablet / mobile / RTL
   ============================================================ */

:root{
  --v21-icon-speed:3.8s;
  --v21-icon-lift:3px;
  --v21-icon-scale:1.045;
  --v21-icon-ease:cubic-bezier(.22,.8,.25,1);
}

/* Official school-name badge placed over the facade composition.
   It visually carries the corrected institutional name without altering
   the source photograph itself. */
.hero-official-school-name{
  position:absolute;
  z-index:5;
  inset-inline-end:4.5%;
  bottom:11%;
  max-width:min(310px,42%);
  padding:8px 13px;
  border:1px solid rgba(255,255,255,.30);
  border-radius:14px;
  background:rgba(2,27,57,.78);
  color:#fff;
  font:700 12px/1.45 Inter,Arial,sans-serif;
  letter-spacing:.01em;
  text-align:center;
  box-shadow:0 12px 30px rgba(0,17,39,.20);
  backdrop-filter:blur(9px);
  -webkit-backdrop-filter:blur(9px);
  pointer-events:none;
}
html[dir="rtl"] .hero-official-school-name{
  direction:rtl;
  font-family:"Noto Kufi Arabic","Noto Sans Arabic",Tahoma,Arial,sans-serif;
  font-size:13px;
  line-height:1.65;
  letter-spacing:0;
}

/* One coherent animated-icon language across the whole interface. */
:is(
  .cycle-nav-icon,
  .feature-item .ico,
  .feature-item .svg-ico,
  .float-action .ico,
  .float-action .svg-ico,
  .assistant-mark,
  .page-guide-icon,
  .web-assurance-grid svg,
  .web-contact-quick svg,
  .btn-icon,
  .dot
){
  transform-origin:50% 50%;
  will-change:transform;
}

.cycle-nav-icon,
.feature-item .ico,
.feature-item .svg-ico,
.page-guide-icon,
.assistant-mark{
  animation:v21IconFloat var(--v21-icon-speed) var(--v21-icon-ease) infinite;
}

/* Offset timings prevent a mechanical synchronized look. */
.cycle-nav-item:nth-child(2n) .cycle-nav-icon,
.feature-item:nth-child(2n) :is(.ico,.svg-ico){animation-delay:-1.15s}
.cycle-nav-item:nth-child(3n) .cycle-nav-icon,
.feature-item:nth-child(3n) :is(.ico,.svg-ico){animation-delay:-2.1s}
.cycle-nav-item:nth-child(4n) .cycle-nav-icon,
.feature-item:nth-child(4n) :is(.ico,.svg-ico){animation-delay:-2.85s}

@keyframes v21IconFloat{
  0%,100%{transform:translate3d(0,0,0) rotate(0deg) scale(1)}
  45%{transform:translate3d(0,calc(var(--v21-icon-lift) * -1),0) rotate(-1.5deg) scale(var(--v21-icon-scale))}
  65%{transform:translate3d(0,-1px,0) rotate(1deg) scale(1.02)}
}

/* Contact icons: stable at rest, expressive on interaction. */
.float-action{
  transition:transform .28s var(--v21-icon-ease),box-shadow .28s ease,background-color .28s ease,border-color .28s ease;
}
.float-action:hover,
.float-action:focus-visible{
  transform:translateY(-3px);
  box-shadow:0 16px 34px rgba(8,43,89,.18);
}
.float-action:hover :is(.ico,.svg-ico),
.float-action:focus-visible :is(.ico,.svg-ico){
  animation:v21ContactPulse .55s var(--v21-icon-ease) both;
}
@keyframes v21ContactPulse{
  0%{transform:scale(1) rotate(0)}
  48%{transform:scale(1.14) rotate(-5deg)}
  100%{transform:scale(1) rotate(0)}
}

/* CTA icons remain aligned while receiving a subtle directional motion. */
.btn:hover .btn-icon,
.btn:focus-visible .btn-icon{
  animation:v21CtaIcon .55s var(--v21-icon-ease) both;
}
@keyframes v21CtaIcon{
  0%{transform:translateX(0) scale(1)}
  50%{transform:translateX(2px) scale(1.08)}
  100%{transform:translateX(0) scale(1)}
}
html[dir="rtl"] .btn:hover .btn-icon,
html[dir="rtl"] .btn:focus-visible .btn-icon{animation-name:v21CtaIconRTL}
@keyframes v21CtaIconRTL{
  0%{transform:translateX(0) scale(1)}
  50%{transform:translateX(-2px) scale(1.08)}
  100%{transform:translateX(0) scale(1)}
}

/* Responsive tuning: keep motion light and the corrected name readable. */
@media (max-width:1180px){
  .hero-official-school-name{
    inset-inline-end:5%;
    bottom:9%;
    max-width:44%;
    font-size:11px;
  }
}

@media (max-width:760px){
  :root{--v21-icon-lift:2px;--v21-icon-scale:1.03}
  .hero-official-school-name{
    inset-inline:16px;
    bottom:14px;
    max-width:none;
    width:auto;
    padding:7px 10px;
    border-radius:12px;
    font-size:10px;
    background:rgba(2,27,57,.84);
  }
  html[dir="rtl"] .hero-official-school-name{font-size:11px;line-height:1.6}
  .float-action:hover{transform:none}
}

@media (max-width:420px){
  .hero-official-school-name{
    inset-inline:10px;
    bottom:10px;
    font-size:9.5px;
  }
  html[dir="rtl"] .hero-official-school-name{font-size:10.5px}
}

/* Accessibility and battery efficiency. */
@media (prefers-reduced-motion:reduce){
  :is(.cycle-nav-icon,.feature-item .ico,.feature-item .svg-ico,.page-guide-icon,.assistant-mark){
    animation:none!important;
  }
  .float-action,.btn-icon{transition:none!important}
}
