/*
Theme Name: NavyFlex
Theme URI: https://example.com/navyflex
Author: Erwan LE MOING
Description: Thème WordPress léger et personnalisable, inspiré de l'approche des thèmes polyvalents modernes. Palette marine foncé, menus configurables, options de mise en page, typographie, en-tête, pied de page et WooCommerce.
Version: 1.7.0
Requires at least: 6.4
Tested up to: 6.8
Requires PHP: 7.4
Text Domain: navyflex
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Tags: custom-logo, custom-menu, custom-colors, custom-background, featured-images, threaded-comments, translation-ready, blog, e-commerce, full-width-template
*/
:root{--navy:#071b33;--navy-2:#0d2948;--accent:#2e8cff;--text:#172033;--muted:#6b7280;--surface:#fff;--border:#dbe3ec;--radius:12px;--container:1200px;--body-size:16px;--heading-font:system-ui,-apple-system,"Segoe UI",sans-serif;--body-font:system-ui,-apple-system,"Segoe UI",sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f5f7fa;color:var(--text);font-family:var(--body-font);font-size:var(--body-size);line-height:1.65}a{color:var(--accent);text-decoration:none}a:hover{text-decoration:underline}img{max-width:100%;height:auto}.container{width:min(calc(100% - 40px),var(--container));margin-inline:auto}.skip-link{position:absolute;left:-9999px}.skip-link:focus{left:16px;top:16px;z-index:9999;background:#fff;padding:12px}.topbar{background:#031225;color:#dce9f7;font-size:.9rem}.topbar .container{display:flex;justify-content:space-between;padding:8px 0}.site-header{background:var(--navy);color:#fff;position:relative;z-index:50}.site-header.sticky{position:sticky;top:0}.header-inner{min-height:82px;display:flex;align-items:center;gap:28px}.site-branding{display:flex;align-items:center;gap:14px;margin-right:auto}.custom-logo{max-height:58px;width:auto}.site-title{font-size:1.45rem;font-weight:800;color:#fff}.site-description{display:block;color:#b9cce0;font-size:.85rem}.primary-menu,.footer-menu{display:flex;list-style:none;margin:0;padding:0;gap:8px;align-items:center}.primary-menu a{display:block;color:#fff;padding:12px 14px;border-radius:8px;font-weight:650}.primary-menu a:hover,.primary-menu .current-menu-item>a{background:rgba(255,255,255,.11);text-decoration:none}.menu-toggle{display:none;background:transparent;color:#fff;border:1px solid rgba(255,255,255,.35);border-radius:8px;padding:9px 12px}.hero{background:linear-gradient(135deg,var(--navy),var(--navy-2));color:#fff;padding:70px 0}.hero h1{font-size:clamp(2rem,5vw,4rem);line-height:1.1;margin:0 0 18px}.hero p{max-width:720px;color:#cee0f2;font-size:1.15rem}.button,.wp-block-button__link,button,input[type=submit]{display:inline-block;background:var(--accent);color:#fff;border:0;border-radius:8px;padding:12px 20px;font-weight:700;cursor:pointer}.button:hover{filter:brightness(1.08);text-decoration:none}.site-main{padding:48px 0}.content-grid{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:36px}.content-grid.no-sidebar{grid-template-columns:1fr}.post-card,.page-card,.widget{background:var(--surface);border:1px solid var(--border);border-radius:var(--radius);padding:28px;box-shadow:0 8px 30px rgba(7,27,51,.06);margin-bottom:28px}.entry-title{font-family:var(--heading-font);line-height:1.2;margin-top:0}.entry-title a{color:var(--navy)}.entry-meta{color:var(--muted);font-size:.9rem;margin-bottom:18px}.post-thumbnail img{border-radius:calc(var(--radius) - 3px);width:100%}.widget-title{font-size:1.1rem;color:var(--navy);margin-top:0}.widget ul{padding-left:19px}.nav-links{display:flex;justify-content:space-between;gap:16px}.site-footer{background:var(--navy);color:#c8d8e8;padding:50px 0 20px}.footer-widgets{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}.site-footer .widget{background:transparent;border:0;box-shadow:none;padding:0}.site-footer a{color:#fff}.site-info{border-top:1px solid rgba(255,255,255,.14);margin-top:30px;padding-top:20px;text-align:center}.alignwide{max-width:1400px;margin-left:auto;margin-right:auto}.alignfull{width:100vw;margin-left:calc(50% - 50vw)}.screen-reader-text{position:absolute;clip:rect(1px,1px,1px,1px)}
@media(max-width:900px){.menu-toggle{display:block}.main-navigation{display:none;position:absolute;left:0;right:0;top:100%;background:var(--navy);padding:12px 20px}.main-navigation.open{display:block}.primary-menu{display:block}.content-grid{grid-template-columns:1fr}.footer-widgets{grid-template-columns:1fr}.header-inner{min-height:70px}.topbar .container{display:block;text-align:center}}

/* Menus deroulants multi-niveaux */
.main-navigation .primary-menu li{position:relative}
.main-navigation .primary-menu .sub-menu{position:absolute;top:100%;left:0;z-index:1000;display:none;min-width:240px;margin:0;padding:8px;list-style:none;background:var(--navy-2);border:1px solid rgba(255,255,255,.12);border-radius:10px;box-shadow:0 16px 36px rgba(0,0,0,.24)}
.main-navigation .primary-menu .sub-menu li{width:100%}
.main-navigation .primary-menu .sub-menu a{display:flex;align-items:center;justify-content:space-between;width:100%;padding:10px 12px;white-space:nowrap}
.main-navigation .primary-menu li:hover>.sub-menu,.main-navigation .primary-menu li:focus-within>.sub-menu,.main-navigation .primary-menu li.submenu-open>.sub-menu{display:block}
.main-navigation .primary-menu .sub-menu .sub-menu{top:-8px;left:100%}
.main-navigation .menu-item-has-children>a::after{content:' ▾';font-size:.8em;margin-left:7px;opacity:.8}
.main-navigation .sub-menu .menu-item-has-children>a::after{content:' ›'}
.submenu-toggle{display:none;margin-left:auto;padding:5px 9px;background:transparent;border:0;color:#fff;font-size:1rem}
@media(max-width:900px){.main-navigation .primary-menu .sub-menu,.main-navigation .primary-menu .sub-menu .sub-menu{position:static;display:none;min-width:0;margin:3px 0 3px 14px;padding:4px 0 4px 8px;background:rgba(255,255,255,.06);border:0;border-left:2px solid rgba(255,255,255,.2);border-radius:0;box-shadow:none}.main-navigation .primary-menu li.submenu-open>.sub-menu{display:block}.main-navigation .primary-menu .menu-item-has-children>a{display:inline-flex;width:calc(100% - 52px)}.submenu-toggle{display:inline-block;vertical-align:middle}.main-navigation .menu-item-has-children>a::after{display:none}.main-navigation .primary-menu .sub-menu a{white-space:normal}}

/* Effets visuels configurables pour sous-menus */
.main-navigation .sub-menu{display:block!important;visibility:hidden;opacity:0;pointer-events:none;transform-origin:top left;transition:opacity var(--menu-speed) ease,transform var(--menu-speed) ease,visibility var(--menu-speed) ease}
.main-navigation li:hover>.sub-menu,.main-navigation li:focus-within>.sub-menu,.main-navigation li.submenu-open>.sub-menu{visibility:visible;opacity:1;pointer-events:auto}
.menu-effect-none .main-navigation .sub-menu{transition:none}
.menu-effect-fade .main-navigation .sub-menu{transform:none}
.menu-effect-slide .main-navigation .sub-menu{opacity:1;transform:translateY(-12px)}
.menu-effect-slide .main-navigation li:hover>.sub-menu,.menu-effect-slide .main-navigation li:focus-within>.sub-menu,.menu-effect-slide .main-navigation li.submenu-open>.sub-menu{transform:translateY(0)}
.menu-effect-fade-slide .main-navigation .sub-menu{transform:translateY(-12px)}
.menu-effect-fade-slide .main-navigation li:hover>.sub-menu,.menu-effect-fade-slide .main-navigation li:focus-within>.sub-menu,.menu-effect-fade-slide .main-navigation li.submenu-open>.sub-menu{transform:translateY(0)}
.menu-effect-zoom .main-navigation .sub-menu{transform:scale(.94)}
.menu-effect-zoom .main-navigation li:hover>.sub-menu,.menu-effect-zoom .main-navigation li:focus-within>.sub-menu,.menu-effect-zoom .main-navigation li.submenu-open>.sub-menu{transform:scale(1)}
@media(max-width:900px){.main-navigation .sub-menu,.main-navigation .sub-menu .sub-menu{display:block!important;max-height:0;overflow:hidden;visibility:hidden;opacity:0;pointer-events:none;transform:translateY(-6px)!important;transition:max-height var(--menu-speed) ease,opacity var(--menu-speed) ease,transform var(--menu-speed) ease,visibility var(--menu-speed) ease}.main-navigation li.submenu-open>.sub-menu{max-height:1200px;visibility:visible;opacity:1;pointer-events:auto;transform:translateY(0)!important}.primary-menu a{min-height:44px;align-items:center}.submenu-toggle{min-width:44px;min-height:44px}}
@media(prefers-reduced-motion:reduce){.main-navigation .sub-menu{transition:none!important;transform:none!important}}

/* Personnalisation avancee de l'en-tete */
.topbar{background:var(--topbar-bg);color:var(--topbar-text);min-height:var(--topbar-height)}
.topbar .container{min-height:var(--topbar-height);align-items:center;padding-top:0;padding-bottom:0}
.site-header{background:var(--header-bg);color:var(--header-text)}
.header-inner{min-height:var(--header-height)}
.custom-logo{max-height:var(--logo-height)}
.site-title,.primary-menu a{color:var(--header-text)}
.primary-menu{gap:var(--menu-gap);font-size:var(--menu-font-size)}
.primary-menu a:hover,.primary-menu .current-menu-item>a{background:var(--menu-hover-bg)}
.main-navigation .primary-menu .sub-menu{min-width:var(--submenu-width);background:var(--submenu-bg)}
.main-navigation .primary-menu .sub-menu a{color:var(--submenu-text)}
@media(max-width:900px){.header-inner{min-height:max(56px,calc(var(--header-height) * .82))}.custom-logo{max-height:min(var(--logo-height),52px)}.primary-menu{font-size:clamp(15px,var(--menu-font-size),20px)}.main-navigation{max-height:calc(100vh - 70px);overflow-y:auto;-webkit-overflow-scrolling:touch}}

/* Bandeau identite entierement independant */
.identity-bar{min-height:var(--identity-height);padding:var(--identity-padding) 0;background:linear-gradient(135deg,var(--identity-bg),var(--identity-bg2))}
.identity-bar h1{color:var(--identity-title);font-size:clamp(28px,var(--identity-title-size),96px)}
.identity-bar p{color:var(--identity-text);font-size:var(--identity-text-size)}
.identity-bar .identity-button{background:var(--identity-btn-bg);color:var(--identity-btn-text);font-size:var(--identity-btn-size);border-radius:var(--identity-btn-radius)}
@media(max-width:900px){.identity-bar{min-height:auto;padding:clamp(28px,8vw,var(--identity-padding)) 0}.identity-bar h1{font-size:clamp(28px,9vw,var(--identity-title-size))}.identity-bar p{font-size:clamp(15px,4vw,var(--identity-text-size))}}

/* Elementor */
.navyflex-elementor-full-width{padding-left:0;padding-right:0}
.navyflex-elementor-full-width>.elementor{width:100%}
body.navyflex-canvas{margin:0;background:#fff}
