/* =====================================================================
   HRS Suspension — compléments de la version PHP (au-dessus de custom.css)
   ===================================================================== */

html{scroll-behavior:smooth;}
@media (prefers-reduced-motion: reduce){html{scroll-behavior:auto;}}
img{max-width:100%;}
.min-w-0{min-width:0;}
.py-lg-6{padding-top:3rem; padding-bottom:3rem;}
@media (min-width:992px){.py-lg-6{padding-top:5.5rem !important; padding-bottom:5.5rem !important;}}
:focus-visible{outline:2px solid var(--red); outline-offset:2px;}
.btn:focus-visible{box-shadow:0 0 0 3px rgba(229,19,29,.25);}

/* ---------- Accessibilité ---------- */
.skip-link{position:absolute; left:1rem; top:-60px; z-index:2000; background:var(--red); color:#fff; padding:.6rem 1rem; border-radius:3px; font-family:'Oswald'; text-transform:uppercase; letter-spacing:.05em; font-size:.8rem; transition:top .2s;}
.skip-link:focus{top:1rem; color:#fff;}
.hp-field{position:absolute !important; left:-9999px; width:1px; height:1px; overflow:hidden;}

/* ---------- En-tête ---------- */
.navbar-hrs{transition:box-shadow .25s ease, background-color .25s ease;}
.navbar-hrs.is-scrolled{box-shadow:0 8px 24px rgba(0,0,0,.28);}
.navbar-hrs .navbar-brand img{max-height:44px; width:auto;}
.nav-icon-link.is-logged{color:#fff;}
.logged-dot{position:absolute; bottom:4px; right:4px; width:8px; height:8px; border-radius:50%; background:#2FBF71; border:1.5px solid var(--ink);}
.cart-badge.bump{animation:bump .45s cubic-bezier(.3,1.6,.5,1);}
@keyframes bump{0%{transform:scale(1);}40%{transform:scale(1.45);}100%{transform:scale(1);}}

/* ---------- Toasts ---------- */
.toast-zone{position:fixed; right:1rem; bottom:1rem; z-index:1080; display:flex; flex-direction:column; gap:.6rem; max-width:min(380px, calc(100vw - 2rem)); pointer-events:none;}
.toast-hrs{pointer-events:auto; position:relative; background:var(--ink); color:#fff; border-radius:6px; padding:.9rem 2.6rem .9rem 1.1rem; font-size:.9rem; line-height:1.4; box-shadow:0 14px 36px rgba(20,21,26,.28); border-left:4px solid var(--steel); animation:toastIn .35s cubic-bezier(.2,.8,.2,1) both;}
.toast-hrs.is-leaving{animation:toastOut .3s ease forwards;}
.toast-success{border-left-color:#2FBF71;}
.toast-danger{border-left-color:var(--red);}
.toast-warning{border-left-color:#F2A413;}
.toast-info{border-left-color:var(--gold);}
.toast-close{position:absolute; top:.45rem; right:.55rem; background:none; border:0; color:rgba(255,255,255,.6); font-size:1.25rem; line-height:1; padding:.2rem .35rem; cursor:pointer;}
.toast-close:hover{color:#fff;}
@keyframes toastIn{from{opacity:0; transform:translateY(12px) scale(.98);}to{opacity:1; transform:none;}}
@keyframes toastOut{to{opacity:0; transform:translateX(24px);}}

/* ---------- Fil d'Ariane ---------- */
.breadcrumb-hrs a{color:inherit;}
.breadcrumb-hrs a:hover{color:var(--red);}
.page-hero .breadcrumb-hrs{color:rgba(255,255,255,.55) !important;}
.page-hero .breadcrumb-hrs a:hover{color:#fff;}

/* ---------- Accueil ---------- */
.hero-video{position:absolute; inset:0; opacity:.62;}
.hero-overlay-h{position:absolute; inset:0; background:linear-gradient(100deg, rgba(20,21,26,.96) 0%, rgba(20,21,26,.88) 30%, rgba(20,21,26,.55) 55%, rgba(20,21,26,.25) 78%, rgba(20,21,26,.15) 100%);}
.hero-overlay-v{position:absolute; inset:0; background:linear-gradient(0deg, rgba(20,21,26,.75) 0%, rgba(20,21,26,0) 35%);}
.brand-item img{max-height:42px; width:auto; max-width:130px; object-fit:contain; filter:grayscale(1); opacity:.7; transition:filter .2s, opacity .2s;}
.brand-item:hover img{filter:none; opacity:1;}
.brand-track:hover{animation-play-state:paused;}
.fb-frame{border:1px solid var(--line); border-radius:8px; overflow:hidden; background:#fff; max-width:500px; margin:0 auto; min-height:200px;}
.fb-frame .fb-page, .fb-frame iframe{width:100% !important;}

/* ---------- Services ---------- */
.service-thumb-hrs img{max-height:100%; max-width:100%; object-fit:cover; width:100%; height:100%;}
.service-thumb-lg{height:200px; overflow:hidden;}
.service-thumb-lg img{transition:transform .5s ease;}
.card-hrs:hover .service-thumb-lg img{transform:scale(1.04);}
.univers-thumb{height:160px; border-radius:6px; overflow:hidden; background:var(--light);}
.univers-thumb img{width:100%; height:100%; object-fit:cover;}
.univers-panel{animation:fadeUp .45s ease both;}

/* ---------- Cartes génériques ---------- */
.card-static:hover{transform:none !important; box-shadow:none;}
.filter-in{animation:fadeUp .4s ease both;}

/* ---------- Catalogue & fiche ---------- */
.shop-badge.sold{background:var(--steel);}
.is-sold .shop-thumb img{filter:grayscale(1); opacity:.55;}
.shop-card .shop-thumb img{transition:transform .35s ease;}
.shop-card:hover .shop-thumb img{transform:scale(1.05);}
.product-gallery-main{overflow:hidden; padding:1.5rem;}
.product-gallery-main img{max-width:100%; max-height:100%; object-fit:contain; transition:opacity .15s ease;}
.product-gallery-main img.is-switching{opacity:0;}
.product-thumbs{display:flex; gap:.6rem; flex-wrap:wrap; margin-top:.75rem;}
.product-thumb{width:72px; height:72px; border:1px solid var(--line); border-radius:6px; background:var(--light); padding:4px; display:flex; align-items:center; justify-content:center; cursor:pointer; transition:border-color .15s;}
.product-thumb img{max-width:100%; max-height:100%; object-fit:contain;}
.product-thumb:hover, .product-thumb.active{border-color:var(--red);}
.spec-list{margin:0;}
.spec-list > div{display:flex; gap:1rem; justify-content:space-between; padding:.6rem 0; border-bottom:1px solid var(--line);}
.spec-list > div:last-child{border-bottom:0;}
.spec-list dt{font-family:'JetBrains Mono'; font-size:.72rem; text-transform:uppercase; letter-spacing:.05em; color:var(--steel); font-weight:500; flex-shrink:0;}
.spec-list dd{margin:0; text-align:right;}
.stock-dot{display:inline-block; width:8px; height:8px; border-radius:50%; margin-right:.45rem; vertical-align:middle; background:#2FBF71;}
.stock-sur_commande{background:var(--gold);}
.stock-stock_limite{background:#F2A413;}
.stock-vendu{background:var(--steel);}
.qty-stepper{display:inline-flex; align-items:stretch; border:1px solid var(--line); border-radius:4px; overflow:hidden; background:#fff;}
.qty-stepper button{border:0; background:var(--light); width:40px; font-size:1.1rem; color:var(--ink); transition:background .15s;}
.qty-stepper button:hover{background:#E6E7EA;}
.qty-stepper .qty-input{width:56px; border:0 !important; border-radius:0; text-align:center; padding:.5rem 0; -moz-appearance:textfield; box-shadow:none !important;}
.qty-stepper .qty-input::-webkit-outer-spin-button, .qty-stepper .qty-input::-webkit-inner-spin-button{-webkit-appearance:none; margin:0;}
.qty-stepper-sm button{width:30px; font-size:.95rem;}
.qty-stepper-sm .qty-input{width:42px; padding:.3rem 0; font-size:.85rem;}
.qty-stepper.is-busy{opacity:.55; pointer-events:none;}
.alert-hrs{border-left:3px solid var(--red); background:#FDF3F3; padding:.9rem 1.1rem; border-radius:0 4px 4px 0; font-size:.92rem;}

/* ---------- Contenus riches (éditeur) ---------- */
.rich-content > :last-child{margin-bottom:0;}
.rich-content a{color:var(--red); text-decoration:underline; text-underline-offset:2px;}
.rich-content img{height:auto; border-radius:6px;}
.rich-content ul, .rich-content ol{padding-left:1.25rem;}
.rich-content blockquote{border-left:3px solid var(--red); padding:.3rem 0 .3rem 1rem; color:var(--ink); font-style:italic;}
.rich-content iframe{max-width:100%; aspect-ratio:16/9; width:100%; height:auto; border:0; border-radius:6px;}
.rich-content table{width:100%; border-collapse:collapse; margin:1rem 0;}
.rich-content th, .rich-content td{border:1px solid var(--line); padding:.5rem .7rem;}
.article-body{max-width:760px; font-size:1.05rem; line-height:1.75; color:#2b2c31;}
.article-body h2{font-size:1.5rem; margin:2.2rem 0 1rem;}
.article-body h3{font-size:1.2rem; margin:1.8rem 0 .8rem;}
.article-body p{margin-bottom:1.2rem;}

/* ---------- Blog ---------- */
.article-card-img{position:relative; height:210px; overflow:hidden; background:var(--light);}
.article-card-img img{width:100%; height:100%; object-fit:cover; transition:transform .45s ease;}
.card-hrs:hover .article-card-img img{transform:scale(1.05);}
.article-card-img .tag{position:absolute; top:12px; left:12px; background:var(--red); color:#fff; font-family:'JetBrains Mono'; font-size:.62rem; text-transform:uppercase; letter-spacing:.07em; padding:4px 9px; border-radius:2px;}
.article-hero-img{max-width:980px; margin:0 auto 2.5rem; border-radius:8px; overflow:hidden; aspect-ratio:16/8; background:var(--light);}
.article-hero-img img{width:100%; height:100%; object-fit:cover;}
.author-avatar{width:52px; height:52px; border-radius:50%; background:var(--red); color:#fff; font-family:'Oswald'; font-weight:700; display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.preview-bar{position:sticky; top:0; z-index:1030; background:var(--gold); color:#fff; text-align:center; padding:.5rem 1rem; font-family:'JetBrains Mono'; font-size:.75rem; letter-spacing:.04em;}
.pagination-hrs ul{display:flex; gap:.4rem; justify-content:center; list-style:none; padding:0; margin:2.5rem 0 0;}
.pagination-hrs a{display:flex; align-items:center; justify-content:center; min-width:38px; height:38px; padding:0 .5rem; border:1px solid var(--line); border-radius:4px; font-family:'JetBrains Mono'; font-size:.8rem; color:var(--ink); transition:all .15s;}
.pagination-hrs a:hover{border-color:var(--red); color:var(--red);}
.pagination-hrs a.active{background:var(--ink); border-color:var(--ink); color:#fff;}

/* ---------- Qui sommes-nous / WP ---------- */
.founder-img{border-radius:8px; overflow:hidden; aspect-ratio:4/5; background:var(--light);}
.founder-img img{width:100%; height:100%; object-fit:cover;}
.wp-wordmark{font-family:'Oswald'; font-weight:700; font-size:2.6rem; letter-spacing:.02em; line-height:1;}
.wp-wordmark small{font-size:1.1rem; font-weight:500; letter-spacing:.25em; color:rgba(255,255,255,.6); text-transform:uppercase; vertical-align:middle;}
.file-drop{cursor:pointer; transition:border-color .15s, background .15s;}
.file-drop:hover, .file-drop.dragover{border-color:var(--red); background:#FDF3F3;}

/* ---------- Contact ---------- */
.map-embed{border-radius:6px; overflow:hidden; border:1px solid var(--line); aspect-ratio:16/10;}
.map-embed iframe{width:100%; height:100%; border:0; display:block;}
.map-block-hrs{transition:border-color .15s;}
.map-block-hrs:hover{border-color:var(--red);}
.map-open{position:absolute; inset:0; display:flex; align-items:center; justify-content:center; font-family:'JetBrains Mono'; font-size:.8rem; color:var(--ink);}
.social-chip-dark{border-color:rgba(255,255,255,.18); color:rgba(255,255,255,.75);}
.social-chip-dark:hover{border-color:var(--red); color:#fff; background:rgba(229,19,29,.15);}
.social-chip svg{width:17px; height:17px;}
.success-panel{text-align:center; padding:3rem 2rem; border:1px solid var(--line); border-radius:8px; background:#fff;}
.success-panel .success-icon{width:64px; height:64px; margin:0 auto 1.2rem; border-radius:50%; background:#EAF8F0; color:#1E9E5A; display:flex; align-items:center; justify-content:center;}

/* ---------- Panier ---------- */
.cart-line{transition:opacity .3s ease, transform .3s ease;}
.cart-line.is-removing{opacity:0; transform:translateX(-20px);}
.cart-thumb{transition:border-color .15s;}
.cart-thumb:hover{border-color:var(--red);}
.cart-price{min-width:90px; text-align:right;}
.cart-total{border-top:2px solid var(--ink); margin-top:.25rem;}
.cart-thumb-sm{width:48px; height:48px; border-radius:4px; background:var(--light); border:1px solid var(--line); display:flex; align-items:center; justify-content:center; flex-shrink:0;}
.cart-thumb-sm img{max-width:80%; max-height:80%; object-fit:contain;}
.btn-remove{border:1px solid transparent; background:none; color:var(--steel); width:34px; height:34px; border-radius:4px; display:inline-flex; align-items:center; justify-content:center; font-size:1.2rem; line-height:1; transition:all .15s; padding:0;}
.btn-remove:hover{color:var(--red); border-color:var(--line); background:#FDF3F3;}
.logged-as{background:var(--light); border-radius:6px; padding:.75rem 1rem; font-size:.88rem;}
@media (max-width:575.98px){
  .cart-line{flex-wrap:wrap;}
  .cart-line > .flex-grow-1{flex-basis:calc(100% - 92px);}
  .cart-price{min-width:0; margin-left:auto;}
}

/* ---------- Formulaires ---------- */
.form-control-hrs:focus{border-color:var(--red); box-shadow:0 0 0 3px rgba(229,19,29,.12);}
.was-validated .form-control-hrs:invalid{border-color:var(--red);}
.btn.is-loading{position:relative; color:transparent !important;}
.btn.is-loading::after{content:''; position:absolute; inset:0; margin:auto; width:18px; height:18px; border:2px solid rgba(255,255,255,.4); border-top-color:#fff; border-radius:50%; animation:spin .7s linear infinite;}
.btn-outline-brand.is-loading::after{border-color:rgba(20,21,26,.2); border-top-color:var(--ink);}
@keyframes spin{to{transform:rotate(360deg);}}
.pwd-wrap{position:relative;}
.pwd-wrap .form-control{padding-right:2.8rem;}
.pwd-toggle{position:absolute; right:.4rem; top:50%; transform:translateY(-50%); border:0; background:none; padding:.3rem .45rem; opacity:.45; font-size:.95rem; cursor:pointer; filter:grayscale(1);}
.pwd-toggle:hover, .pwd-toggle.is-on{opacity:.9;}
.pwd-meter{height:4px; background:var(--light); border-radius:2px; margin-top:.4rem; overflow:hidden;}
.pwd-meter span{display:block; height:100%; width:0; background:var(--red); transition:width .25s, background .25s;}
.pwd-meter[data-level="1"] span{width:25%;}
.pwd-meter[data-level="2"] span{width:50%; background:#F2A413;}
.pwd-meter[data-level="3"] span{width:75%; background:#8BC34A;}
.pwd-meter[data-level="4"] span{width:100%; background:#2FBF71;}
.pwd-meter[data-level="0"] span{width:10%;}
.account-optin{color:var(--steel);}

/* ---------- Espace client ---------- */
.account-card{display:flex; gap:.9rem; align-items:center; padding:1rem; border:1px solid var(--line); border-radius:8px; background:var(--light);}
.account-avatar{width:46px; height:46px; border-radius:50%; background:var(--ink); color:#fff; font-family:'Oswald'; font-weight:600; font-size:1.05rem; display:flex; align-items:center; justify-content:center; flex-shrink:0; border:2px solid var(--red);}
.account-nav{display:flex; flex-direction:column; gap:2px;}
.account-nav a{display:flex; align-items:center; gap:.75rem; padding:.7rem .9rem; border-radius:6px; color:var(--ink); font-size:.93rem; border-left:3px solid transparent; transition:background .15s, border-color .15s;}
.account-nav a svg{color:var(--steel); flex-shrink:0;}
.account-nav a:hover{background:var(--light);}
.account-nav a.active{background:#FDF3F3; border-left-color:var(--red); font-weight:600;}
.account-nav a.active svg{color:var(--red);}
.count-badge{margin-left:auto; background:var(--red); color:#fff; font-family:'JetBrains Mono'; font-size:.65rem; min-width:20px; height:20px; border-radius:10px; display:inline-flex; align-items:center; justify-content:center; padding:0 5px;}
@media (max-width:991.98px){
  .account-nav{flex-direction:row; overflow-x:auto; gap:.4rem; padding-bottom:.25rem; scrollbar-width:none;}
  .account-nav a{white-space:nowrap; border-left:0; border:1px solid var(--line); padding:.5rem .8rem; font-size:.85rem;}
  .account-nav a.active{border-color:var(--red);}
}
.stat-tile{display:flex; flex-direction:column; gap:.25rem; padding:1.2rem; border:1px solid var(--line); border-radius:8px; color:var(--ink); background:#fff; height:100%; transition:border-color .15s, transform .15s, box-shadow .15s;}
.stat-tile:hover{border-color:var(--red); transform:translateY(-2px); box-shadow:0 10px 24px rgba(20,21,26,.06); color:var(--ink);}
.stat-tile .num{font-family:'Oswald'; font-size:2rem; font-weight:600; line-height:1;}
.stat-tile .lbl{font-family:'JetBrains Mono'; font-size:.7rem; text-transform:uppercase; letter-spacing:.05em; color:var(--steel);}
.profile-nudge{display:flex; gap:1rem; align-items:center; justify-content:space-between; flex-wrap:wrap; padding:1rem 1.2rem; border-radius:8px; background:linear-gradient(100deg, #FDF3F3, #fff); border:1px solid rgba(229,19,29,.25);}
.empty-inline{padding:1rem 0; margin:0;}
.quote-row{display:flex; justify-content:space-between; align-items:center; gap:1rem; padding:.9rem 0; border-bottom:1px solid var(--line); color:var(--ink); transition:padding .15s, background .15s;}
.quote-row:last-child{border-bottom:0;}
.quote-row:hover{color:var(--ink); background:var(--light); padding-left:.6rem; padding-right:.6rem;}
.status-pill{display:inline-flex; align-items:center; gap:.4rem; font-family:'JetBrains Mono'; font-size:.68rem; text-transform:uppercase; letter-spacing:.05em; padding:.3rem .65rem; border-radius:20px; white-space:nowrap; background:var(--light); color:var(--steel);}
.status-pill::before{content:''; width:6px; height:6px; border-radius:50%; background:currentColor;}
.status-nouveau{background:#FDECEC; color:var(--red-dark);}
.status-en_cours{background:#FFF4E0; color:#A86B00;}
.status-envoye{background:#E8F1FD; color:#1D5FB8;}
.status-accepte, .status-valide{background:#EAF8F0; color:#1E7E4A;}
.status-refuse{background:#F0F1F3; color:var(--steel);}
.status-clos{background:var(--ink); color:#fff;}
.quote-steps{display:flex; list-style:none; padding:0; counter-reset:step; gap:0;}
.quote-steps li{flex:1; position:relative; text-align:center; padding-top:2.4rem; font-family:'JetBrains Mono'; font-size:.7rem; text-transform:uppercase; letter-spacing:.04em; color:var(--steel-dim);}
.quote-steps li::before{counter-increment:step; content:counter(step); position:absolute; top:0; left:50%; transform:translateX(-50%); width:30px; height:30px; border-radius:50%; background:#fff; border:2px solid var(--line); display:flex; align-items:center; justify-content:center; z-index:1; color:var(--steel);}
.quote-steps li::after{content:''; position:absolute; top:14px; left:-50%; width:100%; height:2px; background:var(--line);}
.quote-steps li:first-child::after{display:none;}
.quote-steps li.done, .quote-steps li.current{color:var(--ink);}
.quote-steps li.done::before{content:'✓'; background:var(--ink); border-color:var(--ink); color:#fff;}
.quote-steps li.done::after, .quote-steps li.current::after{background:var(--ink);}
.quote-steps li.current::before{border-color:var(--red); background:var(--red); color:#fff; box-shadow:0 0 0 4px rgba(229,19,29,.15);}
.doc-row{display:flex; align-items:center; gap:1rem; padding:.9rem 1rem; border:1px solid var(--line); border-radius:8px; margin-bottom:.6rem; background:#fff; transition:border-color .15s, box-shadow .15s;}
.doc-row:hover{border-color:rgba(229,19,29,.4); box-shadow:0 6px 16px rgba(20,21,26,.05);}
.doc-ext{width:46px; height:52px; border-radius:4px; background:var(--ink); color:#fff; font-family:'JetBrains Mono'; font-size:.65rem; font-weight:600; display:flex; align-items:flex-end; justify-content:center; padding-bottom:8px; flex-shrink:0; position:relative; clip-path:polygon(0 0, 72% 0, 100% 22%, 100% 100%, 0 100%);}
.doc-ext::after{content:''; position:absolute; top:0; right:0; width:28%; height:22%; background:var(--red);}
.new-badge{display:inline-block; background:var(--red); color:#fff; font-family:'JetBrains Mono'; font-size:.58rem; text-transform:uppercase; letter-spacing:.05em; padding:2px 6px; border-radius:2px; vertical-align:middle; font-weight:500;}
.moto-card.is-editing{border-color:var(--red);}
@media (max-width:575.98px){.doc-row{flex-wrap:wrap;} .doc-row .btn{width:100%;}}

/* ---------- 404 ---------- */
.error-code{font-size:clamp(5rem, 18vw, 10rem); line-height:1; color:var(--red); font-weight:700; letter-spacing:-.04em;}

@media print{
  .navbar-hrs, .footer-hrs, .toast-zone, .account-nav, .cta-banner-hrs{display:none !important;}
}
.fb-logo-link{max-width:520px; padding:1rem; transition:transform .2s ease;}
.fb-logo-link:hover{transform:scale(1.03);}

/* ---------- Services : galerie photos & bannière fiche ---------- */
.service-gallery{display:grid; grid-template-columns:repeat(auto-fill, minmax(220px, 1fr)); gap:16px;}
.service-photo a{display:block; aspect-ratio:4/3; overflow:hidden; border-radius:8px; background:var(--light); cursor:zoom-in;}
.service-photo img{width:100%; height:100%; object-fit:cover; transition:transform .4s ease;}
.service-photo a:hover img{transform:scale(1.04);}
.cta-banner-hrs .cta-sub{color:rgba(255,255,255,.7); max-width:560px;}
.photo-zoom{border:0; padding:0; background:transparent; max-width:min(1100px, 92vw); max-height:92vh; overflow:visible;}
.photo-zoom::backdrop{background:rgba(10,11,14,.88);}
.photo-zoom img{display:block; max-width:100%; max-height:82vh; margin:0 auto; border-radius:6px;}
.photo-zoom-caption{color:#fff; text-align:center; margin:.75rem 0 0; font-size:.9rem;}
.photo-zoom-caption:empty{display:none;}
.photo-zoom-close{position:absolute; top:-44px; right:0; width:38px; height:38px; border:0; border-radius:50%; background:#fff; color:#14151A; font-size:1.5rem; line-height:1; cursor:pointer;}
