/* Polices hébergées sur le site (document 28, S7, décision D4) : Inter, Open Sans, Poppins, licence SIL OFL,
   jeux latin et latin étendu. Plus de requête vers Google Fonts. */
@font-face {font-family: 'Inter'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('../fonts/inter-400-700-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face {font-family: 'Inter'; font-style: normal; font-weight: 400 700; font-display: swap; src: url('../fonts/inter-400-700-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face {font-family: 'Open Sans'; font-style: normal; font-weight: 400 800; font-display: swap; src: url('../fonts/opensans-400-800-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face {font-family: 'Open Sans'; font-style: normal; font-weight: 400 800; font-display: swap; src: url('../fonts/opensans-400-800-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face {font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/poppins-400-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face {font-family: 'Poppins'; font-style: normal; font-weight: 400; font-display: swap; src: url('../fonts/poppins-400-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face {font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/poppins-500-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face {font-family: 'Poppins'; font-style: normal; font-weight: 500; font-display: swap; src: url('../fonts/poppins-500-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face {font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/poppins-600-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face {font-family: 'Poppins'; font-style: normal; font-weight: 600; font-display: swap; src: url('../fonts/poppins-600-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
@font-face {font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/poppins-700-latin-ext.woff2') format('woff2'); unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C4, U+2113, U+2C60-2C7F, U+A720-A7FF;}
@font-face {font-family: 'Poppins'; font-style: normal; font-weight: 700; font-display: swap; src: url('../fonts/poppins-700-latin.woff2') format('woff2'); unicode-range: U+0000-00FF, U+0131, U+0152-0153, U+02BB-02BC, U+02C6, U+02DA, U+02DC, U+0304, U+0308, U+0329, U+2000-206F, U+20AC, U+2122, U+2191, U+2193, U+2212, U+2215, U+FEFF, U+FFFD;}
/* Polices de repli calibrées sur Arial : même encombrement, pas de décalage à l'arrivée de la police (CLS) */
@font-face {font-family: 'Inter Repli'; src: local('Arial'); ascent-override: 90.44%; descent-override: 22.52%; line-gap-override: 0%; size-adjust: 107.12%;}
@font-face {font-family: 'Poppins Repli'; src: local('Arial'); ascent-override: 92.33%; descent-override: 30.78%; line-gap-override: 8.79%; size-adjust: 113.73%;}
@font-face {font-family: 'Open Sans Repli'; src: local('Arial'); ascent-override: 101.65%; descent-override: 27.86%; line-gap-override: 0%; size-adjust: 105.21%;}

/*** ======= // TABLE OF CONTENT // ============================
01- Google Fonts
02- General Variables
03- General Styling
    03.1- Paddings
    03.2- Margins
    03.3- Default Colors
    03.4- Container
    03.5- Column Gap
    03.6- Fonts Typography
    03.7- Parallax Background
    03.8- Background Layer
    03.9- Opacity
    03.10- Iframe
    03.11- Image
    03.12- Width
    03.13- Cross Browser Compatibility
    03.14- Border Radius
    03.15- Play Button
    03.16- Animations
    03.17- Social Media
04- Header Styles
    04.1- Dropdown
    04.2- Side Menu
    04.3- Header Search
    04.4- Header Style 1
    04.5- Header Style 2
    04.6- Header Style 3
05- Sticky Header
    05.1- Sticky Header 1
    05.2- Sticky Header 2
    05.3- Sticky Header 3
06- Featured Area Style 1
07- Sec Title
08- About Style 1
09- Theme Button
10- Event Style 1
11- Reasons Wrap
12- Package Style 1
13- Speakers
14- Event Grid Style 1
15- Discount Wrap
16- Blog Style 1
17- Newsletter Style 1
18- Footer Style 1
19- Footer Bottom
20- Featured Area Style 2
21- Services Style 1
22- Event Grid Style 2
23- About Style 2
24- Facts Style 1
25- Event Style 2
26- Event List Style
27- Sponsors Style 1
28- Packages Style 2
29- Newsletter Style 2
30- Blog Style 2
31- Blog List
32- Testimonials Style 1
33- About Me
34- About Me Counter
35- Services Style 2
36- About Style 3
37- Features Style
38- How It Works Style
39- Testimonials Style 2
40- Filter Links
41- Gallery Style 1
42- Contact Form With Map
43- Sponsors Style 2
44- Footer Style 2
45- Page Title
46- Gallery Style 2
47- Pagination Style
48- 404 Error
49- Facts Style 2
50- Contact Style
51- Faq Style
52- Products Style
53- Product List Style
54- Sidebar
55- Product Detail
    55.1- Product Detail Meta
56- Product Cart
57- Product Checkout
58- Blog Detail
59- Event Detail
60- Speaker Detail
61- Login Popup
62- Content Elements
    62.1- Dividers
    62.2- List Styles
    62.3- Alert
    62.4- Toggles Style 2
    62.5- Toggles Style 3
    62.6- Tabs
    62.7- Progress
    62.8- Buttons
    62.9- Gallery Carousel
    62.10- Gallery Carousel 2
    62.11- Carousel Dots
    62.12- Video
    62.13- Banners

===================================================== ***/

/*=== Google Fonts ===*/
/* Etape B (6 nov. 2026) : les deux @import (Open Sans, Poppins en 18 graisses, &amp; qui cassait display=swap)
   sont remplaces par un seul <link> dans resources/views/layout/front.blade.php :
   Open Sans 400/600/700/800, Inter 400/500/600/700, Poppins 400/500/600/700, display=swap. */

/*=== General Variables ===*/
:root {
  /*--color1: #121a37;*/
  --color1: #070b1b;
  --color2: #ff5e15;
  --color3: #ffa800;
  --color4: #21a010;
  --color5: #0a1024;
  --color6: #00192a;
  --color7: #050918;
  --color8: #ffc600;
  --color9: #c40172;
  --color10: #990fff;
  --color11: #ff7500;
  --color12: #0072b1;
  --color13: #55a61d;
  --color14: #e90133;
  --color15: #02728e;
  --color16: #1ec8bf;
  --color17: #ff4747;
  --color18: #ffe27a;
  --color19: #1f5abc;
  /*--color20: #d2eaff;*/
  --color20: #970733;
  --transition: all 0.2s cubic-bezier(0.19, 0.68, 0.49, 1.21);
  --transition2: all .3s linear;
  --pill: 2.5rem;
  --round: 50%;
  --curve: 3px;
  --full: 100%;
}
.bg-color1{background-color:var(--theme-color);}
.bg-color2{background-color:var(--color2);}
.bg-color3{background-color:var(--color3);}
.bg-color4{background-color:var(--color4);}
.bg-color5{background-color:#00243d;}
.bg-color6{background-color:var(--color6);}
.bg-color7{background-color:var(--color7);}
.bg-color8{background-color:var(--color8);}
.bg-color9{background-color:var(--color9);}
.bg-color10{background-color:var(--color10);}
.bg-color11{background-color:var(--color11);}
.bg-color12{background-color:var(--color12);}
.bg-color13{background-color:var(--color13);}
.bg-color14{background-color:var(--color14);}
.bg-color15{background-color:var(--color15);}
.bg-color16{background-color:var(--color16);}
.bg-color17{background-color:var(--color17);}
.bg-color18{background-color:var(--color18);}
.bg-color19{background-color:var(--color19);}
.bg-color20{background-color:var(--color20);}
.text-color1{color:var(--color1);}
.text-color2{color:var(--color2);}
.text-color3{color:var(--color3);}
.text-color4{color:var(--color4);}
.text-color5{color:var(--color5);}
.text-color6{color:var(--color6);}
.text-color7{color:var(--color7);}
.text-color8{color:var(--color8);}
.text-color9{color:var(--color9);}
.text-color10{color:var(--color10);}
.text-color11{color:var(--color11);}
.text-color12{color:var(--color12);}
.text-color13{color:var(--color13);}
.text-color14{color:var(--color14);}
.text-color15{color:var(--color15);}
.text-color16{color:var(--color16);}
.text-color17{color:var(--color17);}
.text-color18{color:var(--color18);}
.text-color19{color:var(--color19);}
.text-color20{color:var(--color20);}

strong {font-weight: 600;}

/*=== General Styling ===*/
body,
html {overflow-x: hidden;}
body {
  margin: 0;
  font-family: Open Sans;
  position: relative;
  width: 100%;
  max-width: 100%;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: Open Sans;
  color: #222;
  font-weight: 600;

}
p {
  font-family: Open Sans;
  color: #555555;
  line-height: 1.5rem;
  font-size: .9rem;
}
ul li,
ol li {
  font-family: Open Sans;
  color: #555555;
  font-size: 0.875rem;
  line-height: 1.5rem;
}
a {color: inherit;}
a:hover,
a:focus,
ins {
  text-decoration:none;
  outline:none;
}
/* Retour du 10 nov. : la couleur de survol générique ne s'impose plus aux composants (elle était en !important et
   rendait illisibles les liens et icônes sur fond foncé). Priorité minimale : elle s'applique seulement aux liens sans couleur propre. */
:where(a):hover,
:where(a):focus,
:where(ins) {
  color: #00487D;
}
ul li:hover{color:#00487D;}
/* Fond sombre (pied de page, bannières de page, blocs .tp-on-dark) : le bleu clair #95cbed y reste lisible. */
.page-top-wrap .breadcrumb-item.active, .page-top-wrap .breadcrumb a:hover, .page-top-wrap .breadcrumb a:focus, footer a:hover, footer a:focus, footer ul li:hover, .tp-pied-bas a:hover, .tp-pied-bas a:focus, .tp-on-dark a:hover, .tp-on-dark a:focus {color: #95cbed !important;}
input,
textarea,
select,
button {border: 0;}
button,
input[type="submit"],
.fileContainer,
input[type="file"] {cursor: pointer;}
input:focus,
textarea:focus,
select:focus,
button:focus,
a:focus,
.form-wrp fieldset p a:focus,
.page-link:focus,
.btn.focus,
.btn:focus,
.bootstrap-select .dropdown-toggle:focus {
  border-color: transparent;
  outline: none !important;
  -webkit-box-shadow: none !important;
  -ms-box-shadow: none !important;
  -o-box-shadow: none !important;
  box-shadow: none !important;
}
textarea {resize: none;}
main,
section,
footer {
  display: -ms-flexbox;
  display: flex;
  -ms-flex-wrap: wrap;
  flex-wrap: wrap;
  max-width: 100%;
  position:relative;
  width:100%;
}

/*=== Paddings ===*/
.pt-10 {padding-top: 0.625rem;}
.pb-10 {padding-bottom: 0.625rem;}
.pt-20 {padding-top: 1.25rem;}
.pb-20 {padding-bottom: 1.25rem;}
.pt-30 {padding-top: 1.875rem;}
.pb-30 {padding-bottom: 1.875rem;}
.pt-40 {padding-top: 2.5rem;}
.pb-40 {padding-bottom: 2.5rem;}
.pt-50 {padding-top: 3.125rem;}
.pb-50 {padding-bottom: 3.125rem;}
.pt-55 {padding-top: 3.4375rem;}
.pb-55 {padding-bottom: 3.4375rem;}
.pt-60 {padding-top: 3.75rem;}
.pb-60 {padding-bottom: 3.75rem;}
.pt-70 {padding-top: 4.375rem;}
.pb-70 {padding-bottom: 4.375rem;}
.px-70 {padding: 0 4.375rem;}
.pt-80 {padding-top: 5rem;}
.pb-80 {padding-bottom: 5rem;}
.pt-90 {padding-top:5.625rem;}
.pb-90 {padding-bottom: 5.625rem;}
.pt-100 {padding-top: 6.25rem;}
.pb-100 {padding-bottom: 6.25rem;}
.pt-110 {padding-top: 6.875rem;}
.pb-110 {padding-bottom: 6.875rem;}
.pt-120 {padding-top: 7.5rem;}
.pb-120 {padding-bottom: 7.5rem;}
.pt-130 {padding-top: 8.125rem;}
.pb-130 {padding-bottom: 8.125rem;}
.pt-140 {padding-top: 8.75rem;}
.pb-140 {padding-bottom: 8.75rem;}
.pt-150 {padding-top: 9.375rem;}
.pb-150 {padding-bottom: 9.375rem;}
.pt-155 {padding-top: 9.6875rem;}
.pb-155 {padding-bottom: 9.6875rem;}
.pt-160 {padding-top: 10rem;}
.pb-160 {padding-bottom: 10rem;}
.pt-170 {padding-top: 10.625rem;}
.pb-170 {padding-bottom: 10.625rem;}
.pt-180 {padding-top: 11.25rem;}
.pb-180 {padding-bottom: 11.25rem;}
.pt-195 {padding-top: 12.1875rem;}
.pb-195 {padding-bottom: 12.1875rem;}
.pt-210 {padding-top: 13.125rem;}
.pb-210 {padding-bottom: 13.125rem;}
.pt-240 {padding-top: 15rem;}
.pb-240 {padding-bottom: 15rem;}
.pt-280 {padding-top: 17.5rem;}
.pb-280 {padding-bottom: 17.5rem;}
.pt-15{padding-top: 15px;}
.pb-15{padding-bottom: 15px;}
/*=== Margins ===*/
.mt-10 {margin-top: 0.625rem;}
.mb-10 {margin-bottom: 0.625rem;}
.mt-15 {margin-top: 0.9375rem;}
.mb-15 {margin-bottom: 0.9375rem;}
.mt-20 {margin-top: 1.25rem;}
.mb-20 {margin-bottom: 1.25rem;}
.mt-25 {margin-top: 1.5625rem;}
.mb-25 {margin-bottom: 1.5625rem;}
.mt-30 {margin-top: 1.875rem;}
.mb-30 {margin-bottom: 1.875rem;}
.mt-35 {margin-top: 2.1875rem;}
.mb-35 {margin-bottom: 2.1875rem;}
.mt-40 {margin-top: 2.5rem;}
.mb-40 {margin-bottom: 2.5rem;}
.mt-45 {margin-top: 2.8125rem;}
.mb-45 {margin-bottom: 2.8125rem;}
.mt-50 {margin-top: 3.125rem;}
.mb-50 {margin-bottom: 3.125rem;}
.mt-55 {margin-top: 3.4375rem;}
.mb-55 {margin-bottom: 3.4375rem;}
.mt-60 {margin-top: 3.75rem;}
.mb-60 {margin-bottom: 3.75rem;}
.mt-65 {margin-top: 4.0625rem;}
.mb-65 {margin-bottom: 4.0625rem;}
.mt-70 {margin-top: 4.375rem;}
.mb-70 {margin-bottom: 4.375rem;}
.mt-80 {margin-top: 5rem;}
.mb-80 {margin-bottom: 5rem;}
.mt-90 {margin-top: 5.625rem;}
.mb-90 {margin-bottom: 5.625rem;}
.mt-100 {margin-top: 6.25rem;}
.mb-100 {margin-bottom: 6.25rem;}
.mt-110 {margin-top: 6.875rem;}
.mb-110 {margin-bottom: 6.875rem;}
.mt-120 {margin-top: 7.5rem;}
.mb-120 {margin-bottom: 7.5rem;}

/*=== Overlap ===*/
.overlap-99 {
  position: relative;
  z-index: 1;
}
.overlap-99 {margin-bottom: -6.24375rem;}

/*=== Default Colors ===*/
.dark-bg {background-color: #00000b;}
.dark-bg2 {background-color: #171717;}
.gray-bg {background-color: #f6f7fb;}
.gray-bg2 {background-color: #f2f2f2;}

/*=== Container ===*/
.container {
  padding: 0;
  max-width: 73.125rem;
}

/*=== Column Gap ===*/
.mrg {margin: 0;}
.mrg div[class^="col"] {padding: 0;}
.mrg2 {margin: 0 -1px;}
.mrg2 div[class^="col"] {padding: 0 1px;}
.mrg5 {margin: 0 -0.15625rem;}
.mrg5 div[class^="col"] {padding: 0 0.15625rem;}
.mrg6 {margin: 0 -0.1875rem;}
.mrg6 div[class^="col"] {padding: 0 0.1875rem;}
.mrg10 {margin: 0 -0.3125rem;}
.mrg10 div[class^="col"] {padding: 0 0.3125rem;}
.mrg15 {margin: 0 -0.46875rem;}
.mrg15 div[class^="col"] {padding: 0 0.46875rem;}
.mrg20 {margin: 0 -0.625rem;}
.mrg20 div[class^="col"] {padding: 0 0.625rem;}
.mrg40 {margin: 0 -1.25rem;}
.mrg40 div[class^="col"] {padding: 0 1.25rem;}
.mrg45 {margin: 0 -1.40625rem;}
.mrg45 div[class^="col"] {padding: 0 1.40625rem;}
.mrg50 {margin: 0 -1.5625rem;}
.mrg50 div[class^="col"] {padding: 0 1.5625rem;}
.mrg60 {margin: 0 -1.875rem;}
.mrg60 div[class^="col"] {padding: 0 1.875rem;}
.mrg70 {margin: 0 -2.1875rem;}
.mrg70 div[class^="col"] {padding: 0 2.1875rem;}


.slick-slide div[class^="col"] {
  flex: 0 0 100%;
  max-width: 100%;
}

/*=== Fonts Typography ===*/
.font-weight-hairline {font-weight: 100;}
.font-weight-thin {font-weight: 200;}
.font-weight-medium {font-weight: 500;}
.font-weight-semibold {font-weight: 600;}
.font-weight-extrabold {font-weight: 800;}
.font-weight-black {font-weight: 900;}
.font-style-italic {font-style: italic;}
.font-style-normal {font-style: normal;}

/*=== Parallax Background ===*/
.fixed-bg,
.parallax-bg {
  background-position: center;
  height:100%;
  width:100%;
  margin:0;
  position:absolute;
  left:0;
  top:0;
  z-index:-2;
}
.fixed-bg {
  background-attachment: scroll;
  background-size:cover;
}
.parallax-bg {
  background-attachment: fixed;
  background-size:contain;
}
.back-post-cntrbtm-norpet {
  background-position: center bottom;
  background-repeat: no-repeat;
  background-size: contain;
}
.back-post-cntrbtm {background-position: center bottom;}
.back-post-lftcntr {background-position: left center;}
.fixed-bg.patern-bg,
.parallax-bg.patern-bg {background-size: initial;}
.fixed-bg.bg-norepeate {
  background-size: initial;
  background-repeat: no-repeat;
}
.back-blend-soft-light {background-blend-mode: soft-light;}
.back-blend-difference {background-blend-mode: difference;}
.back-blend-screen {background-blend-mode: screen;}
.back-blend-multiply {background-blend-mode: multiply;}
.back-blend-subtract {background-blend-mode: subtract;}

.paralx-70 .fixed-bg {height: 70%;}

.h-tem + .particles-js {max-height: 35.375rem;}
.h-tst + .particles-js {max-height: 34.6875rem;}

/*=== Background Layer ===*/
.black-layer:before,
.white-layer:before,
.gray-layer:before,
.dark-layer:before,
.dark-layer2:before,
.dark-layer3:before,
.blue-layer:before,
.thm-layer:before {
  content: "";
  height: 100%;
  left: 0;
  position: absolute;
  top: 0;
  width: 100%;
  z-index: -1;
}
.black-layer:before {background-color: #000000;}
.white-layer:before {background-color:#ffffff;}
.gray-layer:before {background-color: #f6f7fb}
.dark-layer:before {background-color: #382232;}
.dark-layer2:before {background-color: #00000b;}
.dark-layer3:before {background-color: var(--color7);}
.blue-layer:before {background-color: var(--color1);}

.black-layer.paralx-70:before,
.white-layer.paralx-70:before,
.gray-layer.paralx-70:before,
.dark-layer.paralx-70:before,
.dark-layer2.paralx-70:before,
.blue-layer.paralx-70:before,
.thm-layer.paralx-70:before {height: 70%;}

/*=== Opacity ===*/
.opc1:before {opacity: .1;}
.opc15:before {opacity: .15;}
.opc2:before {opacity: .2;}
.opc25:before {opacity: .25;}
.opc3:before {opacity: .3;}
.opc35:before {opacity: .35;}
.opc4:before {opacity: .4;}
.opc45:before {opacity: .45;}
.opc5:before {opacity: .5;}
.opc55:before {opacity: .55;}
.opc6:before {opacity: .6;}
.opc65:before {opacity: .65;}
.opc7:before {opacity: .7;}
.opc75:before {opacity: .75;}
.opc8:before {opacity: .8;}
.opc85:before {opacity: .85;}
.opc9:before {opacity: .9;}
.opc95:before {opacity: .95;}
.opc97:before {opacity: .97;}
.opc99:before {opacity: .99;}

/*=== Iframe ===*/
iframe {
  border: 0;
  width: 100%;
}

/*=== Image ===*/
img {
  height: auto;
  max-width: 100%;
  vertical-align: middle;
}

/*=== Width ===*/
.wdth5 {width: 5%;}
.wdth10 {width: 10%;}
.wdth15 {width: 15%;}
.wdth20 {width: 20%;}
.wdth25 {width: 25%;}
.wdth30 {width: 30%;}
.wdth35 {width: 35%;}
.wdth40 {width: 40%;}
.wdth45 {width: 45%;}
.wdth50 {width: 50%;}
.wdth55 {width: 55%;}
.wdth60 {width: 60%;}
.wdth65 {width: 65%;}
.wdth70 {width: 70%;}
.wdth75 {width: 75%;}
.wdth80 {width: 80%;}
.wdth85 {width: 85%;}
.wdth90 {width: 90%;}
.wdth95 {width: 95%;}
.wdth100 {width: 100%;}
.wow {visibility: hidden;}

/*=== Cross Browser Compatibility ===*/
i,
a,
img,
input,
button,
textarea,
:before,
:after,
label,
span,
.proj-info,
.toggle-item > h4,
.serv-box-inner > *,
.rsnp-mnu,
.sticky-menu
{
  -webkit-transition: var(--transition2);
  -ms-transition: var(--transition2);
  -o-transition: var(--transition2);
  transition: var(--transition2);
}

nav ul li,
.team-social,
.shop-img > a
{
  -webkit-transition: all 600ms cubic-bezier(0.175, 0.885, 0.320, 1); /* older webkit */
  -webkit-transition: all 600ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
  -moz-transition: all 600ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
  -o-transition: all 600ms cubic-bezier(0.175, 0.885, 0.320, 1.275);
  transition: all 600ms cubic-bezier(0.175, 0.885, 0.320, 1.275); /* easeOutBack */
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1); /* older webkit */
  -webkit-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275);
  -moz-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275);
  -o-transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275);
  transition-timing-function: cubic-bezier(0.175, 0.885, 0.320, 1.275); /* easeOutBack */
}

a i,
button i {
  -webkit-transition: none;
  -ms-transition: none;
  -o-transition: none;
  transition: none;
}

/*=== Border Radius ===*/
.brd-rd20
{
  -webkit-border-radius: 1.25rem;
  border-radius: 1.25rem;
}

.brd-rd10
{
  -webkit-border-radius: 0.625rem;
  border-radius: 0.625rem;
}

.brd-rd5,
.serv-box2,
.solutions-wrap img,
.post-img,
.proj-thumb,
.about-image > img,
.post-detail > img,
.widget-video-box > a,
.post-detail-gallery-video-box > img,
.comment,
.solutions-list > li > i,
.serv-detail-desc a,
.detail-gal a,
blockquote,
.shop-img,
.shop-img > a,
.simple-btn,
.white-btn,
.contact-info-wrap,
.contact-map
{
  -webkit-border-radius: 0.3125rem;
  border-radius: 0.3125rem;
}

.brd-rd3
{
  -webkit-border-radius: 0.1875rem;
  border-radius: 0.1875rem;
}

.bootstrap-select:not([class*="col-"]):not([class*="form-control"]):not(.input-group-btn) {width: 100%;}
.dropdown-menu {
  border: 0;
  -webkit-box-shadow: 0 0 10px rgba(0,0,0,.15);
  -ms-box-shadow: 0 0 10px rgba(0,0,0,.15);
  -o-box-shadow: 0 0 10px rgba(0,0,0,.15);
  box-shadow: 0 0 10px rgba(0,0,0,.15);
  padding: 0;
}
.bootstrap-select .dropdown-menu li {line-height: initial;}
.bootstrap-select .dropdown-menu li:nth-child(2n) {background-color: #f5f5f5;}
.bootstrap-select .dropdown-menu li a {padding: 6px 1.5rem;}
.bootstrap-select .dropdown-menu li a.dropdown-item.active,
.bootstrap-select .dropdown-menu li a.dropdown-item:active,
.bootstrap-select .dropdown-menu li a:hover,
.bootstrap-select .dropdown-menu li a:focus {color: #fff !important;}

/*=== Particles ===*/
.particles-js,
.particles-js2 {
  position: absolute;
  top: 0;
  bottom: 0;
  left: 0;
  right: 0;
}

/*=== Animations ===*/
@-webkit-keyframes spin {
  from {
    transform:rotate(0deg);
  }
  to {
    transform:rotate(360deg);
  }
}
@-o-keyframes spin {
  from {
    transform:rotate(0deg);
  }
  to {
    transform:rotate(360deg);
  }
}
@keyframes spin {
  from {
    transform:rotate(0deg);
  }
  to {
    transform:rotate(360deg);
  }
}

@keyframes slide-animation {
  0% {
    -webkit-transform: rotateX(0deg) translateY(0px);
    -ms-transform: rotateX(0deg) translateY(0px);
    -o-transform: rotateX(0deg) translateY(0px);
    transform: rotateX(0deg) translateY(0px); }
  50% {
    -webkit-transform: rotateX(0deg) translateY(15px);
    -ms-transform: rotateX(0deg) translateY(15px);
    -o-transform: rotateX(0deg) translateY(15px);
    transform: rotateX(0deg) translateY(15px); }
  100% {
    -webkit-transform: rotateX(0deg) translateY(0px);
    -ms-transform: rotateX(0deg) translateY(0px);
    -o-transform: rotateX(0deg) translateY(0px);
    transform: rotateX(0deg) translateY(0px); }
}
@-webkit-keyframes slide-animation {
  0% {
    -webkit-transform: rotateX(0deg) translateY(0px);
    -ms-transform: rotateX(0deg) translateY(0px);
    -o-transform: rotateX(0deg) translateY(0px);
    transform: rotateX(0deg) translateY(0px); }
  50% {
    -webkit-transform: rotateX(0deg) translateY(-10px);
    -ms-transform: rotateX(0deg) translateY(-10px);
    -o-transform: rotateX(0deg) translateY(-10px);
    transform: rotateX(0deg) translateY(-10px); }
  100% {
    -webkit-transform: rotateX(0deg) translateY(0px);
    -ms-transform: rotateX(0deg) translateY(0px);
    -o-transform: rotateX(0deg) translateY(0px);
    transform: rotateX(0deg) translateY(0px);
  }
}

.slide-animation {
  -webkit-animation: 5s slide-animation infinite;
  -ms-animation: 5s slide-animation infinite;
  -o-animation: 5s slide-animation infinite;
  animation: 5s slide-animation infinite;
}

/*=== Pulse Animation ===*/
.spinner:before,
.spinner:after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  margin-top: -4.0625rem;
  margin-left: -4.0625rem;
  background-color: inherit;
  -webkit-animation: pluse 2s linear infinite;
  -ms-animation: pluse 2s linear infinite;
  -o-animation: pluse 2s linear infinite;
  animation: pluse 2s linear infinite;
  width: 8.125rem;
  height: 8.125rem;
  -webkit-border-radius: inherit;
  border-radius: inherit;
  opacity: 0;
  z-index: -2;
}
.spinner:after {
  -webkit-animation: pluse 2s linear 2.3s infinite;
  -ms-animation: pluse 2s linear 2.3s infinite;
  -o-animation: pluse 2s linear 2.3s infinite;
  animation: pluse 2s linear 2.3s infinite;
  -webkit-animation-delay: 0.5s;
  -ms-animation-delay: 0.5s;
  -o-animation-delay: 0.5s;
  animation-delay: 0.5s;
}

@-webkit-keyframes pluse {
  0% {
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(1.3);
    -ms-transform: scale(1.3);
    -o-transform: scale(1.3);
    transform: scale(1.3);
    opacity: 0;
  }
}

@-ms-keyframes pluse {
  0% {
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(1.3);
    -ms-transform: scale(1.3);
    -o-transform: scale(1.3);
    transform: scale(1.3);
    opacity: 0;
  }
}

@-o-keyframes pluse {
  0% {
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(1.3);
    -ms-transform: scale(1.3);
    -o-transform: scale(1.3);
    transform: scale(1.3);
    opacity: 0;
  }
}

@keyframes pluse {
  0% {
    -webkit-transform: scale(0);
    -ms-transform: scale(0);
    -o-transform: scale(0);
    transform: scale(0);
    opacity: 1;
  }
  100% {
    -webkit-transform: scale(1.3);
    -ms-transform: scale(1.3);
    -o-transform: scale(1.3);
    transform: scale(1.3);
    opacity: 0;
  }
}

/*=== Zoom Animation ===*/
.zoom-anim {
  -webkit-animation: zoom 8s linear infinite;
  -ms-animation: zoom 8s linear infinite;
  -o-animation: zoom 8s linear infinite;
  animation: zoom 8s linear infinite;
}
@-webkit-keyframes zoom {
  0% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.05);
    -ms-transform: scale(1.05);
    -o-transform: scale(1.05);
    transform: scale(1.05);
  }
  100% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}

@-ms-keyframes zoom {
  0% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.05);
    -ms-transform: scale(1.05);
    -o-transform: scale(1.05);
    transform: scale(1.05);
  }
  100% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}

@-o-keyframes zoom {
  0% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.05);
    -ms-transform: scale(1.05);
    -o-transform: scale(1.05);
    transform: scale(1.05);
  }
  100% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}

@keyframes zoom {
  0% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
  50% {
    -webkit-transform: scale(1.05);
    -ms-transform: scale(1.05);
    -o-transform: scale(1.05);
    transform: scale(1.05);
  }
  100% {
    -webkit-transform: scale(1);
    -ms-transform: scale(1);
    -o-transform: scale(1);
    transform: scale(1);
  }
}

/*=== Blob Animation ===*/
@-webkit-keyframes blob {
  0%, 100% {
    -webkit-border-radius: 44% 56% 47% 53% / 30% 47% 53% 70%;
    border-radius: 44% 56% 47% 53% / 30% 47% 53% 70%;
  }
  25% {
    -webkit-border-radius: 47% 53% 44% 56% / 53% 70% 30% 47%;
    border-radius: 47% 53% 44% 56% / 53% 70% 30% 47%;
  }
  50% {
    -webkit-border-radius: 30% 47% 53% 70% / 44% 56% 47% 53%;
    border-radius: 30% 47% 53% 70% / 44% 56% 47% 53%;
  }
  75% {
    -webkit-border-radius: 53% 70% 30% 47% / 47% 53% 44% 56%;
    border-radius: 53% 70% 30% 47% / 47% 53% 44% 56%;
  }
}

@-ms-keyframes blob {
  0%, 100% {
    -webkit-border-radius: 44% 56% 47% 53% / 30% 47% 53% 70%;
    border-radius: 44% 56% 47% 53% / 30% 47% 53% 70%;
  }
  25% {
    -webkit-border-radius: 47% 53% 44% 56% / 53% 70% 30% 47%;
    border-radius: 47% 53% 44% 56% / 53% 70% 30% 47%;
  }
  50% {
    -webkit-border-radius: 30% 47% 53% 70% / 44% 56% 47% 53%;
    border-radius: 30% 47% 53% 70% / 44% 56% 47% 53%;
  }
  75% {
    -webkit-border-radius: 53% 70% 30% 47% / 47% 53% 44% 56%;
    border-radius: 53% 70% 30% 47% / 47% 53% 44% 56%;
  }
}

@-o-keyframes blob {
  0%, 100% {
    -webkit-border-radius: 44% 56% 47% 53% / 30% 47% 53% 70%;
    border-radius: 44% 56% 47% 53% / 30% 47% 53% 70%;
  }
  25% {
    -webkit-border-radius: 47% 53% 44% 56% / 53% 70% 30% 47%;
    border-radius: 47% 53% 44% 56% / 53% 70% 30% 47%;
  }
  50% {
    -webkit-border-radius: 30% 47% 53% 70% / 44% 56% 47% 53%;
    border-radius: 30% 47% 53% 70% / 44% 56% 47% 53%;
  }
  75% {
    -webkit-border-radius: 53% 70% 30% 47% / 47% 53% 44% 56%;
    border-radius: 53% 70% 30% 47% / 47% 53% 44% 56%;
  }
}

@keyframes blob {
  0%, 100% {
    -webkit-border-radius: 44% 56% 47% 53% / 30% 47% 53% 70%;
    border-radius: 44% 56% 47% 53% / 30% 47% 53% 70%;
  }
  25% {
    -webkit-border-radius: 47% 53% 44% 56% / 53% 70% 30% 47%;
    border-radius: 47% 53% 44% 56% / 53% 70% 30% 47%;
  }
  50% {
    -webkit-border-radius: 30% 47% 53% 70% / 44% 56% 47% 53%;
    border-radius: 30% 47% 53% 70% / 44% 56% 47% 53%;
  }
  75% {
    -webkit-border-radius: 53% 70% 30% 47% / 47% 53% 44% 56%;
    border-radius: 53% 70% 30% 47% / 47% 53% 44% 56%;
  }
}

/*=== Blob 2 Animation ===*/
@-webkit-keyframes blob2 {
  0%, 100% {
    -webkit-border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
    border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
  }
  25% {
    -webkit-border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
    border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
  }
  50% {
    -webkit-border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
    border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
  }
  75% {
    -webkit-border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
    border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
  }
}

@-ms-keyframes blob2 {
  0%, 100% {
    -webkit-border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
    border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
  }
  25% {
    -webkit-border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
    border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
  }
  50% {
    -webkit-border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
    border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
  }
  75% {
    -webkit-border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
    border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
  }
}

@-o-keyframes blob2 {
  0%, 100% {
    -webkit-border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
    border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
  }
  25% {
    -webkit-border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
    border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
  }
  50% {
    -webkit-border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
    border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
  }
  75% {
    -webkit-border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
    border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
  }
}

@keyframes blob2 {
  0%, 100% {
    -webkit-border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
    border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
  }
  25% {
    -webkit-border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
    border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
  }
  50% {
    -webkit-border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
    border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
  }
  75% {
    -webkit-border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
    border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
  }
}

/*=== Blob 3 Animation ===*/
@-webkit-keyframes blob3 {
  0%, 100% {
    -webkit-border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
    border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
  }
  25% {
    -webkit-border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
    border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
  }
  50% {
    -webkit-border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
    border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
  }
  75% {
    -webkit-border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
    border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
  }
}

@-ms-keyframes blob3 {
  0%, 100% {
    -webkit-border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
    border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
  }
  25% {
    -webkit-border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
    border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
  }
  50% {
    -webkit-border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
    border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
  }
  75% {
    -webkit-border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
    border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
  }
}

@-o-keyframes blob3 {
  0%, 100% {
    -webkit-border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
    border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
  }
  25% {
    -webkit-border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
    border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
  }
  50% {
    -webkit-border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
    border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
  }
  75% {
    -webkit-border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
    border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
  }
}

@keyframes blob3 {
  0%, 100% {
    -webkit-border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
    border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
  }
  25% {
    -webkit-border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
    border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
  }
  50% {
    -webkit-border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
    border-radius: 45% 45% 55% 35% / 65% 30% 70% 30%;
  }
  75% {
    -webkit-border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
    border-radius: 55% 35% 45% 45% / 70% 30% 65% 30%;
  }
}

/*=== Slick Arrow ===*/
.slick-slider:not(.feat-caro):not(.shop-detail-nav-caro) > button.slick-arrow {
  position: absolute;
  right: 0;
  /*top: -6.5rem;*/
  top: -4.7rem; 
  background-color: transparent;
  -webkit-border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
  border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
  color: #fff;
  width: 4.4375rem;
  /*width: 3.4375rem;
  height: 3.125rem;*/
  height: 2.5em;
  z-index: 1;
}
.slick-slider:not(.feat-caro):not(.shop-detail-nav-caro) > button.slick-arrow:hover,
.slick-slider:not(.feat-caro):not(.shop-detail-nav-caro) > button.slick-arrow:focus {color: #fff;}
.slick-slider:not(.feat-caro):not(.shop-detail-nav-caro) > button.slick-arrow:before {
  content: "";
  top: 0;
  right: 0;
  left: 0;
  bottom: 0;
 /* -webkit-box-shadow: 0 3px 7px rgba(0,0,0,.1);
  -ms-box-shadow: 0 3px 7px rgba(0,0,0,.1);
  -o-box-shadow: 0 3px 7px rgba(0,0,0,.1);
  box-shadow: 0 3px 7px rgba(0,0,0,.1);
  -webkit-border-radius: inherit;
  border-radius: inherit;
  background-color: #fff;*/
  position: absolute;
  z-index: -1;
}
.slick-slider:not(.feat-caro):not(.shop-detail-nav-caro) > button.slick-prev {
  right: 22.75%;
  -webkit-border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
  border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
  font-size: 20px;
}
.slick-slider:not(.feat-caro):not(.shop-detail-nav-caro) > button.slick-next {right: 19.3%; font-size: 20px;}
.container .slick-slider:not(.feat-caro):not(.shop-detail-nav-caro) > button.slick-prev {/*right: 4.0625rem;*/right: 5.0625rem;}
.container .slick-slider:not(.feat-caro):not(.shop-detail-nav-caro) > button.slick-next {right: 0;}
.slick-slider:not(.feat-caro):not(.shop-detail-nav-caro) > button.slick-prev:hover {
  -webkit-animation: 2s linear blob3 infinite;
  -ms-animation: 2s linear blob3 infinite;
  -o-animation: 2s linear blob3 infinite;
  animation: 2s linear blob3 infinite;
  -webkit-border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
  border-radius: 70% 30% 65% 30% / 55% 35% 45% 45%;
}
.slick-slider:not(.feat-caro):not(.shop-detail-nav-caro) > button.slick-next:hover {
  -webkit-animation: 2s linear blob2 infinite;
  -ms-animation: 2s linear blob2 infinite;
  -o-animation: 2s linear blob2 infinite;
  animation: 2s linear blob2 infinite;
  -webkit-border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
  border-radius: 65% 30% 70% 30% / 45% 45% 55% 35%;
}

/*=== Line Animations ===*/
.lines {
  position: absolute;
  top: 0;
  left: 6.25rem;
  right: 6.25rem;
  height: 100%;
  margin: auto;
  z-index: -2;
}
.lines .line {
  position: absolute;
  width: 1px;
  height: 100%;
  top: 0;
  background: rgba(18,26,55,.1);
  overflow: hidden;
}
.lines .line:nth-child(1) {left: 0;}
.lines .line:nth-child(2) {left: 10%;}
.lines .line:nth-child(3) {left: 20%;}
.lines .line:nth-child(4) {left: 30%;}
.lines .line:nth-child(5) {left: 40%;}
.lines .line:nth-child(6) {right: 50%;}
.lines .line:nth-child(7) {right: 40%;}
.lines .line:nth-child(8) {right: 30%;}
.lines .line:nth-child(9) {right: 20%;}
.lines .line:nth-child(10) {right: 10%;}
.lines .line:nth-child(11) {right: 0%;}

/*=== Social Media ===*/
.facebook,
.facebook-hvr:hover,
.facebook-hvr:focus {
  background-color: #3b5999;
  border-color: #3b5999;
}
.twitter,
.twitter-hvr:hover,
.twitter-hvr:focus {
  background-color: #55acee;
  border-color: #55acee;
}
.google,
.google-hvr:hover,
.google-hvr:focus {
  background-color: #dd4b39;
  border-color: #dd4b39;
}
.pinterest,
.pinterest-hvr:hover,
.pinterest-hvr:focus {
  background-color: #bd081c;
  border-color: #bd081c;
}
.linkedin,
.linkedin-hvr:hover,
.linkedin-hvr:focus {
  background-color: #0077B5;
  border-color: #0077B5;
}
.youtube,
.youtube-hvr:hover,
.youtube-hvr:focus {
  background-color: #cd201f;
  border-color: #cd201f;
}
.instagram,
.instagram-hvr:hover,
.instagram-hvr:focus {
  background-color: #e4405f;
  border-color: #e4405f;
}
.vimeo,
.vimeo-hvr:hover,
.vimeo-hvr:focus {
  background-color: #8cbe0b;
  border-color: #8cbe0b;
}
.skype,
.skype-hvr:hover,
.skype-hvr:focus {
  background-color: #00AFF0;
  border-color: #00AFF0;
}
.rss,
.rss-hvr:hover,
.rss-hvr:focus {
  background-color: #f26522;
  border-color: #f26522;
}
.facebook-clr,
.facebook:hover,
.facebook:focus {color: #3b5999;}
.twitter-clr,
.twitter:hover,
.twitter:focus {color: #55acee;}
.google-clr,
.google:hover,
.google:focus {color: #dd4b39;}
.pinterest-clr,
.pinterest:hover,
.pinterest:focus {color: #bd081c;}
.linkedin-clr,
.linkedin:hover,
.linkedin:focus {color: #0077B5;}
.youtube-clr,
.youtube:hover,
.youtube:focus {color: #cd201f;}
.instagram-clr,
.instagram:hover,
.instagram:focus {color: #e4405f;}
.vimeo-clr,
.vimeo:hover,
.vimeo:focus {color: #8cbe0b;}
.skype-clr,
.skype:hover,
.skype:focus {color: #00AFF0;}
.rss-clr,
.rss:hover,
.rss:focus {color: #f26522;}

/*===== Theme Style =====*/

/*===== Header Styles =====*/
header {
  position: relative;
  width: 100%;
  z-index: 9999;
}
nav ul li {
  font-family: Poppins;
  font-weight: 600;
  position: relative;
  font-size: 0.875rem;
  text-transform: initial;
}
nav ul li a {
  display: block;
  position: relative;
}
nav > div > ul > li {
  color: #fff;
  margin-right: 0.5rem;
  line-height: 3.875rem;
  font-size: 0.8rem;
  text-transform: uppercase;
  font-weight: normal;
}
.header-right-btns > a {
  color: #fff;
  font-size: 1.125rem;
  display: inline-block;
  margin-left: .35rem;
}
.topbar-info-list > li i {margin-right: 10px;}
.topbar {padding: 1rem 0;}
.bg-color1 .topbar-info-list > li,
.bg-color5 .topbar-info-list > li {color: #d5d5d5;}
.topbar-info-list > li:not(:first-child) {margin-left: 2.0625rem;}
.topbar-links > li {
  font-weight: 600;
  position: relative;
  font-size: 0.8125rem;
 /* color: #d5d5d5;*/
  color: #ffffff;
}
.topbar-links > li:not(:first-child) {
  margin-left: 1rem;
  padding-left: 1.0625rem;
}
.topbar-links > li:not(:first-child):before {
  content: "I";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 0;
}
.logo-info-bar-inner {padding: 1.5625rem 0 3.4375rem;}
.logo {display: inline-block;}
.logo + .social-links,
.call-us + .add-cart {margin-left: 9.375rem;}
.social-links > a {
  display: inline-block;
  font-size: .9rem;
  color: #444;
  line-height: 2.5rem;
  width: 2.5rem;
  text-align: center;
  height: 2.5rem;
  border-radius: 50%;
  background-color: #ecedef;
}
.social-links > a:not(:first-child) {margin-left: 5px;}
.social-links > a:hover,
.social-links > a:focus {color: #fff;}
.call-us {
  position: relative;
  padding-left: 2.9rem;
}
.call-us > i {
 font-size: 2.1875rem;
  position: absolute;
  left: 0;
  /*top: 0;
    position: absolute;
    left: 0;
    line-height: 2.5rem;
    width: 2.5rem;
    text-align: center;
    color: #fff;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    height: 2.5rem;*/
}

.call-us > span {
  display: block;
  color: #777;
  font-size: 0.875rem;
}
.call-us > strong {
  font-size: 1.125rem;
  color: var(--color1);
  font-family: Poppins;
}
.add-cart > a {
  position: relative;
  display: inline-block;
  padding-left: 3.125rem;
  color: var(--color1);
  font-weight: 600;
  font-family: Poppins;
  font-size: 0.875rem;
}
.add-cart > a i {
  position: absolute;
  left: 0;
  line-height: 2.5rem;
  width: 2.5rem;
  text-align: center;
  color: #fff;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  height: 2.5rem;
}
.add-cart > a span {
  font-size: 0.8125rem;
  color: #777;
  font-weight: 400;
  font-family: Open Sans;
}
.menu-wrap {
  margin: -1.9375rem 0;
  z-index: 1;
  position: relative;
}
nav {
  -webkit-border-radius: 5px;
  border-radius: 5px;
  padding-left: 1.5625rem;
}
.header-right-btns > a.get-quote {
  display: block;
  line-height: 3.875rem;
  -webkit-border-radius: 0 5px 5px 0;
  border-radius: 0 5px 5px 0;
  font-size: 0.875rem;
  padding: 0 1rem;
  background-color: rgba(0,0,0,.3);
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.header-right-btns > a.get-quote:before {
  content: "";
  position: absolute;
  top: 0;
  left: 0;
  right: 80%;
  bottom: 0;
  background-color: #000;
  opacity: 0;
  z-index: -1;
}
.header-right-btns > a.get-quote:hover:before,
.header-right-btns > a.get-quote:focus:before {
  right: 0;
  opacity: .3;
}
.header-right-btns > a.get-quote i {margin: 0 8px;}
.header-right-btns > a.get-quote:hover,
.header-right-btns > a.get-quote:focus,
.header-right-btns > a.get-quote:hover i,
.header-right-btns > a.get-quote:focus i {color: #fff;}

/*=== Header Style 2 ===*/
header.style2 .logo-info-bar-inner {padding-bottom: 1.5625rem;}
header.style2 .menu-wrap {margin: 0;}
header.style2 .menu-wrap nav {background-color: #970733;}
header.style2 {margin-bottom: -10.3rem;}
header.style2 .social-links > a {
  color: #fff;
  background-color: rgba(255, 255, 255, .15);
}
header.style2 .call-us > span {color: #d5d5d5;}
header.style2 .call-us > strong,
header.style2  .add-cart > a {color: #fff;}
header.style2 .add-cart > a span {color: inherit;}
header.style2 .header-right-btns > a.get-quote:hover,
header.style2 .header-right-btns > a.get-quote:focus {background-color: #970733;}

/*=== Header Style 3 ===*/
header.style3 nav ul li:hover > a,
header.style3 nav ul li.active > a,
header.style3 nav ul li > a:focus {color: var(--color1);}
header.style3 .header-right-btns > a.get-quote {background-color: rgba(255, 255, 255, .15)}
header.style3 .header-right-btns > a.get-quote:hover,
header.style3 .header-right-btns > a.get-quote:focus {background-color: #1a1a1a;}

/*=== Dropdown ===*/
nav > div > ul > li.menu-item-has-children > a {padding-right: 0.8rem;}
nav > div > ul > li.menu-item-has-children > a::before {
  content: "\f107";
  font-family: "Font Awesome 5 Free";
  position: absolute;
  right: 0;
  top: 0;
  color: inherit;
  font-weight: 700;
}
nav > div ul ul {
  position: absolute;
  left: 0;
  top: 100%;
  min-width: 15rem;
  line-height: initial;
  opacity: 0;
  visibility: hidden;
  -webkit-box-shadow: 0 0 1.875rem rgba(0,0,0,.08);
  -ms-box-shadow: 0 0 1.875rem rgba(0,0,0,.08);
  -o-box-shadow: 0 0 1.875rem rgba(0,0,0,.08);
  box-shadow: 0 0 1.875rem rgba(0,0,0,.08);
}
nav > div ul ul ul {
  top: 0;
  left: 100%;
}
nav > div ul ul ul:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  bottom: 20%;
  width: 0.375rem;
  z-index: 1;
}
nav > div ul ul li {
  font-size: 0.875rem;
  font-weight: 400;
  margin-top: 20px;
  opacity: 0;
  visibility: hidden;
}
nav > div ul ul li a {
  display: block;
  background-color: #fff;
  padding: 0.625rem 1.875rem;
  position: relative;
}
nav > div ul ul li a:before {
  content: "\f061";
  font-family: "Font Awesome 5 Free";
  background-color: transparent;
  font-weight: 900;
  right: auto;
  left: 1.25rem;
  top: 11px;
  position: absolute;
  opacity: 0;
}
nav > div ul ul li:hover > a,
nav > div ul ul li a:focus {
  background-color: #f7f7f7;
  padding-left: 3.125rem;
}
nav > div ul ul li:hover > a:before,
nav > div ul ul li a:focus:before {
  left: 2rem;
  opacity: 1;
  }
nav > div ul ul li + li {border-top: 0.0625rem solid #ededed;}
nav > div ul li.menu-item-has-children:hover > ul > li {
  margin-top: 0;
  opacity: 1;
  visibility: visible;
}
nav > div ul ul ul li {margin: 0 0 0 10px;}
nav > div ul ul li.menu-item-has-children:hover > ul > li {margin-left: 0;white-space: nowrap;}
nav > div ul li.menu-item-has-children:hover > ul {
  opacity: 1;
  visibility: visible;
}
nav > div ul li.menu-item-has-children:hover > ul:before {bottom: 0;}
nav > div ul li.menu-item-has-children:hover > ul a:before {color: #00599a!important;}
.menu-item-has-children.list-unstyled ul li a:hover{color: #00599a!important;}
.menu-item-has-children ul li a:hover{color: #00599a!important;}
:where(ul li > a):focus {color: #00487D;} /* retour du 10 nov. : plus de !important (illisible sur fond foncé) */
/*=== Sticky Header ===*/
.sticky-menu {
  position: fixed;
  top: -5rem;
  left: 0;
  right: 0;
  background-color: #fff;
  z-index: 9999;
  -webkit-box-shadow: 0 0 1.25rem rgba(0,0,0,.15);
  -ms-box-shadow: 0 0 1.25rem rgba(0,0,0,.15);
  -o-box-shadow: 0 0 1.25rem rgba(0,0,0,.15);
  box-shadow: 0 0 1.25rem rgba(0,0,0,.15);
  opacity: 0;
  visibility: hidden;
}
body.sticky .sticky-menu {
  top: 0;
  opacity: 1;
  visibility: visible;
}
.sticky-menu nav > div > ul > li {
  color: var(--color1);
  line-height: 4rem;
}
.sticky-menu nav > div > ul > li:last-child {margin-right: 0;}

/*===== Responsive Header =====*/
.rspn-hdr {
  display: none;
  width: 100%;
  position: relative;
  z-index: 999;
}
.rspn-mdbr {
  background-color: #252a2c;
  width: 100%;
  display: flex;
  justify-content: space-around;
  flex-wrap: wrap;
}
.rspn-scil {display: inline-flex;}
.rspn-scil > a {
  background-color: rgba(255,255,255,.05);
  height: 2.5rem;
  width: 2.5rem;
  line-height: 2.5rem;
  text-align: center;
  color: #fff;
}
.rspn-scil > a:not(:first-child) {margin-left: 1px;}
.rspn-srch {
 /* height: 2.5rem;*/
  position: relative;
 /* flex: 0 0 calc(100% - 10.1875rem);
  max-width: calc(100% - 10.1875rem);*/
}
.rspn-srch-web {
 /* height: 1.5rem;*/
  position: relative;
 /* flex: 0 0 calc(100% - 11.1875rem);
   max-width: calc(100% - 10.1875rem); */
}
.rspn-srch > input {
  background-color: transparent;
  border: 0 none;
  /*color: #7e7e7e;*/
  color: #ffffff;
  font-size: .75rem;
  height: 100%;
  padding: 0 4.125rem 0 5%;
 /* padding: 0 2.125rem 0 5%;*/
  width: 100%;
  border-bottom: 1px solid;
}
.rspn-srch > input:focus {font-style: normal;}
.rspn-srch > button {
  background-color: transparent;
  border: 0;
  color: #fff;
  font-size: .75rem;
  height: 100%;
  position: absolute;
  right: 0px;
}
.lg-mn {
  padding: 1.125rem 5rem 1.125rem .9375rem;
  position: relative;
  width: 100%;
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-between;
}
.rspn-cnt {display: inline-block;}
.rspn-cnt > span {
  color: #777;
  display: inline-block;
  margin: 5px .5rem;
}
.rspn-cnt > span i {margin-right: .5rem;}
.rspn-mnu-btn {
  background-color: var(--color1);
  color: #fff;
  cursor: pointer;
  font-size: 0.875rem;
  height: 2.5rem;
  line-height: 2.5rem;
  position: absolute;
  right: 1.25rem;
  text-align: center;
  top: 50%;
  width: 2.5rem;
  margin-top: -1.25rem;
}
/*=== Responsive Menu ===*/
.rsnp-mnu {
  background-color: #0c0c0c;
  bottom: 0;
  opacity: 0;
  padding: 5.3125rem 2.5rem 3.125rem;
  position: fixed;
  right: -21.875rem;
  top: 0;
  visibility: hidden;
  z-index: 99999;
  max-width: 21.875rem;
  width: 100%;
}
.rsnp-mnu.slidein {
  opacity: 1;
  right: 0;
  visibility: visible;
}
.rspn-mnu-cls {
  background-color: #303030;
  color: #fff;
  cursor: pointer;
  font-size: 0.875rem;
  height: 2.5rem;
  line-height: 2.5rem;
  position: absolute;
  right: .75rem;
  text-align: center;
  top: .75rem;
  width: 2.5rem;
}
.rsnp-mnu > ul {
  display: inline-block;
  list-style: outside none none;
  margin-bottom: 0;
  padding-left: 0;
  overflow-y: auto !important;
  width: 100% !important;
}
.rsnp-mnu > ul > li {
  color: #fff;
  font-size: 1rem;
  font-weight: 600;
  position: relative;
  text-transform: uppercase;
  width: 100%;
}
.rsnp-mnu > ul > li a {
  color: inherit;
  display: block;
}
.rsnp-mnu > ul > li:not(:first-child) {margin-top: 1.25rem;}
.rsnp-mnu > ul ul {
  display: none;
  list-style: outside none none;
  margin-bottom: 0;
  padding-left: 1.25rem;
  opacity: 1;
  position: static;
  visibility: visible;
}
.rsnp-mnu ul li.menu-item-has-children.active > a {margin-bottom: 15px;}
.rsnp-mnu > ul li.menu-item-has-children > a::before {
  content: "\f107";
  font-family: "Font Awesome 5 Free";
  position: absolute;
  right: 0;
  top: 0;
  color: inherit;
  font-weight: 900;
}
.rsnp-mnu > ul ul > li {
  color: #a4a4a4;
  font-size: 0.9375rem;
  position: relative;
  text-transform: initial;
  width: 100%;
  font-weight: 400;
}
.rsnp-mnu > ul ul > li:not(:first-child) {margin-top: .75rem;}

/*===== Featured Area Style 1 =====*/
.feat-item {
  position: relative;
  z-index: 1;
  background-size: cover;
  background-position: center;
  padding: 10.8125rem 0;
}
.feat-img {
  top: 0;
  background-size: cover;
  background-position: center;
  width: 100%;
  -webkit-transition: all 2s cubic-bezier(0.7, 0, 0.3, 1);
  -ms-transition: all 2s cubic-bezier(0.7, 0, 0.3, 1);
  -o-transition: all 2s cubic-bezier(0.7, 0, 0.3, 1);
  transition: all 2s cubic-bezier(0.7, 0, 0.3, 1);
  -webkit-transform: scale(1.3);
  -ms-transform: scale(1.3);
  -o-transform: scale(1.3);
  transform: scale(1.3);
  height: 100%;
}
.feat-img:before {
  content: "";
  background-color: var(--color7);
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  opacity: .3;
  z-index: -1;
}
.slick-active .feat-img {
  -webkit-transform: scale(1);
  -ms-transform: scale(1);
  -o-transform: scale(1);
  transform: scale(1);
}
.feat-caro {position: relative;}
.feat-caro > button.slick-arrow {
  position: absolute;
  top: 50%;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  line-height: 5.625rem;
  height: 5.625rem;
  width: 5.625rem;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  color: #fff;
  font-size: 2rem;
  z-index: 1;
  background-color: transparent;
}
.feat-caro > button.slick-prev {left: 1rem;}
.feat-caro > button.slick-next {right: 1rem;}
.feat-caro > button.slick-arrow:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  border-radius: inherit;
  opacity: .1;
  background-color: #fff;
}
.feat-caro .slick-dots {
  margin-top: 0;
  position: absolute;
  left: 0;
  right: 0;
  bottom: 2.5rem;
}
.feat-caro .slick-dots > li button {background-color: rgba(255,255,255,.15);}
.feat-cap {
  position: relative;
  max-width: 58%;
  z-index: 1;
  text-shadow: 1px 0 5px #333;
  /*padding-left: 60px;*/
}
.feat-cap > h2 {
  color: #fff;
  font-size: 3.1rem;
  font-weight: 400;
}
.feat-cap > h1 + p,
.feat-cap > h2 + p {margin-top: 10px;}
.feat-cap > p {
  font-size: 1.125rem;
  color: #fff;
  line-height: 2rem;
}
.feat-cap > p + .feat-cap-innr {margin-top: 2.5rem;}
.feat-cap-innr > a + a {margin-left: 1.25rem;}
.video-btn {
  text-align: initial;
  display: inline-block;
  vertical-align: middle;
  color: #fff;
  position: relative;
  font-size: 1rem;
  font-style: italic;
  padding: 6px 0 6px 4.125rem;
  font-weight: 600;
}
.video-btn > span {
  position: absolute;
  left: 0;
  text-align: center;
  height: 3.6875rem;
  width: 3.6875rem;
  line-height: 3.6875rem;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  background-color: rgba(255,255,255,.1);
  top: 0;
}
.video-btn:hover,
.video-btn:focus {color: #fff;}

/*===== Featured Area Style 2 =====*/
.feat-cap > h1 {
  font-size: 4.375rem;
  color: #fff;
  font-weight: 400;
}
.feat-wrap.style2 .feat-cap {
  max-width: 80%;
  display: inline-block;
}
.feat-cap > h1 strong {font-size: 3.4375rem;}
.feat-wrap.style2 .feat-item {padding-top: 19.6875rem;}
.feat-wrap.style2 .feat-cap > p {
  max-width: 70%;
  display: inline-block;
}

/*===== Theme Button =====*/
.thm-btn {
  display: inline-block;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  color: #fff;
  position: relative;
  z-index: 1;
  font-size: 1rem;
  font-family: Poppins;
  font-weight: 600;
  padding: 1.05rem 2.8rem;
  overflow: hidden;
  vertical-align: middle;
}
.thm-btn:before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  z-index: -1;
  background-color: #000;
  opacity: .05;
  -webkit-transform: translate(-30%, -120%) rotate(-55deg);
  -ms-transform: translate(-30%, -120%) rotate(-55deg);
  -o-transform: translate(-30%, -120%) rotate(-55deg);
  transform: translate(-30%, -120%) rotate(-55deg);
  width: 180%;
  height: 280%;
}
.thm-btn > i {margin-left: 10px;}
.thm-btn:hover{color: #fff!important;background-color: #970733!important; }
.bg-rouge:hover{color: #fff!important;background-color: var(--theme-color)!important; }
.thm-btn:focus {color: #fff!important;}
.thm-btn:hover:before,
.thm-btn:focus:before {
  width: 200%;
  -webkit-transform: rotate(0);
  -ms-transform: rotate(0);
  -o-transform: rotate(0);
  transform: rotate(0);
}

/*===== Simple Button =====*/
.simple-btn {
  color: #fff;
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 600;
  padding: 9.5px 1.5625rem;
}
.simple-btn:hover,
.simple-btn:focus {color: #fff!important;}
.simple-btn.thm-bg:hover,
.simple-btn.thm-bg:focus {background-color: var(--color1);
}
/*===== White Button =====*/
.white-btn {
  color: var(--theme-color);
  border: 1px solid var(--theme-color);
  text-transform: uppercase;
  font-size: 14px;
  font-weight: 600;
  padding: 8.5px 1.5625rem;
}
.white-btn:hover,
.white-btn:focus {color: var(--theme-color)!important;}
.white-btn.thm-bg:hover,
.white-btn.thm-bg:focus {background-color: #fff;}

/*===== Sec Title =====*/
.sec-title {
  position: relative;
  margin-bottom: 2.8125rem;
}
.col-lg-4 .sec-title-inner {max-width: 100%;}
.sec-title-inner {max-width: 45%;}
.sec-title-inner > span {
  font-size: 1rem;
  letter-spacing: .6px;
  font-weight: 600;
}
.sec-title-inner > span + h3 {margin-top: 0.4rem;}
.sec-title-inner > h3 {font-size: 2.1rem;}
.sec-title-inner > h2 {
  font-size: 2rem;
  font-weight: 500;
}
.sec-title-inner > h2 + p {margin-top: .9375rem;}
.title-with-shape:before {
  content: "";
  height: 3.75rem;
  width: 2.6875rem;
  background-size: contain;
  background-position: center;
  background-image: url(../images/title-shp1.png);
  position: absolute;
  left: -4.6875rem;
  opacity: .2;
  top: 0;
}

/*=== Light Title ===*/
.dark-layer .sec-title-inner > h2,
.dark-layer .sec-title-inner > h3,
.dark-layer2 .sec-title-inner > h2,
.dark-layer2 .sec-title-inner > h3,
.dark-layer3 .sec-title-inner > h2,
.dark-layer3 .sec-title-inner > h3,
.blue-layer .sec-title-inner > h2,
.blue-layer .sec-title-inner > h3 {color: #fff;}

/*=== Ver 2 ===*/
.sec-title.v2 .sec-title-inner > span {font-size: 1.125rem;}

/*===== About Style 1 =====*/
.about-desc > h2 {
  font-size: 2rem;
  line-height: 3rem;
  font-weight: 400;
}
.about-desc > h2 + p {margin-top: 0.875rem;}
.about-desc > p {
  font-size: 1rem;
  line-height: 1.8rem;
  color: #414042;
  margin-top: 0.875rem;
}
.about-content-wrap + .about-image {margin-top: 4.6875rem;}
.about-image > span {
  position: absolute;
  color: #fff;
  text-align: center;
  font-family: Poppins;
  font-weight: 600;
  font-size: 1.5rem;
  line-height: initial;
  z-index: 1;
  height: 6.5rem;
  width: 7.5rem;
  padding: 1.5rem 0.9375rem;
  -webkit-border-radius: 44% 56% 47% 53% / 30% 47% 53% 70%;
  border-radius: 44% 56% 47% 53% / 30% 47% 53% 70%;
  background-color: var(--color2);
  left: -3.75rem;
  top: -3.25rem;
  -webkit-animation: blob 6s linear infinite;
  -ms-animation: blob 6s linear infinite;
  -o-animation: blob 6s linear infinite;
  animation: blob 6s linear infinite;
}
.about-image > span i {
  font-style: normal;
  font-size: 0.875rem;
  font-family: Open Sans;
  font-weight: 400;
  margin-top: -5px;
}
.about-image > span:before {
  content: "";
  border: 2px dashed var(--color2);
  position: absolute;
  left: -1.25rem;
  right: -1.25rem;
  top: -1.25rem;
  bottom: -1.25rem;
  z-index: -1;
  -webkit-border-radius: 50%;
  border-radius: 50%;
}
.about-image > a,
.post-detail-gallery-video-box > a {
  position: absolute;
  left: 50%;
  top: 50%;
  background-color: #fff;
  line-height: 6.4375rem;
  width: 6.4375rem;
  height: 6.4375rem;
  text-align: center;
  font-size: 1.25rem;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
.about-image > a:hover,
.about-image > a:focus,
.post-detail-gallery-video-box > a:hover,
.post-detail-gallery-video-box > a:focus {color: #fff;}

/*===== About Style 2 =====*/
.about-desc{text-align: justify;}
.about-wrap.style2 .about-desc,
.about-wrap.style2 .serv-wrap {padding-right: 3rem;}
.about-wrap.style2 .about-image > span {
  left: 50%;
  -webkit-transform: translateX(-50%);
  -ms-transform: translateX(-50%);
  -o-transform: translateX(-50%);
  transform: translateX(-50%);
  top: 3.125rem;
}

/*===== Services Style 1 =====*/
.serv-box {
  display: flex;
  margin-top: 2.5rem;
}
.serv-box > i {
  font-size: 3.5rem;
  line-height: initial;
  position: relative;
  top: -8px;
}
.serv-box > i + .serv-box-inner {margin-left: 1.25rem;}
.serv-box-inner > h3 {
  font-size: 1rem;
  font-weight: initial;
}
.serv-box-inner > h3 + p {margin-top: 10px;}
.serv-box:hover > i,
.serv-box2:hover > i {
  -webkit-transform: rotateY(180deg);
  -ms-transform: rotateY(180deg);
  -o-transform: rotateY(180deg);
  transform: rotateY(180deg);
}

/*===== Services Style 2 =====*/
.serv-box2 {
  margin-bottom: 1.875rem;
  padding: 3.125rem 1.5625rem 1.25rem;
  z-index: 1;
  background-position: center;
  background-size: cover;
  overflow: hidden;
  /* border: 1px solid #eaeaea; */
}
.serv-box2:hover {border-color: transparent;}
.serv-box2::before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background-color: #fff;
  z-index: -1;
}
.serv-box2:hover:before {
  opacity: .9;
  background-color: var(--color5);
}
.serv-box2 > i {
  font-size: 4.375rem;
  display: inline-block;
  line-height: 4.375rem;
}
.serv-box2 > i + .serv-box-inner {margin-top: 1.5625rem;}
.serv-box-inner > h3 + span {margin-top: 1.25rem;}
.serv-box-inner > p + span {margin-top: 1.875rem;}
.serv-box-inner > p + span {padding-top: 1.25rem;}
.serv-box-inner > span {
  font-family: Open Sans;
  font-size: 0.875rem;
  color: #414042;
  position: relative;
  font-weight: 600;
}
.serv-box-inner > span:before {
  content: "";
  background-color: #eaeaea;
  top: 0;
  position: absolute;
  left: -1.5625rem;
  right: -1.5625rem;
  height: 1px;
}
.serv-box-inner > span + p {margin-top: 8px;}
.serv-box-inner > span i {font-style: normal;}
.serv-box2:hover > i,
.serv-box2:hover .serv-box-inner > h3,
.serv-box2:hover .serv-box-inner > span,
.serv-box2:hover .serv-box-inner > p {color: #fff;}
.serv-box2:hover .serv-box-inner > span i {color: inherit;}
.serv-box2 .serv-box-inner > h3 a:hover,
.serv-box2 .serv-box-inner > h3 a:focus {color: #333;}

/*===== Facts Style =====*/
.serv-wrap + .facts-wrap {
  margin-top: 4.375rem;
  margin-bottom: -6.75rem;
}
.facts-wrap {
  z-index: 1;
  padding: 0.75rem 0 0.5625rem;
  -webkit-box-shadow: 0 3px 7px rgba(0,0,0,.1);
  -ms-box-shadow: 0 3px 7px rgba(0,0,0,.1);
  -o-box-shadow: 0 3px 7px rgba(0,0,0,.1);
  box-shadow: 0 3px 7px rgba(0,0,0,.1);
}
.fact-box {
  /* margin-bottom: 2.1875rem;*/
   padding: 15px 15px;
 }
.fact-box > h2 {
  font-size: 2rem;
  font-weight: 400;
  line-height: 1;
}
.fact-box > h2 sup {
  font-size: 2.25rem;
  font-weight: 600;
  line-height: 1;
  top: -1.4rem;
}
.fact-box > h2 + h4 {margin-top: .9375rem;}
.fact-box > h4 {
  font-size: 1.2rem;
  font-family: Open Sans;
  font-weight: 400;
  line-height: 1;
}
.thm-layer .fact-box > h2,
.thm-layer .fact-box > h4 {color: #fff;}

/*===== Project Style =====*/
.proj-box {
  padding-top: 1.875rem;
  margin-bottom: 1.875rem;
}
.proj-thumb > a {
  display: block;
  position: relative;
}
.proj-thumb > a:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background-color: var(--color1);
  z-index: 1;
  opacity: 0;
}
.proj-box:hover .proj-thumb img {
  -webkit-transform: scale(1.04) rotate(1deg);
  -ms-transform: scale(1.04) rotate(1deg);
  -o-transform: scale(1.04) rotate(1deg);
  transform: scale(1.04) rotate(1deg);
}
.proj-box:hover .proj-thumb > a:before {opacity: .4;}
.proj-info {
  top: 0;
  left: 0rem;
  right: 0;
  -webkit-box-shadow: 0 3px 7px rgba(0,0,0,.1);
  -ms-box-shadow: 0 3px 7px rgba(0,0,0,.1);
  -o-box-shadow: 0 3px 7px rgba(0,0,0,.1);
  box-shadow: 0 3px 7px rgba(0,0,0,.1);
  background-color: #fff;
  -webkit-border-radius: 5px 5px 0 5px;
  border-radius: 5px 5px 0 5px;
  z-index: 1;
  padding: 1.8rem .75rem 1.375rem 4.375rem;
  height: 70px;
}
.proj-info > i {
  position: absolute;
  color: var(--color1);
  opacity: .5;
  font-size: 2.5rem;
  left: 1.25rem;
  top: 0;
  line-height: 5.15rem;
}
.proj-info > h3 {
  font-size: 1rem;
  font-weight: 400;
}
.proj-info > h3 a:hover,
.proj-info > h3 a:focus {color: #333;}
.proj-box:hover .proj-info > i,
.proj-box:hover .proj-info > h3 {
  color: #fff;
  opacity: 1;
}

/*===== Get In Touch Style 1 =====*/
.getin-touch-title {position: relative;}
.getin-touch-title.with-shap {padding-left: 4.375rem;}
.with-shap:before {
  content: "";
  height: 3.75rem;
  width: 2.6875rem;
  position: absolute;
  left: 0;
  top: 0;
  opacity: .5;
  background-size: contain;
  background-position: center;
  background-image: url(../images/title-shp2.png);
  z-index: 1;
}
.getin-touch-title > span {font-size: 1.125rem;}
.getin-touch-title > span + h2 {margin-top: 6px;}
.getin-touch-title > h2 {
  font-size: 3rem;
  font-weight: 500;
}
.getin-touch-title > h2 + p {margin-top: 12px;}
.getin-touch-title > p {font-size: 1.125rem;}
.blue-layer .getin-touch-title > h2,
.blue-layer .getin-touch-title > p,
.blue-layer .getin-touch-title > span {color: #fff;}

.getin-touch-blob {
  width: 40rem;
  height: 20rem;
  left: 0;
  -webkit-transform: translateX(-45%);
  -ms-transform: translateX(-45%);
  -o-transform: translateX(-45%);
  transform: translateX(-45%);
  top: -3rem;
  -webkit-border-radius: 40% 45% 50% 30% / 60% 35% 50% 40%;
  border-radius: 40% 45% 50% 30% / 60% 35% 50% 40%;
  z-index: -1;
}
.getin-touch-blob:before,
.getin-touch-blob:after {
  content: "";
  background-color: inherit;
  background-size: cover;
  background-position: center;
  background-blend-mode: multiply;
  position: absolute;
  height: inherit;
  width: inherit;
  top: 0;
  left: 0;
}
.getin-touch-blob:before {
  -webkit-animation: zoom 8s linear infinite;
  -ms-animation: zoom 8s linear infinite;
  -o-animation: zoom 8s linear infinite;
  animation: zoom 8s linear infinite;
  background-image: url(../images/bg-shap1.jpg);
}
.getin-touch-blob:after {opacity: .1;}

/*===== Get In Touch Style 2 =====*/
.getin-touch-wrap.style2 {padding: 2.8125rem 5rem;}
.getin-touch-wrap.style2 .getin-touch-title > h2 {font-size: 2rem;}
.thm-layer .getin-touch-title > h2 {color: #fff;}
.getin-touch-wrap.style2 .getin-touch-btn::before,
.getin-touch-wrap.style2 .getin-touch-btn::after {display: none;}

/*===== Solutions Style =====*/
.sec-title2 {margin-bottom: 2.8125rem;}
.sec-title-inner2 {max-width: 60%;}
.sec-title-inner2 > h2 {
  font-size: 2.5rem;
  position: relative;
  display: inline-block;
}
.sec-title-inner2 > h2 i {
  color: #fff;
  position: absolute;
  height: 3.5rem;
  width: 3.5rem;
  font-size: 0.875rem;
  font-family: Open Sans;
  font-weight: 600;
  text-align: center;
  font-style: normal;
  -webkit-border-radius: 10px;
  border-radius: 10px;
  padding: 11px;
  bottom: 1.125rem;
  right: -1.875rem;
}
.sec-title-inner2 > h2 i::before,
.sec-title-inner2 > h2 i::after {
  content: "";
  background-color: var(--color2);
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  z-index: -1;
  -webkit-transform: rotate(20deg);
  -ms-transform: rotate(20deg);
  -o-transform: rotate(20deg);
  transform: rotate(20deg);
  -webkit-border-radius: inherit;
  border-radius: inherit;
}
.sec-title-inner2 > h2 i::after {
  -webkit-transform: rotate(153deg);
  -ms-transform: rotate(153deg);
  -o-transform: rotate(153deg);
  transform: rotate(153deg);
}
.sec-title-inner2 > h2 + p {margin-top: 1.0625rem;}
.sec-title-inner2 > p  {font-size: 1.25rem;}
.solutions-content-wrap {padding-left: 2.25rem;}
.solutions-content-wrap > h2 {font-size: 2rem;}
.solutions-content-wrap > h2 + ul {margin-top: 0.9375rem;}
.solutions-list > li {
  padding: 1.5625rem 0 .75rem 2.5rem;
  position: relative;
  border-bottom: 1px solid #ecedef;
}
.solutions-list > li > i {
  position: absolute;
  left: 0;
  top: 1.5625rem;
  height: 1.5625rem;
  width: 1.5625rem;
  line-height: 1.5625rem;
  /*font-family: Open Sans;*/
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color1);
  background-color: #ecedef;
  text-align: center;
}
.solutions-list > li:hover > i {color: #fff;}
.solutions-list > li > h4 {
  font-size: 1rem;
  font-weight: 400;
}
.solutions-list > li > h4 + p {margin-top: 0.8rem;}

/*===== Testimonials Style 1 =====*/
.testi-wrap > h2 {
  text-align: center;
  font-size: 3rem;
}
.dark-layer2 .testi-wrap > h2 {color: #fff;}
.testi-caro .slick-list {margin: 0 -0.9375rem;}
.testi-box-wrap {padding: 0 0.9375rem;}
.testi-box {
  display: flex;
  align-items: center;
  margin-bottom: 1.875rem;
}
.testi-wrap > h2 + .testi-caro,
.testi-wrap > h2 + .row {margin-top: 3.125rem;}
.testi-img {
  flex: 0 0 10.625rem;
  max-width: 10.625rem;
  position: relative;
  padding-top: 10px;
}
.testi-img + .testi-info {padding-left: 1.875rem;}
/* .testi-img > img {
  -weebkit-clip-path: polygon(59% 0, 100% 0, 100% 35%, 100% 74%, 88% 100%, 35% 74%, 10% 94%, 0 70%, 0 32%, 0 0);
  clip-path: polygon(59% 0, 100% 0, 100% 35%, 100% 74%, 88% 100%, 35% 74%, 10% 94%, 0 70%, 0 32%, 0 0);
  -webkit-border-radius: 50%;
  border-radius: 50%;
} */
.testi-img:before {
  content: "\f122";
  font-family: "Flaticon";
  font-size: 3.125rem;
  position: absolute;
  right: 0;
  top: -.9375rem;
  z-index: 1;
}
.testi-info > h3 {
  font-size: 1rem;
  font-weight: 600;
}
.dark-layer2 .testi-info > h3 {color: #fff;}
.dark-layer2 .testi-info > p {color: #d0d0d0;}
.testi-info > p {
  font-size: 0.9rem;
  line-height: 2rem;
}
.testi-info > h3 + p {margin-top: 0.9375rem;}
.testi-info > p + span {margin-top: 1.375rem;}
.testi-info > span {font-size: 13px;}
.testi-info > span span {
  margin-left: 10px;
  font-size: 14px;
}
.slick-dots {
  padding-left: 0;
  list-style: none;
  margin: 10px 0 0;
  display: flex;
  justify-content: center;
  flex-wrap: wrap;
}
.slick-dots > li {padding: 0 6px;}
.slick-dots > li button {
  background-color: rgba(0,0,0,.1);
  color: transparent;
  -webkit-border-radius: 2.5rem;
  border-radius: 2.5rem;
  height: 24px;
  width: 1.875rem;
}
.black-layer .slick-dots > li button,
.blue-layer .slick-dots > li button,
.dark-layer .slick-dots > li button,
.dark-layer2 .slick-dots > li button,
.dark-layer3 .slick-dots > li button {background-color: rgba(255,255,255,.1);}
.slick-dots > li.slick-active button {width: 6.5625rem;}

/*===== Faq Style =====*/
.toggle {padding-right: 6.25rem;}
.toggle-item {border-bottom: 1px solid #ecedef;}
.toggle-item > h4 {
  font-size: 1.2rem;
  font-weight: 400;
  padding: 1.0875rem 0 1.0875rem 2.8125rem;
  position: relative;
  cursor: pointer;
}
.toggle-item .toggle-content {
  padding-left: 2.8125rem;
  padding-bottom: 1rem;
}
.toggle-item > h4 span {
  font-size: 1.125rem;
  position: absolute;
  left: 0;
  top: 0;
  line-height: 3.375rem;
}
.toggle-item .toggle-content > p {
  color: #282828;
  font-size: 1rem;
  line-height: 1.75rem;
}
.faq-wrap img {margin-top: -5.5rem;}

/*===== Banner Style =====*/
.banner-inner {max-width: 70%;}
.banner-inner > h2 {
  font-size: 3rem;
  font-weight: 600;
}
.blue-layer .banner-inner > h2,
.blue-layer .banner-inner > p {color: #fff;}
.banner-inner > h2 + p {margin-top: 10px;}
.banner-inner > p {
  font-size: 1.125rem;
  line-height: 2rem;
  display: inline-block;
  max-width: 80%;
}
.banner-inner > p + a {margin-top: 2.5rem;}

/*===== Blog Style =====*/
.post-box {margin-bottom: 3.125rem;}
.post-img > a {
  display: block;
  position: relative;
}
.post-img > a:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background-color: var(--color1);
  opacity: 0;
}
.post-box:hover .post-img > a::before {opacity: .5;}
.post-img + .post-info {margin-top: 1.4375rem;}
.post-info > h3 {
  font-size: 1rem;
  line-height: 1.5rem;
  font-weight: 600;
}
.post-info > h3 + p, .post-info > h3 + div {margin-top: .75rem;}
.post-info > p , .post-info > div {
  display: inline-block;
 /* max-width: 80%;*/
 line-height: 2rem;
}
.post-info > p + .post-info-bottom {margin-top: 1.5625rem;}
.post-info-bottom {
  border-top: 1px solid #ecedef;
  border-bottom: 1px solid #ecedef;
  justify-content: space-between;
  padding: .75rem 0;
}
.post-info-bottom > span, .post-meta > li {
  font-size: 14px;
  color: #00599a;
}
.post-info-bottom > span i,
.post-meta > li i {margin-right: 7px;}
.post-meta > li:not(:first-child) {margin-left: 9rem;}

/*===== Clients Sstyle =====*/
.client-box {
  /*margin-bottom: 3.125rem;*/
  text-align: center;
}
.client-box > a {display: inline-block;}
.client-box > a img {
  -webkit-filter: grayscale(1);
  -ms-filter: grayscale(1);
  -o-filter: grayscale(1);
  filter: grayscale(0);
 /* opacity: .5;*/
}
.client-box > a:hover img {
  -webkit-filter: grayscale(0);
  -ms-filter: grayscale(0);
  -o-filter: grayscale(0);
  filter: grayscale(0);
  opacity: 1;
}

/*===== Footer Style =====*/
.widget {margin-bottom: 3.125rem;}
.widget .logo + p {margin-top: 1.25rem;}
.widget > p {line-height: 1.75rem;}
.bg-color5 .widget > p,
.bg-color5 .widget ul li {color: #d5d5d5;}
.widget > p + .social-links2 {margin-top: 1.875rem;}
.social-links2 > a {
  display: inline-block;
  color: #d5d5d5;
  font-size: 1.5rem;
}
.social-links2 > a:not(:first-child) {margin-left: 1.4375rem;}
.bg-color5 .widget > h3,
.bg-color5 .visitor-stat-box > h5 {color: #fff;}
.widget > h3 {
  margin-bottom: .7rem;
  font-size: 1.125rem;
  font-weight: 500;
  text-transform: uppercase;
}
.widget ul li {
  font-size: 0.97rem;
  margin-top: 1.125rem;
  width: 100%;
  white-space: nowrap;
}
.widget ul li:hover > a {padding-left: .75rem;}
.visitor-stat-box > h4 {font-size: 1.5rem;}
.visitor-stat-box > h4 + h5 {margin-top: 4px;}
.visitor-stat-box > h5 {
  font-weight: 400;
  font-size: 1rem;
}
.visitor-stat-box + .visitor-stat-box {margin-top: 2.625rem;}
.copyright {padding: 0.75rem 0;}
.copyright p {font-size: 1rem; color: #fff;}
.copyright p a {color: #fff;}

/*===== Team Style =====*/
.team-caro,
.team-caro2 {margin: 0 -.9375rem;}
.team-wrap.d-flex > li {
  flex: 0 0 20%;
  max-width: 20%;
}
.team-box {padding: 0 .9375rem;}
.team-social {
  left: 0;
  right: 0;
  bottom: -3.125rem;
  opacity: 0;
}
.team-social > a {
  display: inline-block;
  color: #fff;
  height: 3.25rem;
  width: 3.25rem;
  text-align: center;
  line-height: 3.25rem;
  font-size: .875rem;
}
.team-social > a:hover,
.team-social > a:focus {background-color: var(--color1);}
.team-box:hover .team-social {
  opacity: 1;
  bottom: 10px;
}
.team-img + .team-info {margin-top: .9375rem;}
.team-info > h3 {
  font-size: 1.125rem;
  font-weight: 500;
}
.team-info > h3 + span {margin-top: 4px;}
.team-info > span {
  font-size: 14px;
  color: #777;
}

.dark-layer .team-info > h3,
.dark-layer2 .team-info > h3,
.dark-layer3 .team-info > h3,
.blue-layer .team-info > h3 {color: #fff;}

/*===== Page Title Style =====*/
.page-top-wrap > h1 {font-size: 3.4375rem;}
.dark-layer3 .page-top-wrap > h1 {color: #fff;}
ol.breadcrumb {
  padding: 0;
  background-color: transparent;
  -webkit-border-radius: 0;
  border-radius: 0;
  margin-bottom: 0;
}
.page-top-wrap > h1 + ol.breadcrumb {margin-top: 5px;}
ol.breadcrumb li.breadcrumb-item {
  font-size: 1rem;
  font-family: Poppins;
  color: #fff;
  position: relative;
}
ol.breadcrumb li.breadcrumb-item + li.breadcrumb-item {
  margin-left: .75rem;
  padding-left: 1.5625rem;
}
ol.breadcrumb li.breadcrumb-item + li.breadcrumb-item:before {
  color: #fff;
  content: "\f061";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  padding: 0;
  position: absolute;
  left: 0;
}

/*===== Services Detail Style =====*/
.serv-detail-info-inner {
  padding-left: 6.25rem;
  position: relative;
}
.serv-detail-info-inner > i {
  font-size: 4.375rem;
  position: absolute;
  left: 0;
  top: 0;
}
.serv-detail-info-inner > h2 {
  font-size: 3rem;
  font-weight: 600;
  max-width: 85%;
}
.serv-detail-info p {
  font-size: 1rem;
  margin-top: 2rem;
}
.serv-detail-desc {margin-top: 1.125rem;}
.serv-detail-desc a {
  display: block;
  margin-top: 1.875rem;
  position: relative;
  overflow: hidden;
}
.serv-detail-desc a:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background-color: var(--color1);
  opacity: .3;
}
.serv-detail-desc a:hover:before {opacity: .5;}
.serv-detail-desc {padding: 0 6.25rem;}
.serv-detail-desc > p {margin-top: 2.8125rem;}
.serv-detail-desc > p + p {margin-top: 1.5625rem;}

/*===== Contact =====*/
.contact-map {height: 35.625rem;}
.contact-info-wrap {
  left: 6.25rem;
  right: 6.25rem;
  bottom: 1.25rem;
  background-color: #fff;
  padding: 0 3.25rem 0.875rem;
}
.contact-info-box {margin-top: 1.875rem;}
.contact-info-box > i {
  display: block;
  font-size: 2.5rem;
  line-height: 2.5rem;
}
.contact-info-box > strong {
  display: block;
  font-family: Poppins;
  font-weight: 600;
  color: var(--color1);
  margin-bottom: 6px;
}
.contact-info-box > span,
.contact-info-box > a,
.contact-info-box > p {
  font-size: 14px;
  color: #777;
  margin-top: 2px;
}
.contact-info-box > i + strong {margin-top: 1.25rem;}
.contact-form label {
  font-size: 14px;
  color: #777;
  text-align: initial;
  margin-bottom: 0;
}
.contact-form label + input,
.contact-form label + textarea {margin-top: 5px;}
.contact-form input:not(.simple-btn),
.contact-form textarea {
  width: 100%;
  border: 1px solid #cbcdd1;
  height: 2.1875rem;
  margin-bottom: 15px;
  padding: 10px 1.25rem;
  font-size: 14px;
  color: #777;
  -webkit-border-radius: 5px;
  border-radius: 5px;
}
.contact-form textarea {
  height: 12.5rem;
  padding: 1.25rem;
}
.contact-form button {/*margin-top: 0.5625rem;*/}

/*===== Blog Detail =====*/
.post-detail > img + h2 {margin-top: 2.0625rem;}
.post-detail > h2 {font-size: 1.5rem;}
.post-detail > h2 + p {margin-top: 14px;}
.post-detail > p {line-height: 1.875rem;}
.post-detail > p + p {margin-top: 1.875rem;}
.post-detail > p + .post-detail-gallery-video-box,
.post-detail > .post-detail-gallery-video-box +  p {margin-top: 2.5rem;}
.detail-gal {margin-top: 10px;}
.detail-gal a {
  display: block;
  overflow: hidden;
  margin-top: 1.875rem;
  position: relative;
}
.detail-gal a:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  top: 0;
  bottom: 0;
  background-color: var(--color1);
  opacity: .3;
}
.detail-gal a:hover:before {opacity: .5;}
.detail-gal + p {margin-top: 2.5rem;}
blockquote {
  font-size: 1.95rem;
  font-style: italic;
  line-height: 3rem;
  position: relative;
  background-color: #ecedef;
  padding: 2.5rem 3.125rem 3.125rem;
  margin: 2.8125rem 0;
  font-family: Poppins;
}
blockquote > p {
  font-size: inherit;
  line-height: inherit;
  color: inherit;
  font-family: inherit;
}
blockquote > p::before,
blockquote > p::after {
  content: "";
  font-family: "Font Awesome 5 Free";
  font-weight: 900;
  font-style: normal;
  color: var(--color1);
  position: relative;
  font-size: 1rem;
  line-height: initial;
}
blockquote > p::before {
  content: "\f10d";
  left: -5px;
  top: -1.125rem;
}
blockquote > p::after {
  content: "\f10e";
  right: -5px;
  top: -10px;
}
.post-detail > p + .detail-share {
  border-top: 1px solid #e8e8e8;
  margin-top: 2.5rem;
  padding-top: 1.5625rem;
}
.detail-share > span {
  display: inline-block;
  font-family: Poppins;
  color: var(--color1);
}
.detail-share > a {
  display: inline-block;
  font-size: 1.125rem;
  vertical-align: middle;
  margin-left: .9375rem;
}

/*=== Comments ===*/
.comments,
.reply-form {margin-top: 5.625rem;}
.comments > h3,
.reply-form > h3 {
  font-size: 1.125rem;
  text-transform: uppercase;
  border-bottom: 1px solid #ccd5e9;
  display: inline-block;
  padding: 0 1.25rem 7px 0;
}
.comment {
  background-color: #f3f3f5;
  position: relative;
  margin-top: 3.125rem;
  display: flex;
  flex-wrap: wrap;
  z-index: 1;
}
.comment-img {
  flex: 0 0 6.875rem;
  max-width: 6.875rem;
  padding-left: 8px;
  -webkit-transform: translateY(6.25rem);
  -ms-transform: translateY(6.25rem);
  -o-transform: translateY(6.25rem);
  transform: translateY(6.25rem);
}
.comment-img + .comment-detail {
  flex: 0 0 calc(100% - 6.875rem);
  max-width: calc(100% - 6.875rem);
}
.comment-detail {padding: 1.75rem 3.5rem 1.75rem 4.0625rem;}
.comment-img > span {
  background-color: #f2f9fa;
  height: 5rem;
  width: 5rem;
  line-height: 5rem;
  display: inline-block;
  text-align: center;
}
.comment-detail > h4 {font-size: 1rem;}
.comment-detail > h4 + p,
.comment-detail > span + p {margin-top: 1.25rem;}
.comment-detail > p + a,
.comment-detail > a + span {margin-top: .9375rem;}
.comment-detail > span {font-size: 13px;}
.comment-detail > span i,
.comment-reply-link > i {margin-right: 5px;}
.comment-detail > a + span {margin-left: 1.25rem;}
.comment-reply-link {font-size: 13px;}
.comment:before {
  content: "";
  position: absolute;
  left: 0;
  top: -2px;
  bottom: -2px;
  width: 6.875rem;
  background-color: #fff;
  -webkit-clip-path: polygon(0 0, 100% 55%, 100% 100%, 0% 100%);
  clip-path: polygon(0 0, 100% 55%, 100% 100%, 0% 100%);
  z-index: -1;
}
.comments-thread ul.children {padding-left: 6.875rem;}

/*=== Reply Form ===*/
.reply-form > h3 + form {margin-top: 1.5625rem;}
.reply-form .field-wrap {margin-top: 1.4375rem;}
.reply-form .field-wrap label {
  width: 100%;
  font-size: 0.875rem;
  color: #777;
  margin-bottom: .75rem;
}
.reply-form .field-wrap input,
.reply-form .field-wrap textarea {
  width: 100%;
  border: 1px solid #ededed;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  font-size: 0.875rem;
  color: #777;
  height: 2.1875rem;
  padding: .5rem 1.125rem;
}
.reply-form .field-wrap textarea {
  padding: 1.125rem;
  height: 12.5rem;
}
.reply-form .field-wrap + button {margin-top: 3.125rem;}

/*===== Sidebar =====*/
.widget2 {
  background-color: #f8f8f9;
  padding: 1.875rem;
  overflow: hidden;
}
.widget2 + .widget2 {margin-top: 3.125rem;}
.about-widget {margin-top: 1.125rem;}
.about-widget-img {position: relative;}
.about-widget-img + h4 {margin-top: 1.5625rem;}
.about-widget-img > a {
  color: #fff;
  font-size: 14px;
  line-height: 2.5rem;
  width: 2.5rem;
  height: 2.5rem;
  position: absolute;
  left: -10px;
  top: 10px;
}
.about-widget-img > a:hover,
.about-widget-img > a:focus {background-color: var(--color1);}
.about-widget > h4 {
  font-size: 1.125rem;
  font-weight: 600;
}
.about-widget > h4 + p {margin-top: 1.375rem;}
.about-widget > p {
  font-size: 1rem;
  line-height: 1.75rem;
}
.about-widget > p + span {
  border-top: 1px solid #e2e2e4;
  margin-top: 1.25rem;
  padding-top: .75rem;
}
.about-widget > span {
  font-size: 1rem;
  color: #777;
}
.about-widget > span img {margin-right: 1.25rem;}
.widget2 > h3 {
  font-size: 1.125rem;
  font-weight: 600;
  margin-bottom: 1.5625rem;
}
.widget2 > form {position: relative;}
.widget2 > form input {
  background-color: #fff;
  width: 100%;
  border: 1px solid #e2e2e4;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  font-size: 14px;
  height: 3.4375rem;
  padding: 1rem 2.5rem 1rem 1.875rem;
}
.widget2 > form button {
  position: absolute;
  right: 0;
  width: 2.5rem;
  bottom: 0;
  top: 0;
  background-color: transparent;
}
.widget2 ul {margin-top: -.75rem;}
.widget2 ul li {
  width: 100%;
  font-size: 14px;
  position: relative;
}
.widget2 ul li a {
  display: inline-block;
  padding-left: 1.5625rem;
}
.widget2.category_widget ul li {text-align: right;}
.widget2.category_widget ul li a {float: left;}
.widget2 ul li a::before,
.widget2 ul li a::after {
  content: "";
  position: absolute;
  left: 0;
  top: 4px;
  height: .9375rem;
  width: .9375rem;
  -webkit-border-radius: 2px;
  border-radius: 2px;
}
.widget2 ul li a::before {
  border: 1px solid #e5f1f3;
  background-color: #fff;
}
.widget2 ul li a:after {
  opacity: 0;
  -webkit-transform: scale(0);
  -ms-transform: scale(0);
  -o-transform: scale(0);
  transform: scale(0);
}
.widget2 ul li:hover > a::after,
.widget2 ul li a:focus::after {
  opacity: 1;
  -webkit-transform: scale(.5);
  -ms-transform: scale(.5);
  -o-transform: scale(.5);
  transform: scale(.5);
}
.widget2 ul li:not(:first-child) {margin-top: .75rem;}
.tagclouds > a {
  color: #fff;
  display: inline-block;
  background-color: var(--color1);
  margin: 0 4px 8px;
  font-size: 14px;
  padding: 5.5px 1.25rem;
  position: relative;
  z-index: 1;
}
.tagclouds {
  margin: 0 -4px -8px;
  display: flex;
  flex-wrap: wrap;
}
.tagclouds > a:before {
  content: "";
  left: 50%;
  right: 50%;
  top: 0;
  bottom: 0;
  position: absolute;
  z-index: -1;
  opacity: 0;
}
.tagclouds > a:hover:before,
.tagclouds > a:focus:before {
  opacity: 1;
  left: 0;
  right: 0;
}
.widget2 ul li span.rate {color: var(--color3);}
.blog-mini-post {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
}
.blog-mini-post > a {
  flex: 0 0 3.75rem;
  height: 3.75rem;
  line-height: 3.75rem;
  text-align: center;
  background-color: #eef3f6;
}
.blog-mini-post > a + .blog-mini-post-info {
  flex: 0 0 calc(100% - 3.75rem);
  max-width: calc(100% - 3.75rem);
  padding-left: 1.125rem;
}
.blog-mini-post-info > h4 {
  font-size: 14px;
  font-weight: 500;
}
.blog-mini-post-info > span {
  font-size: 13px;
  margin-top: 2px;
}
.blog-mini-post-info > span.mini-post-date {color: #414042;}
.blog-mini-post-info > span.mini-post-comments {color: #777;}
.blog-mini-post-info > span i {margin-right: 5px;}
.blog-mini-post:not(:first-child) {margin-top: 1.125rem;}
.widget-video-box > a {
  color: #fff;
  position: absolute;
  left: 50%;
  top: 50%;
  text-align: center;
  height: 6.25rem;
  line-height: 6.25rem;
  width: 6.25rem;
  font-size: 2.5rem;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
}
.widget-video-box > a:hover,
.widget-video-box > a:focus {background-color: var(--color1);}

/*===== Shop Filters =====*/
.filter-inner > span {
  font-size: 13px;
  line-height: 1.875rem;
  font-weight: 500;
  margin-right: 10px;
  display: inline-block;
  vertical-align: middle;
}
.filter-inner > a {
  display: inline-block;
  vertical-align: middle;
  border: 1px solid #e5e5e7;
  font-size: 12px;
  line-height: 1.875rem;
  height: 1.875rem;
  width: 1.875rem;
  text-align: center;
  -webkit-border-radius: 3px;
  border-radius: 3px;
}
.filter-inner + .filter-inner {margin-left: 1.875rem;}
.slc-wrp {display: inline-block;}
.slc-wrp .bootstrap-select > button {
  font-size: 13px;
  color: #777;
  background-color: transparent;
  border: 1px solid #e5e5e7;
  -webkit-border-radius: 3px;
  border-radius: 3px;
  padding: 4.25px 10px;
}
.slc-wrp .bootstrap-select > button:after {margin-left: 5px;}

/*===== Pagination =====*/
.pagination {
  margin: -5px;
  -webkit-border-radius: 0;
  border-radius: 0;
  text-align: center;
}
.pagination li.page-item {
  font-size: 13px;
  color: #333333;
  margin: 5px;
  font-weight: 500;
}
.pagination li.page-item a.page-link {
  border: 1px solid #e5e5e7;
  -webkit-border-radius: 3px !important;
  border-radius: 3px !important;
  padding: 0;
  width: 1.875rem;
  height: 1.875rem;
  line-height: 1.875rem;
  color: inherit;
}
.pagination li.page-item a.page-link:hover,
.pagination li.page-item a.page-link:focus,
.pagination li.page-item.active > a.page-link {
  background-color: var(--color1);
  border-color: var(--color1);
  color: #fff;
}

/*===== Shop =====*/
.shop-box {margin-top: 3.125rem;}
.shop-img:before {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: 0;
  top: 0;
  opacity: 0;
}
.shop-box:hover .shop-img::before {opacity: .8;}
.shop-img > a {
  position: absolute;
  left: 50%;
  top: 80%;
  background-color: var(--color20);
  color: #fff;
  text-transform: uppercase;
  font-size: 13px;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  padding: 7.25px .9375rem;
  min-width: 9.5625rem;
  font-weight: 600;
  opacity: 0;
  visibility: hidden;
}
.shop-img > a i {
  margin-left: 10px;
  font-size: 1.1rem;
  vertical-align: middle;
  padding-left: 7px;
  border-left: 1px solid rgba(255,255,255,.15);
  float: right;
}
.shop-img > a:hover,
.shop-img > a:focus {background-color: #ae0018;
color: #fff !important;}
.shop-box:hover .shop-img > a {
  opacity: 1;
  visibility: visible;
  top: 50%;
}
.shop-img + .shop-info {margin-top: 10px;}
.shop-info > h3 {
  font-size: 14px;
  /*text-transform: uppercase;*/
  font-weight: 500;
}
.shop-info > h3 + .shop-info-bottom {margin-top: .85rem;}
.shop-info-bottom span.rate {font-size: 13px;}
.on {color: var(--color3);}
.off {color: #d0d0d0;}
.price {
  font-size: 14px;
  color: var(--theme-color);
  font-weight: 600;
  padding-top: 10px;
}
.price ins + del {margin-left: 6px;}
.price del {
  font-size: 13px;
  font-weight: 500;
  color: #777;
}

/*===== Shop Detail =====*/
.shop-detail-imgs {
  position: relative;
  padding-right: 12.5rem;
}
.shop-detail-nav-caro {
  position: absolute;
  right: 4.375rem;
  top: 58%;
  max-width: 6.25rem;
  -webkit-transform: translateY(-50%);
  -ms-transform: translateY(-50%);
  -o-transform: translateY(-50%);
  transform: translateY(-50%);
  padding: 1.25rem 0;
}
.shop-detail-nav-caro > button.slick-arrow {
  background-color: transparent;
  padding: 0;
  width: 100%;
  font-size: 14px;
  color: #333;
  position: absolute;
}
.shop-detail-nav-caro > button.slick-prev {top: 0;}
.shop-detail-nav-caro > button.slick-next {bottom: 0;}
.shop-detail-nav-caro .slick-slide img {
  border: 1px solid transparent;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  cursor: pointer;
  margin: 10px 0;
}
.shop-detail-info {margin-top: 2rem;}
.shop-detail-info > h2 {
  font-size: 1.125rem;
  font-weight: 600;
  /* text-transform: uppercase; */
  line-height: 1.5rem;
  max-width: 80%;
}
.shop-detail-info > h2 + span {margin-top: 1.25rem;}
.shop-detail-info > span.rate {font-size: 13px;}
.shop-detail-info > span.rate + .review-link {margin-top: 6px;}
.review-link > span {
  font-size: 13px;
  font-weight: 600;
}
.review-link > span + a {margin-left: .9375rem;}
.review-link > a {
  display: inline-block;
  font-size: 13px;
  color: #777;
  font-weight: 600;
}
.review-link + .price-stock {margin-top: 1rem;}
.price-stock {max-width: 95%;}
.price-stock span.price {font-size: 1.5rem;}
.price-stock span.price del {font-size: 1rem;}
.stock {
  font-size: 13px;
  font-weight: 600;
  color: #333;
}
.stock > i {
  font-style: normal;
  color: #777777;
  text-transform: uppercase;
  margin-left: 7px;
}
.shop-detail-info > p {
  color: #798795;
  max-width: 95%;
  margin-top: 1rem;
}
.detail-share {
  border-top: 1px solid #e8e8e8;
  margin-top: 1.25rem;
  padding-top: 1.25rem;
}

/*=== Shop Detail Tabs ===*/
.shop-detail-tabs {
  border: 1px solid #ededed;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  padding: 3.125rem;
}
.shop-detail-tabs ul.nav-tabs {
  border-bottom: 0;
  margin-bottom: 1.25rem;
}
.shop-detail-tabs ul.nav-tabs li.nav-item {
  margin-bottom: 0;
  font-size: 13px;
  color: var(--color1);
  font-weight: 600;
  text-transform: uppercase;
}
.shop-detail-tabs ul.nav-tabs li.nav-item a.nav-link {
  -webkit-border-radius: 5px;
  border-radius: 5px;
  border: 0;
  padding: 11px 1.25rem;
  background-color: #f3f3f3;
}
.shop-detail-tabs ul.nav-tabs li.nav-item:not(:first-child) {margin-left: 5px;}
.shop-detail-tabs ul.nav-tabs li.nav-item a.nav-link.active,
.shop-detail-tabs ul.nav-tabs li.nav-item a.nav-link:hover,
.shop-detail-tabs ul.nav-tabs li.nav-item a.nav-link:focus {color: #fff;}
.shop-detail-tabs p {line-height: 1.875rem; text-align: justify;}
.shop-detail-tabs p + h4 {margin-top: 2.1875rem;}
.shop-detail-tabs h4 {font-size: 1rem;}
.shop-detail-tabs h4 + ul {margin-top: 1.25rem;}
.shop-detail-tabs ul:not(.nav-tabs):not(.comments-thread):not(.children) li {
  font-family: Open Sans;
  color: #555555;
  font-size: 0.875rem;
  line-height: 1.5rem;
  
  width: 100%;
  padding-left: 2.5rem;
  position: relative;
  margin-top: 5px;
}
.shop-detail-tabs ul:not(.nav-tabs) li:before {
  content: "";
  border: 1px solid;
  position: absolute;
  height: 10px;
  width: 10px;
  -webkit-border-radius: 50%;
  border-radius: 50%;
  left: 1.25rem;
  top: 7px;
}
.shop-detail-info  ul:not(.nav-tabs):not(.comments-thread):not(.children) li {
    font-size: .9rem;
    width: 100%;
    padding-left: 2.5rem;
    position: relative;
    margin-top: 5px;
}
.shop-detail-info  ul:not(.nav-tabs) li:before {
    content: "";
    border: 1px solid;
    position: absolute;
    height: 10px;
    width: 10px;
    -webkit-border-radius: 50%;
    border-radius: 50%;
    left: 1.25rem;
    top: 7px;
    border-color: #970733;
  }
.comment-detail > span.rate {float: right;}
.shop-detail-tabs .comment-detail h4 {display: inline-block;}

/*===== Shop Cart =====*/
.product-table {width: 100%;}
.product-table thead th {
  font-size: 14px;
  text-transform: uppercase;
  font-weight: 600;
  text-align: center;
  padding: 1.188rem;
}
.product-table thead th,
.product-table tbody td {border: 1px solid #ededed;}
.product-table tbody td {
  padding: 10px;
  font-size: 13px;
  color: #777;
}
.product-table tbody td:not(.product-image) {padding: 1.25rem 1.875rem;}
.product-table tbody td h4 {
  font-size: 1rem;
  font-weight: 500;
}
.product-table tbody td h4 + p {margin-top: 8px;}
.product-table tbody td p {
  font-size: 13px;
  max-width: 90%;
}
.product-cart-btns {
  min-width: 1.5625rem;
  text-align: center;
/* max-width: 1.5625rem;*/
}
.product-cart-btns > a {
  display: inline-block;
  font-size: 14px;
  color: #333;
}
.product-cart-btns > a + a {margin-top: 7px;}
.qty-wrp {
  display: inline-block;
  max-width:7rem;
}
.qty-wrp .bootstrap-touchspin input {
  width: 100%;
  border: 1px solid #ededed;
  -webkit-border-radius: 5px !important;
  border-radius: 5px !important;
  font-size: 14px;
  color: #333;
  padding: 5px 1.2rem;
  text-align: center;
}
.qty-wrp .bootstrap-touchspin span.input-group-btn {
  position: absolute;
  margin: 0;
  top: 0;
  bottom: 0;
  z-index: 4;
}
.qty-wrp .bootstrap-touchspin span.input-group-prepend {left: 0;}
.qty-wrp .bootstrap-touchspin span.input-group-append {right: 0;}
.qty-wrp .bootstrap-touchspin span.input-group-btn button {
  padding: 0;
  background-color: transparent;
  border: 0;
  color: #333;
  -webkit-border-radius: 0;
  border-radius: 0;
  top: 0;
  bottom: 0;
  width: 1.2rem;
}
.cart-table-top-btns {
  border-left: 1px solid #ededed;
  border-right: 1px solid #ededed;
  border-top: 1px solid #ededed;
  /* padding: 1.25rem 1.875rem; */
}
.cart-table-bottom-btns {
  border-left: 1px solid #ededed;
  border-right: 1px solid #ededed;
  border-bottom: 1px solid #ededed;
  /* padding: 1.25rem 1.875rem; */
}
.cart-table-bottom-btns + .cart-data {margin-top: 1.25rem;}
.cart-data-box {
  border: 1px solid #ededed;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  margin-top: 1.875rem;
  padding: 1.5625rem;
}
.cart-data-box > h3 {
  font-size: 1rem;
  font-weight: 600;
}
.field-box + .field-box {margin-top: 10px;}
.field-box > label {
  font-size: 13px;
  display: block;
  margin-bottom: 8px;
}
.cart-data-box > h3 + .field-box {margin-top: 1.25rem;}
.field-box .slc-wrp {width: 100%;}
.field-box .slc-wrp .bootstrap-select > button,
.field-box input {
  background-color: #ffffff;
  /*border: 0;*/
  -webkit-border-radius: 0;
  border-radius: 5px;
  padding: 7.75px .9375rem;
  font-size: 13px;
  color: #777;
  width: 100%;

}
.cart-data-box button {display: inline-block;}
.field-btn {
  text-align: right;
  margin-top: 1.25rem;
}
.cart-data-box > span {
  text-align: right;
  font-size: 1rem;
  font-weight: 600;
}
.cart-data-box > span span.price {
  font-weight: inherit;
  font-size: inherit;
  margin-left: 10px;
}
.checkout-btn {
  font-size: 1rem;
  padding: 1.125rem 3.125rem;
}

/*===== Shop Checkout =====*/
.checkout-form-box {
  border: 1px solid #ededed;
  padding-bottom: 2.8125rem;
  margin-bottom: 2.8125rem;
  border-radius: 10px 10px 0 0;
}

.checkout-form-box-title {
  -webkit-border-radius: 10px 10px 0 0;
  border-radius: 10px 10px 0 0;
  background-color: #ededed;
  padding: 1.275rem 1.875rem;
}
.checkout-form-box-title > h3 {
  font-size: 1rem;
  font-weight: 500;
  text-transform: uppercase;
}
.checkout-form-inner {padding: 1.875rem 25px 0;}
.checkout-form-inner .checkout-form-field {
  margin-top: 0.25rem;
  display: flex;
}
.checkout-form-field label {
  text-align: right;
  margin-bottom: 0;
  font-size: 13px;
  color: #777;
  line-height: 1.875rem;
  padding-right: 1.125rem;
  width: 6.75rem;
}
.checkout-form-field input,
.checkout-form-field .slc-wrp .bootstrap-select > button {
  width: 100%;
  height: 2.1875rem;
  background-color: #ffffff;
  -webkit-border-radius: 5px;
  border-radius: 5px;
  border: 0;
  font-size: 13px;
  color: #777;
  padding: 5px 1rem;
  border: 1px solid #cbcdd1;
  margin-bottom: 15px;
}
.checkout-form-field .slc-wrp .bootstrap-select > button {width: 100%;}
.checkout-form-field .slc-wrp,
.checkout-form-field .slc-wrp .bootstrap-select {
  /*max-width: 16.875rem;*/
  width: 100%;
}
.checkout-form-inner > p {
  font-size: 13px;
  margin-top: 5px;
}
.checkout-form-inner > p + img {margin-top: 1.5625rem;}
.checkout-form-inner .checkout-form-field-wrap .checkout-form-field {
  flex: 0 0 47%;
  max-width: 47%;
}
.checkout-form-field-wrap .checkout-form-field input {width: 4.375rem;}
.checkout-form-inner > img + .checkout-form-field {margin-top: 3.125rem;}
.checkout-form button.simple-btn {
  font-size: 1.125rem;
 /* padding: 1.03125rem 3.125rem;*/
  text-transform: initial;
}

/*=== Billing Details ===*/
.billing-details table {width: 100%;}
.billing-details table thead th,
.billing-details table tfoot th {
  font-family: Poppins;
  font-weight: 500;
  font-size: 1rem;
}
.billing-details table thead th {
  border-bottom: 1px solid #ededed;
  padding-bottom: 6px;
  padding-right: 30px;
}
.billing-details table tfoot th {
  border-top: 1px solid #ededed;
  padding-top: 10px;
}
.billing-details table tbody td {
  font-size: 13px;
  color: #777;
  padding: 5px 0;
}
.billing-details table thead th:last-child,
.billing-details table tfoot th:last-child,
.billing-details table tbody td:last-child {text-align: center;}
.billing-details table tbody tr  td {padding-top: 1.5rem;}
.billing-details table tbody tr:last-child td {padding-bottom: 1.5rem;}
.billing-details table tbody td span {
  max-width: 70%;
  display: inline-block;
  width: 100%
}
.color-rouge{color: #970733!important;}
.bg-rouge{background-color: #970733!important;}
.color-blue{color: #00599a!important;}
.color-b{color: #62a5d6!important;}
.menu-item-has-children .list-unstyled ul li a:hover{color: #00599a!important;}
/*.menu-item-has-children.list-unstyled:hover > ul > li {
  color: #00599a!important;
}*/
.color-h:hover{color: #00599a!important;}
.lang-icon {
  height: 25px;
  width: 25px;
}
nav > div ul li:nth-last-child(4)  ul li  ul{
  left: auto;
  right: 100%;
}
.artualite_text {
  margin-bottom: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box!important;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
}
.title_text {
  margin-bottom: 0;
  overflow: hidden;
  text-overflow: ellipsis;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  font-size: 1rem;
  font-weight: 600;
  height: 50px;
}
.widget ul li :hover{  white-space: nowrap;}
.icone_footer{color: #3077ab;margin-right: 10px;}
.getin-touch-btn  a:hover{color: #ffffff !important;}
.video-bb{
	position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    text-align: center;
	background-color: #f00!important;
    line-height: 3.4375rem!important;
    width: 4.4375rem!important;
    height: 3.4375rem!important;
    font-size: 1.6rem!important;
    border-radius: 12px 12px 12px 12px;
}

.youtube {height: 100px;
    width: 100px;
    line-height: 100px;
    text-align: center;
    background-color: #f00;
    border-radius: 10px;
    display: block;
    color: #fff;
    font-size: 42px;
    margin: 0 auto 10px;
    /* box-shadow: 0 0px 10px 4px rgb(31 66 135 / 20%); */
    box-shadow: 0 2px 15px rgb(168 168 168 / 12%);
    transition: all 0.5s;}
    .srch::-webkit-input-placeholder{color:#fff!important;}
    .srch::-moz-placeholder{color:#fff!important;}
    .srch:-ms-input-placeholder{color:#fff!important;}
    .srch::-ms-input-placeholder{color: #fff !important;}
    .srch::placeholder{color:#fff!important;}
    .border-non{ border-top: none;
      border-bottom: none; }
      .post-info-bottom > span i {
        color: #00599a!important;
    }
    .post-info-bottom > span i:hover {
      color: #00487D!important;

  }
  .shop-info >  .shop-info-bottom {
    color: #00599a!important;
}
.shop-info > h3 {
font-size: 1rem;
color: #970733;
}
.btn_padd{padding: 0.5rem 1rem!important;}
.titre-des{
  color: #00599a !important;
  font-weight: 600!important;}
.cad-prod{border: 1px solid #e8e8e8;}
.shop-prod > a {
    white-space: nowrap;
  background-color: var(--color20);
  color: #fff;
  text-transform: uppercase;
  font-size: 13px;
  -webkit-transform: translate(-50%, -50%);
  -ms-transform: translate(-50%, -50%);
  -o-transform: translate(-50%, -50%);
  transform: translate(-50%, -50%);
  padding: 7.25px 0.9375rem;
  min-width: 9.5625rem;
  font-weight: 600;
  border-radius: 0.3125rem;
}
.shop-prod  > a:hover, .shop-prod  > a:focus {
  background-color: #ae0018;
  color: #fff !important;
  cursor: pointer;
}
.titre-slide {
  background: linear-gradient(94deg, #ffffffab, #ffffff88, #ffffff00);
  text-shadow: 1px 0 34px #ffffff26;
  color: #00599a!important;
  padding: 15px;
  border-radius: 20px 0 0 20px;
}
.modal-contenu{
      text-align: center;
      margin-bottom: 20px;
      margin-top: 10px;
  }
  .thm-bg1 {background-color:#005a99!important}
  .select-form
  {
border-radius: 5px;
margin-bottom: 20px;
}
.select-des
{background: #00599a;
color: white;}
.desc-info
{
    color: #798795;
    max-width: 95%;
    margin-top: 1rem;

    font-family: Open Sans;
    color: #555555;
    line-height: 1.5rem;
    font-size: .9rem;
    /* display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis; */
}
.desc-info ul {
  padding-inline-start: 0px;
}

.desc-info ul li
{
    color: #798795;
    max-width: 95%;
    margin-top: 1rem;
    list-style-type: none;
    font-family: Open Sans;
    color: #555555;
    line-height: 1.5rem;
    font-size: .9rem;
    /* display: -webkit-box;
-webkit-line-clamp: 3;
-webkit-box-orient: vertical;
overflow: hidden;
text-overflow: ellipsis; */
}

.modal {
    z-index: 99999!important;
}
a.readmore
{
    background:#00599a!important;
}
.errors
{
    color: red;
}
.optioncart
{
    border-bottom: 1px solid #efecec;
}
.ligne_cart
{
    border-bottom: 1px solid #efecec;
}
.optionall
{
    border: 1px solid #efecec;
}


.order-details {
    display: flex;
    flex-direction: row;
    flex-wrap: wrap;
    justify-content: space-between;
    margin-bottom: 10px;
}
.order-overview {
    flex: 1 1 0%;
    margin-bottom: 20px;
    padding-right: 20px;
    padding-left: 20px;
    border-right: 1px solid;
    color: #777;
    text-align: center;
    border-color: rgba(129, 129, 129, 0.2);
    list-style: none;
}
.order-overview strong {
    display: block;
    margin-top: 10px;
    color: #2d2a2a;
}
h2.order-title {
    letter-spacing: 0px;
    display: block;
    margin-bottom: 20px;
    color: #2d2a2a;
    font-weight: 600;
    line-height: 1.4;
    font-size: 24px;
    text-align: center;
}
.order_table table {
    width: 100%;
}
.order_table table thead tr th {
    min-width: 50%;
    text-align: center;
    padding: 6px 0;
    border-bottom: 3px solid #980c38;
}
.table-responsive table tbody tr td {
    border-right: none;
    font-weight: 500;
    text-transform: capitalize;
    font-size: 14px;
    text-align: center;
    min-width: 140px;
}
.order_table table tbody tr td {
    min-width: 50%;
    text-align: center;
    padding: 15px 0;
    border-bottom: 1px solid #980c38;
}
.order_table table tfoot tr th {
    min-width: 50%;
    text-align: center;
    padding: 15px 0;
    border-bottom: 1px solid #ddd;
}
th.subtotal,
td.subtotal {
    border-top: 2px solid #980c38;
}
.order_table table tfoot tr th {
    min-width: 50%;
    text-align: center;
    padding: 15px 0;
    border-bottom: 1px solid #ddd;
}
.order_table table tfoot tr td {
    min-width: 50%;
    text-align: center;
    padding: 15px 0;
    border-bottom: 1px solid #ddd;
}
.about-wrap.style2  ul{list-style: none; padding-right: 3rem; padding-left: 0;}
.about-wrap.style2  ul li{
padding: 1.5625rem 0 0.75rem 2.5rem;
position: relative;
border-bottom: 1px solid #ecedef;
font-size: 1rem;
font-weight: 400;
font-family: Open Sans;
color: #222;
line-height: 1.2;
}
.about-wrap.style2 ul li:before{
  content: "\f00c";
  font-family: "Font Awesome 5 Free";
  position: absolute;
  left: 0;
  top: 1.5625rem;
  height: 1.5625rem;
  width: 1.5625rem;
  line-height: 1.5625rem;
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--color1);
  background-color: #ecedef;
  text-align: center;
}
    /***********************************mega menu*******************************************/
/* adds some margin below the link sets  */
.navbar .dropdown-menu div[class*="col"] {
  margin-bottom:1rem;
}

.navbar .dropdown-menu {
 border:none;
 background-color:#fff!important;
}

/* breakpoint and up - mega dropdown styles */
@media screen and (min-width: 992px) {

 /* remove the padding from the navbar so the dropdown hover state is not broken */
.navbar {
 padding-top:0px;
 padding-bottom:0px;
}
.navbar .dropdown ul li:hover > a {color: #00599a !important;}
/* makes the dropdown full width  */
.navbar .dropdown {position:static;}

.navbar .dropdown-menu {
 width:100%;
 left:0;
 right:0;
 top:45px;
 display:none;
 visibility: hidden;
 opacity: 0;
 transition: visibility 0s, opacity 0.3s linear;
}
.sticky-menu .navbar .dropdown-menu {
  top: 61px!important;
  left:-200px;
}
.dropdown-menu div{line-height: 1.875rem!important;}
.navbar .dropdown:hover .dropdown-menu {
 display:block;
 visibility: visible;
 opacity: 1;
 transition: visibility 0s, opacity 0.3s linear;
}
 .navbar .dropdown-menu {
   border: 1px solid rgba(0,0,0,.15);
   background-color: #fff;
 }

}
.dropdown-header {
   display: block;
   padding: 0.5rem 0.5rem 0rem  1.5rem!important;
}
.color-h :hover,.dropdown-li :hover,.dropdown-ul :hover , .dropdown-li a :hover,.dropdown-li a :focus, .dropdown-ul :focus, .dropdown-li :focus {
   background-color:#fff!important;
}
.dropdown-ul:first-child:hover  { color:#fff!important}
.dropdown-li {
   margin-top: 0px!important;
   opacity: unset!important;
   visibility: visible!important;
   border-top: unset!important;
   list-style-type: none;
 }
 .dropdown-li  a:before {
   content: " "!important;}
.dropdown-li a:hover, .dropdown-li a:focus {
   color: #00599a !important;
}
.dropdown-li  a {
   padding: 0px 0px; }

.dropdown-li ul ul li a:focus {
 background-color: unset!important;
 padding-left: 0 px!important;
}
.dropdown-ul {
   position: relative;
    top: unset !important;
    min-width: 0 px!important;
   line-height: unset!important;
    opacity: unset!important;
    visibility: visible!important;
  -webkit-box-shadow: unset!important;
   -ms-box-shadow:  unset!important;
   -o-box-shadow:  unset!important;
    box-shadow:  unset!important;
}
.navbar .dropdown-menu ul ul {
    padding-left:20px!important;
 }
 .navbar .dropdown-menu ul ul {
    padding-left:0px!important;
 }
 .navbar .dropdown-menu div ul li a {
   font-weight: 600;
 }
 .navbar .dropdown-menu div ul ul li a {
   font-weight: 400!important;
 }
.dropdown-header{font-weight: 600;}
.navbar .dropdown-menu  ul :hover > a, .navbar .dropdown-menu li:first-child :focus > a,.navbar .dropdown-menu li:first-child :hover > a, .navbar .dropdown-menu ul :focus {
    background-color: #fff!important;
    padding-left: 0px!important;

}
.navbar .dropdown-menu  ul ul ul li:hover > a, .navbar .dropdown-menu  ul ul ul li:focus > a
{    background-color: #fff!important;
    padding-left: 30px!important;

}
.navbar .dropdown-menu ul ul ul li > a {font-weight: 400!important;}
.navbar .dropdown-menu div ul ul ul {padding-right:10px!important}
.font-a a:hover, .font-a a:focus
{ background-color: #fff!important;
 padding-left: 0px!important;
 color:red;
}
.navbar .dropdown-menu ul {
   top: 0;
   left: 0!important;
}
.pd-10{padding-top:15px}
 /***********************************fin style mega menu*******************************************/
 .color-bleu{color: #00599a!important;}

 @media screen and (min-width: 1920px) {
  .feat-cap { margin-left: -170px;}
 }
 @media only screen and (max-width: 1919px) and (min-width: 1700px) {
   .feat-cap { margin-left: -100px;}
  }
.hand-none { pointer-events: none;}

/********* My account *********/
.nav-pills .nav-link.active, .nav-pills .show>.nav-link {
    color: #fff;
    background-color: #970733;
}


.nav-pills a:hover{
    color: #00487D;
}
/********* My account **********/
@media screen and (min-width: 1378px) and (max-width: 1558px) {

nav > div > ul > li {

    margin-right: 0.4rem;
    font-size: 0.7rem;
  }
  nav > div ul ul li {
    font-size: 0.75rem;
  }

}
@media screen and (min-width: 1124px) and (max-width: 1377px) {
  nav > div > ul > li {
    font-size: 0.65rem; 
  }
  nav > div ul ul li {
    font-size: 0.7rem;
  } 

}
@media screen and (min-width: 1035px) and (max-width: 1124px) {
  nav > div > ul > li {
    font-size: 0.45rem; 
  }
}
@media screen and (min-width: 1850px) {
  nav > div > ul > li {
    margin-right: 0.5rem;
    font-size: 1rem;
  }
  nav > div ul ul li {
    font-size:0.85rem;
  }

}
@media (max-width: 1080px){
nav > div > ul > li {
 margin-right: 0.75rem !important;
}
}
.bd-partner{
  border: 1px solid #ecedef;
  margin: 20px;
}
.fs-20{
  font-size: 20px!important;
}
.img-border{
  border: 1px solid #dfdfdf; border-radius: 5px;
}

.brd-rd-b{
  border-bottom-left-radius: 5px;
  border-bottom-right-radius: 5px;
}
.shop-detail-wrap .shop-detail-tabs .tab-content .tab-pane ul{list-style: none!important; padding-left:0px; }
.shop-wrap .serv-wrap p , .shop-wrap .serv-wrap p span , .shop-wrap .serv-wrap ul li, .shop-wrap .serv-wrap ul li span{
      font-family: Open Sans!important;
      color: #555555!important;
      line-height: 1.5rem!important;
      font-size: .9rem!important; 
    }
.sous-titre , .sous-titre p{ 
  margin-bottom: 0px!important;
  font-size:12px!important;
  /* text-align: justify; */
  font-family: Open Sans!important; 
  color: #555555!important;
}
.shop-detail-tabs .tab-content ul li span{
  font-family: Open Sans;
    color: #555555;
    font-size: 0.875rem !important;
    line-height: 1.5rem;
}
.shop-detail-tabs .tab-content p span{
  font-family: Open Sans;
    color: #555555;
    font-size: .9rem !important;
    line-height: 1.5rem;
}

/* panier */
@media (min-width: 768px) {
    .w-md-100 {
        width: 100% !important;
    }
}
 

.page-top-wrap span {
    font-size: 3.4375rem; color: #fff;
}
.title-categ h1{
    color: #00599A;
    font-weight: 600;
    font-size: 2rem;
    line-height: 3rem;
}

/* Bouton WhatsApp fiche produit (vert WhatsApp de la maquette de refonte) */
/* .detail-share > a (theme) impose inline-block et une marge : on le surcharge */
.tp-btn-whatsapp,
.detail-share > .tp-btn-whatsapp {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: 100%;
  min-height: 48px;
  margin: 0 0 15px;
  padding: 0 16px;
  /* Etape B : #128c4b (4,30:1) remplace par --tp-whatsapp #0e7340 (5,92:1), WCAG AA */
  background-color: var(--tp-whatsapp, #0e7340);
  color: #fff !important;
  border: 0;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  text-align: center;
  vertical-align: baseline;
  text-decoration: none !important;
  transition: background-color .15s, box-shadow .15s, transform .15s;
}
/* a.tp-btn-whatsapp : plus precis que a:hover du theme (bleu clair !important) */
a.tp-btn-whatsapp:hover,
a.tp-btn-whatsapp:focus {
  background-color: var(--tp-whatsapp-700, #0b5e35);
  color: #fff !important;
  box-shadow: 0 6px 16px rgba(11, 94, 53, .28);
  transform: translateY(-1px);
}
a.tp-btn-whatsapp:active {
  box-shadow: none;
  transform: none;
}
@media (prefers-reduced-motion: reduce) {
  a.tp-btn-whatsapp:hover,
  a.tp-btn-whatsapp:focus {transform: none;}
}
.tp-btn-whatsapp:focus-visible {
  outline: 3px solid #00599a;
  outline-offset: 2px;
}
.tp-btn-whatsapp i {
  color: #fff;
  font-size: 20px;
}

/* Fiche produit : quantite au-dessus, bouton devis pleine largeur (action principale) */
.tp-achat {
  display: flex;
  flex-direction: column;
  gap: 12px;
  margin-bottom: 12px;
}
.tp-quantite {
  display: flex;
  align-items: center;
  gap: 12px;
}
.tp-quantite label {
  margin: 0;
  font-weight: 600;
  font-size: 15px;
  color: #0b2a45;
}
.tp-quantite .qty-wrp {
  max-width: none;
  width: 144px;
}
/* Quantite et Societe : libelles de meme largeur, champs alignes */
.tp-achat .tp-quantite label {min-width: 80px;}
.tp-societe input {
  flex: 1;
  min-width: 0;
  height: 44px;
  padding: 0 14px;
  border: 1.5px solid #e3e8ee;
  border-radius: 8px;
  color: #0b2a45;
  font-size: 15px;
}
.tp-societe input::placeholder {color: #8a97a5;}
.tp-societe input:focus {
  border-color: #00599a;
  outline: 0;
  box-shadow: 0 0 0 3px rgba(0, 89, 154, .15);
}
.tp-quantite .qty-wrp .bootstrap-touchspin input {
  height: 44px;
  padding: 0 44px;
  font-size: 16px;
  font-weight: 600;
  border: 1.5px solid #e3e8ee;
  border-radius: 8px !important;
}
.tp-quantite .qty-wrp .bootstrap-touchspin span.input-group-btn button {
  width: 44px;
  font-size: 20px;
  color: #0b2a45;
}
.tp-quantite .qty-wrp .bootstrap-touchspin span.input-group-btn button:hover {
  background-color: #eaf2f9;
}
.tp-btn-devis {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  /* meme hauteur et meme corps que le bouton WhatsApp juste en dessous */
  min-height: 48px;
  padding: 0 16px !important;
  background-color: #970733;
  color: #fff;
  border: 0;
  border-radius: 8px;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  text-transform: uppercase;
  cursor: pointer;
  transition: background-color .15s, box-shadow .15s;
}
.tp-btn-devis:hover,
.tp-btn-devis:focus {
  background-color: #7a0529;
  color: #fff;
  box-shadow: 0 8px 24px rgba(11, 42, 69, .12);
}
.tp-btn-devis:focus-visible {
  outline: 3px solid #00599a;
  outline-offset: 2px;
}

/* Fiche produit : mention sous les boutons */
.tp-mention-devis {
  margin: 0 0 15px;
  text-align: center;
  font-size: 13px;
  color: #5b6b7a;
}

/* Fiche produit : partage Facebook / LinkedIn */
.tp-partage {
  display: flex;
  align-items: center;
  gap: 10px;
}
.tp-partage > span {
  font-family: Poppins;
  color: #0b2a45;
}
.tp-partage-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  font-size: 18px;
  color: #fff !important;
  text-decoration: none !important;
}
.tp-partage-facebook {background-color: #1877f2;}
.tp-partage-linkedin {background-color: #0a66c2;}
.tp-partage-btn:hover,
.tp-partage-btn:focus {filter: brightness(.88);}
.tp-partage-btn:focus-visible {
  outline: 3px solid #00599a;
  outline-offset: 2px;
}

/* Fiche produit : description sous l'image en ordinateur, apres le bloc devis en mobile */
.tp-description {
  max-width: none;
  margin-top: 32px;
  color: #555;
  font-size: 15px;
  line-height: 1.7;
  text-align: justify;
  /* cesure (lang="fr"/"en" sur <html>) : limite les grands blancs du texte justifie en mobile */
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}
.tp-titre-description {
  position: relative;
  margin: 0 0 14px;
  padding-bottom: 10px;
  border-bottom: 2px solid #e8e8e8;
  color: #00599a;
  font-size: 20px;
  font-weight: 700;
  line-height: 1.3;
}
.tp-titre-description:after {
  content: "";
  position: absolute;
  left: 0;
  bottom: -2px;
  width: 56px;
  height: 2px;
  background: #970733;
}
.tp-description p {
  margin: 0 0 14px;
  font-size: inherit;
  line-height: inherit;
}
.tp-description ul {margin: 0 0 14px;}
.tp-description ul li {
  position: relative;
  max-width: none;
  margin-top: 6px;
  padding-left: 24px;
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}
.tp-description ul li:before {
  content: "";
  position: absolute;
  left: 2px;
  top: .6em;
  width: 9px;
  height: 9px;
  border: 2px solid #00599a;
  border-radius: 50%;
}
/* tailles saisies dans l'editeur : une seule taille de texte */
.tp-description [style*="font-size"] {font-size: inherit !important;}

/* une seule photo : pas de miniature, l'image prend toute la colonne */
.shop-detail-imgs.tp-une-image {padding-right: 0;}
.tp-une-image .shop-detail-nav-caro {display: none !important;}

/* Fiche produit en mobile : bandeau reduit, marges reduites (responsive.css est charge apres) */
@media (max-width: 767px) {
  .tp-bandeau-produit {
    padding-top: 30px !important;
    padding-bottom: 30px !important;
  }
  .tp-bandeau-produit .page-top-wrap > h1 {
    font-size: 22px;
    line-height: 1.2;
  }
  .tp-bandeau-produit ol.breadcrumb {
    flex-wrap: nowrap;
    overflow: hidden;
    white-space: nowrap;
  }
  .tp-bandeau-produit ol.breadcrumb li.breadcrumb-item {
    flex: 0 1 auto;
    min-width: 0;
    overflow: hidden;
    text-overflow: ellipsis;
    font-size: 12px;
  }
  .tp-bandeau-produit ol.breadcrumb li.breadcrumb-item:first-child {flex: none;}
  .tp-bandeau-produit ol.breadcrumb li.breadcrumb-item + li.breadcrumb-item {
    margin-left: .4rem;
    padding-left: 1.1rem;
  }
  /* le nom du produit est deja le titre juste au-dessus */
  .tp-bandeau-produit ol.breadcrumb li.breadcrumb-item.active {display: none;}
  .tp-section-produit {
    padding-top: 20px !important;
    padding-bottom: 30px !important;
  }
  /* miniatures plus compactes (masquees avec une seule photo, voir .tp-une-image) */
  .shop-detail-imgs .shop-detail-nav-caro {margin-top: 8px;}
  .shop-detail-imgs .shop-detail-nav-caro .slick-slide {padding: 0 4px;}
  .shop-detail-imgs .shop-detail-nav-caro .slick-slide img {margin: 0;}
  .shop-detail-inner .shop-detail-info {margin-top: 16px;}
}

/* ===== Pied de page (refonte 2026) ===== */
/* <main> est en flex : les trois blocs prennent toute la largeur */
.tp-pied-contact,
.tp-pied,
.tp-pied-bas {width: 100%;}
/* Bandeau de contact : WhatsApp et telephone (pas de bordeaux : pas d'action principale ici) */
.tp-pied-contact {
  background: #f4f7fb;
  border-top: 1px solid #e5e9f0;
  padding: 32px 0;
}
.tp-pied-contact-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 24px;
}
.tp-pied-contact h2 {
  margin: 0 0 4px;
  color: #00243d;
  font-size: 24px;
  font-weight: 700;
}
.tp-pied-contact p {
  margin: 0;
  color: #4b5563;
  font-size: 15px;
}
.tp-pied-contact-btns {
  display: flex;
  flex: none;
  flex-wrap: wrap;
  gap: 12px;
}
.tp-pied-contact-btns .tp-btn-whatsapp {
  width: auto;
  margin: 0;
  padding: 0 24px;
}
.tp-pied-btn-tel {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  padding: 0 24px;
  background: #fff;
  border: 1px solid #c9d6e6;
  border-radius: 8px;
  color: #00599a !important;
  font-size: 15px;
  font-weight: 600;
  text-decoration: none !important;
  white-space: nowrap;
}
a.tp-pied-btn-tel:hover,
a.tp-pied-btn-tel:focus {
  background: #f0f6fc;
  border-color: #00599a;
  color: #00599a !important;
}

/* Colonnes */
.tp-pied {
  position: relative;
  padding: 56px 0 24px;
  color: #c7d2df;
  font-size: 15px;
}
/* contenu au-dessus du fond anime de points (.particles-js, en position absolue) */
.tp-pied > .container {
  position: relative;
  z-index: 1;
}
.tp-pied-logo {display: inline-block;}
.tp-pied-intro {
  margin: 16px 0 24px;
  color: #c7d2df;
  font-size: 15px;
  line-height: 1.7;
}
.tp-pied h3 {margin: 0 0 14px;}
.tp-pied-bascule {
  width: 100%;
  padding: 0;
  background: none;
  border: 0;
  color: #fff;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: .06em;
  text-align: left;
  text-transform: uppercase;
  cursor: default;
}
.tp-pied ul {margin: 0 0 28px;}
.tp-pied ul li {
  margin-bottom: 10px;
  color: #c7d2df;
  font-size: 15px;
  line-height: 1.6;
}
.tp-pied a {color: #c7d2df;}
.tp-pied-tout a {font-weight: 600; color: #fff !important;}
.tp-pied a:hover,
.tp-pied a:focus {
  color: #fff;
  text-decoration: underline;
}
.tp-pied-coord li {
  display: flex;
  align-items: flex-start;
  gap: 12px;
}
.tp-pied-coord i {
  flex: none;
  width: 16px;
  margin-top: 4px;
  color: #7fb3e6;
  text-align: center;
}
.tp-pied-coord a {color: #fff;}
.tp-pied-suivre {
  margin: 0 0 12px;
  color: #fff;
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .06em;
  text-transform: uppercase;
}
.tp-pied-reseaux {
  display: flex;
  gap: 10px;
  margin-bottom: 28px;
}
.tp-pied-reseaux a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: #16365f;
  color: #fff;
  font-size: 16px;
  text-decoration: none !important;
  transition: background-color .15s;
}
.tp-pied-reseaux a:hover,
.tp-pied-reseaux a:focus {background: #00599a;}
.tp-pied a:focus-visible,
.tp-pied-bascule:focus-visible {
  outline: 3px solid #7fb3e6;
  outline-offset: 2px;
}

/* Ligne du bas */
.tp-pied-bas {
  background: #001a2d;
  color: #9fb0c4;
  font-size: 13px;
  padding: 14px 0;
}
.tp-pied-bas .container {
  display: flex;
  flex-wrap: wrap;
  justify-content: space-between;
  gap: 8px 24px;
}
.tp-pied-bas p {
  margin: 0;
  color: #9fb0c4;
  font-size: 13px;
  line-height: 1.6;
}
.tp-pied-bas p a {text-decoration: underline; text-underline-offset: 2px;} /* T20 : lien dans un texte, distinguable sans la couleur (WCAG 1.4.1) */
.tp-pied-bas nav {
  display: flex;
  flex-wrap: wrap;
  gap: 8px 20px;
}
.tp-pied-bas a {color: #c7d2df;}
.tp-pied-bas a:hover,
.tp-pied-bas a:focus {color: #fff;}

@media (max-width: 991px) {
  .tp-pied-contact-inner {
    flex-direction: column;
    align-items: flex-start;
  }
}
/* Mobile : boutons pleine largeur, rubriques repliables (script.js), Contact ouvert */
@media (max-width: 767px) {
  .tp-pied-contact {padding: 24px 0;}
  .tp-pied-contact h2 {font-size: 20px;}
  .tp-pied-contact-btns {
    flex-direction: column;
    width: 100%;
  }
  .tp-pied-contact-btns .tp-btn-whatsapp,
  .tp-pied-btn-tel {width: 100%;}
  .tp-pied {padding: 32px 0 8px;}
  .tp-pied-intro {margin-bottom: 16px;}
  .tp-pied-rubrique {border-top: 1px solid #1d3b63;}
  .tp-pied h3 {margin: 0;}
  .tp-pied-bascule {
    display: flex;
    justify-content: space-between;
    align-items: center;
    min-height: 48px;
    cursor: pointer;
  }
  .tp-pied-bascule:after {
    content: "+";
    font-size: 20px;
    font-weight: 400;
  }
  .tp-ouvert .tp-pied-bascule:after {content: "\2212";}
  .tp-pied-rubrique > ul {display: none;}
  .tp-pied-rubrique.tp-ouvert > ul {display: block;}
  .tp-pied ul {margin-bottom: 16px;}
  .tp-pied-bas .container {
    flex-direction: column;
    align-items: center;
    text-align: center;
  }
}

/* ===== Pages de contenu (Administration > Pages : mentions legales, confidentialite...) ===== */
.tp-page-contenu {
  max-width: 820px;
  color: #374151;
  font-size: 16px;
  line-height: 1.7;
  text-align: justify;
  -webkit-hyphens: auto;
  -ms-hyphens: auto;
  hyphens: auto;
}
.tp-page-contenu p,
.tp-page-contenu ul li,
.tp-page-contenu ol li,
.tp-page-contenu td,
.tp-page-contenu th {
  color: inherit;
  font-size: inherit;
  line-height: inherit;
}
.tp-page-contenu p {margin: 0 0 12px;}
.tp-page-contenu h2 {
  margin: 32px 0 12px;
  padding-bottom: 8px;
  border-bottom: 1px solid #e8e8e8;
  color: #00599a;
  font-size: 21px;
  font-weight: 700;
  text-align: left;
}
.tp-page-contenu h2:first-child {margin-top: 0;}
.tp-page-contenu h3 {
  margin: 20px 0 8px;
  color: #00243d;
  font-size: 17px;
  font-weight: 700;
  text-align: left;
}
/* listes simples de l'editeur ; les listes deja stylees (ex. .list-unstyled de « Qui sommes-nous ») restent intactes */
.tp-page-contenu ul:not([class]),
.tp-page-contenu ol:not([class]) {margin: 0 0 14px; padding-left: 22px;}
.tp-page-contenu ul:not([class]) > li {list-style: disc; margin-bottom: 4px;}
.tp-page-contenu a {color: #00599a; text-decoration: underline;}
.tp-page-contenu .tp-maj {color: #6b7280; font-size: 14px;}
/* tableaux : defilement horizontal en mobile */
.tp-page-contenu .tp-tableau {overflow-x: auto; margin: 6px 0 16px;}
.tp-page-contenu table {width: 100%; border-collapse: collapse; text-align: left;}
.tp-page-contenu th,
.tp-page-contenu td {
  padding: 10px 12px;
  border-bottom: 1px solid #e5e7eb;
  font-size: 15px;
  vertical-align: top;
}
.tp-page-contenu th {background: #f4f7fb; color: #00243d; font-weight: 700;}
.tp-page-contenu [style*="font-size"] {font-size: inherit !important;}
@media (max-width: 767px) {
  .tp-page-contenu {font-size: 15px;}
  .tp-page-contenu h2 {font-size: 19px;}
  .tp-page-contenu table {min-width: 520px;}
}

/* ===== Fiche produit : refonte 2026 (galerie carree, bloc de demande fixe, sections ancrees) ===== */
.tp-pdp {
  width: 100%;
  /* la barre de menu ne deborde plus sur le contenu (en-tete phase 1) */
  padding: var(--s-6) 0 var(--s-16);
  background: #fff;
}
/* Fil d Ariane (R03 : sans le retrait de la regle globale nav, aligne sur la grille) */
.tp-pdp .tp-ariane {padding: 0; margin: 0; border-radius: 0;}
.tp-ariane ol {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  margin: 0 0 var(--s-6);
  padding: 0;
  list-style: none;
}
.tp-ariane li {
  margin: 0;
  color: #6b7280;
  font-size: 13px;
  line-height: 1.5;
}
.tp-ariane li + li:before {
  content: "\203A";
  margin: 0 8px;
  color: #9ca3af;
}
.tp-ariane a {color: #6b7280 !important;}
.tp-ariane a:hover {color: #00599a !important; text-decoration: underline;}
.tp-ariane li[aria-current] {color: #0b2a45; font-weight: 600;}

/* Grille : galerie 7/12, bloc de demande 5/12 */
.tp-pdp-grille {
  display: grid;
  grid-template-columns: minmax(0, 7fr) minmax(0, 5fr);
  gap: var(--s-12);
  align-items: start;
}

/* Galerie */
.tp-galerie {
  display: grid;
  grid-template-columns: 76px minmax(0, 1fr);
  gap: 16px;
  align-items: start;
}
.tp-galerie.tp-une-image {grid-template-columns: minmax(0, 1fr);}
.tp-vignettes {
  display: flex;
  flex-direction: column;
  gap: 10px;
  max-height: 560px;
  overflow-y: auto;
}
.tp-vignette {
  flex: none;
  width: 76px;
  height: 76px;
  padding: 6px;
  background: #fff;
  border: 1px solid #e5e7eb;
  border-radius: 8px;
  cursor: pointer;
}
.tp-vignette img {width: 100%; height: 100%; object-fit: contain;}
.tp-vignette.tp-actif {border: 2px solid #0b2a45; padding: 5px;}
.tp-vignette:focus-visible {outline: 3px solid #00599a; outline-offset: 2px;}
.tp-galerie-cadre {
  position: relative;
  border-radius: 12px;
  background: #f7f8fa;
  overflow: hidden;
}
.tp-galerie-piste {
  display: flex;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  scroll-behavior: smooth;
  scrollbar-width: none;
}
.tp-galerie-piste::-webkit-scrollbar {display: none;}
.tp-galerie-diapo {
  flex: 0 0 100%;
  aspect-ratio: 1 / 1;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 6%;
  scroll-snap-align: start;
  cursor: zoom-in;
}
.tp-galerie-diapo img {
  width: auto; /* R04 : width/height en attributs pour le ratio, taille réelle gardée par le cadre */
  height: auto;
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
  mix-blend-mode: multiply; /* fond blanc des photos fondu dans le gris clair */
}
.tp-galerie-loupe {
  position: absolute;
  right: 14px;
  bottom: 14px;
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #fff;
  color: #0b2a45;
  display: flex;
  align-items: center;
  justify-content: center;
  box-shadow: 0 1px 4px rgba(0, 0, 0, .12);
  pointer-events: none;
}
.tp-galerie-compteur {
  position: absolute;
  left: 14px;
  bottom: 14px;
  padding: 3px 10px;
  border-radius: 999px;
  background: rgba(11, 42, 69, .75);
  color: #fff;
  font-size: 12px;
  pointer-events: none;
}
.tp-galerie-points {display: none;}

/* Bloc de demande */
.tp-demande {
  position: sticky;
  top: 96px; /* sous le menu fixe du theme */
}
.tp-surtitre {
  display: inline-block;
  margin-bottom: 8px;
  color: #00599a !important;
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .08em;
  text-transform: uppercase;
}
.tp-pdp-titre {
  margin: 0 0 12px;
  color: #0b2a45;
  font-size: 30px;
  font-weight: 700;
  line-height: 1.2;
}
.tp-pdp-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 8px 16px;
  margin-bottom: 20px;
  color: #6b7280;
  font-size: 13px;
}
.tp-pastille {
  display: inline-flex;
  align-items: center;
  padding: 4px 12px;
  border-radius: 999px;
  background: #eef5fb;
  color: #00599a;
  font-size: 12.5px;
  font-weight: 600;
}
.tp-doc {
  display: flex;
  align-items: center;
  gap: 12px;
  margin-bottom: 20px;
  padding: 12px 14px;
  border: 1px solid #e5e7eb;
  border-radius: 10px;
  color: #0b2a45 !important;
  text-decoration: none !important;
  transition: border-color .15s, background-color .15s;
}
.tp-doc:hover,
.tp-doc:focus {border-color: #00599a; background: #f7fafd;}
.tp-doc-ic {
  flex: none;
  width: 38px;
  height: 38px;
  border-radius: 8px;
  background: #fdecef;
  color: #970733;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 11px;
  font-weight: 800;
}
.tp-doc-tx {font-size: 15px; font-weight: 600;}
.tp-doc-dl {margin-left: auto; color: #00599a;}
.tp-doc-section {max-width: 420px; margin-bottom: 0;}

/* Quantite + Societe cote a cote */
.tp-champs {
  display: grid;
  grid-template-columns: 136px minmax(0, 1fr);
  gap: 12px;
  margin-bottom: 16px;
  padding-top: 20px;
  border-top: 1px solid #e5e7eb;
}
.tp-champ label {
  display: block;
  margin: 0 0 6px;
  color: #0b2a45;
  font-size: 13px;
  font-weight: 600;
}
.tp-champ .qty-wrp {display: block; max-width: none; width: 100%;}
.tp-champ .qty-wrp .bootstrap-touchspin input {
  height: 48px;
  padding: 0 40px;
  border: 1.5px solid #d6dde5;
  border-radius: 10px !important;
  color: #0b2a45;
  font-size: 16px;
  font-weight: 600;
}
.tp-champ .qty-wrp .bootstrap-touchspin span.input-group-btn button {
  width: 40px;
  color: #0b2a45;
  font-size: 20px;
}
.tp-champ .qty-wrp .bootstrap-touchspin span.input-group-btn button:hover {background-color: #eef5fb;}
.tp-champ.tp-societe input {
  width: 100%;
  height: 48px;
  padding: 0 14px;
  border: 1.5px solid #d6dde5;
  border-radius: 10px;
  color: #0b2a45;
  font-size: 15px;
}

/* Boutons */
.tp-actions {display: flex; flex-direction: column; gap: 10px;}
.tp-actions .tp-btn-devis,
.tp-actions .tp-btn-whatsapp {min-height: 52px; margin: 0; font-size: 16px;}
.tp-actions .tp-btn-devis {box-shadow: 0 6px 16px rgba(151, 7, 51, .22);}

/* Garanties (libelles 97 a 99) */
.tp-garanties {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 10px;
  margin: 20px 0 0;
  padding: 16px 0 0;
  border-top: 1px solid #e5e7eb;
  list-style: none;
}
.tp-garanties li {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 6px;
  margin: 0;
  color: #0b2a45;
  font-size: 12.5px;
  line-height: 1.35;
  text-align: center;
}
.tp-garanties i {
  width: 38px;
  height: 38px;
  border-radius: 50%;
  background: #eef5fb;
  color: #00599a;
  display: flex;
  align-items: center;
  justify-content: center;
}
.tp-demande .tp-partage {margin-top: 18px;}

/* Sections sous la fiche : onglets en ordinateur, accordeons en mobile */
.tp-onglets {margin-top: var(--s-12);}
.tp-onglets-liste {
  display: flex;
  gap: 32px;
  border-bottom: 1px solid #e5e7eb;
}
.tp-onglet {
  position: relative;
  padding: 14px 0;
  border: 0;
  background: none;
  color: #6b7280;
  font-size: 16px;
  font-weight: 600;
  cursor: pointer;
}
.tp-onglet:hover,
.tp-onglet[aria-selected="true"] {color: #0b2a45;}
/* bleu nuit : le bordeaux reste reserve a la demande de devis */
.tp-onglet[aria-selected="true"]:after {
  content: "";
  position: absolute;
  left: 0;
  right: 0;
  bottom: -1px;
  height: 3px;
  border-radius: 3px 3px 0 0;
  background: #0b2a45;
}
.tp-onglet:focus {outline: none;}
.tp-onglet:focus-visible {outline: 2px solid #00599a; outline-offset: 4px;}
.tp-pdp-section {
  display: block; /* le theme met les section en flex */
  max-width: 780px;
  padding-top: 24px;
  scroll-margin-top: 130px;
}
@media (min-width: 992px) {
  .tp-pdp-section.tp-inactif {display: none;}
  /* l'onglet sert de titre visible ; le H2 reste dans la page */
  .tp-pdp-section h2 {position: absolute; width: 1px; height: 1px; margin: -1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap;}
}
/* listes de l'editeur : puces rondes de .tp-description, sans la puce native */
.tp-pdp-section .tp-description ul {padding-left: 0; list-style: none;}
.tp-pdp-section .tp-description ul li {list-style: none;}
.tp-pdp-section h2 {margin: 0 0 14px;}
.tp-section-bascule {
  padding: 0;
  background: none;
  border: 0;
  color: #0b2a45;
  font-size: 22px;
  font-weight: 700;
  text-align: left;
  cursor: default;
}
.tp-pdp-section .tp-description {margin-top: 0; font-size: 16px; line-height: 1.75;}
.tp-video {
  position: relative;
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  padding: 0;
  border: 0;
  border-radius: 12px;
  background: #1f2937 center / cover no-repeat;
  cursor: pointer;
  overflow: hidden;
}
.tp-video iframe {position: absolute; top: 0; left: 0; width: 100%; height: 100%; border: 0;}
.tp-video-play {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 72px;
  height: 72px;
  margin: -36px 0 0 -36px;
  border-radius: 50%;
  background: rgba(255, 255, 255, .95);
  color: #970733;
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 24px;
  box-shadow: 0 4px 14px rgba(0, 0, 0, .25);
}
.tp-barre-mobile {display: none;}

/* Dans la meme categorie */
.tp-similaires {margin-top: var(--s-12); padding-top: var(--s-8); border-top: 1px solid #e5e7eb;}
.tp-similaires-tete {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 16px;
  margin-bottom: 20px;
}
.tp-similaires-tete h2 {margin: 0; color: #0b2a45; font-size: 22px; font-weight: 700;}
a.tp-similaires-tout {color: #00599a !important; font-size: 15px; font-weight: 600; white-space: nowrap;}
a.tp-similaires-tout:hover,
a.tp-similaires-tout:focus {color: #0b2a45 !important; text-decoration: underline;}
.tp-similaires-liste {
  display: grid;
  grid-template-columns: repeat(4, minmax(0, 1fr));
  gap: 24px;
  margin: 0;
  padding: 0;
  list-style: none;
}
.tp-similaires-liste li {list-style: none; margin: 0;}
.tp-similaires-liste li:before {display: none;}
.tp-carte {display: flex; flex-direction: column; height: 100%;}
.tp-carte-img {
  display: flex;
  align-items: center;
  justify-content: center;
  aspect-ratio: 1 / 1;
  padding: 10%;
  border-radius: 12px;
  background: #f7f8fa;
  overflow: hidden;
}
.tp-carte-img img {max-width: 100%; max-height: 100%; object-fit: contain; mix-blend-mode: multiply; transition: transform .25s;}
.tp-carte-nom {
  display: -webkit-box;
  margin-top: 12px;
  color: #0b2a45;
  font-size: 15px;
  font-weight: 600;
  line-height: 1.4;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.tp-carte-ref {margin-top: 4px; color: #6b7280; font-size: 13px;}
a.tp-carte:hover .tp-carte-nom,
a.tp-carte:focus .tp-carte-nom {color: #00599a; text-decoration: underline;}
a.tp-carte:hover .tp-carte-img img {transform: scale(1.04);}

/* Tablette et mobile */
@media (max-width: 991px) {
  .tp-pdp {padding-top: 20px;}
  .tp-pdp-grille {grid-template-columns: minmax(0, 1fr); gap: 20px;}
  /* boutons avant la fiche technique : le bouton devis reste dans le premier ecran */
  .tp-demande {position: static; display: flex; flex-direction: column;}
  .tp-demande > .tp-surtitre {align-self: flex-start;}
  .tp-demande > .tp-doc {order: 1; margin: 16px 0 0;}
  .tp-demande > .tp-garanties {order: 2;}
  .tp-demande > .tp-partage {order: 3;}
  .tp-galerie {grid-template-columns: minmax(0, 1fr);}
  .tp-vignettes {display: none;}
  .tp-galerie-points {
    display: flex;
    justify-content: center;
    gap: 6px;
    padding: 10px 0 0;
  }
  .tp-galerie-points span {width: 6px; height: 6px; border-radius: 3px; background: #cbd5e1; transition: width .2s;}
  .tp-galerie-points span.tp-actif {width: 18px; background: #0b2a45;}
  .tp-onglets {margin-top: var(--s-6);}
  .tp-onglets-liste {display: none;}
  /* sections en accordeon (script.js), Description ouverte */
  .tp-pdp-section {max-width: none; padding-top: 0; border-top: 1px solid #e5e7eb;}
  .tp-pdp-section:last-of-type {border-bottom: 1px solid #e5e7eb;}
  .tp-pdp-section h2 {margin: 0;}
  .tp-section-bascule {
    display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%;
    min-height: 52px;
    font-size: 17px;
    cursor: pointer;
  }
  .tp-section-bascule:after {content: "+"; font-size: 22px; font-weight: 400;}
  .tp-ouvert .tp-section-bascule:after {content: "\2212";}
  .tp-pdp-section-corps {display: none; padding-bottom: 18px;}
  .tp-ouvert .tp-pdp-section-corps {display: block;}
  .tp-pdp-section .tp-description {font-size: 15px;}
  /* barre fixe Devis + WhatsApp */
  .tp-barre-mobile {
    position: fixed;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 1000;
    display: flex;
    gap: 10px;
    padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
    background: #fff;
    border-top: 1px solid #e5e7eb;
    box-shadow: 0 -6px 16px rgba(0, 0, 0, .06);
    transform: translateY(110%);
    transition: transform .2s;
  }
  .tp-barre-mobile.tp-visible {transform: none;}
  .tp-barre-mobile .tp-btn-devis {flex: 1; min-height: 48px; margin: 0; font-size: 15px;}
  .tp-barre-mobile .tp-btn-whatsapp {flex: none; width: 52px; min-height: 48px; margin: 0; padding: 0;}
  .tp-barre-mobile .tp-btn-whatsapp i {font-size: 22px;}
  .tp-pdp {padding-bottom: 88px;} /* la barre ne masque pas la fin de la page */
  /* produits de la categorie : rangee a faire glisser */
  .tp-similaires {margin-top: var(--s-8); padding-top: 0; border-top: 0;}
  .tp-similaires-tete h2 {font-size: 19px;}
  .tp-similaires-liste {
    display: flex;
    gap: 14px;
    margin: 0 -15px;
    padding: 0 15px 6px;
    overflow-x: auto;
    scroll-snap-type: x mandatory;
    scroll-padding: 0 15px;
    -webkit-overflow-scrolling: touch;
    scrollbar-width: none;
  }
  .tp-similaires-liste::-webkit-scrollbar {display: none;}
  .tp-similaires-liste li {flex: 0 0 28%; scroll-snap-align: start;}
}
@media (max-width: 767px) {
  .tp-pdp {padding-top: var(--s-3);}
  /* fil d Ariane reduit a un lien retour vers la categorie */
  .tp-ariane ol {display: block; margin-bottom: var(--s-3); text-align: left;}
  .tp-ariane li {display: none;}
  /* la categorie est deja dans le lien retour du fil d'Ariane */
  .tp-demande > .tp-surtitre {display: none;}
  .tp-ariane li.tp-ariane-retour {display: block;}
  .tp-ariane li.tp-ariane-retour:before {content: "\2039"; margin: 0 6px 0 0;}
  .tp-ariane li.tp-ariane-retour a {color: #00599a !important; font-weight: 600;}
  .tp-galerie-cadre {margin: 0 calc(-1 * var(--gutter)); border-radius: 0;}
  .tp-pdp-titre {font-size: 22px; line-height: 1.25;}
  .tp-champs {grid-template-columns: 120px minmax(0, 1fr);}
  .tp-actions .tp-btn-devis,
  .tp-actions .tp-btn-whatsapp {min-height: 48px; font-size: 15px;}
  .tp-similaires-liste li {flex-basis: 42%;}
}
@media (prefers-reduced-motion: reduce) {
  .tp-galerie-piste {scroll-behavior: auto;}
  .tp-barre-mobile {transition: none;}
  .tp-carte-img img {transition: none;}
}

/* ===== En-tete : refonte 2026 (phase 1) ===== */
/* Bande du haut, grise et discrete */
.tp-entete {background: #fff; border-bottom: 1px solid #e5e7eb;}
.tp-entete-util {background: #f7f8fa; border-bottom: 1px solid #e5e7eb;}
/* les trois etages alignes sur la meme largeur que la barre de menu */
.tp-entete .container {max-width: none; padding: 0 24px;}
.tp-entete-util .container {display: flex; align-items: center; justify-content: space-between; min-height: 36px;}
.tp-entete-accroche {color: #4b5563; font-size: 13px;}
.tp-entete-liens {display: flex; align-items: center; gap: 22px;}
.tp-entete-liens li {color: #4b5563; font-size: 13px; line-height: 36px;}
.tp-entete-liens a {color: #4b5563 !important;}
.tp-entete-liens a:hover,
.tp-entete-liens a:focus {color: #00599a !important;}
.tp-entete-liens i {margin-right: 4px;}
.tp-langues a + a {margin-left: 8px; padding-left: 8px; border-left: 1px solid #cbd5e1;}
.tp-langues a.tp-actif {color: #0b2a45 !important; font-weight: 700;}

/* Etage principal : logo, recherche, telephone, Mon devis */
.tp-entete-princ .container {display: flex; align-items: center; gap: 28px; min-height: 84px;}
.tp-entete-logo img {display: block; width: auto; height: 44px;}
.tp-recherche {
  display: flex;
  flex: 1;
  max-width: 560px;
  height: 46px;
  margin: 0;
  border: 1.5px solid #cbd5e1;
  border-radius: 10px;
  background: #fff;
  overflow: hidden;
}
.tp-recherche:focus-within {border-color: #00599a; box-shadow: 0 0 0 3px rgba(0, 89, 154, .12);}
.tp-recherche input {
  flex: 1;
  min-width: 0;
  padding: 0 16px;
  border: 0;
  background: transparent;
  color: #1f2937;
  font-size: 14.5px;
  outline: none;
}
.tp-recherche input::placeholder {color: #9ca3af;}
.tp-recherche button {flex: none; width: 52px; border: 0; background: #0b2a45; color: #fff; font-size: 16px; cursor: pointer;}
.tp-recherche button:hover,
.tp-recherche button:focus {background: #00599a;}
a.tp-entete-tel {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-left: auto;
  color: #6b7280 !important;
  font-size: 12.5px;
  line-height: 1.3;
  white-space: nowrap;
}
.tp-entete-tel i:before {color: #00599a; font-size: 26px; margin: 0;}
.tp-entete-tel strong {display: block; color: #0b2a45; font-size: 15px;}
a.tp-entete-tel:hover strong,
a.tp-entete-tel:focus strong {color: #00599a;}
a.tp-entete-devis {
  position: relative;
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 16px;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  color: #0b2a45 !important;
  font-size: 14px;
  font-weight: 700;
  white-space: nowrap;
}
a.tp-entete-devis:hover,
a.tp-entete-devis:focus {border-color: #00599a; color: #00599a !important;}
.tp-entete-devis i {font-size: 18px;}
/* compteur de la demande de devis */
.tp-nb-devis {
  position: absolute;
  top: -9px;
  left: 26px;
  min-width: 20px;
  height: 20px;
  padding: 0 6px;
  border-radius: 10px;
  background: #970733;
  color: #fff;
  font-size: 11.5px;
  font-weight: 700;
  line-height: 20px;
  text-align: center;
}
.tp-nb-devis.tp-vide {display: none;}

/* Barre de menu blanche, texte bleu nuit, casse normale */
.menu-wrap.tp-menu-wrap {margin: 0; border-top: 1px solid #e5e7eb;}
.tp-menu-wrap .container-fluid {padding: 0 24px;}
nav.tp-menu {padding-left: 0; border-radius: 0; background: #fff;}
.tp-menu > div > ul > li {
  margin-right: 18px;
  color: #0b2a45;
  font-family: "Open Sans", sans-serif;
  font-size: 13.5px;
  font-weight: 600;
  line-height: 50px;
  text-transform: none;
}
.tp-menu > div > ul > li:last-child {margin-right: 0;}
.tp-menu > div > ul > li > a {color: #0b2a45;}
.tp-menu > div > ul > li:hover > a,
.tp-menu > div > ul > li > a:hover,
.tp-menu > div > ul > li > a:focus,
.tp-menu > div > ul > li.show > a {color: #00599a !important;}
.tp-menu .dropdown-toggle:after {margin-left: 5px; vertical-align: 2px; border-top-width: 4px; border-right-width: 4px; border-left-width: 4px; opacity: .6;}
@media screen and (min-width: 992px) {
  .tp-menu-wrap .navbar .dropdown-menu {top: 50px;}
}

/* En-tete fixe au defilement : logo, menu, loupe, Mon devis */
.tp-entete-fixe-inner {display: flex; align-items: center; gap: 16px; height: 64px; padding: 0 24px;}
.tp-entete-fixe-logo img {display: block; width: auto; height: 30px;}
.tp-entete-fixe nav.tp-menu {flex: 1; min-width: 0; padding: 0;}
.sticky-menu.tp-entete-fixe .tp-menu > div > ul > li {margin-right: 12px; font-size: 12.5px; line-height: 64px; white-space: nowrap;}
/* version compacte : le logo mene a l'accueil, fleches des sous-menus retirees */
.sticky-menu.tp-entete-fixe .tp-menu > div > ul > li:first-child {display: none;}
.sticky-menu.tp-entete-fixe .tp-menu .dropdown-toggle:after {display: none;}
.tp-fixe-loupe {
  flex: none;
  width: 42px;
  height: 42px;
  border: 1.5px solid #e5e7eb;
  border-radius: 10px;
  background: #fff;
  color: #0b2a45;
  cursor: pointer;
}
.tp-fixe-loupe:hover,
.tp-fixe-loupe[aria-expanded="true"] {border-color: #00599a; color: #00599a;}
/* Mon devis : icone et compteur seulement (le libelle reste pour les lecteurs d'ecran) */
.tp-entete-fixe .tp-entete-devis {gap: 0; width: 42px; height: 42px; padding: 0; justify-content: center; font-size: 0;}
.tp-entete-fixe .tp-entete-devis i {font-size: 18px;}
.tp-entete-fixe .tp-entete-devis .tp-nb-devis {top: -8px; left: 24px; font-size: 11.5px;}
.tp-fixe-recherche {max-width: 640px; margin: 0 auto 12px;}
.tp-fixe-recherche[hidden] {display: none;}

/* Entre 1280 et 1440 px : menu resserre */
@media (max-width: 1439px) {
  .tp-menu > div > ul > li {margin-right: 12px; font-size: 12.5px;}
  .sticky-menu.tp-entete-fixe .tp-menu > div > ul > li {margin-right: 7px; font-size: 11.5px;}
  .tp-entete-fixe-inner {gap: 12px; padding: 0 16px;}
  .tp-entete-fixe-logo img {height: 24px;}
}

/* En-tete mobile (sous 1280 px) : fixe, Menu, logo, Appeler, Mon devis ; recherche dessous */
.tp-mobile-recherche {display: none;}
.tp-mobile-barre {display: flex; align-items: center; height: 60px; padding: 0 6px 0 4px;}
.rspn-hdr.tp-mobile .rspn-mnu-btn.tp-mobile-menu {
  position: static;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 3px;
  width: 52px;
  height: 52px;
  margin: 0;
  border: 0;
  background: none;
  color: #0b2a45;
  font-size: 20px;
  line-height: 1;
}
.tp-mobile-menu span {font-size: 10.5px; font-weight: 700;}
.tp-mobile-logo {margin-right: auto; padding-left: 4px;}
.tp-mobile-logo img {display: block; width: auto; height: 28px;}
a.tp-mobile-ic {
  position: relative;
  display: flex;
  align-items: center;
  justify-content: center;
  width: 46px;
  height: 46px;
  color: #0b2a45 !important;
  font-size: 19px;
}
.tp-mobile-ic .tp-nb-devis {top: 3px; left: 24px;}
@media (max-width: 1279px) {
  header.tp-entete,
  .sticky-menu.tp-entete-fixe {display: none !important;}
  /* fixed et non sticky : le body du theme est en overflow-x hidden, sticky n'y fonctionne pas */
  .rspn-hdr.tp-mobile {
    display: block;
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
  }
  body {padding-top: 61px;}
  .tp-mobile-recherche {display: flex; max-width: none; height: 44px; margin: 10px 12px; border-width: 1px; border-color: #e5e7eb; background: #f7f8fa;}
  .tp-mobile-recherche input {font-size: 16px;} /* 16 px : pas de zoom automatique sur iPhone */
  .tp-mobile-recherche button {width: 48px; background: transparent; color: #0b2a45;}
  .tp-mobile-recherche button:hover,
  .tp-mobile-recherche button:focus {background: transparent; color: #00599a;}
}


/* =====================================================================
   DESIGN SYSTEM 2026 (etape B, 6 nov. 2026)
   Source : docs/DESIGN.md (jetons par. 2, composants par. 4) et
   docs/refonte-2026/maquettes/page-accueil-2026.html.
   Classes NOUVELLES uniquement : aucune page existante n'en depend.
   Regle : toute variable var(--...) utilisee ici est declaree dans le :root ci-dessous.
   Exception assumee a DESIGN.md par. 7.1 : le theme impose
     a:hover, a:focus { color: #00487D (#95cbed sur fond sombre) !important; }
     a:focus, button:focus { outline: none !important; box-shadow: none !important; }
   La couleur des liens et le contour de focus des composants passent donc en !important.
   ===================================================================== */

/* ----- 1. Jetons ----- */
:root {
  /* Marque */
  --tp-blue: #00599A; --tp-blue-700: #00487D; --tp-blue-50: #EAF2F9;
  --tp-blue-900: #0B2A45; --tp-navy: #071B2E;
  --tp-bordeaux: #970733; --tp-bordeaux-700: #7A0529; --tp-bordeaux-50: #FCEBEF;
  --tp-bordeaux-900: #3D0216; /* page d'entree uniquement (univers Process) */
  --tp-whatsapp: #0E7340; --tp-whatsapp-700: #0B5E35;
  /* Etats */
  --tp-ok: #1E7B4F; --tp-ok-50: #EAF6EF;
  --tp-danger: #B42318; --tp-danger-50: #FEF3F2;
  --tp-amber: #9A5B00; --tp-amber-50: #FFF8E6;
  /* Texte, surfaces, bordures */
  --tp-ink: #1F2933; --tp-muted: #5B6B7A; --tp-placeholder: #6B7785;
  --tp-line: #E3E8EE; --tp-line-strong: #7D8794;
  --tp-surface: #F5F7FA; --tp-white: #FFFFFF;
  /* Focus */
  --tp-focus: #00599A; --tp-focus-on-dark: #FFFFFF;

  /* Typographie */
  --f-head: "Poppins", "Poppins Repli", system-ui, sans-serif;
  --f-body: "Inter", "Inter Repli", system-ui, sans-serif;
  --fs-14: .875rem; --fs-16: 1rem; --fs-18: 1.125rem; --fs-22: 1.375rem;
  --fs-28: 1.75rem; --fs-36: 2.25rem; --fs-44: 2.75rem;

  /* Espacements (echelle de 4 px) */
  --s-1: 4px; --s-2: 8px; --s-3: 12px; --s-4: 16px; --s-6: 24px;
  --s-8: 32px; --s-12: 48px; --s-16: 64px; --s-24: 96px;

  /* Formes et ombres */
  --r: 8px; --r-lg: 12px; --r-pill: 999px;
  --sh: 0 2px 8px rgba(11,42,69,.08);
  --sh-h: 0 8px 24px rgba(11,42,69,.12);
  --sh-bar: 0 -4px 16px rgba(11,42,69,.08);

  /* Mise en page, superposition, mouvement */
  --wrap: 1280px; --gutter: 16px; --sec: 56px;
  --z-sticky: 50; --z-header: 1000; --z-dropdown: 1010; --z-overlay: 1040; --z-modal: 1050;
  --t-fast: 150ms; --t-base: 200ms; --t-slow: 400ms; --ease: ease-out;
}
@media (min-width: 768px) {:root {--gutter: 24px; --sec: 72px;}}
@media (min-width: 1024px) {:root {--sec: 88px;}}

/* ----- 2. Focus commun (WCAG 2.4.7) ----- */
.tp-btn:focus-visible,
.tp-link:focus-visible,
.tp-cat:focus-visible,
.tp-card-product h3 a:focus-visible,
.tp-tabs button:focus-visible,
.tp-brand-strip a:focus-visible,
.tp-mobile-bar a:focus-visible {
  outline: 3px solid var(--tp-focus) !important;
  outline-offset: 2px;
}
/* Fonds sombres : contour blanc (le bleu n'atteint que 2:1 sur le bleu nuit) */
.tp-on-dark .tp-btn:focus-visible,
.tp-on-dark .tp-link:focus-visible,
.tp-btn--light:focus-visible,
.tp-btn--white:focus-visible {
  outline-color: var(--tp-focus-on-dark) !important;
}

/* ----- 3. Boutons (.tp-btn) ----- */
.tp-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 48px;
  margin: 0;
  padding: 0 22px;
  border: 2px solid transparent;
  border-radius: var(--r);
  background: transparent;
  font-family: var(--f-body);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.1;
  text-align: center;
  text-decoration: none;
  text-transform: none;
  white-space: nowrap;
  cursor: pointer;
  transition: background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease),
              color var(--t-fast) var(--ease), box-shadow var(--t-fast) var(--ease);
}
.tp-btn:hover {text-decoration: none;}
.tp-btn i,
.tp-btn svg {flex: none; width: 20px; height: 20px; font-size: 20px; line-height: 20px; text-align: center;}

/* Principal : une seule fois par ecran */
.tp-btn--primary,
.tp-btn--primary:hover,
.tp-btn--primary:focus {color: var(--tp-white) !important;}
.tp-btn--primary {background-color: var(--tp-bordeaux);}
.tp-btn--primary:not(:disabled):hover {background-color: var(--tp-bordeaux-700); box-shadow: var(--sh-h) !important;}

/* Bleu */
.tp-btn--blue,
.tp-btn--blue:hover,
.tp-btn--blue:focus {color: var(--tp-white) !important;}
.tp-btn--blue {background-color: var(--tp-blue);}
.tp-btn--blue:not(:disabled):hover {background-color: var(--tp-blue-700);}

/* Contour */
.tp-btn--ghost,
.tp-btn--ghost:hover,
.tp-btn--ghost:focus {color: var(--tp-blue) !important; border-color: var(--tp-blue);}
.tp-btn--ghost {background-color: var(--tp-white);}
.tp-btn--ghost:not(:disabled):hover {background-color: var(--tp-blue-50);}

/* Clair (sur fond sombre) */
.tp-btn--light,
.tp-btn--light:hover,
.tp-btn--light:focus {color: var(--tp-white) !important;}
.tp-btn--light {background-color: transparent; border-color: rgba(255,255,255,.7);}
.tp-btn--light:not(:disabled):hover {background-color: rgba(255,255,255,.12); border-color: var(--tp-white);}

/* Blanc (bandeau sombre) */
.tp-btn--white,
.tp-btn--white:hover,
.tp-btn--white:focus {color: var(--tp-blue-900) !important;}
.tp-btn--white {background-color: var(--tp-white);}
.tp-btn--white:not(:disabled):hover {background-color: var(--tp-blue-50);}

/* WhatsApp */
.tp-btn--wa,
.tp-btn--wa:hover,
.tp-btn--wa:focus {color: var(--tp-white) !important;}
.tp-btn--wa {background-color: var(--tp-whatsapp);}
.tp-btn--wa:not(:disabled):hover {background-color: var(--tp-whatsapp-700);}

/* Tailles */
.tp-btn--sm {min-height: 40px; padding: 0 14px; font-size: var(--fs-14);}
.tp-btn--block {display: flex; width: 100%;}

/* Actif */
.tp-btn:active {box-shadow: none !important; transform: none;}

/* Desactive : <button disabled> ou lien aria-disabled="true" + tabindex="-1" */
.tp-btn:disabled,
.tp-btn[aria-disabled="true"] {opacity: .5; cursor: not-allowed; box-shadow: none !important;}
.tp-btn[aria-disabled="true"] {pointer-events: none;}

/* Chargement : aria-busy="true" + disabled, indicateur de 16 px a gauche */
.tp-btn[aria-busy="true"] {opacity: 1; cursor: progress;}
.tp-btn[aria-busy="true"]::before {
  content: "";
  flex: none;
  width: 16px;
  height: 16px;
  border: 2px solid currentColor;
  border-right-color: transparent;
  border-radius: 50%;
  animation: tp-spin .7s linear infinite;
}
@keyframes tp-spin {to {transform: rotate(360deg);}}

/* Ajoute a la demande */
.tp-btn.is-added,
.tp-btn.is-added:hover,
.tp-btn.is-added:focus {color: var(--tp-ok) !important; border-color: var(--tp-ok); background-color: var(--tp-ok-50);}

/* ----- 4. Lien fleche (.tp-link) ----- */
.tp-link,
.tp-link:hover,
.tp-link:focus {color: var(--tp-blue) !important;}
.tp-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  font-family: var(--f-body);
  font-size: 15px;
  font-weight: 600;
  text-decoration: none;
}
.tp-link:hover {text-decoration: underline; text-underline-offset: 3px;}
.tp-link i,
.tp-link svg {flex: none; width: 18px; height: 18px; font-size: 18px; line-height: 18px; transition: transform var(--t-base) var(--ease);}
.tp-link:hover i,
.tp-link:hover svg {transform: translateX(3px);}

/* ----- 5. Sections (.tp-sec) ----- */
.tp-sec {padding: var(--sec) 0;}
.tp-sec--alt {background-color: var(--tp-surface);}
.tp-sec-head {
  display: flex;
  flex-wrap: wrap;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px 24px;
  margin-bottom: var(--s-6);
}
.tp-sec-head h2 {
  margin: 0;
  font-family: var(--f-head);
  font-size: var(--fs-28);
  font-weight: 600;
  line-height: 1.2;
  color: var(--tp-blue-900);
}
.tp-sec-head p {max-width: 60ch; margin: var(--s-2) 0 0; color: var(--tp-muted);}
.tp-eyebrow {
  display: block;
  margin-bottom: 10px;
  font-family: var(--f-body);
  font-size: 13px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tp-blue);
}
@media (min-width: 768px) {.tp-sec-head {margin-bottom: var(--s-8);}}
@media (min-width: 1024px) {.tp-sec-head h2 {font-size: var(--fs-36);}}

/* ----- 6. Carte produit (.tp-card-product) et grille (.tp-grid) ----- */
.tp-grid {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3); margin: 0; padding: 0; list-style: none;}
.tp-grid[hidden] {display: none;}
@media (min-width: 768px) {.tp-grid {grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4);}}
@media (min-width: 1024px) {.tp-grid {grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px;}}

.tp-card-product {
  display: flex;
  flex-direction: column;
  height: 100%;
  overflow: hidden;
  background-color: var(--tp-white);
  border: 1px solid var(--tp-line);
  border-radius: var(--r-lg);
  font-family: var(--f-body);
  transition: box-shadow var(--t-base) var(--ease), border-color var(--t-base) var(--ease);
}
.tp-card-product:hover {box-shadow: var(--sh-h); border-color: #D2DAE3;}
.tp-card-product__media {
  position: relative;
  display: grid;
  place-items: center;
  aspect-ratio: 4 / 3;
  padding: 14px;
  background-color: var(--tp-white);
  border-bottom: 1px solid var(--tp-line);
}
.tp-card-product__media img {width: auto; max-width: 100%; height: auto; max-height: 100%; object-fit: contain;}
/* Image absente : meme ratio, pictogramme neutre */
.tp-card-product__media.is-empty {background-color: var(--tp-surface); color: var(--tp-line-strong); font-size: 40px;}
.tp-card-product__body {display: flex; flex: 1; flex-direction: column; gap: 6px; padding: 14px;}
.tp-card-product__brand {
  font-size: 11.5px;
  font-weight: 700;
  line-height: 1;
  letter-spacing: .08em;
  text-transform: uppercase;
  color: var(--tp-muted);
}
.tp-card-product h3 {
  margin: 0;
  font-family: var(--f-body);
  font-size: 15px;
  font-weight: 600;
  line-height: 1.3;
  color: var(--tp-blue-900);
}
.tp-card-product h3 a {color: var(--tp-blue-900); text-decoration: none;}
.tp-card-product h3 a:hover,
.tp-card-product h3 a:focus,
.tp-card-product:hover h3 a {color: var(--tp-blue) !important;}
.tp-card-product ul {display: none; margin: 0; padding: 0; list-style: none; font-size: 13px; color: var(--tp-muted);}
.tp-card-product ul li {display: flex; gap: 6px;}
.tp-card-product ul li::before {content: ""; flex: none; width: 4px; height: 4px; margin-top: 8px; border-radius: 50%; background-color: var(--tp-line-strong);}
.tp-card-product__foot {margin-top: auto; padding-top: var(--s-2);}
@media (max-width: 575px) {
  .tp-card-product .tp-btn {padding: 6px 8px; font-size: 13px; line-height: 1.2; white-space: normal;}
  .tp-card-product .tp-btn i,
  .tp-card-product .tp-btn svg {display: none;}
}
@media (min-width: 576px) {.tp-card-product ul {display: grid; gap: 2px;}}
@media (min-width: 768px) {
  .tp-card-product__body {padding: var(--s-4);}
  .tp-card-product h3 {font-size: var(--fs-16);}
}

/* ----- 7. Carte categorie (.tp-cat) et grille (.tp-cats) ----- */
.tp-cats {display: grid; grid-template-columns: repeat(2, 1fr); gap: var(--s-3); margin: 0; padding: 0; list-style: none;}
@media (min-width: 768px) {.tp-cats {grid-template-columns: repeat(3, 1fr); gap: var(--s-4);}}
@media (min-width: 1024px) {.tp-cats {grid-template-columns: repeat(4, 1fr); gap: 20px;}}

/* Toute la carte est un lien (une seule action) */
.tp-cat,
.tp-cat:hover,
.tp-cat:focus {color: var(--tp-white) !important;}
.tp-cat {
  position: relative;
  isolation: isolate;
  display: flex;
  flex-direction: column;
  aspect-ratio: 4 / 5;
  overflow: hidden;
  background-color: var(--tp-navy);
  border-radius: var(--r-lg);
  box-shadow: var(--sh);
  font-family: var(--f-body);
  text-decoration: none;
  transition: box-shadow var(--t-base) var(--ease), transform var(--t-base) var(--ease);
}
.tp-cat img {
  position: absolute;
  inset: 0;
  z-index: -2;
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform var(--t-slow) var(--ease);
}
.tp-cat::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: -1;
  background: linear-gradient(180deg, rgba(7,27,46,0) 35%, rgba(7,27,46,.92) 100%);
}
.tp-cat:hover {box-shadow: var(--sh-h); transform: translateY(-2px); text-decoration: none;}
.tp-cat:hover img {transform: scale(1.04);}
.tp-cat__body {margin-top: auto; padding: 14px;}
.tp-cat h3 {margin: 0 0 var(--s-1); font-family: var(--f-head); font-size: var(--fs-16); font-weight: 600; line-height: 1.2; color: var(--tp-white);}
.tp-cat p {display: none; margin: 0; font-size: 12.5px; line-height: 1.4; color: #C9D6E3;}
.tp-cat__go {display: inline-flex; align-items: center; gap: 6px; margin-top: var(--s-2); font-size: 13px; font-weight: 600; color: var(--tp-white);}
.tp-cat__go i,
.tp-cat__go svg {width: 16px; height: 16px; font-size: 14px; line-height: 16px; transition: transform var(--t-base) var(--ease);}
.tp-cat:hover .tp-cat__go i,
.tp-cat:hover .tp-cat__go svg {transform: translateX(3px);}
@media (min-width: 768px) {
  .tp-cat__body {padding: 20px;}
  .tp-cat h3 {font-size: var(--fs-18);}
  .tp-cat p {display: block;}
}
/* Variante "catalogue complet" */
.tp-cat--all,
.tp-cat--all:hover,
.tp-cat--all:focus {color: var(--tp-blue-900) !important;}
.tp-cat--all {
  justify-content: center;
  align-items: flex-start;
  padding: 20px;
  background-color: var(--tp-blue-50);
  border: 1.5px dashed #B8D2E8;
  box-shadow: none;
}
.tp-cat--all::before {display: none;}
.tp-cat--all h3 {color: var(--tp-blue-900);}
.tp-cat--all p {display: block; margin: 6px 0 14px; font-size: 13px; color: var(--tp-muted);}
.tp-cat--all .tp-cat__go {color: var(--tp-blue);}
.tp-cat--all .ic {display: grid; place-items: center; width: 48px; height: 48px; margin-bottom: var(--s-4); border-radius: var(--r-lg); background-color: var(--tp-white); color: var(--tp-blue);}
@media (max-width: 575px) {.tp-cat--all .ic {display: none;}}

/* ----- 8. Devis en 3 etapes (.tp-steps, liste ordonnee) ----- */
.tp-steps {display: grid; gap: var(--s-3); margin: 0; padding: 0; list-style: none; counter-reset: tp-step;}
.tp-steps li {
  position: relative;
  padding: 20px 20px 20px 72px;
  background-color: var(--tp-white);
  border: 1px solid var(--tp-line);
  border-radius: var(--r-lg);
}
.tp-steps li::before {
  counter-increment: tp-step;
  content: counter(tp-step);
  position: absolute;
  top: 20px;
  left: 20px;
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  border-radius: 50%;
  background-color: var(--tp-blue-900);
  color: var(--tp-white);
  font-family: var(--f-head);
  font-size: var(--fs-16);
  font-weight: 600;
}
.tp-steps h3 {margin: 0 0 6px; font-family: var(--f-head); font-size: var(--fs-18); font-weight: 600; line-height: 1.2; color: var(--tp-blue-900);}
.tp-steps p {margin: 0; font-size: 14.5px; color: var(--tp-muted);}
.tp-steps-foot {display: grid; grid-template-columns: 1fr; gap: 10px; margin-top: var(--s-6);}
.tp-steps-foot small {font-size: var(--fs-14); color: var(--tp-muted);}
@media (min-width: 576px) {.tp-steps-foot {display: inline-grid; grid-template-columns: none; grid-auto-columns: 1fr; grid-auto-flow: column;}}
@media (min-width: 768px) {
  .tp-steps {grid-template-columns: repeat(3, 1fr); gap: 20px;}
  .tp-steps li {padding: var(--s-6);}
  .tp-steps li::before {position: static; margin-bottom: 14px;}
}

/* ----- 9. Bande de reassurance (.tp-trust) ----- */
.tp-trust {background-color: var(--tp-white); border-bottom: 1px solid var(--tp-line);}
.tp-trust ul {display: grid; grid-template-columns: 1fr 1fr; gap: 0; margin: 0; padding: 0; list-style: none;}
.tp-trust li {display: flex; align-items: flex-start; gap: var(--s-3); padding: 18px 8px; font-size: 13.5px; line-height: 1.4; color: var(--tp-muted);}
.tp-trust li:nth-child(odd) {padding-left: 0;}
.tp-trust li:nth-child(-n+2) {border-bottom: 1px solid var(--tp-line);}
.tp-trust b {display: block; margin-bottom: 2px; font-size: 14.5px; color: var(--tp-blue-900);}
.tp-trust .ic {display: grid; flex: none; place-items: center; width: 40px; height: 40px; border-radius: var(--r); background-color: var(--tp-blue-50); color: var(--tp-blue);}
@media (min-width: 1024px) {
  .tp-trust ul {grid-template-columns: repeat(4, 1fr);}
  .tp-trust li,
  .tp-trust li:nth-child(-n+2) {padding: var(--s-6) 20px; border-bottom: 0;}
  .tp-trust li:first-child {padding-left: 0;}
  .tp-trust li + li {border-left: 1px solid var(--tp-line);}
}

/* ----- 10. Logos des marques (.tp-brand-strip) ----- */
.tp-brand-strip {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  margin: 0;
  padding: 0;
  list-style: none;
  background-color: var(--tp-white);
  border-top: 1px solid var(--tp-line);
  border-left: 1px solid var(--tp-line);
}
.tp-brand-strip a {
  display: grid;
  place-items: center;
  height: 88px;
  padding: var(--s-4);
  border-right: 1px solid var(--tp-line);
  border-bottom: 1px solid var(--tp-line);
  transition: background-color var(--t-base) var(--ease);
}
.tp-brand-strip img {
  width: auto;
  max-width: 100%;
  height: auto;
  max-height: 100%;
  object-fit: contain;
  filter: grayscale(1);
  opacity: .7;
  mix-blend-mode: multiply;
  transition: filter var(--t-base) var(--ease), opacity var(--t-base) var(--ease);
}
.tp-brand-strip a:hover,
.tp-brand-strip a:focus-visible {background-color: var(--tp-surface);}
.tp-brand-strip a:hover img,
.tp-brand-strip a:focus-visible img {filter: none; opacity: 1;}
@media (min-width: 768px) {
  .tp-brand-strip {grid-template-columns: repeat(4, 1fr);}
  .tp-brand-strip a {height: 108px; padding: 22px;}
}
@media (min-width: 1024px) {.tp-brand-strip {grid-template-columns: repeat(6, 1fr);}}

/* ----- 11. Onglets filtres (.tp-tabs, role="tablist") ----- */
.tp-tabs {display: flex; gap: var(--s-2); margin-bottom: 20px; padding-bottom: 2px; overflow-x: auto; scrollbar-width: none;}
.tp-tabs::-webkit-scrollbar {display: none;}
.tp-tabs button {
  flex: none;
  height: 40px;
  padding: 0 var(--s-4);
  background-color: var(--tp-white);
  border: 1.5px solid var(--tp-line);
  border-radius: var(--r-pill);
  font-family: var(--f-body);
  font-size: var(--fs-14);
  font-weight: 600;
  color: var(--tp-muted);
  cursor: pointer;
  transition: background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease), color var(--t-fast) var(--ease);
}
.tp-tabs button:hover {border-color: #B8C4D0; color: var(--tp-ink);}
.tp-tabs button[aria-selected="true"],
.tp-tabs button[aria-selected="true"]:focus {background-color: var(--tp-blue-900); border-color: var(--tp-blue-900); color: var(--tp-white);}
.tp-tabs button:disabled {opacity: .5; cursor: not-allowed;}
/* Onglets défilants (retour du 10 nov.) : glissement au doigt et à la souris, aimantage, flèches et bords estompés */
.tp-tabs-wrap {position: relative; margin-bottom: 20px;}
.tp-tabs-wrap .tp-tabs {margin-bottom: 0; scroll-snap-type: x proximity; scroll-behavior: smooth; overscroll-behavior-x: contain; padding: 2px 2px 4px;}
.tp-tabs-wrap .tp-tabs button {scroll-snap-align: start;}
.tp-tabs-wrap.tp-g .tp-tabs {-webkit-mask-image: linear-gradient(to right, transparent 0, #000 56px); mask-image: linear-gradient(to right, transparent 0, #000 56px);}
.tp-tabs-wrap.tp-d .tp-tabs {-webkit-mask-image: linear-gradient(to left, transparent 0, #000 56px); mask-image: linear-gradient(to left, transparent 0, #000 56px);}
.tp-tabs-wrap.tp-g.tp-d .tp-tabs {-webkit-mask-image: linear-gradient(to right, transparent 0, #000 56px, #000 calc(100% - 56px), transparent 100%); mask-image: linear-gradient(to right, transparent 0, #000 56px, #000 calc(100% - 56px), transparent 100%);}
.tp-tabs.tp-glisse {cursor: grabbing; scroll-snap-type: none; scroll-behavior: auto; user-select: none;}
.tp-tabs.tp-glisse button {pointer-events: none;}
.tp-tabs-fleche {position: absolute; top: 50%; z-index: 2; display: none; place-items: center; width: 40px; height: 40px; margin-top: -21px; padding: 0; border: 1px solid var(--tp-line); border-radius: 50%; background: #fff; color: var(--tp-blue-900); box-shadow: var(--sh); cursor: pointer; transition: var(--tp-trans, box-shadow .15s);}
.tp-tabs-fleche:hover {border-color: var(--tp-blue); color: var(--tp-blue); box-shadow: var(--sh-h);}
.tp-tabs-fleche--g {left: -6px;}
.tp-tabs-fleche--d {right: -6px;}
@media (hover: hover) and (pointer: fine) {
  .tp-tabs-wrap .tp-tabs {cursor: grab;}
  .tp-tabs-wrap.tp-g .tp-tabs-fleche--g, .tp-tabs-wrap.tp-d .tp-tabs-fleche--d {display: grid;}
}
@media (prefers-reduced-motion: reduce) {.tp-tabs-wrap .tp-tabs {scroll-behavior: auto;}}

/* ----- 12. Barre d'actions mobile (.tp-mobile-bar, < 768 px) ----- */
/* Ajouter la classe tp-has-mobile-bar sur <body> pour que la barre ne masque rien */
.tp-mobile-bar {
  position: fixed;
  right: 0;
  bottom: 0;
  left: 0;
  z-index: var(--z-sticky);
  display: grid;
  grid-template-columns: 1fr 1fr 1.3fr;
  gap: var(--s-2);
  padding: var(--s-2);
  padding-bottom: max(8px, env(safe-area-inset-bottom));
  background-color: var(--tp-white);
  border-top: 1px solid var(--tp-line);
  box-shadow: var(--sh-bar);
}
.tp-mobile-bar a {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  height: 44px;
  border: 1.5px solid transparent;
  border-radius: var(--r);
  font-family: var(--f-body);
  font-size: 13.5px;
  font-weight: 600;
  text-decoration: none;
  transition: background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease);
}
.tp-mobile-bar .call,
.tp-mobile-bar .call:hover,
.tp-mobile-bar .call:focus {color: var(--tp-blue-900) !important; border-color: var(--tp-line-strong);}
.tp-mobile-bar .call:hover {background-color: var(--tp-blue-50);}
.tp-mobile-bar .wa,
.tp-mobile-bar .wa:hover,
.tp-mobile-bar .wa:focus,
.tp-mobile-bar .quote,
.tp-mobile-bar .quote:hover,
.tp-mobile-bar .quote:focus {color: var(--tp-white) !important;}
.tp-mobile-bar .wa {background-color: var(--tp-whatsapp);}
.tp-mobile-bar .wa:hover {background-color: var(--tp-whatsapp-700);}
.tp-mobile-bar .quote {background-color: var(--tp-bordeaux);}
.tp-mobile-bar .quote:hover {background-color: var(--tp-bordeaux-700);}
@media (max-width: 767px) {.tp-has-mobile-bar {padding-bottom: 64px;}}
@media (min-width: 768px) {.tp-mobile-bar {display: none;}}

/* ----- 13. Mouvement reduit (limite aux composants du design system) ----- */
@media (prefers-reduced-motion: reduce) {
  .tp-btn, .tp-link i, .tp-link svg, .tp-cat, .tp-cat img, .tp-cat__go i, .tp-cat__go svg,
  .tp-card-product, .tp-brand-strip a, .tp-brand-strip img, .tp-tabs button, .tp-mobile-bar a {
    transition-duration: .01ms !important;
  }
  .tp-cat:hover,
  .tp-cat:hover img,
  .tp-link:hover i,
  .tp-link:hover svg,
  .tp-cat:hover .tp-cat__go i,
  .tp-cat:hover .tp-cat__go svg {transform: none;}
  .tp-btn[aria-busy="true"]::before {animation-duration: 1.5s;}
}
/* ----- Page d'entree V3 Soudage / Process (maquette docs/refonte-2026/maquettes/entree-v3-split.html, validee le 9 nov. 2026) ----- */
/* Deux univers plein ecran separes en diagonale, sans menu visible ni pied commun ; menu « Menu » et bloc « en bref » pour le SEO (document 25). */
.tp-ent-skip {position: absolute; left: 12px; top: -60px; z-index: 1100; background: #fff; color: var(--tp-blue-900) !important; padding: 10px 14px; border-radius: var(--r); font-weight: 600;}
.tp-ent-skip:focus {top: 12px;}
.tp-ent-hd, .tp-ent {font-family: var(--f-body);}
/* main est en flex dans le theme, qui masque aussi header en mobile */
.tp-ent-hd, .tp-ent {width: 100%; flex: 0 0 100%;}
body:has(.tp-ent-hd) {padding-top: 0 !important;}
/* Le theme impose aux li une hauteur de ligne de 62 px et une petite police */
.tp-ent li, .tp-ent-hd li {line-height: 1.45; font-size: inherit;}
/* ... et Poppins en majuscules sur les liens de liste, Open Sans sur les paragraphes : police du design system */
.tp-ent p, .tp-ent li, .tp-ent a, .tp-ent address, .tp-ent-hd p, .tp-ent-hd li, .tp-ent-hd a {font-family: var(--f-body); text-transform: none;}
.tp-ent p.tp-ent-eyebrow {text-transform: uppercase;}
.tp-ent-hd a:focus-visible, .tp-ent-hd button:focus-visible, .tp-ent-stage a:focus-visible, .tp-ent-skip:focus-visible {outline: 3px solid var(--tp-focus-on-dark) !important; outline-offset: 3px; border-radius: 4px;}
.tp-ent-skip:focus-visible {outline: 3px solid var(--tp-focus) !important; outline-offset: 2px; border-radius: 4px;}

/* En-tete pose sur les univers : logo, titre principal, langue, contact, menu */
.tp-ent-hd {display: flex !important; position: absolute; top: 0; left: 0; right: 0; z-index: 40; align-items: flex-start; justify-content: space-between; gap: 12px; padding: 16px 20px 0; pointer-events: none; color: #fff;}
.tp-ent-hd > * {pointer-events: auto;}
.tp-ent-brand {position: relative; z-index: 2; display: flex; flex-direction: column; gap: 10px; min-width: 0;}
.tp-ent-logo {display: block; line-height: 0;}
.tp-ent-logo img {display: block; height: 30px; width: auto; max-width: none; aspect-ratio: 459.213 / 76.619;}
.tp-ent-h1 {margin: 0; font: 600 11.5px/1.5 var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: rgba(255,255,255,.82);}
.tp-ent-h1 span {display: block;}
.tp-ent-h1 span:last-child {color: rgba(255,255,255,.62);}
.tp-ent-tools {position: relative; z-index: 2; display: flex; align-items: center; gap: 6px;}
.tp-ent-lang {display: flex; font-size: 13px; font-weight: 600;}
.tp-ent-lang a {display: grid; place-items: center; min-width: 40px; height: 40px; padding: 0 10px; border-radius: var(--r-pill); text-decoration: none; color: #fff !important;}
.tp-ent-lang a:hover {background: rgba(255,255,255,.14);}
.tp-ent-lang a[aria-current] {background: #fff; color: var(--tp-blue-900) !important;}
.tp-ent-ic {display: grid; place-items: center; width: 44px; height: 44px; border-radius: 50%; color: #fff !important; text-decoration: none; transition: background .15s;}
.tp-ent-ic--tel {display: none; background: rgba(255,255,255,.14);}
.tp-ent-ic--tel:hover {background: rgba(255,255,255,.26);}
.tp-ent-ic--wa {background: var(--tp-whatsapp);}
.tp-ent-ic--wa:hover {background: var(--tp-whatsapp-700);}
.tp-ent-burger {display: inline-flex; align-items: center; gap: 8px; height: 44px; min-width: 44px; padding: 0 12px; border: 1px solid rgba(255,255,255,.4); border-radius: var(--r-pill); background: rgba(255,255,255,.1); color: #fff; font: 600 14px/1 var(--f-body); cursor: pointer; transition: background .15s;}
.tp-ent-burger:hover {background: rgba(255,255,255,.22);}
.tp-ent-burger span {display: none;}
.tp-ent-burger__close, .tp-ent-burger[aria-expanded="true"] .tp-ent-burger__open {display: none;}
.tp-ent-burger[aria-expanded="true"] .tp-ent-burger__close {display: block;}

/* Menu plein ecran (navigation de catalogue), mode clair (retour du 9 nov.) : recherche, univers en onglets au clic
   (accordeons en mobile), acces rapides, pied. L'en-tete devient une barre fixe et opaque : plus de chevauchement au defilement. */
.tp-ent-logo__couleur {display: none !important;}
.tp-ent-hd.tp-ouvert {position: fixed; background: #fff; padding-bottom: 14px; border-bottom: 1px solid var(--tp-line); box-shadow: 0 6px 20px rgba(7,27,46,.06);}
.tp-ent-hd.tp-ouvert .tp-ent-logo__blanc {display: none !important;}
.tp-ent-hd.tp-ouvert .tp-ent-logo__couleur {display: block !important;}
.tp-ent-hd.tp-ouvert .tp-ent-h1 {position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap;}
.tp-ent-hd.tp-ouvert .tp-ent-lang a {color: var(--tp-blue-900) !important;}
.tp-ent-hd.tp-ouvert .tp-ent-lang a:hover {background: var(--tp-surface);}
.tp-ent-hd.tp-ouvert .tp-ent-lang a[aria-current] {background: var(--tp-blue-900); color: #fff !important;}
.tp-ent-hd.tp-ouvert .tp-ent-ic--tel {background: var(--tp-surface); color: var(--tp-blue-900) !important;}
.tp-ent-hd.tp-ouvert .tp-ent-burger {border-color: var(--tp-line); background: var(--tp-surface); color: var(--tp-blue-900);}
.tp-ent-hd.tp-ouvert .tp-ent-burger:hover {border-color: var(--tp-blue); color: var(--tp-blue);}
.tp-ent-hd.tp-ouvert a:focus-visible, .tp-ent-hd.tp-ouvert button:focus-visible {outline-color: var(--tp-focus) !important;}

.tp-ent-drawer {position: fixed; left: 0; right: 0; bottom: 0; top: var(--tp-hd-h, 72px); z-index: 1; overflow-y: auto; overscroll-behavior: contain; background: var(--tp-surface); padding: 24px 20px 40px; color: var(--tp-ink);}
.tp-ent-drawer[hidden] {display: none;}
.tp-ent-drawer:not([hidden]) {animation: tpNavIn .22s ease-out;}
@keyframes tpNavIn {from {opacity: 0;} to {opacity: 1;}}
body:has(.tp-ent-drawer:not([hidden])) {overflow: hidden;}
.tp-ent-drawer__in {max-width: 1280px; margin: 0 auto; display: grid; grid-template-columns: minmax(0, 1fr); gap: 24px;}
.tp-ent-drawer a:focus-visible, .tp-ent-drawer button:focus-visible {outline: 3px solid var(--tp-focus) !important; outline-offset: 2px;}

/* Recherche */
.tp-nav-search {position: relative; display: flex; align-items: center; height: 56px; padding: 0 6px 0 48px; border: 1px solid #CBD2DA; border-radius: 12px; background: #fff;}
.tp-nav-search__ic {position: absolute; left: 16px; color: var(--tp-muted);}
.tp-ent-drawer .tp-nav-search input, .tp-ent-drawer .tp-nav-search input:focus, .tp-ent-drawer .tp-nav-search input:focus-visible {flex: 1; width: 100%; min-width: 0; height: 100%; margin: 0; padding: 0; border: 0 !important; outline: none !important; box-shadow: none !important; background: none; font: 400 16px var(--f-body); color: var(--tp-ink);}
.tp-nav-search input::placeholder {color: var(--tp-placeholder);}
.tp-nav-search button {flex: none; height: 44px; padding: 0 18px; border: 0; border-radius: 8px; background: var(--tp-blue); color: #fff; font: 600 15px var(--f-body); cursor: pointer; transition: background .15s;}
.tp-nav-search button:hover {background: var(--tp-blue-700);}
.tp-nav-search:focus-within {border-color: var(--tp-blue); outline: 3px solid rgba(0,89,154,.25); outline-offset: 0;}

/* Univers : onglets au clic en ordinateur, accordeons en mobile */
.tp-nav-cat {display: grid; grid-template-columns: minmax(0, 1fr); gap: 10px; align-content: start;}
.tp-nav-u {margin: 0; font: inherit;}
.tp-nav-u__btn {position: relative; display: flex; align-items: center; gap: 14px; width: 100%; min-height: 72px; padding: 14px 16px 14px 20px; border: 1px solid var(--tp-line); border-radius: 12px; background: #fff; color: var(--tp-blue-900); text-align: left; cursor: pointer; transition: border-color .15s, box-shadow .15s, background .15s;}
.tp-nav-u__btn::before {content: ""; position: absolute; left: -1px; top: 12px; bottom: 12px; width: 4px; border-radius: 0 4px 4px 0; background: var(--tp-blue); opacity: 0; transition: opacity .15s;}
.tp-nav-u--process .tp-nav-u__btn::before {background: var(--tp-bordeaux);}
.tp-nav-u__btn:hover {border-color: #B8C4D0; box-shadow: var(--sh);}
.tp-nav-u__btn[aria-expanded="true"] {border-color: var(--tp-blue); box-shadow: var(--sh);}
.tp-nav-u--process .tp-nav-u__btn[aria-expanded="true"] {border-color: var(--tp-bordeaux);}
.tp-nav-u__btn[aria-expanded="true"]::before {opacity: 1;}
.tp-nav-u__num {flex: none; font: 600 24px/1 var(--f-head); color: transparent; -webkit-text-stroke: 1.2px #9AA6B2;}
.tp-nav-u__txt {flex: 1; display: flex; flex-direction: column; gap: 3px; min-width: 0;}
.tp-nav-u__nom {font: 500 17px/1.25 var(--f-head); color: var(--tp-blue-900);}
.tp-nav-u__nb {font: 400 13.5px/1.3 var(--f-body); color: var(--tp-muted);}
.tp-nav-u__chev {flex: none; color: var(--tp-muted); transform: rotate(90deg); transition: transform .25s cubic-bezier(.22,.61,.36,1), color .15s;}
.tp-nav-u__btn[aria-expanded="true"] .tp-nav-u__chev {transform: rotate(-90deg); color: var(--tp-blue);}

/* Panneau des familles */
.tp-nav-p[hidden] {display: none;}
.tp-nav-p {padding: 4px 4px 12px;}
.tp-nav-p__hd {display: flex; align-items: baseline; justify-content: space-between; gap: 16px; margin: 0 0 10px;}
.tp-nav-p__t {display: none; margin: 0; font: 500 24px/1.2 var(--f-head); color: var(--tp-blue-900);}
.tp-nav-p__all {display: inline-flex; align-items: center; gap: 6px; padding: 8px 0; font: 600 15px var(--f-body); color: var(--tp-blue) !important; text-decoration: underline; text-underline-offset: 4px; white-space: nowrap;}
.tp-nav-p__list {list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr; gap: 2px;}
.tp-nav-p__list a {display: flex; align-items: center; justify-content: space-between; gap: 12px; min-height: 48px; padding: 10px 14px; border-radius: 8px; color: var(--tp-ink) !important; font: 400 15.5px/1.35 var(--f-body); text-decoration: none; transition: background .15s, color .15s;}
.tp-nav-p__list a:hover {background: #fff; color: var(--tp-blue) !important; box-shadow: var(--sh);}
.tp-nav-p__list small {flex: none; min-width: 26px; padding: 2px 8px; border-radius: 99px; background: var(--tp-blue-50); font: 600 12px/1.5 var(--f-body); text-align: center; color: var(--tp-blue-900);}

/* Acces rapides et presentation */
.tp-nav-actions {list-style: none; margin: 0; padding: 0; display: grid; gap: 8px;}
.tp-nav-actions a {display: flex; align-items: center; gap: 14px; min-height: 56px; padding: 0 16px; border: 1px solid var(--tp-line); border-radius: 10px; background: #fff; color: var(--tp-blue-900) !important; font: 500 15.5px var(--f-body); text-decoration: none; transition: border-color .15s, box-shadow .15s;}
.tp-nav-actions a:hover {border-color: var(--tp-blue); box-shadow: var(--sh);}
.tp-nav-actions svg {flex: none; color: var(--tp-blue);}
.tp-nav-actions span:not(.tp-nav-badge) {flex: 1;}
.tp-nav-badge {flex: none; min-width: 24px; height: 24px; padding: 0 7px; border-radius: 99px; background: var(--tp-blue); color: #fff; font: 600 13px/24px var(--f-body); text-align: center;}
.tp-nav-about {margin-top: 16px; padding: 20px; border: 1px solid var(--tp-line); border-radius: 12px; background: #fff;}
.tp-ent-hd p.tp-nav-about__t {margin: 0 0 8px; font: 600 12.5px/1.3 var(--f-body); letter-spacing: .14em; text-transform: uppercase; color: var(--tp-blue-900);}
.tp-nav-about p {margin: 0; font-size: 14px; line-height: 1.6; color: #3E4C59;}
.tp-nav-stats {list-style: none; margin: 16px 0 0; padding: 16px 0 0; border-top: 1px solid var(--tp-line); display: grid; grid-template-columns: repeat(3, 1fr); gap: 8px;}
.tp-nav-stats li {display: flex; flex-direction: column; font-size: 12.5px; color: var(--tp-muted);}
.tp-nav-stats strong {font: 500 20px/1.2 var(--f-head); color: var(--tp-blue-900);}

/* Pied du menu */
.tp-nav-foot {display: grid; gap: 16px; padding-top: 22px; border-top: 1px solid var(--tp-line); font-size: 14px;}
.tp-nav-pages {list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 24px;}
.tp-nav-pages a, .tp-nav-coord a {display: inline-block; padding: 6px 0; text-decoration: none;}
.tp-nav-pages a {font-weight: 600; color: var(--tp-blue-900) !important;}
.tp-nav-pages__grp {display: flex; flex-wrap: wrap; align-items: center; gap: 0 16px;}
.tp-nav-pages__t {font-size: 12.5px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--tp-muted);}
.tp-nav-pages a:hover, .tp-nav-coord a:hover, .tp-nav-legal a:hover {color: var(--tp-blue) !important; text-decoration: underline; text-underline-offset: 3px;}
.tp-nav-coord {display: flex; flex-wrap: wrap; gap: 0 20px; margin: 0; font-style: normal;}
.tp-nav-coord a {color: #3E4C59 !important;}
.tp-nav-bas {display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px 24px;}
.tp-nav-lang {display: flex; gap: 8px;}
.tp-nav-lang a {display: inline-flex; align-items: center; min-height: 40px; padding: 0 14px; border: 1px solid var(--tp-line); border-radius: 99px; background: #fff; color: var(--tp-blue-900) !important; text-decoration: none; font-size: 14px;}
.tp-nav-lang a[aria-current] {background: var(--tp-blue-900); border-color: var(--tp-blue-900); color: #fff !important;}
.tp-nav-legal {margin: 0; font-size: 13px; color: var(--tp-muted);}
.tp-nav-legal a {display: inline-block; padding: 4px 0; color: var(--tp-muted) !important;}

@media (min-width: 992px) {
  .tp-ent-hd.tp-ouvert {padding-bottom: 18px;}
  .tp-ent-drawer {padding: 36px 40px 48px;}
  .tp-ent-drawer__in {grid-template-columns: minmax(0, 1fr) 300px; grid-template-areas: "search search" "cat side" "foot foot"; gap: 32px 56px;}
  .tp-nav-search {grid-area: search;}
  .tp-nav-cat {grid-area: cat; grid-template-columns: 330px minmax(0, 1fr); column-gap: 36px; row-gap: 10px;}
  .tp-nav-u {grid-column: 1;}
  .tp-nav-p {grid-column: 2; grid-row: 1 / span 10; padding: 0;}
  .tp-nav-p__t {display: block;}
  .tp-nav-p__hd {padding-bottom: 14px; margin-bottom: 10px; border-bottom: 1px solid var(--tp-line);}
  .tp-nav-p__list {grid-template-columns: 1fr 1fr; column-gap: 16px;}
  .tp-nav-u__chev {transform: none;}
  .tp-nav-u__btn[aria-expanded="true"] .tp-nav-u__chev {transform: translateX(3px);}
  .tp-nav-side {grid-area: side;}
  .tp-nav-foot {grid-area: foot; grid-template-columns: auto 1fr; align-items: center; column-gap: 40px;}
  .tp-nav-coord {justify-content: flex-end;}
  .tp-nav-bas {grid-column: 1 / -1;}
}
@media (prefers-reduced-motion: reduce) {
  .tp-ent-drawer:not([hidden]) {animation: none;}
  .tp-nav-u__btn, .tp-nav-u__chev, .tp-nav-p__list a, .tp-nav-actions a, .tp-nav-search button {transition: none;}
}

/* Les deux univers */
.tp-ent-stage {position: relative;}
.tp-ent-pane {position: relative; overflow: hidden; isolation: isolate; color: #fff;}
.tp-ent-pane--weld {background: linear-gradient(160deg, var(--tp-blue) 0%, var(--tp-blue-900) 100%);}
.tp-ent-pane--proc {background: linear-gradient(160deg, var(--tp-bordeaux-700) 0%, var(--tp-bordeaux-900) 100%);}
.tp-ent-pane__bg {position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; max-width: none; object-fit: cover; opacity: .22; filter: grayscale(1) contrast(1.1); mix-blend-mode: luminosity;}
.tp-ent-num {position: absolute; z-index: -1; right: -10px; bottom: -24px; font: 700 clamp(140px, 22vw, 340px)/.8 var(--f-head); letter-spacing: -.04em; color: transparent; -webkit-text-stroke: 1.5px rgba(255,255,255,.14); pointer-events: none; user-select: none;}
.tp-ent-pane__in {position: relative; padding: 108px 20px 84px;}
.tp-ent-pane--proc .tp-ent-pane__in {padding: 96px 20px 48px;}
.tp-ent-eyebrow {display: flex; align-items: center; gap: 12px; margin: 0 0 14px; font: 600 12.5px/1 var(--f-body); letter-spacing: .16em; text-transform: uppercase; color: #fff;}
.tp-ent-eyebrow::before {content: ""; width: 32px; height: 2px; background: currentColor;}
.tp-ent-title {margin: 0; font: 500 clamp(34px, 4.1vw, 64px)/1.06 var(--f-head); letter-spacing: -.01em; color: #fff; overflow-wrap: normal; hyphens: manual;}
.tp-ent-lead {margin: 16px 0 0; max-width: 34ch; font-size: 16px; line-height: 1.55; color: rgba(255,255,255,.86);}
.tp-ent-brands {margin: 14px 0 0; font-size: 13.5px; letter-spacing: .02em; color: rgba(255,255,255,.75);}
.tp-ent-brands strong {font-weight: 600; color: #fff;}
.tp-ent-cta {display: inline-flex; align-items: center; gap: 12px; margin-top: 26px; min-height: 52px; padding: 14px 24px; border-radius: var(--r); background: #fff; color: var(--tp-blue-700) !important; font-weight: 600; font-size: 16px; text-decoration: none; transition: box-shadow .2s;}
.tp-ent-pane--proc .tp-ent-cta {color: var(--tp-bordeaux-700) !important;}
.tp-ent-cta:hover {text-decoration: none; box-shadow: 0 10px 28px rgba(7,27,46,.3);}
.tp-ent-cta svg {transition: transform .2s;}
.tp-ent-cta:hover svg, .tp-ent-cta:focus-visible svg {transform: translateX(4px);}
/* Tout le bloc de l'univers est cliquable (un seul lien, accessible au clavier) */
.tp-ent-cta::after {content: ""; position: absolute; inset: 0; z-index: 1;}
.tp-ent-trust {list-style: none; margin: 0; padding: 18px 20px; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 16px; background: var(--tp-bordeaux-900); color: rgba(255,255,255,.82); font-size: 13px; line-height: 1.35;}
.tp-ent-trust strong {font-weight: 600; color: #fff;}
.tp-ent-trust li {color: inherit;} /* T20 : le theme impose li {color:#555}, illisible sur le bordeaux */
@media (max-width: 991.98px) {
  /* En-tete compact : le titre principal reste lu par les lecteurs d'ecran et les moteurs */
  .tp-ent-h1 {position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap;}
  .tp-ent-pane--proc {margin-top: -56px; clip-path: polygon(0 56px, 100% 0, 100% 100%, 0 100%);}
  /* Liseré blanc le long de la séparation (retour du 9 nov.) */
  /* Liseré exactement sur la découpe : même forme que le clip-path du panneau Process, 4 px sous la séparation */
  .tp-ent-pane--proc::before {content: ""; position: absolute; top: 0; left: 0; right: 0; height: 64px; z-index: 1; pointer-events: none; background: #fff; clip-path: polygon(0 56px, 100% 0, 100% 4px, 0 60px);}
  /* Langue dans le menu en mobile : le logo et les boutons tiennent sur une ligne */
  .tp-ent-tools > .tp-ent-lang {display: none;}
  .tp-ent-drawer {padding-bottom: 100px;} /* la barre Appeler / WhatsApp reste au-dessus du menu */
  .tp-ent-logo img {height: 26px;}
}
@media (min-width: 992px) {
  .tp-ent-hd {padding: 28px 40px 0;}
  .tp-ent-logo img {height: 40px;}
  .tp-ent-ic--tel {display: grid;}
  .tp-ent-burger {padding: 0 16px 0 14px;}
  .tp-ent-burger span {display: inline;}
  .tp-ent-stage {height: 100vh; height: 100svh; min-height: 620px;}
  .tp-ent-pane {position: absolute; inset: 0;}
  .tp-ent-pane--weld {z-index: 0;}
  .tp-ent-pane--proc {z-index: 2; clip-path: polygon(56% 0, 100% 0, 100% 100%, 40% 100%); transition: clip-path .55s cubic-bezier(.22,.61,.36,1);}
  /* Liseré blanc le long de la diagonale (retour du 9 nov.) : couche blanche juste sous le panneau Process, décalée de 4 px */
  .tp-ent-stage::before {content: ""; position: absolute; inset: 0; z-index: 1; pointer-events: none; background: #fff; clip-path: polygon(calc(56% - 4px) 0, 100% 0, 100% 100%, calc(40% - 4px) 100%); transition: clip-path .55s cubic-bezier(.22,.61,.36,1);}
  .tp-ent-stage:has(.tp-ent-pane--weld:hover)::before,
  .tp-ent-stage:has(.tp-ent-pane--weld:focus-within)::before {clip-path: polygon(calc(58.5% - 4px) 0, 100% 0, 100% 100%, calc(42.5% - 4px) 100%);}
  .tp-ent-stage:has(.tp-ent-pane--proc:hover)::before,
  .tp-ent-stage:has(.tp-ent-pane--proc:focus-within)::before {clip-path: polygon(calc(53.5% - 4px) 0, 100% 0, 100% 100%, calc(37.5% - 4px) 100%);}
  .tp-ent-stage:has(.tp-ent-pane--weld:hover) .tp-ent-pane--proc,
  .tp-ent-stage:has(.tp-ent-pane--weld:focus-within) .tp-ent-pane--proc {clip-path: polygon(58.5% 0, 100% 0, 100% 100%, 42.5% 100%);}
  .tp-ent-stage:has(.tp-ent-pane--proc:hover) .tp-ent-pane--proc,
  .tp-ent-stage:has(.tp-ent-pane--proc:focus-within) .tp-ent-pane--proc {clip-path: polygon(53.5% 0, 100% 0, 100% 100%, 37.5% 100%);}
  .tp-ent-pane__in, .tp-ent-pane--proc .tp-ent-pane__in {position: absolute; top: 50%; transform: translateY(-50%); padding: 0;}
  .tp-ent-pane--weld .tp-ent-pane__in {left: max(40px, 6vw); width: min(32vw, 500px);}
  .tp-ent-pane--proc .tp-ent-pane__in {left: 60vw; width: min(34vw, 540px);}
  .tp-ent-pane--weld .tp-ent-num {left: max(28px, 4vw); right: auto; bottom: -6vh;}
  .tp-ent-pane--proc .tp-ent-num {right: 2vw; bottom: -6vh;}
  .tp-ent-lead {font-size: 17px;}
  .tp-ent-trust {position: absolute; z-index: 4; left: max(40px, 6vw); bottom: 28px; display: flex; gap: 0; padding: 0; background: #fff; color: var(--tp-muted); border-radius: var(--r-pill); box-shadow: 0 12px 32px rgba(11,42,69,.18); white-space: nowrap;}
  .tp-ent-trust li {padding: 12px 20px;}
  .tp-ent-trust li + li {border-left: 1px solid var(--tp-line);}
  .tp-ent-trust strong {color: var(--tp-blue-900);}
}
@media (min-width: 992px) and (max-width: 1279.98px) {
  .tp-ent-trust li:nth-child(4) {display: none;}
}
@media (min-width: 992px) and (max-height: 700px) {
  .tp-ent-brands {display: none;}
}

/* Barre d'actions mobile */
.tp-ent-mbar {position: fixed; left: 0; right: 0; bottom: 0; z-index: 1030; display: grid; grid-auto-flow: column; grid-auto-columns: 1fr; background: #fff; border-top: 1px solid var(--tp-line); box-shadow: 0 -6px 20px rgba(7,27,46,.08); padding-bottom: env(safe-area-inset-bottom);}
.tp-ent-mbar a {display: flex; align-items: center; justify-content: center; gap: 8px; min-height: 60px; font-size: 15px; font-weight: 600; text-decoration: none; color: var(--tp-blue-900) !important;}
.tp-ent-mbar a:hover {background: var(--tp-surface);}
.tp-ent-mbar a.tp-ent-mbar__wa {background: var(--tp-whatsapp); color: #fff !important;}
.tp-ent-mbar a.tp-ent-mbar__wa:hover {background: var(--tp-whatsapp-700);}
@media (max-width: 991.98px) {main:has(.tp-ent-mbar) {padding-bottom: 60px;}}
@media (min-width: 992px) {.tp-ent-mbar {display: none;}}
@media (prefers-reduced-motion: reduce) {
  .tp-ent-pane--proc, .tp-ent-stage::before, .tp-ent-cta, .tp-ent-cta svg, .tp-ent-burger, .tp-ent-ic {transition: none;}
}

/* ----- Accueils d'univers Soudage / Process (T07, maquettes lot1/accueil-*.html) ----- */
.tp-univ {flex: 1 1 100%; width: 100%; min-width: 0; font-family: var(--f-body); color: var(--tp-ink);}
.tp-univ h2, .tp-univ h3 {font-family: var(--f-head);}
.tp-wrap {max-width: var(--wrap); margin: 0 auto; padding: 0 var(--gutter);}
.tp-sec--flush {padding-top: 0;}
/* Noms de produits sans espace (references) : colonnes bornees et cesure */
.tp-univ .tp-grid {grid-template-columns: repeat(2, minmax(0, 1fr));}
.tp-univ .tp-card-product h3 {overflow-wrap: anywhere;}
@media (min-width: 768px) {.tp-univ .tp-grid {grid-template-columns: repeat(3, minmax(0, 1fr));}}
@media (min-width: 1024px) {.tp-univ .tp-grid {grid-template-columns: repeat(4, minmax(0, 1fr));}}
/* Banniere */
.tp-hero {position: relative; isolation: isolate; overflow: hidden; color: #fff; background-color: var(--tp-navy);}
.tp-hero__img {position: absolute; inset: 0; z-index: -2; width: 100%; height: 100%; object-fit: cover; object-position: 70% 50%;}
.tp-hero::before {content: ""; position: absolute; inset: 0; z-index: -1; background: linear-gradient(180deg, rgba(7,27,46,.55) 0%, rgba(7,27,46,.92) 70%);}
.tp-hero .tp-wrap {padding-top: 48px; padding-bottom: 40px;}
.tp-hero__content {max-width: 760px;}
.tp-hero .tp-eyebrow {color: #9CC7EA;}
.tp-hero h1 {margin: 0 0 16px; font-family: var(--f-head); font-size: 30px; font-weight: 600; line-height: 1.2; letter-spacing: -.01em; color: #fff;}
.tp-hero__lead {max-width: 54ch; margin: 0 0 28px; font-size: var(--fs-18); line-height: 1.55; color: #D6E2EE;}
.tp-hero__cta {display: flex; flex-direction: column; gap: 12px;}
.tp-hero__cta .tp-btn--primary {min-height: 56px; font-size: 16px;}
.tp-hero__proof {display: flex; flex-wrap: wrap; gap: 10px 20px; margin: 28px 0 0; padding: 0; list-style: none; font-size: 14px; color: #D6E2EE;}
.tp-hero__proof li {display: inline-flex; align-items: center; gap: 8px; color: #D6E2EE;}
.tp-hero__proof svg {flex: none; color: #7FD3A6;}
.tp-hero :focus-visible {outline-color: var(--tp-focus-on-dark) !important;}
/* Process : photo en niveaux de gris, voile bordeaux, bouton principal blanc (exception validee) */
.tp-hero--process .tp-hero__img {filter: grayscale(1);}
.tp-hero--process::before {background: linear-gradient(180deg, rgba(61,2,22,.62) 0%, rgba(61,2,22,.94) 70%);}
.tp-hero--process .tp-eyebrow {color: #F3B8C8;}
.tp-hero--process .tp-btn--primary,
.tp-hero--process .tp-btn--primary:focus {background-color: #fff; color: var(--tp-bordeaux-700) !important;}
.tp-hero--process .tp-btn--primary:not(:disabled):hover {background-color: #F3E6EA; color: var(--tp-bordeaux-700) !important;}
@media (min-width: 576px) {.tp-hero__cta {flex-direction: row; flex-wrap: wrap;}}
@media (min-width: 768px) {
  .tp-hero::before {background: linear-gradient(90deg, rgba(7,27,46,.96) 0%, rgba(7,27,46,.85) 45%, rgba(7,27,46,.2) 100%);}
  .tp-hero--process::before {background: linear-gradient(90deg, rgba(61,2,22,.97) 0%, rgba(122,5,41,.88) 45%, rgba(122,5,41,.35) 100%);}
  .tp-hero .tp-wrap {padding-top: 80px; padding-bottom: 72px;}
  .tp-hero h1 {font-size: var(--fs-44);}
}
@media (min-width: 1024px) {.tp-hero .tp-wrap {padding-top: 104px; padding-bottom: 96px;}}
@media (min-width: 1280px) {.tp-hero h1 {font-size: 52px;}}
/* Bandeau evenement */
.tp-event {position: relative; overflow: hidden; display: grid; gap: 20px; padding: 24px; border-radius: var(--r-lg); background-color: var(--tp-blue-900); color: #fff;}
.tp-event::after {content: ""; position: absolute; right: -60px; top: -60px; width: 240px; height: 240px; border: 36px solid rgba(255,255,255,.05); border-radius: 50%;}
.tp-event h2 {margin: 0; font-size: var(--fs-22); font-weight: 600; line-height: 1.3; color: #fff;}
.tp-event p {margin: 6px 0 0; font-size: 15px; color: #C9D6E3;}
.tp-event__cal {flex: none; width: 72px; overflow: hidden; border-radius: 10px; background-color: #fff; color: var(--tp-blue-900); text-align: center;}
.tp-event__cal span {display: block; background-color: var(--tp-blue); color: #fff; font: 600 11px/22px var(--f-body); letter-spacing: .06em; text-transform: uppercase;}
.tp-event__cal b {display: block; font: 600 20px/38px var(--f-head);}
.tp-event__cta {position: relative; z-index: 1; display: flex; flex-wrap: wrap; gap: 10px;}
.tp-event :focus-visible {outline-color: var(--tp-focus-on-dark) !important;}
@media (min-width: 1024px) {.tp-event {grid-template-columns: auto 1fr auto; align-items: center; gap: 32px; padding: 28px 36px;}}
/* Marques sans lien (liste) */
.tp-brand-strip--list li {display: grid; place-items: center; height: 88px; padding: var(--s-4); border-right: 1px solid var(--tp-line); border-bottom: 1px solid var(--tp-line);}
.tp-brand-strip--list li:hover img {filter: none; opacity: 1;}
@media (min-width: 768px) {.tp-brand-strip--list li {height: 108px; padding: 22px;}}
/* Qui sommes-nous */
.tp-about {display: grid; gap: 32px; align-items: center;}
.tp-about__media {position: relative; overflow: hidden; aspect-ratio: 16 / 10; border-radius: var(--r-lg); background-color: var(--tp-navy);}
.tp-about__media img {width: 100%; height: 100%; object-fit: cover; opacity: .9;}
.tp-play {position: absolute; inset: 0; display: grid; place-items: center; width: 72px; height: 72px; margin: auto; padding: 0; border: 0; border-radius: 50%; background-color: rgba(255,255,255,.95); color: var(--tp-blue-900); box-shadow: 0 0 0 10px rgba(255,255,255,.25); cursor: pointer; transition: transform var(--t-fast) var(--ease);}
.tp-play:hover {transform: scale(1.06);}
.tp-play svg {margin-left: 4px;}
.tp-play:focus-visible {outline: 3px solid var(--tp-focus-on-dark) !important; outline-offset: 4px;}
.tp-about__badge {position: absolute; left: 16px; bottom: 16px; padding: 10px 14px; border-radius: var(--r); background-color: #fff; box-shadow: var(--sh); font-size: 13px; color: var(--tp-muted);}
.tp-about__badge b {display: block; font: 600 22px/1.1 var(--f-head); color: var(--tp-blue-900);}
.tp-about h2 {margin: 0 0 16px; font-size: var(--fs-28); font-weight: 600; line-height: 1.2; color: var(--tp-blue-900);}
.tp-about p {margin: 0 0 14px; color: var(--tp-muted);}
.tp-stats {display: grid; grid-template-columns: repeat(3, 1fr); gap: 12px; margin: 24px 0 28px;}
.tp-stats div {padding-left: 12px; border-left: 3px solid var(--tp-blue);}
.tp-stats b {display: block; font: 600 26px/1.1 var(--f-head); color: var(--tp-blue-900);}
.tp-stats span {display: block; font-size: 13px; line-height: 1.3; color: var(--tp-muted);}
@media (min-width: 768px) {.tp-stats b {font-size: 32px;}}
@media (min-width: 1024px) {.tp-about {grid-template-columns: 1fr 1fr; gap: 64px;} .tp-about h2 {font-size: var(--fs-36);}}
/* Actualites en carrousel */
.tp-carousel {position: relative;}
.tp-news {display: grid; grid-auto-flow: column; grid-auto-columns: 86%; gap: 16px; margin: -4px -2px 0; padding: 4px 2px 8px; list-style: none; overflow-x: auto; scroll-snap-type: x mandatory; scrollbar-width: none;}
.tp-news::-webkit-scrollbar {display: none;}
.tp-news > li {display: flex; scroll-snap-align: start;}
.tp-news:focus-visible {outline: 3px solid var(--tp-focus) !important; outline-offset: 2px;}
.tp-news-card {display: flex; flex-direction: column; width: 100%; padding: 0; overflow: hidden; border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: #fff; color: inherit; font: inherit; text-align: left; cursor: pointer; transition: box-shadow var(--t-base) var(--ease);}
.tp-news-card:hover {box-shadow: var(--sh-h);}
.tp-news-card:focus-visible {outline: 3px solid var(--tp-focus) !important; outline-offset: 2px;}
.tp-news-card__img {display: block; aspect-ratio: 16 / 9; overflow: hidden; border-bottom: 1px solid var(--tp-line); background-color: var(--tp-surface);}
.tp-news-card__img img {width: 100%; height: 100%; object-fit: cover;}
.tp-news-card__body {display: flex; flex: 1; flex-direction: column; gap: 8px; padding: 18px 20px 20px;}
.tp-news-card time {font-size: 13px; color: var(--tp-muted);}
.tp-news-card__title {font: 600 16.5px/1.35 var(--f-body); color: var(--tp-blue-900);}
.tp-news-card:hover .tp-news-card__title {color: var(--tp-blue);}
.tp-news-card .tp-link {margin-top: auto; padding-top: 6px;}
.tp-carousel-nav {display: flex; align-items: center; gap: 8px;}
.tp-arrow {display: none; place-items: center; width: 44px; height: 44px; padding: 0; border: 1.5px solid var(--tp-line); border-radius: 50%; background-color: #fff; color: var(--tp-blue-900); cursor: pointer; transition: border-color var(--t-fast) var(--ease);}
.tp-arrow:hover:not(:disabled) {border-color: var(--tp-blue); color: var(--tp-blue);}
.tp-arrow:disabled {opacity: .35; cursor: default;}
.tp-arrow:focus-visible {outline: 3px solid var(--tp-focus) !important; outline-offset: 2px;}
.tp-arrow[data-dir="-1"] svg {transform: rotate(180deg);}
.tp-dots {display: flex; justify-content: center; gap: 8px; margin-top: 18px;}
.tp-dots button {width: 24px; height: 24px; padding: 0; border: 0; background: transparent; cursor: pointer; position: relative;}
.tp-dots button::before {content: ""; position: absolute; left: 50%; top: 50%; width: 10px; height: 10px; border-radius: 999px; background-color: var(--tp-line-strong); transform: translate(-50%, -50%);}
.tp-dots button[aria-current="true"]::before {width: 24px; background-color: var(--tp-blue);}
.tp-dots button:focus-visible {outline: 3px solid var(--tp-focus) !important;}
@media (min-width: 768px) {.tp-news {grid-auto-columns: calc((100% - 20px) / 2); gap: 20px;} .tp-arrow {display: grid;}}
@media (min-width: 1024px) {.tp-news {grid-auto-columns: calc((100% - 40px) / 3);}}
/* Lettre d'information */
.tp-newsletter {display: grid; gap: 16px; padding: 28px 24px; border-radius: var(--r-lg); background-color: var(--tp-blue); color: #fff;}
.tp-newsletter h2 {margin: 0; font-size: var(--fs-22); font-weight: 600; color: #fff;}
.tp-newsletter p {margin: 6px 0 0; font-size: 15px; color: #E3EEF8;}
.tp-newsletter__form {display: flex; flex-direction: column; gap: 10px;}
.tp-newsletter input {min-width: 0; height: 48px; padding: 0 16px; border: 2px solid transparent; border-radius: var(--r); font: inherit; font-size: 15px; color: var(--tp-ink);}
.tp-newsletter input:focus {outline: 3px solid #fff !important; outline-offset: 2px;}
.tp-newsletter input[aria-invalid="true"] {border-color: #FDA29B;}
.tp-newsletter :focus-visible {outline-color: var(--tp-focus-on-dark) !important;}
.tp-newsletter__msg {grid-column: 1 / -1; margin: 0 !important; font-weight: 600; color: #fff !important;}
.tp-newsletter__msg:empty {display: none;}
.tp-newsletter small {grid-column: 1 / -1; font-size: 12.5px; color: #E3EEF8;}
@media (min-width: 576px) {.tp-newsletter__form {flex-direction: row;} .tp-newsletter input {flex: 1;}}
@media (min-width: 1024px) {.tp-newsletter {grid-template-columns: 1fr 1.1fr; align-items: center; gap: 12px 48px; padding: 36px 44px;}}
@media (prefers-reduced-motion: reduce) {
  .tp-play, .tp-news-card, .tp-arrow {transition: none;}
  .tp-news {scroll-behavior: auto;}
}
/* ----- En-tete global par univers (T08) : menu, mega-menu, menu mobile ----- */
header.tp-entete {z-index: var(--z-header);}
.tp-unav {position: relative; border-top: 1px solid var(--tp-line); background: #fff;}
.tp-unav__in {display: flex; align-items: center; gap: 12px; padding: 0 24px;}
.tp-unav__nav {flex: 1; min-width: 0;}
.tp-unav__liste {display: flex; flex-wrap: nowrap; align-items: center; margin: 0; padding: 0; list-style: none; white-space: nowrap;}
.tp-unav__liste li {list-style: none;}
.tp-unav__dd,
.tp-unav__lien {display: flex; align-items: center; gap: 6px; min-height: 50px; padding: 0 12px; border: 0; border-bottom: 3px solid transparent; background: none; font: 600 14px/1.2 var(--f-body); color: var(--tp-blue-900) !important; text-decoration: none; white-space: nowrap; cursor: pointer;}
/* Chevron fin qui pivote en douceur (retour du 9 nov. : remplace le triangle qui « sautait ») */
.tp-unav__chev {flex: none; color: var(--tp-muted); transition: transform .25s cubic-bezier(.22,.61,.36,1), color .15s;}
.tp-unav__dd:hover .tp-unav__chev {color: var(--tp-blue);}
.tp-unav__dd[aria-expanded="true"] .tp-unav__chev {transform: rotate(180deg); color: var(--tp-blue);}
.tp-mega__plus {font-weight: 600; color: var(--tp-blue) !important;}
.tp-unav__dd:hover,
.tp-unav__lien:hover,
.tp-unav__dd[aria-expanded="true"] {color: var(--tp-blue) !important; border-bottom-color: var(--tp-blue);}
.tp-unav__lien[aria-current="page"] {border-bottom-color: var(--tp-blue);}
.tp-unav__entree {display: inline-flex; flex: none; align-items: center; gap: 8px; min-height: 40px; padding: 0 14px; border: 1px solid var(--tp-line-strong); border-radius: var(--r-pill); font: 600 13.5px var(--f-body); color: var(--tp-blue-900) !important; text-decoration: none; white-space: nowrap;}
.tp-unav__entree:hover {border-color: var(--tp-blue-900); background: var(--tp-surface);}
/* Pastille de bascule, dans la barre utilitaire */
.tp-entete-liens li.tp-unav__pastille {display: inline-flex; align-items: center; gap: 6px; padding: 2px 2px 2px 10px; border: 1px solid var(--tp-line); border-radius: var(--r-pill); background: #fff; font-size: 12.5px; line-height: 1.2; color: var(--tp-muted); white-space: nowrap;}
.tp-unav__pastille b {font-weight: 600; color: var(--tp-blue-900);}
.tp-entete-liens .tp-unav__pastille a {display: inline-flex; align-items: center; gap: 6px; min-height: 26px; padding: 0 10px; border-radius: var(--r-pill); background: var(--tp-blue-50); font-weight: 600; color: var(--tp-blue-900) !important; text-decoration: none;}
.tp-entete-liens .tp-unav__pastille a:hover {background: var(--tp-blue); color: #fff !important;}
.tp-entete-liens a.tp-entete-intro {display: inline-flex; align-items: center; gap: 6px; font-weight: 600; color: var(--tp-blue-900) !important; text-decoration: underline; text-decoration-color: transparent; text-underline-offset: 3px;}
.tp-entete-liens a.tp-entete-intro:hover, .tp-entete-liens a.tp-entete-intro:focus-visible {color: var(--tp-blue) !important; text-decoration-color: currentColor;}
/* Sélecteur d'univers à deux segments (retour du 10 nov.) : bleu Soudage, bordeaux Process (exception de l'univers Process) */
.tp-entete-liens li.tp-unav__pastille {gap: 4px; padding: 3px 3px 3px 12px;}
.tp-entete-liens .tp-unav__pastille a.tp-uswitch__seg {min-height: 28px; padding: 0 12px; border: 1.5px solid transparent; background: transparent; font-weight: 600; text-decoration: none;}
.tp-entete-liens .tp-unav__pastille a.tp-uswitch__seg--soudage {color: var(--tp-blue) !important;}
.tp-entete-liens .tp-unav__pastille a.tp-uswitch__seg--process {color: var(--tp-bordeaux-700) !important;}
.tp-entete-liens .tp-unav__pastille a.tp-uswitch__seg--soudage:hover {background: var(--tp-blue-50); border-color: var(--tp-blue);}
.tp-entete-liens .tp-unav__pastille a.tp-uswitch__seg--process:hover {background: var(--tp-bordeaux-50); border-color: var(--tp-bordeaux-700);}
.tp-entete-liens .tp-unav__pastille a.tp-uswitch__seg--soudage[aria-current] {background: var(--tp-blue); border-color: var(--tp-blue); color: #fff !important;}
.tp-entete-liens .tp-unav__pastille a.tp-uswitch__seg--process[aria-current] {background: var(--tp-bordeaux-700); border-color: var(--tp-bordeaux-700); color: #fff !important;}
.tp-entete-liens .tp-unav__pastille a.tp-uswitch__seg:focus-visible {outline: 3px solid var(--tp-focus) !important; outline-offset: 2px;}
.tp-mega {position: absolute; left: 0; right: 0; top: 100%; z-index: var(--z-dropdown); max-height: calc(100vh - 180px); overflow: auto; border-top: 1px solid var(--tp-line); background: #fff; box-shadow: 0 24px 48px rgba(7,27,46,.18);}
.tp-mega[hidden] {display: none;}
.tp-mega__in {display: grid; grid-template-columns: 240px 1fr; gap: 32px; max-width: var(--wrap); margin: 0 auto; padding: 28px 24px 32px;}
.tp-mega__side {padding-right: 24px; border-right: 1px solid var(--tp-line);}
.tp-mega__titre {margin: 6px 0 4px; font: 600 var(--fs-22)/1.25 var(--f-head); color: var(--tp-blue-900);}
.tp-mega__nb {margin: 0 0 16px; font-size: 14px; color: var(--tp-muted);}
.tp-mega__side ul {display: grid; gap: 4px; margin: 16px 0 0; padding: 0; list-style: none;}
.tp-mega__side ul a {display: block; padding: 6px 0; font-size: 14.5px; color: var(--tp-blue-900); text-decoration: none;}
.tp-mega__cols {columns: 3 220px; column-gap: 32px;}
.tp-mega__col {break-inside: avoid; margin: 0 0 22px;}
/* Panneau d'un menu de l'administration avec sous-menus (ex. Services) : cartes */
.tp-mega__cartes {display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 16px; align-content: start; margin: 0; padding: 0; list-style: none;}
.tp-mega__cartes a {display: flex; flex-direction: column; gap: 6px; min-height: 96px; padding: 20px; border: 1px solid var(--tp-line); border-radius: var(--r-lg); color: var(--tp-blue-900) !important; text-decoration: none; transition: border-color .15s, box-shadow .15s;}
.tp-mega__cartes a:hover {border-color: var(--tp-blue); box-shadow: var(--sh-h); text-decoration: none;}
.tp-mega__cartes a > span {font: 600 17px/1.3 var(--f-head);}
.tp-mega__cartes small {font-size: 13.5px; color: var(--tp-muted);}
.tp-mega__fam {display: block; margin-bottom: 6px; padding: 4px 0 6px; border-bottom: 2px solid var(--tp-blue-50); font: 600 15px/1.3 var(--f-body); color: var(--tp-blue-900); text-decoration: none;}
.tp-mega__col ul {display: grid; gap: 2px; margin: 0; padding: 0; list-style: none;}
.tp-mega__col li a {display: block; padding: 4px 0; font-size: 14px; color: var(--tp-ink); text-decoration: none;}
.tp-mega__side ul a:hover,
.tp-mega__fam:hover,
.tp-mega__col li a:hover {color: var(--tp-blue); text-decoration: underline;}
.tp-unav a:focus-visible,
.tp-unav button:focus-visible,
.tp-mnav a:focus-visible,
.tp-mnav button:focus-visible {outline: 3px solid var(--tp-focus) !important; outline-offset: 2px;}
@media (max-width: 1439px) {
  .tp-unav__dd, .tp-unav__lien {padding: 0 9px; font-size: 13.5px;}
}
/* Menu mobile : panneau lateral blanc, categories en accordeon */
.rsnp-mnu.tp-mnav {padding: 64px 20px 24px; overflow-y: auto; background-color: #fff; color: var(--tp-ink); box-shadow: -12px 0 32px rgba(7,27,46,.2);}
.tp-mnav .rspn-mnu-cls {width: 44px; height: 44px; padding: 0; border: 0; border-radius: var(--r); background-color: var(--tp-surface); color: var(--tp-blue-900); line-height: 44px;}
.tp-mnav__u {display: flex; align-items: center; justify-content: space-between; gap: 10px; padding: 0 0 12px; border-bottom: 1px solid var(--tp-line); font-size: 14px; color: var(--tp-muted);}
.tp-mnav__u b {display: block; font-size: 16px; color: var(--tp-blue-900);}
.tp-mnav__u a {flex: none; padding: 10px 12px; border-radius: var(--r-pill); background: var(--tp-surface); font-size: 13.5px; font-weight: 600; color: var(--tp-blue-900); text-decoration: none;}
.tp-mnav__entree {display: flex; align-items: center; gap: 6px; min-height: 48px; margin: 12px 0 4px; padding: 0 14px; border: 1px solid var(--tp-line-strong); border-radius: var(--r); font-weight: 600; color: var(--tp-blue-900); text-decoration: none;}
.tp-mnav nav {padding: 0; margin: 0;}
.tp-mnav__liste {margin: 0; padding: 0; list-style: none;}
.tp-mnav__liste > li {border-bottom: 1px solid var(--tp-line);}
.tp-mnav__acc,
.tp-mnav__lien {display: flex; align-items: center; justify-content: space-between; width: 100%; min-height: 52px; padding: 0 4px; border: 0; background: none; font: 600 16px var(--f-body); color: var(--tp-blue-900); text-align: left; text-decoration: none; cursor: pointer;}
.tp-mnav__acc::after {content: ""; width: 9px; height: 9px; margin-right: 6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform var(--t-fast) var(--ease);}
.tp-mnav__acc[aria-expanded="true"]::after {transform: rotate(-135deg);}
.tp-mnav__lien[aria-current="page"] {color: var(--tp-blue);}
.tp-mnav__p {padding: 0 0 12px 12px;}
.tp-mnav__p[hidden] {display: none;}
.tp-mnav__p a {display: block; padding: 10px 0; font-size: 15px; color: var(--tp-ink); text-decoration: none;}
.tp-mnav__p a.tp-mnav__tout {font-weight: 600; color: var(--tp-blue);}
.tp-mnav__pied {display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; margin-top: 16px; font-size: 14px;}
.tp-mnav__pied a {display: inline-flex; align-items: center; gap: 6px; min-height: 44px; color: var(--tp-blue-900); text-decoration: none;}
.tp-mnav__langues {display: inline-flex; gap: 4px;}
.tp-mnav__langues a {justify-content: center; min-width: 44px; border-radius: var(--r); font-weight: 600;}
.tp-mnav__langues a[aria-current="true"] {background: var(--tp-blue-50); color: var(--tp-blue);}
/* Menu mobile des pages intérieures (revue du 10 nov.) */
.rsnp-mnu.tp-mnav {right: -100vw; max-width: min(380px, 92vw); padding: 0 20px 24px; box-shadow: 0 0 0 100vmax rgba(7,27,46,0); transition: right .3s var(--tp-ease-out, ease-out), opacity .3s, visibility .3s, box-shadow .3s;}
.rsnp-mnu.tp-mnav.slidein {right: 0; box-shadow: 0 0 0 100vmax rgba(7,27,46,.45);}
.tp-mnav__hd {position: sticky; top: 0; z-index: 2; display: flex; align-items: center; justify-content: space-between; margin: 0 -20px 16px; padding: 12px 12px 12px 20px; background: #fff; border-bottom: 1px solid var(--tp-line);}
.tp-mnav__titre {margin: 0; font: 600 18px/1.2 var(--f-head); color: var(--tp-blue-900);}
.tp-mnav .tp-mnav__hd .rspn-mnu-cls {position: static; display: grid; place-items: center; width: 44px; height: 44px; padding: 0; border: 1px solid var(--tp-line); border-radius: 50%; background: #fff; color: var(--tp-blue-900); line-height: 1;}
.tp-mnav .tp-mnav__hd .rspn-mnu-cls:hover, .tp-mnav .tp-mnav__hd .rspn-mnu-cls:focus {background: var(--tp-surface); border-color: var(--tp-blue); color: var(--tp-blue);}
.tp-mnav__univers {display: grid; grid-template-columns: 1fr 1fr; gap: 4px; padding: 4px; border: 1px solid var(--tp-line); border-radius: 14px; background: var(--tp-surface);}
.tp-mnav__seg {display: flex; align-items: center; justify-content: center; min-height: 48px; padding: 6px 8px; border-radius: 10px; font: 600 14px/1.2 var(--f-body); text-align: center; text-decoration: none;}
.tp-mnav__seg--soudage {color: var(--tp-blue) !important;}
.tp-mnav__seg--process {color: var(--tp-bordeaux-700) !important;}
.tp-mnav__seg--soudage[aria-current] {background: var(--tp-blue); color: #fff !important;}
.tp-mnav__seg--process[aria-current] {background: var(--tp-bordeaux-700); color: #fff !important;}
.tp-mnav__seg:not([aria-current]):hover {background: #fff;}
.tp-mnav__intro {display: flex; align-items: center; gap: 10px; min-height: 48px; margin: 8px 0 4px; padding: 0 4px; font-weight: 600; color: var(--tp-blue-900) !important; text-decoration: none; border-bottom: 1px solid var(--tp-line);}
.tp-mnav__intro svg {color: var(--tp-blue);}
.tp-mnav__acc::after {transition: transform .25s var(--tp-ease-out, ease-out);}
.tp-mnav__p a {display: flex; align-items: center; min-height: 44px; padding: 8px 0; line-height: 1.35;}
.tp-mnav__p a:hover {color: var(--tp-blue) !important;}
.tp-mnav__p a.tp-mnav__annexe {font-size: 14px; color: var(--tp-muted) !important;}
.tp-mnav__p a:not(.tp-mnav__annexe) + a.tp-mnav__annexe {margin-top: 4px; border-top: 1px dashed var(--tp-line);}
@media (prefers-reduced-motion: reduce) {
  .tp-unav__chev, .tp-mnav__acc::after {transition: none;}
}
/* ----- Configurateur de declinaisons (T09) : fenetre <dialog>, champs, pastilles ----- */
.tp-btn--secondary {border: 1.5px solid var(--tp-blue); background-color: #fff; color: var(--tp-blue) !important;}
.tp-btn--secondary:not(:disabled):hover {background-color: var(--tp-blue-50);}
.tp-btn--danger-ghost {border: 1px solid transparent; background: transparent; color: var(--tp-danger) !important;}
.tp-btn--danger-ghost:not(:disabled):hover {border-color: var(--tp-danger); background-color: var(--tp-danger-50);}
.tp-btn.is-loading {position: relative; color: transparent !important; pointer-events: none;}
.tp-btn.is-loading::after {content: ""; position: absolute; left: 50%; top: 50%; width: 18px; height: 18px; margin: -9px 0 0 -9px; border: 2px solid currentColor; border-color: #fff #fff transparent transparent; border-radius: 50%; animation: tp-tourne .7s linear infinite;}
.tp-btn--secondary.is-loading::after, .tp-btn--danger-ghost.is-loading::after {border-color: var(--tp-blue) var(--tp-blue) transparent transparent;}
.tp-spinner {display: inline-block; width: 18px; height: 18px; margin-right: 10px; vertical-align: -3px; border: 2px solid var(--tp-blue); border-right-color: transparent; border-radius: 50%; animation: tp-tourne .7s linear infinite;}
@keyframes tp-tourne {to {transform: rotate(360deg);}}
.tp-field {display: grid; gap: 6px; min-width: 0;}
.tp-label {margin: 0; font-size: 14px; font-weight: 600; color: var(--tp-blue-900);}
.tp-help {margin: 0; font-size: 13.5px; color: var(--tp-muted);}
.tp-qty,
.tp-select,
.tp-textarea {width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid var(--tp-line-strong); border-radius: var(--r); background-color: #fff; font: inherit; font-size: 16px; color: var(--tp-ink);}
.tp-qty {width: 96px; text-align: center;}
.tp-textarea {min-height: 88px; resize: vertical;}
.tp-qty:focus, .tp-select:focus, .tp-textarea:focus {border-color: var(--tp-blue); outline: 3px solid rgba(0,89,154,.35) !important; outline-offset: 0;}
.tp-error {display: none; font-size: 13.5px; font-weight: 600; color: var(--tp-danger);}
.tp-field.is-invalid .tp-error {display: block;}
.tp-field.is-invalid .tp-textarea, .tp-field.is-invalid .tp-qty {border-color: var(--tp-danger);}
.tp-modal {width: min(880px, calc(100vw - 32px)); max-width: none; max-height: calc(100vh - 48px); padding: 0; border: 0; border-radius: var(--r-lg); box-shadow: 0 24px 64px rgba(7,27,46,.3); color: var(--tp-ink); overflow: hidden;}
.tp-modal::backdrop {background: rgba(7,27,46,.6);}
.tp-modal[open] {display: flex; flex-direction: column;}
.tp-modal__hd {display: flex; align-items: flex-start; gap: 12px; padding: 18px 20px; border-bottom: 1px solid var(--tp-line);}
.tp-modal__hd > div {flex: 1; min-width: 0;}
.tp-modal__hd h2 {margin: 0; font: 600 19px/1.3 var(--f-head); color: var(--tp-blue-900);}
.tp-modal__hd p {margin: 4px 0 0; font-size: 14px; color: var(--tp-muted);}
.tp-modal__charge {flex: 1; margin: 0 !important; font-size: 15px !important; color: var(--tp-ink) !important;}
.tp-modal__x {flex: none; width: 44px; height: 44px; margin: -6px -8px 0 0; border: 0; border-radius: var(--r); background: transparent; font-size: 28px; line-height: 1; color: var(--tp-blue-900); cursor: pointer;}
.tp-modal__x:hover {background-color: var(--tp-surface);}
.tp-modal__bd {flex: 1; padding: 20px; overflow: auto;}
.tp-modal__ft {display: flex; flex-wrap: wrap; justify-content: flex-end; align-items: center; gap: 10px; padding: 14px 20px; border-top: 1px solid var(--tp-line); background-color: var(--tp-surface);}
.tp-modal :focus-visible {outline: 3px solid var(--tp-focus) !important; outline-offset: 2px;}
.tp-cfg {display: grid; gap: 22px;}
.tp-cfg__tete {display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px;}
.tp-cfg__tete p {margin: 0; font-size: 14.5px; color: var(--tp-muted);}
.tp-cfg__mode {display: inline-flex; border: 1px solid var(--tp-line-strong); border-radius: var(--r); overflow: hidden;}
.tp-cfg__mode button {min-height: 40px; padding: 8px 14px; border: 0; background: #fff; font-size: 14px; font-weight: 600; color: var(--tp-muted); cursor: pointer;}
.tp-cfg__mode button[aria-pressed="true"] {background-color: var(--tp-blue-900); color: #fff;}
.tp-cfg__grp {min-width: 0; margin: 0; padding: 0; border: 0;}
.tp-cfg__grp legend {display: flex; align-items: baseline; gap: 8px; width: 100%; margin-bottom: 10px; padding: 0; font-size: 15px; font-weight: 600; color: var(--tp-ink);}
.tp-cfg__val {font-weight: 500; color: var(--tp-blue);}
.tp-cfg__effacer {flex: none; margin-left: auto; min-height: 24px; font-size: 13.5px;}
button.tp-link {padding: 0; border: 0; background: none; cursor: pointer;}
.tp-chips {display: flex; flex-wrap: wrap; gap: 8px; margin: 0; padding: 0; list-style: none;}
.tp-chip {position: relative; display: inline-flex; align-items: center; justify-content: center; min-width: 44px; min-height: 44px; padding: 8px 14px; border: 1px solid var(--tp-line-strong); border-radius: var(--r); background: #fff; font-size: 15px; font-weight: 500; color: var(--tp-ink); cursor: pointer;}
.tp-chip:hover {border-color: var(--tp-blue-900);}
.tp-chip[aria-pressed="true"] {padding: 7px 13px; border: 2px solid var(--tp-blue); background-color: var(--tp-blue-50); font-weight: 600; color: var(--tp-blue-900);}
.tp-chip.is-unavailable {border-style: dashed; background-color: var(--tp-surface); color: var(--tp-muted); text-decoration: line-through; text-decoration-color: #8A96A3;}
.tp-cfg__res {display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 12px; padding: 12px 14px; border-radius: var(--r); background-color: var(--tp-surface); font-size: 14.5px;}
.tp-cfg__res strong {font-size: 16px; color: var(--tp-blue-900);}
.tp-cfg__vers-liste {justify-self: start;}
.tp-cfg__trouve {display: grid; gap: 14px; padding: 16px; border: 2px solid var(--tp-ok); border-radius: var(--r-lg); background-color: var(--tp-ok-50);}
.tp-cfg__trouve h3 {margin: 0; font: 600 15px var(--f-body); color: #155C3A;}
.tp-cfg__trouve dl {display: grid; grid-template-columns: auto 1fr; gap: 4px 14px; margin: 0; font-size: 14.5px;}
.tp-cfg__trouve dt {font-weight: 400; color: var(--tp-muted);}
.tp-cfg__trouve dd {margin: 0; font-weight: 600;}
.tp-cfg__ligne-ajout {display: flex; flex-wrap: wrap; align-items: flex-end; gap: 12px;}
.tp-cfg__defile {max-height: 340px; overflow: auto; border: 1px solid var(--tp-line); border-radius: var(--r);}
.tp-cfg__table {width: 100%; border-collapse: collapse; font-size: 14.5px;}
.tp-cfg__table th {position: sticky; top: 0; z-index: 1; padding: 8px 10px; border-bottom: 2px solid var(--tp-line); background-color: #fff; text-align: left; font-size: 13px; font-weight: 600; color: var(--tp-muted);}
.tp-cfg__table td {padding: 6px 10px; border-bottom: 1px solid var(--tp-line); vertical-align: middle;}
.tp-cfg__table tr:hover td {background-color: var(--tp-blue-50);}
.tp-cfg__table .tp-qty {width: 80px; min-height: 40px;}
.tp-cfg__table .tp-btn {white-space: nowrap;}
.tp-more {border: 1px solid var(--tp-line); border-radius: var(--r);}
.tp-more summary {display: flex; align-items: center; min-height: 48px; padding: 0 14px; font-weight: 600; color: var(--tp-blue); cursor: pointer;}
.tp-more summary:focus-visible {outline: 3px solid var(--tp-focus) !important; outline-offset: 2px;}
.tp-more__corps {display: grid; gap: 14px; padding: 0 14px 14px;}
.tp-cfg__ajouts h3 {margin: 0 0 8px; font: 600 15px var(--f-body); color: var(--tp-blue-900);}
.tp-cfg__ajouts ul {display: grid; gap: 8px; margin: 0; padding: 0; list-style: none;}
.tp-cfg__ajouts li {display: flex; align-items: center; gap: 10px; padding: 8px 10px; border: 1px solid var(--tp-line); border-left: 3px solid var(--tp-ok); border-radius: var(--r); background: #fff; font-size: 14px;}
.tp-cfg__ajouts li span {flex: 1; min-width: 0;}
.tp-cfg__ajouts li b {color: var(--tp-blue-900);}
@media (max-width: 575.98px) {
  .tp-modal {width: 100vw; max-width: 100vw; height: 100%; max-height: 100%; margin: 0; border-radius: 0;}
  .tp-modal__ft {position: sticky; bottom: 0; flex-wrap: nowrap; padding: 10px 12px;}
  .tp-modal__ft .tp-btn {flex: 1 1 0; min-width: 0; padding: 0 10px; font-size: 14px; white-space: normal; line-height: 1.2;}
  .tp-cfg__ligne-ajout .tp-btn {flex: 1;}
}
@media (prefers-reduced-motion: reduce) {
  .tp-btn.is-loading::after, .tp-spinner {animation-duration: 2s;}
}

/* ----- T10 : fiche produit (bloc demande) et notifications au premier plan ----- */
.tp-champs.tp-champs--seul {grid-template-columns: minmax(0, 200px);}
.tp-btn-devis i {margin-right: 6px;}
.tp-btn-devis:disabled,
.tp-btn-devis.is-loading {opacity: .7; cursor: progress;}
.tp-toasts {
  position: fixed; inset: auto 12px 76px 12px; z-index: 1100;
  width: auto; height: auto; margin: 0; padding: 0; overflow: visible;
  border: 0; background: transparent;
  display: flex; flex-direction: column; gap: 10px; pointer-events: none;
}
.tp-toasts:not(:popover-open):empty {display: none;}
@media (min-width: 768px) {
  .tp-toasts {inset: 24px 24px auto auto; width: 380px;}
}
.tp-toast {
  position: relative; display: grid; grid-template-columns: auto 1fr auto; gap: 12px; align-items: start;
  padding: 14px 14px 16px; overflow: hidden; pointer-events: auto;
  border: 1px solid var(--tp-line); border-left: 0; border-radius: var(--r-lg);
  background-color: #fff; box-shadow: 0 12px 32px rgba(11, 42, 69, .18);
  animation: tp-toast-in .3s var(--ease);
}
.tp-toast::before {content: ""; position: absolute; top: 0; bottom: 0; left: 0; width: 4px; background-color: var(--c);}
.tp-toast__ic {display: grid; place-items: center; width: 32px; height: 32px; border-radius: 50%; background-color: var(--c50); color: var(--c); font-size: 14px;}
.tp-toast__t {margin: 0; font-size: 15px; font-weight: 700; color: var(--tp-ink);}
.tp-toast__x {margin: 2px 0 0; font-size: 14px; line-height: 1.45; color: var(--tp-muted); overflow-wrap: anywhere;}
.tp-toast__act {display: flex; flex-wrap: wrap; gap: 14px; margin-top: 8px;}
.tp-toast__close {display: grid; place-items: center; width: 32px; height: 32px; padding: 0; border: 0; border-radius: var(--r); background: transparent; color: var(--tp-muted); cursor: pointer;}
.tp-toast__close:hover {background-color: var(--tp-surface); color: var(--tp-ink);}
.tp-toast__close:focus-visible {outline: 3px solid var(--tp-focus); outline-offset: 2px;}
.tp-toast__bar {position: absolute; bottom: 0; left: 0; height: 3px; background-color: var(--c); opacity: .35; animation: tp-toast-bar linear forwards;}
.tp-toast--success {--c: var(--tp-ok); --c50: var(--tp-ok-50);}
.tp-toast--info {--c: var(--tp-blue); --c50: var(--tp-blue-50);}
.tp-toast--error {--c: var(--tp-danger); --c50: var(--tp-danger-50);}
.tp-toast.is-out {animation: tp-toast-out .25s var(--ease) forwards;}
.tp-nb-devis.tp-pulse {animation: tp-pulse .6s var(--ease);}
@keyframes tp-toast-in {from {opacity: 0; transform: translateY(12px);}}
@keyframes tp-toast-out {to {opacity: 0; transform: translateY(8px);}}
@keyframes tp-toast-bar {from {width: 100%;} to {width: 0;}}
@keyframes tp-pulse {50% {transform: scale(1.35);}}
@media (prefers-reduced-motion: reduce) {
  .tp-toast, .tp-toast.is-out, .tp-nb-devis.tp-pulse {animation: none;}
  .tp-toast__bar {animation-duration: 0s !important; display: none;}
}

/* ----- R01 : pages catalogue (categorie, sous-categories, liste de produits) ----- */
/* En-tete compact : fil d'Ariane, H1, introduction, coordonnees. Remplace la banniere photo et le bandeau bleu. */
.tp-phead,
.tp-catalogue {display: block; width: 100%; min-width: 0;}
.tp-phead > .tp-wrap,
.tp-catalogue > .tp-wrap {width: 100%;}
.tp-phead {padding: var(--s-4) 0 var(--s-6); background: var(--tp-white); border-bottom: 1px solid var(--tp-line);}
.tp-phead .tp-ariane {display: block; padding: 0; margin: 0;}
.tp-phead .tp-ariane ol {margin-bottom: var(--s-3);}
.tp-phead h1 {margin: 0; font-family: var(--f-head); font-size: var(--fs-28); font-weight: 600; line-height: 1.2; color: var(--tp-blue-900);}
.tp-phead__intro {max-width: 70ch; margin: var(--s-2) 0 0; color: var(--tp-muted); font-size: var(--fs-16); line-height: 1.55;}
.tp-phead__contact {display: flex; flex-wrap: wrap; gap: var(--s-2); margin: var(--s-4) 0 0; padding: 0; list-style: none;}
.tp-phead__contact a {
  display: inline-flex; align-items: center; gap: var(--s-2);
  min-height: 44px; padding: 0 14px;
  background: var(--tp-white); border: 1px solid var(--tp-line); border-radius: var(--r);
  color: var(--tp-blue-900) !important; font-size: var(--fs-14); font-weight: 600; text-decoration: none;
  overflow-wrap: anywhere;
  transition: border-color var(--t-base) var(--ease), background-color var(--t-base) var(--ease);
}
.tp-phead__contact a i {color: var(--tp-blue); font-size: 16px;}
.tp-phead__contact a:hover {border-color: var(--tp-blue); background: var(--tp-blue-50); text-decoration: none;}
.tp-phead__contact a:focus-visible {outline: 3px solid var(--tp-blue); outline-offset: 2px;}
.tp-catalogue {padding: var(--s-6) 0 var(--s-12);}
.tp-catalogue__bar {display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: var(--s-2); margin-bottom: var(--s-4); color: var(--tp-muted); font-size: var(--fs-14);}
.tp-catalogue__bar h2 {margin: 0; font-family: var(--f-head); font-size: var(--fs-22); font-weight: 600; color: var(--tp-blue-900);}
.tp-card-product__media {overflow: hidden; min-height: 0;}
.tp-card-product__media > a {display: block; position: absolute; inset: 14px;}
.tp-card-product__media > a img {display: block; width: 100%; height: 100%; max-width: none; max-height: none; object-fit: contain;}
.tp-card-product__media > a:focus-visible {outline: 3px solid var(--tp-blue); outline-offset: -3px;}
.tp-card-product__sub {display: none; margin: 0; font-size: 13px; line-height: 1.4; color: var(--tp-muted);}
.tp-card-product__sub span {display: -webkit-box; overflow: hidden; -webkit-line-clamp: 2; -webkit-box-orient: vertical;}
.tp-card-product h3 a {display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical;}
.tp-catalogue__cta {margin: var(--s-6) 0 0;}
.tp-empty {padding: var(--s-12) var(--s-4); background: var(--tp-surface); border-radius: var(--r-lg); color: var(--tp-muted); text-align: center;}
.tp-catalogue__about {margin-top: var(--s-12); padding-top: var(--s-8); border-top: 1px solid var(--tp-line);}
.tp-catalogue__about h2 {margin: 0 0 var(--s-4); font-family: var(--f-head); font-size: var(--fs-22); font-weight: 600; color: var(--tp-blue-900);}
.tp-catalogue__texte {max-width: 75ch; color: var(--tp-ink); line-height: 1.65;}
.tp-catalogue__texte ul {padding-left: 1.25em;}
.tp-catalogue__texte img {max-width: 100%; height: auto;}
.tp-catalogue__media {display: grid; gap: var(--s-8); align-items: start;}
.tp-catalogue__media figure {margin: 0;}
.tp-catalogue__media figure img {display: block; width: 100%; height: auto; border-radius: var(--r-lg); background: var(--tp-surface);}
.tp-catalogue__video {position: relative; width: 100%; max-width: 800px; margin: var(--s-8) auto 0; aspect-ratio: 16 / 9; border-radius: var(--r-lg); overflow: hidden; background: var(--tp-navy);}
.tp-catalogue__video iframe,
.tp-catalogue__video video {position: absolute; inset: 0; width: 100%; height: 100%; border: 0;}
/* En-tete en deux colonnes : titre et introduction a gauche, aide au choix a droite */
.tp-phead__grid {display: grid; gap: var(--s-4);}
.tp-phead__main {min-width: 0;}
.tp-aide {min-width: 0;}
.tp-aide h2 {display: none; margin: 0 0 var(--s-1); font-family: var(--f-head); font-size: var(--fs-18); font-weight: 600; line-height: 1.3; color: var(--tp-blue-900);}
.tp-aide p {display: none; margin: 0; color: var(--tp-muted); font-size: var(--fs-14); line-height: 1.5;}
.tp-aide .tp-btn--wa {display: inline-flex;}
/* Colonne de navigation des familles voisines */
.tp-catalogue__layout {display: grid; gap: var(--s-8);}
.tp-catalogue__main {min-width: 0;}
.tp-familles {min-width: 0;}
.tp-familles details {border: 1px solid var(--tp-line); border-radius: var(--r-lg); background: var(--tp-white);}
.tp-familles summary {display: flex; align-items: center; min-height: 44px; padding: 0 var(--s-4); font-family: var(--f-body); font-size: 12px; font-weight: 700; letter-spacing: .08em; text-transform: uppercase; color: var(--tp-muted); cursor: pointer;}
.tp-familles__retour {display: flex; align-items: flex-start; gap: var(--s-2); margin: 0 var(--s-2) var(--s-2); padding: var(--s-2) var(--s-3); border-radius: var(--r); background: var(--tp-surface); color: var(--tp-blue-900) !important; font-size: var(--fs-14); font-weight: 600; line-height: 1.35; text-decoration: none;}
.tp-familles__retour i {margin-top: 3px; font-size: 12px; color: var(--tp-blue);}
.tp-familles__retour small {display: block; margin-bottom: 2px; font-size: 12px; font-weight: 500; color: var(--tp-muted);}
.tp-familles__retour:hover {background: var(--tp-blue-50); color: var(--tp-blue) !important; text-decoration: none;}
.tp-familles__retour:focus-visible {outline: 3px solid var(--tp-blue); outline-offset: 2px;}
.tp-familles summary:focus-visible {outline: 3px solid var(--tp-blue); outline-offset: 2px; border-radius: var(--r-lg);}
.tp-familles ul {margin: 0; padding: 0 var(--s-2) var(--s-2); list-style: none;}
.tp-familles a {display: flex; align-items: center; min-height: 40px; padding: 6px var(--s-3); border-left: 3px solid transparent; border-radius: var(--r); color: var(--tp-ink) !important; font-size: var(--fs-14); line-height: 1.35; text-decoration: none;}
.tp-familles a:hover {background: var(--tp-surface); color: var(--tp-blue) !important; text-decoration: none;}
.tp-familles a:focus-visible {outline: 3px solid var(--tp-blue); outline-offset: -3px;}
.tp-familles a[aria-current] {border-left-color: var(--tp-blue); background: var(--tp-blue-50); color: var(--tp-blue-900) !important; font-weight: 600;}
@media (min-width: 768px) {
  .tp-aide {padding: var(--s-4); background: var(--tp-surface); border: 1px solid var(--tp-line); border-radius: var(--r-lg);}
  .tp-aide h2, .tp-aide p {display: block;}
  .tp-aide .tp-btn--wa {margin-top: var(--s-4);}
}
@media (min-width: 1024px) {
  .tp-phead__grid {grid-template-columns: minmax(0, 1fr) 380px; align-items: start; gap: var(--s-12);}
  .tp-catalogue__layout {grid-template-columns: 248px minmax(0, 1fr); align-items: start;}
  .tp-familles {grid-column: 1; grid-row: 1; position: sticky; top: 96px;}
  .tp-catalogue__main {grid-column: 2; grid-row: 1;}
  .tp-catalogue__main .tp-grid {grid-template-columns: repeat(3, minmax(0, 1fr));}
}
@media (min-width: 1280px) {.tp-catalogue__main .tp-grid {grid-template-columns: repeat(4, minmax(0, 1fr));}}
@media (max-width: 575px) {.tp-phead__intro {display: -webkit-box; overflow: hidden; -webkit-line-clamp: 3; -webkit-box-orient: vertical;}}
@media (min-width: 576px) {.tp-card-product__sub {display: block;}}
@media (min-width: 768px) {
  .tp-phead {padding: var(--s-6) 0 var(--s-8);}
  .tp-catalogue {padding: var(--s-8) 0 var(--s-16);}
  .tp-catalogue__media.has-img {grid-template-columns: minmax(0, 5fr) minmax(0, 7fr);}
}
@media (min-width: 1024px) {.tp-phead h1 {font-size: var(--fs-36);}}

/* R05 : page contact (actions directes, formulaire, sites, carte en façade) */
.tp-contact-actions {display: flex; flex-wrap: wrap; gap: var(--s-2); margin-top: var(--s-4);}
.tp-contact-actions .tp-btn {flex: 1 1 auto;}
.tp-contact-actions__num {display: none;}
.tp-contact {padding: var(--s-8) 0 var(--s-12);}
.tp-contact__grille {display: grid; gap: var(--s-8);}
.tp-contact h2, .tp-contact-carte h2 {margin: 0 0 var(--s-2); font: 600 var(--fs-22)/1.3 var(--f-head); color: var(--tp-blue-900);}
.tp-contact__form .alert {margin: var(--s-4) 0 0;}
.tp-contact__champs {display: grid; gap: var(--s-4); margin-top: var(--s-4);}
.tp-input {width: 100%; min-height: 44px; padding: 8px 12px; border: 1px solid var(--tp-line-strong); border-radius: var(--r); background-color: #fff; font: inherit; font-size: 16px; color: var(--tp-ink);}
.tp-input:focus {border-color: var(--tp-blue); outline: 3px solid rgba(0,89,154,.35) !important; outline-offset: 0;}
.tp-field.is-invalid .tp-input {border-color: var(--tp-danger);}
.tp-contact__champs .tp-textarea {min-height: 150px;}
.tp-req {color: var(--tp-danger);}
.tp-opt {font-weight: 400; color: var(--tp-muted);}
.tp-contact__sites ul {display: grid; gap: var(--s-3); margin: var(--s-4) 0 0; padding: 0; list-style: none;}
.tp-contact__sites li {padding: var(--s-4); border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: var(--tp-surface);}
.tp-contact__sites h3 {margin: 0 0 var(--s-2); font: 600 var(--fs-18)/1.3 var(--f-head); color: var(--tp-blue-900);}
.tp-contact__sites address {margin: 0; font-style: normal; color: var(--tp-ink); line-height: 1.55;}
.tp-contact__sites address p {margin: 0 0 var(--s-1);}
.tp-contact__sites a {display: inline-block; min-height: 24px; color: var(--tp-blue); font-weight: 600; text-decoration: underline; text-underline-offset: 2px;}
.tp-contact__sites a:hover {color: var(--tp-blue-700);}
.tp-contact__etiq {display: inline-block; min-width: 3.2em; color: var(--tp-muted);}
.tp-contact {padding-bottom: var(--s-16);}
.tp-contact-carte {margin-top: var(--s-12); text-align: left;}
.tp-carte {width: 100%; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: var(--s-2); aspect-ratio: 16 / 9; max-height: 450px; margin-top: var(--s-4); border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: var(--tp-surface); overflow: hidden; text-align: center;}
.tp-carte.is-chargee {display: block;}
.tp-carte iframe {display: block; width: 100%; height: 100%; border: 0;}
.tp-contact-carte__lien {margin: var(--s-3) 0 0;}
/* Carte affichée directement + barre d'itinéraire (retour du 9 nov.) */
.tp-carte-bloc {margin-top: var(--s-4); overflow: hidden; border: 1px solid var(--tp-line); border-radius: var(--r-lg); background: #fff; box-shadow: var(--sh);}
.tp-carte-bloc .tp-carte {margin-top: 0; border: 0; border-radius: 0;}
.tp-carte-infos {display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 16px 24px; padding: 18px 20px; border-top: 1px solid var(--tp-line);}
.tp-carte-infos__adr {display: flex; align-items: flex-start; gap: 12px; margin: 0; font-size: 15px; line-height: 1.5; color: #3E4C59;}
.tp-carte-infos__adr svg {flex: none; margin-top: 2px; color: var(--tp-blue);}
.tp-carte-infos__adr strong {display: block; font-weight: 600; color: var(--tp-blue-900);}
.tp-carte-infos__actions {display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px;}
.tp-carte-itin {display: inline-flex; align-items: center; gap: 10px; min-height: 48px;}
.tp-carte-itin svg {transition: transform .25s cubic-bezier(.22,.61,.36,1);}
.tp-carte-itin:hover svg, .tp-carte-itin:focus-visible svg {transform: translate(2px, -2px);}
.tp-carte-ouvrir {font-weight: 600; color: var(--tp-blue) !important; text-decoration: underline; text-underline-offset: 3px;}
@media (max-width: 575.98px) {.tp-carte-infos__actions, .tp-carte-itin {width: 100%;} .tp-carte-itin {justify-content: center;}}
@media (prefers-reduced-motion: reduce) {.tp-carte-itin svg {transition: none;}}
.tp-contact-carte__lien a {color: var(--tp-blue); font-weight: 600; text-decoration: underline;}
@media (max-width: 575.98px) {.tp-carte {aspect-ratio: 4 / 3;}}
@media (min-width: 576px) {.tp-contact__champs {grid-template-columns: repeat(2, minmax(0, 1fr));} .tp-field--large {grid-column: 1 / -1;}}
@media (min-width: 768px) and (max-width: 1023.98px) {.tp-contact__sites ul {grid-template-columns: repeat(3, minmax(0, 1fr));}}
@media (min-width: 1024px) {
  .tp-contact-actions .tp-btn {flex: 0 0 auto;}
  .tp-contact-actions__num {display: inline;}
  .tp-contact__grille {grid-template-columns: minmax(0, 7fr) minmax(0, 4fr); gap: var(--s-12);}
}
/* T11 : page « Ma demande de devis » (étapes, lignes, récapitulatif, état vide, barre mobile) */
.tp-dem-etapes {display: flex; flex-wrap: wrap; gap: var(--s-2) var(--s-4); margin: 0 0 var(--s-4); padding: 0; list-style: none; font-size: var(--fs-14); color: var(--tp-muted);}
.tp-dem-etapes li {display: inline-flex; align-items: center; gap: var(--s-2);}
.tp-dem-etapes__n {display: inline-grid; place-items: center; width: 28px; height: 28px; border: 1.5px solid var(--tp-line-strong); border-radius: 50%; font-weight: 600; color: var(--tp-muted);}
.tp-dem-etapes li[aria-current="step"] {font-weight: 600; color: var(--tp-blue-900);}
.tp-dem-etapes li[aria-current="step"] .tp-dem-etapes__n {border-color: var(--tp-blue); background-color: var(--tp-blue); color: #fff;}
.tp-dem-tete .tp-phead__intro {margin: var(--s-2) 0 0; color: var(--tp-muted);}
.tp-dem {padding: var(--s-6) 0 var(--s-16);}
.tp-dem__grille {display: grid; gap: var(--s-8);}
.tp-dem__grille[hidden], .tp-dem__barre[hidden], .tp-dem__ligne[hidden], .tp-dem__vide[hidden] {display: none;}
.tp-dem__lignes {display: grid; gap: var(--s-3); margin: 0; padding: 0; list-style: none;}
.tp-dem__ligne {display: grid; grid-template-columns: 72px minmax(0, 1fr); gap: var(--s-3) var(--s-4); align-items: start; padding: var(--s-4); border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: #fff;}
.tp-dem__img {display: grid; place-items: center; width: 72px; aspect-ratio: 1 / 1; padding: 4px; border-radius: var(--r); background-color: var(--tp-surface);}
.tp-dem__img img {width: 100%; height: 100%; object-fit: contain;}
.tp-dem__nom {margin: 0; font: 600 var(--fs-16)/1.35 var(--f-head); color: var(--tp-blue-900);}
.tp-dem__nom a {color: inherit; text-decoration: none;}
.tp-dem__nom a:hover {color: var(--tp-blue); text-decoration: underline; text-underline-offset: 2px;}
.tp-dem__vars {display: flex; flex-wrap: wrap; gap: 6px; margin: var(--s-2) 0 0; padding: 0; list-style: none;}
.tp-dem__vars li {padding: 3px 10px; border-radius: var(--r); background-color: var(--tp-blue-50); font-size: 13.5px; color: var(--tp-blue-900);}
.tp-dem__vars span {color: var(--tp-muted);}
.tp-dem__prix {margin: var(--s-2) 0 0; font-size: var(--fs-14); color: var(--tp-muted);}
.tp-dem__qte {grid-column: 1 / -1; display: flex; align-items: center; justify-content: space-between; gap: var(--s-3);}
.tp-dem__pas {display: inline-flex; align-items: stretch;}
.tp-dem__pas button {width: 44px; min-height: 44px; border: 1px solid var(--tp-line-strong); background-color: #fff; color: var(--tp-blue-900); cursor: pointer;}
.tp-dem__pas button:first-child {border-radius: var(--r) 0 0 var(--r);}
.tp-dem__pas button:last-child {border-radius: 0 var(--r) var(--r) 0;}
.tp-dem__pas button:hover:not(:disabled) {background-color: var(--tp-blue-50);}
.tp-dem__pas button:focus-visible {position: relative; outline: 3px solid rgba(0,89,154,.35); outline-offset: 0; border-color: var(--tp-blue);}
.tp-dem__pas button:disabled {color: #8A96A3; background-color: var(--tp-surface); cursor: not-allowed;}
.tp-dem__pas .tp-qty {width: 72px; border-radius: 0; border-left: 0; border-right: 0; -moz-appearance: textfield;}
.tp-dem__pas .tp-qty::-webkit-inner-spin-button, .tp-dem__pas .tp-qty::-webkit-outer-spin-button {-webkit-appearance: none; margin: 0;}
.tp-dem__retirer {grid-column: 1 / -1; justify-self: start;}
.tp-dem__outils {display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); margin-top: var(--s-4);}
.tp-dem__recap {align-self: start; padding: var(--s-6) var(--s-4); border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: var(--tp-surface);}
.tp-dem__recap h2 {margin: 0 0 var(--s-3); font: 600 var(--fs-22)/1.3 var(--f-head); color: var(--tp-blue-900);}
.tp-dem__recap h3 {margin: var(--s-6) 0 var(--s-1); font: 600 var(--fs-18)/1.3 var(--f-head); color: var(--tp-blue-900); scroll-margin-top: 96px;}
.tp-dem__recap .alert {margin: var(--s-3) 0 0;}
.tp-dem__sum {margin: 0;}
.tp-dem__sum div {display: flex; justify-content: space-between; gap: var(--s-3); padding: var(--s-2) 0; border-bottom: 1px solid var(--tp-line);}
.tp-dem__sum dt {font-weight: 400; color: var(--tp-muted);}
.tp-dem__sum dd {margin: 0; font-weight: 600; color: var(--tp-blue-900);}
.tp-dem__champs {display: grid; gap: var(--s-4); margin: var(--s-4) 0 var(--s-6);}
.tp-dem__note {margin-top: var(--s-3);}
.tp-dem__vide {max-width: 720px; margin: 0 auto;}
.tp-dem__vide > i {font-size: 32px; color: var(--tp-blue);}
.tp-dem__vide h2 {margin: var(--s-3) 0 var(--s-2); font: 600 var(--fs-22)/1.3 var(--f-head); color: var(--tp-blue-900);}
.tp-dem__vide p {max-width: 60ch; margin: 0 auto;}
.tp-dem__vide .tp-dem__outils {justify-content: center; margin-top: var(--s-6);}
.tp-dem__barre {position: fixed; right: 0; bottom: 0; left: 0; z-index: var(--z-sticky); display: flex; align-items: center; justify-content: space-between; gap: var(--s-3); padding: var(--s-2) var(--gutter); padding-bottom: max(8px, env(safe-area-inset-bottom)); border-top: 1px solid var(--tp-line); background-color: #fff; box-shadow: var(--sh-bar); color: var(--tp-blue-900);}
.tp-dem__barre .tp-btn {flex: 0 1 60%;}
.tp-toast__bouton {padding: 0; border: 0; background: none; font: inherit; font-weight: 600; text-decoration: underline; cursor: pointer;}
@media (max-width: 767.98px) {.tp-dem {padding-bottom: calc(var(--s-16) + 64px);}}
@media (min-width: 576px) {
  .tp-dem__ligne {grid-template-columns: 96px minmax(0, 1fr) auto; grid-template-areas: "img info qte" "img info ret";}
  .tp-dem__img {grid-area: img; width: 96px;}
  .tp-dem__info {grid-area: info;}
  .tp-dem__qte {grid-area: qte; grid-column: auto; flex-direction: column; align-items: flex-end; gap: 6px;}
  .tp-dem__retirer {grid-area: ret; grid-column: auto; justify-self: end;}
}
@media (min-width: 768px) {.tp-dem__barre {display: none;}}
@media (min-width: 1024px) {
  .tp-dem__grille {grid-template-columns: minmax(0, 8fr) minmax(0, 4fr); gap: var(--s-8);}
  .tp-dem__recap {position: sticky; top: 96px;}
}
/* T12 : coordonnées regroupées, confirmation et impression A4 de la demande de devis */
.tp-field.is-invalid .tp-select {border-color: var(--tp-danger);}
.tp-dem__groupe {min-width: 0; margin: var(--s-6) 0 0; padding: 0; border: 0;}
.tp-dem__groupe legend {width: 100%; margin: 0; padding: 0 0 var(--s-2); border-bottom: 1px solid var(--tp-line); font: 600 var(--fs-16)/1.3 var(--f-head); color: var(--tp-blue-900);}
.tp-dem__groupe .tp-dem__champs {margin: var(--s-3) 0 0;}
.tp-dem__recap > .tp-btn--block {margin-top: var(--s-6);}
.tp-dem-etapes li.is-fait .tp-dem-etapes__n {border-color: var(--tp-success, #1E7B4A); background-color: var(--tp-success, #1E7B4A); color: #fff;}
.tp-conf {width: 100%; padding: var(--s-8) 0 var(--s-16);}
.tp-conf__carte {max-width: 760px; margin: 0 auto; padding: var(--s-8) var(--s-4); border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: #fff; text-align: center;}
.tp-conf__ic {display: inline-grid; place-items: center; width: 72px; height: 72px; margin-bottom: var(--s-4); border-radius: 50%; background-color: #E6F4EC; color: var(--tp-success, #1E7B4A); font-size: 32px;}
.tp-conf h1 {margin: 0 0 var(--s-3); font: 600 var(--fs-28, 28px)/1.25 var(--f-head); color: var(--tp-blue-900);}
.tp-conf h1:focus {outline: none;}
.tp-conf h2 {margin: var(--s-8) 0 var(--s-3); font: 600 var(--fs-18)/1.3 var(--f-head); color: var(--tp-blue-900); text-align: left;}
.tp-conf__num {display: inline-flex; flex-wrap: wrap; justify-content: center; gap: var(--s-1) var(--s-3); margin: var(--s-4) 0 0; padding: var(--s-3) var(--s-4); border-radius: var(--r); background-color: var(--tp-surface); color: var(--tp-ink);}
.tp-conf__num b {font-size: var(--fs-18); color: var(--tp-blue-900);}
.tp-conf__suite {display: grid; gap: var(--s-3); margin: 0; padding: 0; list-style: none; counter-reset: tp-suite; text-align: left;}
.tp-conf__suite li {position: relative; padding: 0 0 0 44px; counter-increment: tp-suite; color: var(--tp-muted);}
.tp-conf__suite li::before {content: counter(tp-suite); position: absolute; top: 0; left: 0; display: grid; place-items: center; width: 30px; height: 30px; border-radius: 50%; background-color: var(--tp-blue-50); font-weight: 700; color: var(--tp-blue-900);}
.tp-conf__suite strong {display: block; color: var(--tp-ink);}
.tp-conf__lignes {width: 100%; border-collapse: collapse; text-align: left;}
.tp-conf__lignes th, .tp-conf__lignes td {padding: var(--s-2) var(--s-3); border-bottom: 1px solid var(--tp-line); vertical-align: top;}
.tp-conf__lignes th {font-size: var(--fs-14); font-weight: 600; color: var(--tp-muted);}
.tp-conf__lignes .tp-num {width: 90px; text-align: right; white-space: nowrap;}
.tp-conf__lignes .tp-dem__vars {margin-top: 6px;}
.tp-conf__actions {display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s-3); margin-top: var(--s-8);}
@media (min-width: 768px) {.tp-conf__carte {padding: var(--s-12) var(--s-8);}}
/* Impression A4 (front/devis/print) */
.tp-impr-page {margin: 0; background-color: #E9EDF1; font-family: var(--f-body, Arial, sans-serif); color: #14202B;}
.tp-impr-outils {display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); max-width: 210mm; margin: 0 auto; padding: var(--s-4);}
.tp-impr p, .tp-impr li, .tp-impr h2 {font-family: inherit; font-size: inherit; line-height: inherit; color: inherit;}
.tp-impr {display: block; width: 100%; box-sizing: border-box; max-width: 210mm; min-height: 297mm; margin: 0 auto var(--s-8); padding: 16mm 15mm; background-color: #fff; box-shadow: 0 2px 12px rgba(7,27,46,.12); font-size: 11pt; line-height: 1.45;}
.tp-impr__tete {display: flex; flex-wrap: wrap; align-items: flex-start; justify-content: space-between; gap: var(--s-4); padding-bottom: var(--s-4); border-bottom: 2px solid #00599A;}
.tp-impr__tete img {flex: none; width: 220px; height: auto;}
.tp-impr__meta {text-align: right;}
.tp-impr h1 {margin: 0 0 4px; font: 700 18pt/1.2 var(--f-head, Arial, sans-serif); color: #00396B;}
.tp-impr h2 {margin: 0 0 6px; font-size: 10pt; font-weight: 700; letter-spacing: .04em; text-transform: uppercase; color: #4A5866;}
.tp-impr__cols {display: grid; grid-template-columns: 1fr 1fr; gap: var(--s-6); margin: var(--s-6) 0;}
.tp-impr__cols p {margin: 0;}
.tp-impr table {width: 100%; border-collapse: collapse;}
.tp-impr th, .tp-impr td {padding: 6px 8px; border-bottom: 1px solid #C9D2DB; text-align: left; vertical-align: top;}
.tp-impr thead th {border-bottom: 2px solid #00396B; font-size: 10pt; color: #00396B;}
.tp-impr tr {break-inside: avoid; page-break-inside: avoid;}
.tp-impr .tp-num {width: 70px; text-align: right;}
.tp-impr__var {display: block; font-size: 9.5pt; color: #4A5866;}
.tp-impr__total td {border-bottom: 0; font-weight: 700;}
.tp-impr__msg {margin-top: var(--s-6);}
.tp-impr__msg p {margin: 0; white-space: pre-line;}
.tp-impr__pied {display: flex; flex-wrap: wrap; justify-content: space-between; gap: var(--s-3); margin-top: var(--s-8); padding-top: var(--s-3); border-top: 1px solid #C9D2DB; font-size: 9pt; color: #4A5866;}
@media (max-width: 575.98px) {.tp-impr {padding: var(--s-6) var(--s-4); min-height: 0;} .tp-impr__cols {grid-template-columns: 1fr;} .tp-impr__meta {text-align: left;}}
@page {size: A4; margin: 12mm;}
@media print {
  .tp-impr-page {background: #fff;}
  .tp-impr-outils {display: none;}
  .tp-impr {max-width: none; min-height: 0; margin: 0; padding: 0; box-shadow: none;}
  .tp-impr thead {display: table-header-group;}
}
/* T14 : recherche, marques et téléchargements */
.tp-recherche--page {width: 100%; max-width: 640px; height: 48px; margin-top: var(--s-4);}
.tp-pagination {display: flex; justify-content: center; margin-top: var(--s-8);}
.tp-pagination .pagination {flex-wrap: wrap; justify-content: center; margin: 0;}
.tp-empty p {margin: 0 0 var(--s-3);}
.tp-empty p:last-child {margin-bottom: 0;}
.tp-empty__actions {display: flex; flex-wrap: wrap; justify-content: center; gap: var(--s-3);}
.tp-brand-strip--page {border-top: 1px solid var(--tp-line); border-left: 1px solid var(--tp-line);}
.tp-brand-strip--page li {padding: 0;}
.tp-brand-strip--page li > img {max-height: 56px; padding: var(--s-2);}
.tp-brand-strip--page li > a {width: 100%; height: 100%; border: 0;}
.tp-brand-strip--page li > a:hover, .tp-brand-strip--page li > a:focus-visible {background-color: var(--tp-surface);}
.tp-docs {display: grid; gap: var(--s-3); margin: 0; padding: 0; list-style: none;}
.tp-docs .tp-doc {min-height: 56px; text-decoration: none;}
.tp-docs .tp-doc-tx {color: var(--tp-blue-900);}
@media (min-width: 768px) {.tp-docs {grid-template-columns: repeat(2, 1fr);}}
@media (min-width: 1200px) {.tp-brand-strip--page {grid-template-columns: repeat(6, 1fr);}}
/* T15 : pages de contenu et vidéos */
.tp-videos {display: grid; gap: var(--s-6); margin: 0; padding: 0; list-style: none;}
.tp-videos__item {display: flex; flex-direction: column; gap: var(--s-3); min-width: 0;}
.tp-videos .tp-video {border-radius: var(--r-lg);}
.tp-videos .tp-video:hover .tp-video-play {background: var(--tp-white); transform: scale(1.06);}
.tp-videos .tp-video:focus-visible {outline: 3px solid var(--tp-blue); outline-offset: 3px;}
.tp-videos .tp-video-play {transition: transform var(--t-base) var(--ease);}
.tp-videos__titre {margin: 0; font-family: var(--f-head); font-size: var(--fs-16); font-weight: 600; line-height: 1.4; color: var(--tp-blue-900); overflow-wrap: anywhere;}
@media (min-width: 768px) {.tp-videos {grid-template-columns: repeat(2, minmax(0, 1fr));}}
@media (min-width: 1200px) {.tp-videos {grid-template-columns: repeat(3, minmax(0, 1fr));}}
.tp-contenu {display: block; width: 100%; min-width: 0; padding: var(--s-6) 0 var(--s-12);}
.tp-contenu > .tp-wrap {width: 100%;}
.tp-contenu .tp-page-contenu {max-width: 75ch; text-align: left; -webkit-hyphens: manual; -ms-hyphens: manual; hyphens: manual;}
.tp-contenu .tp-page-contenu [style*="justify"] {text-align: left !important;}
.tp-contenu .tp-page-contenu img {max-width: 100%; height: auto;}
.tp-contenu .tp-page-contenu h2 {font-family: var(--f-head); font-size: var(--fs-22); color: var(--tp-blue-900);}
/* T16 : compte client (connexion, inscription, mot de passe, Mon compte) et pages d'erreur */
.tp-compte {display: block; width: 100%; padding: var(--s-6) 0 var(--s-12);}
.tp-compte > .tp-wrap {width: 100%;}
.tp-compte__grille {display: grid; gap: var(--s-6); align-items: start;}
.tp-compte__carte {min-width: 0; padding: var(--s-6) var(--s-4); border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: var(--tp-white);}
.tp-compte__carte--info {background-color: var(--tp-surface);}
.tp-compte__carte--etroite {max-width: 560px; margin: 0 auto;}
.tp-compte__carte--large {max-width: 880px; margin: 0 auto;}
.tp-compte__bloc + .tp-compte__bloc {margin-top: var(--s-6);}
.tp-compte__bloc:focus {outline: none;}
.tp-compte h2 {margin: 0 0 var(--s-2); font: 600 var(--fs-22)/1.3 var(--f-head); color: var(--tp-blue-900);}
.tp-compte .alert {margin: 0 0 var(--s-4);}
.tp-compte__carte .alert {margin: var(--s-4) 0 0;}
.tp-compte__champs {display: grid; gap: var(--s-4); margin-top: var(--s-4);}
.tp-compte__actions {display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3) var(--s-4); margin-top: var(--s-2);}
.tp-compte__lien {display: inline-flex; align-items: center; min-height: 44px; color: var(--tp-blue); font-weight: 600; text-decoration: underline; text-underline-offset: 3px;}
.tp-compte__lien:hover {color: var(--tp-blue-900);}
.tp-compte__lien:focus-visible, .tp-compte__nav a:focus-visible {outline: 3px solid var(--tp-blue); outline-offset: 2px;}
.tp-compte__liste {margin: var(--s-2) 0 var(--s-4); padding-left: 1.2em; color: var(--tp-ink);}
.tp-compte__liste li {margin-bottom: var(--s-1); list-style: disc;}
.tp-compte__note {margin-top: var(--s-3);}
.tp-compte__mdp {min-width: 0; margin: var(--s-2) 0 0; padding: var(--s-4) 0 0; border: 0; border-top: 1px solid var(--tp-line);}
.tp-compte__mdp legend {width: auto; margin: 0 0 var(--s-1); padding: 0; font-size: var(--fs-16); font-weight: 600; color: var(--tp-blue-900);}
.tp-compte__nav {display: flex; flex-wrap: wrap; gap: var(--s-2); width: 100%; margin: var(--s-4) 0 0; padding: 0;}
.tp-compte__nav a {display: inline-flex; align-items: center; min-height: 44px; padding: 0 var(--s-4); border: 1px solid var(--tp-line); border-radius: var(--r); color: var(--tp-blue-900); font-weight: 600; text-decoration: none;}
.tp-compte__nav a:hover {border-color: var(--tp-blue); background-color: var(--tp-blue-50);}
.tp-histo-cadre {margin-top: var(--s-3); overflow-x: auto;}
.tp-histo {width: 100%; border-collapse: collapse; font-size: var(--fs-16);}
.tp-histo th, .tp-histo td {padding: var(--s-2) var(--s-2); border-bottom: 1px solid var(--tp-line); text-align: left; vertical-align: middle;}
.tp-histo thead th {font-size: var(--fs-14); font-weight: 600; color: var(--tp-muted);}
.tp-histo tbody th {font-weight: 600; color: var(--tp-blue-900);}
.tp-histo__nb {text-align: center !important;}
.tp-histo__action {text-align: right !important; white-space: nowrap;}
@media (max-width: 575.98px) {.tp-histo__nb {display: none;} .tp-histo th, .tp-histo td {padding: var(--s-2) var(--s-1);}}
.tp-erreur {display: block; width: 100%; padding: var(--s-8) 0 var(--s-12);}
.tp-erreur > .tp-wrap {width: 100%;}
.tp-erreur__code {margin: 0 0 var(--s-2); font: 700 var(--fs-14)/1.2 var(--f-head); letter-spacing: .08em; text-transform: uppercase; color: var(--tp-muted);}
.tp-erreur h1 {margin: 0; max-width: 32ch; font: 600 var(--fs-28)/1.2 var(--f-head); color: var(--tp-blue-900);}
.tp-erreur__texte {max-width: 65ch; margin: var(--s-3) 0 0; font-size: var(--fs-16); line-height: 1.55; color: var(--tp-ink);}
.tp-erreur__actions {display: flex; flex-wrap: wrap; gap: var(--s-3); margin-top: var(--s-6);}
.tp-erreur__recherche {display: grid; gap: var(--s-2); max-width: 600px; margin-top: var(--s-6);}
.tp-erreur__recherche-ligne {width: 100%; max-width: none; height: 48px;}
.tp-erreur__recherche-ligne input {font-size: 16px;}
.tp-erreur__sous-titre {margin: var(--s-8) 0 0; font: 600 var(--fs-18)/1.3 var(--f-head); color: var(--tp-blue-900);}
.tp-erreur__liens {display: grid; gap: var(--s-3); margin: var(--s-3) 0 0; padding: 0; list-style: none;}
.tp-erreur__liens a {display: flex; flex-direction: column; gap: var(--s-1); height: 100%; padding: var(--s-4); border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: var(--tp-surface); color: var(--tp-blue-900); text-decoration: none;}
.tp-erreur__liens a:hover {border-color: var(--tp-blue); background-color: var(--tp-blue-50);}
.tp-erreur__liens a:focus-visible {outline: 3px solid var(--tp-blue); outline-offset: 2px;}
.tp-erreur__liens strong {font: 600 var(--fs-18)/1.3 var(--f-head);}
.tp-erreur__liens span {font-size: var(--fs-14); color: var(--tp-muted);}
.tp-erreur-page {margin: 0; background-color: var(--tp-white); font-family: var(--f-body, sans-serif); color: var(--tp-ink);}
.tp-erreur-page__tete {padding: var(--s-4) 0; border-bottom: 1px solid var(--tp-line);}
.tp-erreur-page__tete img {display: block; max-width: 200px; height: auto;}
@media (min-width: 768px) {
    .tp-compte__carte {padding: var(--s-8);}
    .tp-compte__champs--2 {grid-template-columns: repeat(2, minmax(0, 1fr));}
    .tp-compte__champs--2 > .tp-field--large {grid-column: 1 / -1;}
    .tp-erreur__liens {grid-template-columns: repeat(3, minmax(0, 1fr));}
    .tp-histo th, .tp-histo td {padding: var(--s-3) var(--s-4);}
}
@media (min-width: 992px) {.tp-compte__grille {grid-template-columns: minmax(0, 3fr) minmax(0, 2fr);}}
/* ----- R06 : pages de contenu CMS (colonne de lecture, encadre « En bref », sommaire, .tp-prose) ----- */
.tp-contenu__grille {display: grid; gap: var(--s-8); align-items: start;}
.tp-contenu__texte {min-width: 0;}
.tp-contenu .tp-prose {max-width: 70ch; color: var(--tp-ink); font-size: var(--fs-18); line-height: 1.6;}
.tp-prose p, .tp-prose li, .tp-prose td, .tp-prose th, .tp-prose span, .tp-prose strong, .tp-prose em {color: inherit !important; text-transform: none !important;}
.tp-prose p {margin: 0 0 var(--s-4);}
.tp-prose h2, .tp-prose h3, .tp-prose h4 {text-transform: none !important; letter-spacing: 0; text-align: left;}
.tp-prose h2 {margin: var(--s-8) 0 var(--s-3); padding-bottom: var(--s-2); border-bottom: 1px solid var(--tp-line); font: 600 var(--fs-22)/1.3 var(--f-head); color: var(--tp-blue-900) !important; scroll-margin-top: 120px;}
.tp-prose h3 {margin: var(--s-6) 0 var(--s-2); font: 600 var(--fs-18)/1.35 var(--f-head); color: var(--tp-blue-900) !important;}
.tp-prose > :first-child, .tp-prose > div:first-child > :first-child {margin-top: 0;}
.tp-prose ul:not([class]) > li::marker {color: var(--tp-blue);}
.tp-prose a {color: var(--tp-blue) !important; text-decoration: underline; text-underline-offset: 2px;}
.tp-prose a:hover {color: var(--tp-blue-700) !important; text-decoration-thickness: 2px;}
.tp-prose a:focus-visible {outline: 3px solid var(--tp-focus); outline-offset: 2px; border-radius: 2px;}
.tp-prose img {display: block; max-width: 100%; height: auto; margin: var(--s-6) 0; border-radius: var(--r-lg);}
.tp-prose blockquote {margin: var(--s-6) 0; padding: var(--s-3) var(--s-4); border-left: 4px solid var(--tp-blue); background-color: var(--tp-surface); color: var(--tp-ink);}
.tp-prose table {display: block; overflow-x: auto; max-width: 100%;}
.tp-prose [style*="font-size"] {font-size: inherit !important;}
.tp-prose [style*="color"] {color: inherit !important;}
.tp-prose [style*="uppercase"] {text-transform: none !important;}
.tp-sommaire {max-width: 70ch; margin: 0 0 var(--s-6); padding: var(--s-4); border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: var(--tp-surface);}
.tp-sommaire__titre {margin: 0 0 var(--s-2); font: 600 var(--fs-16)/1.3 var(--f-head); color: var(--tp-blue-900);}
.tp-sommaire ol {margin: 0; padding-left: 22px;}
.tp-sommaire li {margin: var(--s-1) 0; list-style: decimal; color: var(--tp-ink);}
.tp-sommaire a {display: inline-block; min-height: 24px; color: var(--tp-blue); text-decoration: underline;}
.tp-sommaire a:focus-visible {outline: 3px solid var(--tp-focus); outline-offset: 2px;}
.tp-bref {padding: var(--s-6); border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: var(--tp-surface);}
.tp-bref__titre {margin: 0 0 var(--s-4); font: 600 var(--fs-18)/1.3 var(--f-head); color: var(--tp-blue-900);}
.tp-bref__liste {display: grid; gap: var(--s-3); margin: 0 0 var(--s-6);}
.tp-bref__liste > div {display: grid; gap: 2px;}
.tp-bref__liste dt {font-size: var(--fs-14); font-weight: 600; color: var(--tp-muted);}
.tp-bref__liste dd {margin: 0; font-size: var(--fs-16); line-height: 1.5; color: var(--tp-ink);}
.tp-bref__actions {display: grid; gap: var(--s-3);}
.tp-bref__actions .tp-btn {width: 100%; justify-content: center;}
@media (max-width: 767px) {.tp-contenu .tp-prose {font-size: var(--fs-16);}}
@media (min-width: 992px) {
    .tp-contenu__grille--bref {grid-template-columns: minmax(0, 1fr) 320px; gap: var(--s-12);}
    .tp-bref {position: sticky; top: 120px;}
}
/* ----- R07 : ecrans de compte (connexion, inscription, mot de passe) : en-tete et cartes sur le meme axe ----- */
.tp-axe {max-width: calc(480px + 2 * var(--gutter));}
.tp-axe--large {max-width: calc(720px + 2 * var(--gutter));}
.tp-axe--double {max-width: calc(984px + 2 * var(--gutter));}
.tp-phead--compte .tp-phead__intro {color: var(--tp-ink); font-size: var(--fs-16);}
.tp-compte__grille--egale {align-items: stretch;}
.tp-compte__grille--egale > .tp-compte__carte {display: flex; flex-direction: column;}
.tp-compte__texte {margin: 0; color: var(--tp-ink); font-size: var(--fs-16); line-height: 1.55;}
.tp-compte__pied {margin-top: auto; padding-top: var(--s-4);}
.tp-compte__note {margin: var(--s-3) 0 0; color: var(--tp-muted); font-size: var(--fs-14); line-height: 1.5;}
.tp-compte__note a {color: var(--tp-blue); text-decoration: underline;}
.tp-compte__lien--petit {min-height: 24px; align-self: start; font-size: var(--fs-14);}
.tp-compte__actions .tp-btn {min-height: 44px;}
.tp-compte .tp-help, .tp-mdp__aide {font-size: var(--fs-14); color: var(--tp-muted);}
.tp-coches {display: grid; gap: var(--s-2); margin: var(--s-3) 0 0; padding: 0; list-style: none;}
.tp-coches li {position: relative; padding-left: 28px; color: var(--tp-ink); line-height: 1.5;}
.tp-coches li::before {content: ""; position: absolute; left: 2px; top: .3em; width: 16px; height: 9px; border: solid var(--tp-ok); border-width: 0 0 3px 3px; transform: rotate(-45deg);}
.tp-bandeau {margin: var(--s-4) 0 0; padding: var(--s-3) var(--s-4); border: 1px solid; border-left-width: 4px; border-radius: var(--r); font-size: var(--fs-16); line-height: 1.5;}
.tp-bandeau ul {margin: var(--s-1) 0 0; padding-left: 1.2em;}
.tp-bandeau li {list-style: disc;}
.tp-bandeau__titre {margin: 0; font-weight: 600;}
.tp-bandeau--ok {border-color: var(--tp-ok); background-color: var(--tp-ok-50); color: var(--tp-ok);}
.tp-bandeau--erreur {border-color: var(--tp-danger); background-color: var(--tp-danger-50); color: var(--tp-danger);}
.tp-bandeau:focus {outline: 3px solid var(--tp-focus); outline-offset: 2px;}
.tp-compte__champs > .tp-field {align-content: start;}
.tp-mdp {position: relative;}
.tp-mdp .tp-input {padding-right: 104px;}
.tp-mdp__btn {position: absolute; top: 2px; right: 2px; bottom: 2px; min-width: 88px; padding: 0 var(--s-3); border: 0; border-left: 1px solid var(--tp-line); border-radius: 0 var(--r) var(--r) 0; background-color: var(--tp-white); color: var(--tp-blue); font-size: var(--fs-14); font-weight: 600; cursor: pointer;}
.tp-mdp__btn:hover {background-color: var(--tp-blue-50);}
.tp-mdp__btn:focus-visible {outline: 3px solid var(--tp-focus); outline-offset: 0;}
.tp-mdp__btn[aria-pressed="true"] {background-color: var(--tp-blue-50); color: var(--tp-blue-900);}
@media (max-width: 575.98px) {
    .tp-compte__principal {width: 100%; justify-content: center;}
    .tp-compte__actions > .tp-btn {width: 100%; justify-content: center;}
}
@media (min-width: 768px) {.tp-compte__grille--egale {grid-template-columns: repeat(2, minmax(0, 1fr));}}
/* ----- R08 : Mon compte (en-tete « Bonjour », onglets ARIA, demandes en cartes sous 576 px) ----- */
.tp-compte__tete {display: flex; flex-wrap: wrap; align-items: flex-end; justify-content: space-between; gap: var(--s-4);}
.tp-compte__tete-actions {display: flex; flex-wrap: wrap; gap: var(--s-3);}
.tp-compte__message {margin: 0 0 var(--s-4);}
.tp-cpt-onglets {display: grid; gap: var(--s-4);}
.tp-cpt-onglets__liste {display: flex; flex-wrap: wrap; gap: var(--s-1); border-bottom: 1px solid var(--tp-line);}
.tp-cpt-onglets__liste[hidden] {display: none;}
.tp-cpt-onglets__tab {flex: none; min-height: 44px; margin-bottom: -1px; padding: 0 var(--s-4); border: 0; border-bottom: 3px solid transparent; background: none; color: var(--tp-ink); font: 600 var(--fs-16)/1 var(--f-body); cursor: pointer;}
.tp-cpt-onglets__tab:hover {color: var(--tp-blue); background-color: var(--tp-blue-50);}
.tp-cpt-onglets__tab[aria-selected="true"] {border-bottom-color: var(--tp-blue); color: var(--tp-blue-900);}
.tp-cpt-onglets__tab:focus-visible {outline: 3px solid var(--tp-focus); outline-offset: -3px;}
.tp-cpt-onglets__panneau:focus-visible {outline: 3px solid var(--tp-focus); outline-offset: 2px;}
.tp-cpt-onglets__panneau[hidden] {display: none;}
.tp-compte__champs--mdp {max-width: 480px;}
.tp-statut {display: inline-flex; align-items: center; min-height: 24px; padding: 0 10px; border-radius: var(--r-pill); background-color: var(--tp-ok-50); color: var(--tp-ok); font-size: var(--fs-14); font-weight: 600;}
.tp-empty__titre {color: var(--tp-blue-900); font: 600 var(--fs-18)/1.3 var(--f-head);}
.tp-empty p:not(.tp-empty__titre) {color: var(--tp-ink);}
@media (max-width: 575.98px) {
    .tp-compte__tete-actions, .tp-compte__tete-actions .tp-btn {width: 100%; justify-content: center;}
    .tp-cpt-onglets__tab {padding: 0 var(--s-3); font-size: var(--fs-14);}
    .tp-histo--cartes thead {position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0);}
    .tp-histo--cartes, .tp-histo--cartes tbody, .tp-histo--cartes tr, .tp-histo--cartes th, .tp-histo--cartes td {display: block; width: 100%;}
    .tp-histo--cartes tr {margin-bottom: var(--s-3); padding: var(--s-3) var(--s-4); border: 1px solid var(--tp-line); border-radius: var(--r-lg);}
    .tp-histo--cartes th, .tp-histo--cartes td {padding: var(--s-1) 0; border: 0;}
    .tp-histo--cartes td[data-label] {display: flex; justify-content: space-between; gap: var(--s-3);}
    .tp-histo--cartes td[data-label]::before {content: attr(data-label); color: var(--tp-muted); font-size: var(--fs-14);}
    .tp-histo--cartes .tp-histo__action {padding-top: var(--s-2); text-align: left !important;}
    .tp-histo--cartes .tp-histo__action .tp-btn {width: 100%; justify-content: center;}
}
/* ----- R09 : videos (2, 3 puis 4 colonnes), recherche sans resultat, marques en cartes, telechargements ----- */
.tp-videos {grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-4) var(--s-3);}
.tp-videos__item {gap: var(--s-2);}
.tp-videos__titre {font-size: var(--fs-14); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden;}
@media (max-width: 767.98px) {.tp-videos .tp-video-play {width: 48px; height: 48px; margin: -24px 0 0 -24px; font-size: 16px; line-height: 48px;}}
@media (min-width: 768px) {.tp-videos {grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-6) var(--s-4);} .tp-videos__titre {font-size: var(--fs-16);}}
@media (min-width: 1200px) {.tp-videos {grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--s-8) 20px;}}
.tp-empty__sous-titre {margin: var(--s-6) 0 var(--s-3); color: var(--tp-blue-900); font: 600 var(--fs-16)/1.3 var(--f-head);}
.tp-chips--centre {justify-content: center; margin-bottom: var(--s-6);}
.tp-chips--centre .tp-chip {text-decoration: none; color: var(--tp-blue-900);}
.tp-chips--centre .tp-chip:focus-visible {outline: 3px solid var(--tp-blue); outline-offset: 2px;}
.tp-empty--recherche .tp-empty__actions {margin-top: var(--s-6);}
.tp-marques {display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: var(--s-3); margin: 0; padding: 0; list-style: none;}
.tp-marque {display: flex; flex-direction: column; height: 100%; border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: var(--tp-white); color: var(--tp-blue-900); text-decoration: none; transition: border-color var(--t-base) var(--ease), box-shadow var(--t-base) var(--ease);}
a.tp-marque:hover {border-color: var(--tp-blue); box-shadow: 0 4px 16px rgba(10, 37, 64, .08); color: var(--tp-blue-900); text-decoration: none;}
a.tp-marque:focus-visible {outline: 3px solid var(--tp-blue); outline-offset: 3px;}
.tp-marque__logo {display: grid; place-items: center; height: 104px; padding: var(--s-4); border-bottom: 1px solid var(--tp-line);}
.tp-marque__logo img {width: auto; max-width: 100%; height: auto; max-height: 64px; object-fit: contain;}
.tp-marque__nom {flex: 1; display: flex; align-items: center; justify-content: center; gap: var(--s-2); padding: var(--s-3); font: 600 var(--fs-16)/1.3 var(--f-head); text-align: center; overflow-wrap: anywhere;}
.tp-marque__nom .fa {font-size: 12px; color: var(--tp-blue);}
@media (min-width: 768px) {.tp-marques {grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--s-4);} .tp-marque__logo {height: 128px;}}
@media (min-width: 1200px) {.tp-marques {grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px;}}
.tp-docs__item {display: flex; flex-wrap: wrap; align-items: center; gap: var(--s-3); padding: var(--s-3) var(--s-4); border: 1px solid var(--tp-line); border-radius: var(--r-lg); background-color: var(--tp-white);}
.tp-docs__item .tp-doc-ic {flex: none;}
.tp-docs__info {display: flex; flex: 1; flex-direction: column; gap: 2px; min-width: 0;}
.tp-docs__info .tp-doc-tx {overflow-wrap: anywhere;}
.tp-docs__meta {color: var(--tp-ink); font-size: var(--fs-14);}
.tp-docs__item .tp-btn {min-height: 44px; margin-left: auto;}
@media (max-width: 575.98px) {.tp-docs__item .tp-btn {width: 100%; justify-content: center;}}
/* ----- Effets de survol harmonisés (retour du 9 nov.) ----- */
/* Le thème d'origine applique « transition: all .3s linear » à i, a, img, input, button, span, label, :before, :after…
   (tout s'anime, y compris tailles et marges : effets qui « sautent ») et un rebond de 600 ms (easeOutBack) aux li de nav.
   Ici : transitions ciblées et courtes (couleur, fond, bordure, ombre, soulignement, opacité, transformation), courbe douce. */
:root {
  --tp-ease-out: cubic-bezier(.22, .61, .36, 1);
  --tp-trans: color var(--t-fast) var(--ease), background-color var(--t-fast) var(--ease), border-color var(--t-fast) var(--ease),
              box-shadow var(--t-base) var(--ease), text-decoration-color var(--t-fast) var(--ease), opacity var(--t-fast) var(--ease),
              transform var(--t-base) var(--tp-ease-out);
}
i, a, img, input, button, textarea, select, label, span, ::before, ::after {transition: var(--tp-trans);}
nav ul li, .team-social, .shop-img > a {transition: none;}
a i, button i, a svg, button svg {transition: color var(--t-fast) var(--ease), transform var(--t-base) var(--tp-ease-out);}

/* Liens de texte : soulignement qui apparaît en douceur */
.tp-contact a:not(.tp-btn), .tp-prose a, .tp-pied a, .tp-mega__col ul a, .tp-mega__side ul a, .tp-nav-p__all, .tp-carte-ouvrir {
  text-decoration-line: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; text-decoration-color: transparent;
}
.tp-contact a:not(.tp-btn):hover, .tp-prose a:hover, .tp-pied a:hover, .tp-mega__col ul a:hover, .tp-mega__side ul a:hover, .tp-carte-ouvrir:hover,
.tp-contact a:not(.tp-btn):focus-visible, .tp-prose a:focus-visible, .tp-pied a:focus-visible {text-decoration-color: currentColor;}
.tp-nav-p__all, .tp-carte-ouvrir {text-decoration-color: currentColor;}

/* Boutons-icônes ronds (réseaux sociaux, WhatsApp, téléphone) : fond qui change, légère élévation, pas de saut */
.tp-pied-reseaux a, .tp-ent-ic {transition: var(--tp-trans);}
.tp-pied-reseaux a:hover, .tp-pied-reseaux a:focus-visible, .tp-ent-ic:hover {transform: translateY(-2px); box-shadow: 0 6px 16px rgba(0, 0, 0, .18);}

/* En-tête : téléphone et « Mon devis » */
a.tp-entete-tel i:before {transition: transform var(--t-base) var(--tp-ease-out);}
a.tp-entete-tel:hover i:before {transform: rotate(-12deg);}
a.tp-entete-devis {transition: var(--tp-trans);}
a.tp-entete-devis:hover, a.tp-entete-devis:focus-visible {box-shadow: var(--sh);}

/* Cartes : même élévation partout (catégories, produits, actualités, accès rapides) */
.tp-cat, a.tp-carte, .tp-news-card, .tp-mega__cartes a, .tp-nav-actions a, .tp-nav-u__btn {transition: var(--tp-trans);}
a.tp-carte:hover, .tp-news-card:hover, .tp-mega__cartes a:hover {transform: translateY(-2px); box-shadow: var(--sh-h);}

/* Boutons : même réaction partout */
.tp-btn, .tp-btn-devis, .tp-ent-cta, .tp-nav-search button {transition: var(--tp-trans);}
.tp-btn:active, .tp-btn-devis:active, .tp-ent-cta:active {transform: translateY(1px);}

/* Focus clavier homogène (WCAG 2.2, 2.4.7 et 2.4.11) */
.tp-pied-reseaux a:focus-visible, .tp-entete-devis:focus-visible, .tp-entete-tel:focus-visible {outline: 3px solid var(--tp-focus) !important; outline-offset: 2px;}
.tp-pied-reseaux a:focus-visible {outline-color: #fff !important;}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important;}
}
/* Questions fréquentes des accueils d'univers (document 28, S6) */
.tp-faq {padding: 56px 0; background: var(--tp-surface);}
.tp-faq h2 {margin: 0 0 20px; font: 600 var(--fs-28)/1.2 var(--f-head); color: var(--tp-blue-900);}
.tp-faq__item {max-width: 860px; margin: 0 0 10px; border: 1px solid var(--tp-line); border-radius: var(--r-lg); background: #fff;}
.tp-faq__item summary {position: relative; display: block; min-height: 56px; padding: 16px 52px 16px 20px; font: 600 16px/1.4 var(--f-body); color: var(--tp-blue-900); cursor: pointer; list-style: none;}
.tp-faq__item summary::-webkit-details-marker {display: none;}
.tp-faq__item summary::after {content: ""; position: absolute; right: 22px; top: 50%; width: 9px; height: 9px; margin-top: -6px; border-right: 2px solid currentColor; border-bottom: 2px solid currentColor; transform: rotate(45deg); transition: transform .25s var(--tp-ease-out, ease-out);}
.tp-faq__item[open] summary::after {transform: rotate(-135deg); margin-top: -2px;}
.tp-faq__item summary:hover {color: var(--tp-blue);}
.tp-faq__item summary:focus-visible {outline: 3px solid var(--tp-focus) !important; outline-offset: 2px; border-radius: var(--r-lg);}
.tp-faq__item p {margin: 0; padding: 0 20px 18px; font-size: 15.5px; line-height: 1.65; color: #3E4C59;}
/* ===== Fin du design system 2026 ===== */
