:root{--primary-color:#48D1CC;--primary-rgb:72, 209, 204;--bg-sand:#FBF8F2;--text-dark:#2B2A26;--accent-gold:#C08552;
/* ============================================================
   🌙 PALETTE DU MODE SOMBRE — LE SEUL ENDROIT À MODIFIER
   ------------------------------------------------------------
   ------------------------------------------------------------ */
--night-100: 241 245 249; /* texte clair sur fond sombre */
--night-300: 203 213 225; /* texte secondaire */
--night-400: 148 163 184; /* texte atténué */
--night-600: 71 85 105;   /* bordures d'inputs / éléments discrets */
--night-700: 51 65 85;    /* bordures de cartes, hover */
--night-800: 30 41 59;    /* fond des cartes / header / menu */
--night-900: 15 23 42;    /* fond principal ("le noir" du site) */
--night-950: 2 6 23;      /* fond le plus sombre (sections alternées) */
}
.dark{--bg-sand:rgb(var(--night-900));--text-dark:rgb(var(--night-100))}
html{scroll-behavior:smooth}body{background:var(--bg-sand);color:var(--text-dark)}
/* Transition ultra-fluide lors du basculement clair/sombre : activée brièvement par le JS
   (classe .theme-transition ajoutée puis retirée ~400ms plus tard) pour ne pas interférer
   avec les transitions déjà définies ailleurs (hover, menu mobile, reveal au scroll...) */
html.theme-transition,html.theme-transition *,html.theme-transition *::before,html.theme-transition *::after{transition:background-color .35s ease,border-color .35s ease,color .35s ease,fill .35s ease,stroke .35s ease,box-shadow .35s ease!important}.ar{font-family:'Noto Naskh Arabic',serif;direction:rtl}::-webkit-scrollbar{width:10px}::-webkit-scrollbar-track{background:var(--bg-sand)}::-webkit-scrollbar-thumb{background:#C9C2AC;border-radius:8px;transition:background 0.3s ease}::-webkit-scrollbar-thumb:hover{background:#B0A78F}.badge-line::before{content:'';display:inline-block;width:6px;height:6px;border-radius:50%;background:var(--primary-color);margin-right:8px;vertical-align:middle;animation:pulse-dot 2s infinite ease-in-out}@keyframes pulse-dot{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.4);opacity:.6}}.divider-leaf{width:44px;height:2px;background:var(--primary-color);position:relative}.divider-leaf::after{content:'';position:absolute;right:-10px;top:-3px;width:8px;height:8px;border-radius:50% 0;background:var(--accent-gold);transition:transform 0.4s ease}.divider-leaf:hover::after{transform:rotate(180deg)}.nav-link{position:relative;transition:color 0.3s ease}.nav-link::after{content:'';position:absolute;left:0;bottom:-6px;width:0;height:2px;background:var(--primary-color);transition:width 0.3s cubic-bezier(.25,1,.5,1)}.nav-link:hover::after{width:100%}header{will-change:transform;transform:translateZ(0)}#mobileMenu{max-height:0;overflow:hidden;opacity:0;transform:translateY(-8px);transition:max-height 0.35s cubic-bezier(.4,0,.2,1),opacity 0.25s ease,transform 0.3s cubic-bezier(.4,0,.2,1);will-change:max-height,opacity,transform}#mobileMenu.open{max-height:500px;opacity:1;transform:translateY(0)}#mobileMenuBtn i{transition:transform 0.3s cubic-bezier(.4,0,.2,1)}#mobileMenuBtn[aria-expanded="true"] i{transform:rotate(90deg)}.mobile-nav-link{padding:10px 0;border-bottom:1px solid rgba(var(--primary-rgb),.2);display:block;transition:color 0.2s ease,padding-left 0.2s ease}.mobile-nav-link:hover,.mobile-nav-link:active{color:var(--primary-color);padding-left:4px}input,textarea,select{outline:none;transition:border-color 0.3s ease,box-shadow 0.3s ease,transform 0.2s ease}input:focus,textarea:focus,select:focus{box-shadow:0 0 0 3px rgba(var(--primary-rgb),.2);border-color:var(--primary-color)}.service-card{transition:transform 0.35s cubic-bezier(.165,.84,.44,1),box-shadow 0.35s ease,border-color 0.35s ease}.service-card:hover{transform:translateY(-8px);box-shadow:0 12px 24px -6px rgb(0 0 0 / .08);border-color:rgba(var(--primary-rgb),.4)}.card-frame{position:relative;overflow:hidden;border-radius:.75rem}.card-frame img{transition:transform 0.5s cubic-bezier(.25,1,.5,1)}.card-frame:hover img{transform:scale(1.06)}.card-frame::after{content:'';position:absolute;inset:0;border:1px solid rgba(var(--primary-rgb),.25);border-radius:.75rem;pointer-events:none;transition:border-color 0.3s ease}.card-frame:hover::after{border-color:var(--primary-color)}button,a.btn,.badge-line{transition:all 0.25s ease}button:active,a:active{transform:scale(.97)}.fade-hero{animation:fadeUp 0.8s cubic-bezier(.165,.84,.44,1) both}@keyframes fadeUp{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.reveal{opacity:0;transform:translateY(30px);transition:opacity 0.8s cubic-bezier(.165,.84,.44,1),transform 0.8s cubic-bezier(.165,.84,.44,1);will-change:opacity,transform}.reveal.active{opacity:1;transform:translateY(0)}.reveal-delay-1{transition-delay:0.1s}.reveal-delay-2{transition-delay:0.2s}.reveal-delay-3{transition-delay:0.3s}@font-face{font-family:'MyFont';src:url(font.woff2);font-display:swap}