/* ═══════════════════════════════════════════════════════════════════
   Funerária Cardoso – Stylesheet
   Fidèle au thème Blessing original
   Couleurs extraites du CSS source du site
   ═══════════════════════════════════════════════════════════════════ */

/* ─── Reset ──────────────────────────────────────────────────────── */
*, *::before, *::after { box-sizing: border-box; margin: 0; padding: 0; }

/* ─── Variables – tokens extraits du site original ──────────────── */
:root {
  /* Couleurs – extraites du CSS source funerariacardoso.pt */
  --navy:           #0E227C;  /* couleur principale : liens, titres, boutons */
  --navy-hover:     #5674F6;  /* hover */
  --navy-active:    #1e3fa0;  /* item nav actif (légèrement plus clair) */
  --nav-bg:         #0E227C;  /* fond barre de navigation */
  --header-top-bg:  #edece9;  /* fond rangée logo/téléphones */

  /* Fonds de page */
  --page-bg:        #edece9;  /* fond principal beige */
  --page-bg-alt:    #ffffff;  /* sections blanches */
  --page-bg-dark:   #2f332f;  /* sections sombres */

  /* Texte */
  --text:           #766966;
  --text-dark:      #493834;
  --text-light:     #a5978b;
  --text-white:     #ffffff;

  /* Bordures */
  --border:         #dcdbda;
  --border-light:   #dcdad9;

  /* Typographie */
  --font-heading:   'Cinzel', Georgia, serif;
  --font-body:      'Quattrocento Sans', Georgia, serif;
  --font-size:      15px;

  /* Layout */
  --container:      1230px;
  --transition:     0.3s ease;
  --header-top-h:   110px;   /* hauteur rangée logo */
  --header-nav-h:   67px;    /* hauteur barre nav ≈ 4.466em@15px */
  --header-h:       67px;    /* seule la barre nav reste sticky */
}

/* ─── Base ───────────────────────────────────────────────────────── */
html { scroll-behavior: smooth; font-size: var(--font-size); }

body {
  background-color: var(--page-bg);
  background-image: url('/images/white_bg.jpg');
  background-repeat: repeat;
  color: var(--text);
  font-family: var(--font-body);
  font-weight: 400;
  line-height: 1.666em;
}
/* body_filled : le page_wrap (contenu principal) a un fond blanc texturé */
.body_filled .page_wrap {
  background-color: #ffffff;
  background-image: url('/images/white_bg.jpg');
  background-repeat: repeat;
}

img { max-width: 100%; height: auto; display: block; }

a {
  color: var(--navy);
  text-decoration: none;
  transition: color var(--transition);
}
a:hover { color: var(--navy); }

ul { list-style: none; }
p { margin: 0; padding: 0; }
p + p { margin-top: 1.333em; }
figure + p { margin-top: 1.333em; }

/* figure/sc_image: fond gris clair derrière les images (thème original) */
figure, .sc_image { background-color: #f4f4f4; }
figure { border-bottom: 0.4em solid #f4f4f4; }

h1, h2, h3, h4, h5 {
  font-family: var(--font-heading);
  color: var(--navy);
  font-weight: 400;
}
h6 { font-family: var(--font-heading); color: var(--navy); font-weight: 400; font-size: 1.066em; line-height: 1.333em; }
h1 { font-size: 3.333em; line-height: 1.2em;  margin-top: 0;      margin-bottom: 0.9em; }
h2 { font-size: 2.666em; line-height: 1.5em;  margin-top: 1.425em; margin-bottom: 1em;  }
h3 { font-size: 2em;     line-height: 1.2em;  margin-top: 2.166em; margin-bottom: 0.833em; }
h4 { font-size: 1.666em; line-height: 1.2em;  margin-top: 1.92em;  margin-bottom: 1.08em; }
h5 { font-size: 1.333em; line-height: 1.2em; margin-top: 1.3em;   margin-bottom: 1.25em; }

/* ─── Container ──────────────────────────────────────────────────── */
.container {
  width: 100%;
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 30px;
}

/* ─── Section titre – style "fig_border" du thème original ──────── */
.sc_title {
  overflow: hidden;
  position: relative;
  line-height: 1em;
  padding-bottom: 0.8em;
  margin-top: 0;
  margin-bottom: 1.5em;
}
h2.sc_title { font-size: 2.666em; }
h1.sc_title { font-size: 3.333em; }
.fig_border {
  background: url('/images/fig_line.png') no-repeat center bottom;
}

/* ─── Buttons ────────────────────────────────────────────────────── */
.btn {
  display: inline-block;
  padding: 0.7em 1.5em;
  font-family: var(--font-heading);
  font-size: 0.8em;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  font-weight: 700;
  cursor: pointer;
  border: none;
  border-radius: 0;
  transition: background-color var(--transition), color var(--transition);
  line-height: 1.5em;
}
.btn-dark {
  background-color: var(--navy);
  color: var(--text-white);
}
.btn-dark:hover {
  background-color: var(--navy-hover);
  color: var(--text-white);
}
.btn-light {
  background-color: transparent;
  color: var(--navy);
  border: 2px solid var(--navy);
}
.btn-light:hover {
  background-color: var(--navy-hover);
  color: var(--text-white);
  border-color: var(--navy-hover);
}
/* Le mini bouton "Ver Mais" du site */
.btn-mini {
  font-size: 0.73em;
  padding: 0.5em 1.2em;
  width: 9em;
  text-align: center;
}

/* ─── Section helpers ────────────────────────────────────────────── */
.section {
  padding: 4em 0;
}
.section--white  { background-color: #fff; background-image: url('/images/white_bg.jpg'); background-repeat: repeat; }
.section--beige  { background-color: var(--page-bg); background-image: url('/images/white_bg.jpg'); background-repeat: repeat; }
.section--dark   { background-color: var(--page-bg-dark); color: var(--text-white); }
.section--dark h2, .section--dark h3,
.section--dark p { color: var(--text-white); }


/* ═══════════════════════════════════════════════════════════════════
   HEADER – Classes WordPress Blessing identiques à l'original
   .top_panel_wrap = header sticky
   .content_wrap.display_none = rangée logo+téléphones (beige)
   .menu_main_nav_area = barre nav navy pleine largeur
   ═══════════════════════════════════════════════════════════════════ */

/* Utilitaires WordPress theme */
.clearfix::after { content: ''; display: table; clear: both; }
.content_wrap {
  max-width: 1230px;
  margin: 0 auto;
  padding: 0 30px;
  width: 100%;
}

/* Header principal – la rangée logo est dans le flux normal */
.top_panel_fixed_wrap { height: 0; }
.top_panel_wrap {
  position: static;
  width: 100%;
}

/* Menu main wrap = contient logo+phones + nav */
.menu_main_wrap { width: 100%; }

/* ── Rangée 1 : logo + téléphones (fond beige texturé) ─────────── */
/* display_none est overridé : la rangée doit être visible */
/* Annule le ::after du clearfix dans le flex header (sinon burger au centre) */
.menu_main_wrap .display_none::after { content: none; }

.menu_main_wrap .display_none {
  display: flex !important;
  align-items: center;
  justify-content: space-between;
  min-height: var(--header-top-h);
  padding: 22px 30px;
  max-width: 1230px;
  margin: 0 auto;
  width: 100%;
  background-color: var(--header-top-bg);
  background-image: url('/images/white_bg.jpg');
  background-repeat: repeat;
}

/* Logo */
.logo { display: flex; align-items: center; flex-shrink: 0; }
.logo_img a { display: block; }
.logo_main { max-height: 150px !important; width: auto; }

/* Téléphones à droite */
.inline { display: inline-block; vertical-align: middle; }
.side-right { float: right; }
.marg_top_2em { margin-top: 5em; }
.pad_left_2em { padding-left: 2em; }
.marg_null { margin: 0; }
.marg_top { margin-top: 0.2em; }
.font_086em { font-size: 0.86em; }

.menu_main_wrap .display_none .inline.image.side-right {
  display: flex !important;
  align-items: center;
  gap: 1.2em;
  float: none;
  margin-top: 0;
}
/* Chaque bloc téléphone : flex sans bordure */
.menu_main_wrap .display_none .inline.image.side-right > .inline {
  display: flex !important;
  align-items: center;
  gap: 12px;
}
/* Carré bordé uniquement sur l'icône téléphone */
.header-phone-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 54px;
  height: 54px;
  flex-shrink: 0;
  border: 1px solid #c8c8c8;
  background: rgba(255,255,255,0.7);
  font-size: 1.6em;
  color: var(--navy);
}
.menu_main_wrap .display_none .inline .side-right {
  float: none;
  display: inline-block;
  vertical-align: middle;
  margin-left: 0;
}
.menu_main_wrap .display_none h4 {
  font-family: var(--font-heading);
  font-size: 1.15em;
  color: var(--navy);
  font-weight: 700;
  margin: 0;
  white-space: nowrap;
}
.menu_main_wrap .display_none .font_086em {
  display: block;
  font-size: 0.75em;
  color: var(--text-light);
}

/* Hamburger – mobile */
.menu_main_responsive_button {
  display: none;
  font-size: 1.5em;
  color: var(--navy);
  cursor: pointer;
  padding: 8px;
  line-height: 1;
}
.menu_main_responsive_button::before {
  font-family: "fontello";
  content: '\e83f'; /* icon-menu-1 fallback: use ≡ */
  font-style: normal;
}
/* Override fontello if needed – show simple hamburger */
.icon-menu-1::before { content: '≡'; font-family: inherit; }

/* ── Rangée 2 : barre de navigation navy – sticky au scroll ──────── */
.menu_main_nav_area {
  background-color: var(--nav-bg);
  width: 100%;
  min-height: var(--header-nav-h);
  height: var(--header-nav-h);
  display: flex;
  align-items: stretch;
  position: sticky;
  top: 0;
  z-index: 8000;
  box-shadow: 0 2px 8px rgba(0,0,0,0.2);
}

/* Nav list */
.menu_main_nav {
  display: flex;
  align-items: stretch;
  list-style: none;
  margin: 0;
  padding: 0;
  max-width: 1230px;
  margin: 0 auto;
  width: 100%;
}
.menu_main_nav > li {
  position: relative;
  display: flex;
  align-items: stretch;
}
.menu_main_nav > li > a {
  display: flex;
  align-items: center;
  padding: 0 16px;
  font-family: var(--font-heading);
  font-size: 0.72em;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: #fff;
  white-space: nowrap;
  transition: background-color var(--transition);
  border-right: 1px solid rgba(255,255,255,0.08);
}
.menu_main_nav > li:first-child > a { border-left: 1px solid rgba(255,255,255,0.08); }
.menu_main_nav > li > a:hover,
.menu_main_nav > li.current-menu-item > a {
  background-color: var(--navy-active);
  color: #fff;
}
.menu_main_nav > li.lang-item > a {
  font-size: 0.65em;
  border: 1px solid rgba(255,255,255,0.35);
  padding: 4px 10px;
  align-self: center;
  margin: 0 10px;
  border-radius: 0;
}

/* Dropdown */
.menu_main_nav > li:hover > .sub-menu { display: block; }
.sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 0;
  min-width: 240px;
  background-color: var(--navy-active);
  z-index: 200;
  box-shadow: 0 4px 12px rgba(0,0,0,0.3);
  list-style: none;
  margin: 0;
  padding: 0;
}
.sub-menu li a {
  display: block;
  padding: 10px 20px;
  font-family: var(--font-heading);
  font-size: 0.72em;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  color: #fff;
  border-bottom: 1px solid rgba(255,255,255,0.1);
  transition: background-color var(--transition);
}
.sub-menu li:last-child a { border-bottom: none; }
.sub-menu li a:hover { background-color: var(--navy-hover); color: #fff; }

/* Mobile responsive menu – caché sur desktop */
.menu_main_responsive { display: none; }
/* Bouton ✕ – caché sur desktop, visible uniquement mobile */
.nav-close-btn { display: none; }


/* ═══════════════════════════════════════════════════════════════════
   HERO SLIDER – fullscreen, texte blanc, overlay sombre
   ═══════════════════════════════════════════════════════════════════ */
.hero-slider {
  position: relative;
  width: 100%;
  height: 520px;
  min-height: 300px;
  overflow: hidden;
  background: #E9E9E9;
}
.slider-track {
  display: flex;
  height: 100%;
  transition: transform 0.8s cubic-bezier(0.4,0,0.2,1);
}
.slide {
  flex: 0 0 100%;
  height: 100%;
  background-size: cover;
  background-position: center;
  position: relative;
}
/* Overlay sombre comme le thème original */
.slide-overlay {
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.45);
}
.slide-content {
  position: relative;
  z-index: 2;
  height: 100%;
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: center;
  text-align: center;
  padding: 0 15%;
}
/* Cinzel, poids léger (400 = le plus léger disponible), blanc */
.slide-content p {
  font-family: var(--font-heading);
  font-size: clamp(1.4rem, 3.5vw, 2.8rem);
  font-weight: 400;
  color: var(--text-white);
  line-height: 1.4em;
  letter-spacing: 0.03em;
  max-width: 900px;
}

/* Slider controls */
.slider-btn {
  position: absolute;
  top: 50%;
  transform: translateY(-50%);
  z-index: 10;
  background: rgba(0,0,0,0.3);
  border: 1px solid rgba(255,255,255,0.4);
  color: #fff;
  width: 44px;
  height: 44px;
  font-size: 1.1rem;
  cursor: pointer;
  transition: background var(--transition);
  display: flex;
  align-items: center;
  justify-content: center;
}
.slider-btn:hover { background: rgba(0,0,0,0.6); }
.slider-btn--prev { left: 20px; }
.slider-btn--next { right: 20px; }

.slider-dots {
  position: absolute;
  bottom: 20px;
  left: 50%;
  transform: translateX(-50%);
  display: flex;
  gap: 8px;
  z-index: 10;
}
.dot {
  width: 12px; height: 5px;
  background: rgba(255,255,255,0.5);
  border: none;
  cursor: pointer;
  transition: all var(--transition);
}
.dot.active { background: #fff; width: 24px; }

/* Timer bar – comme le thème RevSlider */
.slider-timer {
  position: absolute;
  bottom: 0;
  left: 0;
  height: 5px;
  background: rgba(0,0,0,0.15);
  width: 100%;
  z-index: 10;
  overflow: hidden;
}
.slider-timer-bar {
  height: 100%;
  background: rgba(255,255,255,0.5);
  animation: timerProgress 5s linear infinite;
}
@keyframes timerProgress { from { width: 0; } to { width: 100%; } }


/* ═══════════════════════════════════════════════════════════════════
   SECTION FALECIMENTOS (accueil) – fond blanc
   ═══════════════════════════════════════════════════════════════════ */
.section-falec { background: #fff url('/images/white_bg.jpg') repeat; text-align: center; }
.section-falec .iframe-home {
  display: block;
  width: 100%;
  height: 330px;
  border: none;
}
.section-falec .btn {
  display: inline-block;
  margin-top: 1.5em;
}


/* ═══════════════════════════════════════════════════════════════════
   SECTION SOBRE NÓS (accueil) – fond page
   Disposition 2 colonnes : image gauche, texte droite
   ═══════════════════════════════════════════════════════════════════ */
.section-sobre { background: var(--page-bg); }
.sobre-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3em;
  align-items: center;
}
.sobre-cols__img img {
  width: 100%;
  padding: 0.4em;
  padding-bottom: 0;
  border: 1px solid var(--border);
}
.sobre-cols__text h2 {
  font-family: var(--font-heading);
  font-size: 2em;
  color: var(--navy);
  margin-top: 0;
  margin-bottom: 0.15em;
  font-weight: 700;
}
.sobre-cols__text p {
  color: var(--text);
  font-size: 0.95em;
  line-height: 1.8em;
  text-align: justify;
}


/* ═══════════════════════════════════════════════════════════════════
   SECTION QUOTE – parallax avec image angel
   ═══════════════════════════════════════════════════════════════════ */
.section-quote {
  position: relative;
  background: url('https://www.funerariacardoso.pt/wp-content/uploads/2018/05/angel-art-black-and-white-208001.jpg')
              center/cover no-repeat fixed;
  min-height: 27.866em;
  display: flex;
  align-items: center;
  justify-content: center;
  text-align: center;
  color: var(--text-white);
}
.section-quote::before {
  content: '';
  position: absolute;
  inset: 0;
  background: rgba(0,0,0,0.45);
}
.section-quote blockquote {
  position: relative;
  z-index: 1;
  max-width: 800px;
  padding: 0 30px;
}
.section-quote blockquote h2 {
  color: var(--text-white);
  font-family: var(--font-heading);
  font-size: clamp(1.2em, 3vw, 1.8em);
  font-weight: 400;
  line-height: 1.5em;
  margin-bottom: 0.5em;
}
.section-quote blockquote cite {
  font-size: 0.9em;
  color: rgba(255,255,255,0.75);
  font-style: normal;
}
.section-quote blockquote cite::before { content: '— '; }


/* ═══════════════════════════════════════════════════════════════════
   SECTION NOSSOS SERVIÇOS (accueil) – grille 3×2
   Style original : image + titre SOUS l'image, fond beige texturé
   ═══════════════════════════════════════════════════════════════════ */
.section-services { background: transparent; }

.services-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  margin-top: 2em;
}

/* Chaque carte = image puis titre en dessous */
.service-item {
  display: block;
  text-align: center;
  color: var(--navy);
  text-decoration: none;
}
.service-item img {
  width: 100%;
  display: block;
  border: 0.3em solid #f4f4f4;
  box-sizing: border-box;
  transition: opacity var(--transition);
}
.service-item:hover img { opacity: 0.85; }
.service-item h3 {
  font-family: var(--font-heading);
  font-size: 0.866em;
  font-weight: 400;
  color: var(--navy);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 1em 0 0.5em;
  margin: 0;
  line-height: 1.4em;
}
.service-item:hover h3 { color: var(--navy-hover); }


/* ═══════════════════════════════════════════════════════════════════
   SECTION VEÍCULOS (accueil) – 2 colonnes
   ═══════════════════════════════════════════════════════════════════ */
.section-veiculos { background: var(--page-bg); }
.veiculos-cols {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3em;
  align-items: center;
}
.veiculos-cols__img img {
  width: 100%;
  border: 1px solid var(--border);
  padding: 0.4em;
  padding-bottom: 0;
}
.veiculos-cols__text h2 {
  font-family: var(--font-heading);
  font-size: 2em;
  color: var(--navy);
  margin-top: 0;
  margin-bottom: 0.15em;
  font-weight: 700;
}
.veiculos-cols__text p {
  color: var(--text);
  text-align: justify;
  font-size: 0.95em;
}


/* ═══════════════════════════════════════════════════════════════════
   PAGE HERO (pages intérieures) – fond sombre
   ═══════════════════════════════════════════════════════════════════ */
.page-hero {
  background: var(--nav-bg);
  padding: 3em 0;
  text-align: center;
}
.page-hero h1 {
  font-family: var(--font-heading);
  font-size: 2.4em;
  font-weight: 700;
  color: var(--text-white);
  letter-spacing: 0.06em;
  margin-bottom: 0.3em;
}
.page-hero p {
  color: rgba(255,255,255,0.65);
  font-size: 0.9em;
}


/* ═══════════════════════════════════════════════════════════════════
   PAGE – NOSSOS SERVIÇOS (détail)
   ═══════════════════════════════════════════════════════════════════ */
.service-section { scroll-margin-top: var(--header-h); }

.service-detail {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3em;
  align-items: center;
  padding: 4em 0;
}
.service-detail + .service-detail {
  border-top: 1px solid var(--border-light);
}
.service-detail__img img {
  width: 100%;
  border: 1px solid var(--border);
  padding: 0.4em;
}
.service-detail__text h2 {
  font-family: var(--font-heading);
  font-size: 1.8em;
  color: var(--navy);
  margin-bottom: 0.5em;
  font-weight: 700;
}
.service-detail__text p {
  color: var(--text);
  font-size: 0.95em;
  line-height: 1.8em;
  text-align: justify;
}

/* Alternance fond blanc / beige */
.service-alt-white { background: var(--page-bg-alt); }
.service-alt-beige { background: var(--page-bg); }


/* ═══════════════════════════════════════════════════════════════════
   PAGE – SOBRE NÓS (détail)
   ═══════════════════════════════════════════════════════════════════ */
.sobre-page-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3em;
  align-items: center;
}
.sobre-page-grid__img img {
  width: 100%;
  border: 1px solid var(--border);
  padding: 0.4em;
}
.sobre-page-grid__text h2 {
  font-family: var(--font-heading);
  font-size: 2em;
  color: var(--navy);
  margin-bottom: 0.5em;
}
.sobre-page-grid__text p {
  color: var(--text);
  font-size: 0.95em;
  text-align: justify;
}

.instalacoes-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 1em;
  margin-top: 2em;
}
.inst-item {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  background: var(--page-bg);
  border-left: 3px solid var(--navy);
}
.inst-item span {
  font-family: var(--font-heading);
  font-size: 0.85em;
  color: var(--text-dark);
  letter-spacing: 0.05em;
}

.valores-grid {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  gap: 1.5em;
  margin-top: 2em;
}
.valor-item {
  text-align: center;
  padding: 2em 1em;
  border-top: 3px solid var(--navy);
  background: var(--page-bg);
}
.valor-item h3 {
  font-family: var(--font-heading);
  font-size: 0.9em;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--navy);
}
.valor-number {
  display: block;
  font-family: var(--font-heading);
  font-size: 2rem;
  color: var(--border);
  font-weight: 700;
  margin-bottom: 0.5em;
}


/* ═══════════════════════════════════════════════════════════════════
   PAGE – NOSSOS VEÍCULOS
   ═══════════════════════════════════════════════════════════════════ */
.veiculos-page-intro {
  text-align: center;
  color: var(--text);
  font-size: 1em;
  max-width: 800px;
  margin: 0 auto 3em;
  font-style: italic;
}
.veiculos-page-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 2em;
}
.veiculo-card img {
  width: 100%;
  border: 1px solid var(--border);
  padding: 0.4em;
}
.veiculo-card__body {
  padding: 1.5em 0;
}
.veiculo-card__body h3 {
  font-family: var(--font-heading);
  font-size: 1em;
  color: var(--navy);
  margin-bottom: 0.5em;
  text-transform: uppercase;
  letter-spacing: 0.08em;
}
.veiculo-card__body p {
  color: var(--text);
  font-size: 0.9em;
  text-align: justify;
}


/* ═══════════════════════════════════════════════════════════════════
   PAGE – CONTACTOS
   ═══════════════════════════════════════════════════════════════════ */
.contactos-grid {
  display: grid;
  grid-template-columns: 1fr 1.6fr;
  gap: 3em;
  align-items: start;
}
.contactos-info { display: flex; flex-direction: column; gap: 2em; }
.contact-block h4 {
  font-family: var(--font-heading);
  font-size: 0.85em;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 0.5em;
  padding-bottom: 0.3em;
  border-bottom: 1px solid var(--border);
}
.contact-block p, .contact-block a {
  color: var(--text);
  font-size: 0.9em;
  line-height: 1.8em;
}
.contact-block a:hover { color: var(--navy); }
.contactos-map iframe {
  display: block;
  width: 100%;
  border: 1px solid var(--border);
}


/* ═══════════════════════════════════════════════════════════════════
   PAGE – FALECIMENTOS
   ═══════════════════════════════════════════════════════════════════ */
.iframe-falec {
  display: block;
  width: 100%;
  border: none;
}


/* ═══════════════════════════════════════════════════════════════════
   FOOTER – Classes WordPress Blessing
   .footer_wrap.bg_tint_light = fond blanc
   .columns_wrap = 4 colonnes flexbox
   .column-1_4 = 1/4 width
   .widget_title = titre widget style navy
   .sc_list.sc_list_style_iconed = liste avec icônes fontello
   ═══════════════════════════════════════════════════════════════════ */
.footer_wrap {
  border-top: 1px solid var(--border);
}
.bg_tint_light {
  background-color: #fff;
  background-image: url('/images/white_bg.jpg');
  background-repeat: repeat;
}
.footer_wrap .content_wrap {
  padding-top: 2.75em;
  padding-bottom: 2em;
}

/* 4 colonnes */
.columns_wrap {
  display: flex;
  flex-wrap: wrap;
  gap: 2em;
  align-items: flex-start;
}
.column-1_4 {
  flex: 0 0 calc(25% - 1.5em);
  max-width: calc(25% - 1.5em);
  min-width: 0;
}

/* Widget title */
.widget_title {
  font-family: var(--font-heading);
  font-size: 1em;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--navy);
  margin-bottom: 1.5em;
}

/* Col 1 – Logo + socials */
.widget_inner .logo img { max-height: 130px; width: auto; margin-bottom: 1em; }
.sc_socials { margin-right: -1.25em; margin-top: 2em; }
.sc_socials_item { display: inline-block; }
/* sc_socials_size_small : override WP inline CSS → fond navy */
.sc_socials.sc_socials_size_small a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 2em;
  height: 2em;
  font-size: 1.1em;
  text-align: center;
  background-color: var(--navy);
  color: #fff;
  border: 0.3em solid var(--navy);
  border-radius: 0;
  margin: 0 0.2em 0 0;
  text-decoration: none;
  transition: background var(--transition);
}
.sc_socials.sc_socials_size_small a:hover {
  background-color: var(--navy-hover);
  border-color: var(--navy-hover);
  color: #fff;
}
.social_icons .icon-facebook,
.social_icons span { color: #fff; }

/* Icone list dans le footer */
.sc_list { list-style: none; margin: 0; padding: 0; }
.sc_list_style_iconed .sc_list_item {
  display: flex;
  align-items: flex-start;
  gap: 8px;
  padding: 4px 0;
  font-size: 0.95em;
  color: var(--text);
  line-height: 1.5em;
}
.sc_list_icon {
  flex-shrink: 0;
  color: var(--navy);
  font-size: 1em;
  width: 1.2em;
  text-align: center;
  margin-top: 0.1em;
}
.sc_list_style_iconed a { color: var(--navy); }
.sc_list_style_iconed a:hover { color: var(--navy-hover); }

/* iframe footer */
iframe.footer {
  display: block;
  width: 100% !important;
  height: 315px !important;
  border: none;
}

/* Copyright bar */
.copyright_wrap.bottom_cont {
  background-color: var(--navy);
  padding: 1.5em 0;
  text-align: center;
}
.copyright_wrap.bottom_cont p {
  color: rgba(255,255,255,0.75);
  font-size: 0.95em;
  margin: 0;
}

/* Page content wrap */
.page_content_wrap {
  min-height: 300px;
}

/* ═══════════════════════════════════════════════════════════════════
   GRILLES DE CONTENU – classes WordPress pour les pages
   ═══════════════════════════════════════════════════════════════════ */
.sc_content.content_wrap,
.sc_content { max-width: 1230px; margin: 0 auto; padding: 0 30px; }

.sc_section { width: 100%; position: relative; padding: 1px 0; }

/* 2 colonnes */
.sc_columns_count_2.columns_nofluid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 3em;
  align-items: center;
}
/* 3 colonnes */
.sc_columns_count_3.columns_nofluid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 24px;
  align-items: start;
}
/* 5 colonnes */
.sc_columns_count_5.columns_fluid {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1em;
  align-items: start;
}
/* 1/3 sur 3 colonnes */
.column-2_3 {
  grid-column: span 2;
}
/* colonnes 1/3 pour sobrenos */
.sc_columns_count_3.columns_nofluid .column-1_3 { }

/* Sections avec fond texturé (vc_custom padding) */
.section-padded {
  padding-top: 5.5em;
  padding-bottom: 5em;
  background-image: url('/images/white_bg.jpg');
  background-repeat: repeat;
}

/* sc_image wrapper */
.sc_image { width: 100%; }
.sc_image .sc_image_inner,
.sc_image div[style] { display: block; }
.sc_image img { width: 100%; }

/* Boutons sc_button */
.sc_button {
  display: inline-block;
  padding: 0.85em 1.8em;
  font-family: var(--font-body);
  font-size: 1em;
  letter-spacing: 0.03em;
  text-transform: uppercase;
  font-weight: 400;
  cursor: pointer;
  border: none;
  text-align: center;
  transition: background-color var(--transition), color var(--transition);
  text-decoration: none;
}
.sc_button_style_light,
.sc_button.sc_button_style_light {
  background-color: var(--navy) !important;
  color: #fff !important;
}
.sc_button_style_light:hover,
.sc_button.sc_button_style_light:hover {
  background-color: var(--navy-hover) !important;
  color: #fff !important;
}
.sc_button_style_dark,
.sc_button.sc_button_style_dark {
  background-color: var(--navy);
  color: #fff;
}
.sc_button_style_dark:hover { background-color: var(--navy-hover); color: #fff; }
.sc_button_size_mini  { font-size: 0.8em; padding: 0.6em 1.2em; }
.sc_button_size_small { font-size: 0.867em; }
.sc_button_size_medium { font-size: 1em; padding: 1.2em 1.5em; }
.sc_button_size_large  { font-size: 1.125em; padding: 1.25em 1.75em; }
.sc_button_square { border-radius: 0; }

/* history_service – boîtes de service */
.history_service { margin-bottom: 2em; }
.history_service .sc_column_item {
  text-align: center;
}
.history_service .sc_column_item img {
  width: 100%;
  display: block;
  border: 0.3em solid #f4f4f4;
}
.history_service .sc_column_item p {
  font-family: var(--font-heading);
  font-size: 0.866em;
  font-weight: 400;
  color: var(--navy);
  text-transform: uppercase;
  letter-spacing: 0.1em;
  padding: 0.8em 0 0.3em;
  margin: 0;
}
.history_service .sc_column_item a {
  display: block;
  text-align: center;
  color: var(--navy);
  text-decoration: none;
}
.history_service .sc_column_item a:hover { color: var(--navy-hover); }
.history_service .sc_column_item a img { transition: opacity 0.3s; }
.history_service .sc_column_item a:hover img { opacity: 0.85; }

/* Parallax quote section – structure identique à l'original WP */
.sc_parallax {
  position: relative;
  overflow: hidden;
}
.sc_parallax_content {
  position: relative;
  overflow: hidden;
  background-size: cover;
  background-repeat: no-repeat;
  background-attachment: fixed;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  padding: 4em 10%;
  min-height: 27.866em;
}
.sc_parallax .wpb_text_column {
  position: relative;
  z-index: 2;
  width: 100%;
  text-align: center;
}
.sc_parallax h2 {
  color: #fff !important;
  font-weight: 400;
  line-height: 1.3em;
  margin-top: 0;
}
.sc_parallax p {
  color: rgba(255,255,255,0.8) !important;
  text-align: center;
}

/* ─── Mentions légales téléphonie (ASAE) ────────────────────────── */
/* Affichée sous chaque numéro de téléphone : "Chamada para rede..." */
.chamada-info {
  display: block;
  font-size: 0.72em;
  color: var(--text-light);
  font-style: italic;
  line-height: 1.4em;
  margin-top: 0.1em;
}
/* Dans le header (fond beige) */
.menu_main_wrap .chamada-info { color: #999; }
/* Identification légale de l'entreprise (barre copyright) */
.footer-legal-id {
  color: rgba(255,255,255,0.5);
  font-size: 0.8em;
  margin-top: 0.4em;
}

/* sc_icon pour contactos */
.sc_icon {
  display: inline-block;
  font-style: normal;
  line-height: 1em;
  color: var(--navy);
}
.link_color { color: var(--navy); }

/* Icon contactos page */
.contactos-icons {
  display: grid;
  grid-template-columns: repeat(5, 1fr);
  gap: 1em;
  text-align: center;
  margin: 4em auto;
  max-width: 900px;
}
.contactos-icon-item { text-align: center; }
.contactos-icon-item .sc_icon { font-size: 4em; color: var(--navy); }
.contactos-icon-item p {
  margin-top: 1em;
  font-size: 0.9em;
  color: var(--text);
}

/* vc-hoverbox (sobre nos) */
.vc-hoverbox-wrapper { margin-top: 2em; }
.vc-hoverbox-inner {
  position: relative;
  min-height: 250px;
  overflow: hidden;
}
.vc-hoverbox-block {
  position: absolute;
  inset: 0;
  transition: opacity 0.4s;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 2em;
}
.vc-hoverbox-front {
  background-size: cover;
  background-position: center;
}
.vc-hoverbox-back {
  opacity: 0;
  background-color: #ebebeb;
}
.vc-hoverbox-wrapper:hover .vc-hoverbox-front { opacity: 0; }
.vc-hoverbox-wrapper:hover .vc-hoverbox-back { opacity: 1; }
.vc-hoverbox-back-inner { color: var(--text); font-size: 0.9em; line-height: 1.7em; }

/* sc_list pour sobrenos */
.boxed_icon.sc_list_style_iconed .sc_list_item {
  display: flex;
  align-items: flex-start;
  gap: 10px;
  padding: 5px 0;
  font-size: 0.9em;
  color: var(--text-dark);
}

/* iframe home (homepage) */
iframe.home {
  display: block;
  width: 100% !important;
  height: 660px !important;
  border: none;
}


/* ═══════════════════════════════════════════════════════════════════
   COOKIE BANNER – style du plugin cookie-law-info
   Fond blanc, bouton noir
   ═══════════════════════════════════════════════════════════════════ */
.cookie-banner {
  display: none;
  position: fixed;
  bottom: 0; left: 0; right: 0;
  z-index: 9999;
  background: #fff;
  border-top: 1px solid #b1a6a6;
  padding: 14px 0;
  box-shadow: 0 -4px 16px rgba(0,0,0,0.1);
}
.cookie-inner {
  max-width: var(--container);
  margin: 0 auto;
  padding: 0 30px;
  display: flex;
  align-items: center;
  gap: 20px;
  flex-wrap: wrap;
}
.cookie-inner p {
  flex: 1;
  color: #000;
  font-size: 0.875em;
  margin: 0;
  min-width: 200px;
}
.cookie-btns { display: flex; gap: 10px; flex-shrink: 0; }
.cookie-accept {
  background: #000;
  color: #fff;
  border: none;
  padding: 8px 18px;
  font-size: 0.8em;
  cursor: pointer;
  font-family: var(--font-body);
  transition: background var(--transition);
}
.cookie-accept:hover { background: #333; }
.cookie-refuse {
  background: none;
  color: #444;
  border: 1px solid #444;
  padding: 7px 18px;
  font-size: 0.8em;
  cursor: pointer;
  font-family: var(--font-body);
  transition: all var(--transition);
}
.cookie-refuse:hover { background: #333; color: #fff; border-color: #333; }


/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE – TABLETTE (≤ 992px)
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 992px) {
  .services-grid      { grid-template-columns: repeat(2, 1fr); }
  .column-1_4         { flex: 0 0 calc(50% - 1em); max-width: calc(50% - 1em); }
  .valores-grid       { grid-template-columns: repeat(2, 1fr); }
  .veiculos-page-grid { grid-template-columns: 1fr; max-width: 500px; margin: 0 auto; }
  .contactos-grid     { grid-template-columns: 1fr; }
  .sobre-page-grid    { grid-template-columns: 1fr; }
  .service-detail     { grid-template-columns: 1fr; gap: 2em; }
  .service-detail--img-left .service-detail__img { order: -1; }
}

/* ═══════════════════════════════════════════════════════════════════
   RESPONSIVE – MOBILE (≤ 768px)
   ═══════════════════════════════════════════════════════════════════ */
@media (max-width: 768px) {
  :root { --header-top-h: 70px; --header-nav-h: 52px; --header-h: 70px; }

  /* Sur mobile le header complet (rangée logo+burger) est fixé en haut */
  .top_panel_wrap {
    position: fixed;
    top: 0;
    left: 0;
    width: 100%;
    z-index: 8000;
    box-shadow: 0 2px 8px rgba(0,0,0,0.2);
  }
  /* Espaceur compensant le header fixe sur mobile */
  .top_panel_fixed_wrap { height: var(--header-top-h); }

  /* Cacher la rangée logo+phones, afficher burger */
  .menu_main_wrap .display_none {
    min-height: var(--header-top-h);
    padding: 5px 20px;
  }
  .menu_main_wrap .display_none .inline.image.side-right { display: none !important; }
  .logo_main { max-height: 60px !important; }
  .menu_main_responsive_button { display: block; }

  /* Nav mobile – z-index au-dessus du header (8000) */
  .menu_main_nav_area {
    position: fixed;
    top: 0; right: -100%;
    width: 80vw;
    max-width: 300px;
    height: 100vh;
    background: var(--nav-bg);
    transition: right var(--transition);
    z-index: 9000;
    padding: 70px 0 40px;
    overflow-y: auto;
    flex-direction: column;
    align-items: flex-start;
  }
  .menu_main_nav_area.open { right: 0; }
  .menu_main_nav {
    flex-direction: column;
    width: 100%;
    margin: 0;
    max-width: none;
  }
  .menu_main_nav > li { flex-direction: column; align-items: stretch; }
  .menu_main_nav > li > a {
    padding: 13px 20px;
    border-right: none;
    border-bottom: 1px solid rgba(255,255,255,0.08);
  }
  .menu_main_nav > li:first-child > a { border-left: none; }
  .sub-menu { position: static; box-shadow: none; display: none; }
  .sub-menu.open { display: block; }
  .sub-menu li a { padding-left: 36px; }

  .nav-overlay {
    display: none;
    position: fixed; inset: 0;
    background: rgba(0,0,0,0.5);
    z-index: 8999;
    cursor: pointer;
    -webkit-tap-highlight-color: transparent;
  }
  .nav-overlay.show { display: block; }

  /* Bouton ✕ fermer le nav */
  .nav-close-btn {
    position: absolute;
    top: 18px; right: 18px;
    background: none;
    border: 1px solid rgba(255,255,255,0.3);
    color: #fff;
    font-size: 1.2em;
    width: 34px; height: 34px;
    cursor: pointer;
    display: flex; align-items: center; justify-content: center;
    line-height: 1;
  }

  /* ── Grilles Blessing → 1 colonne ── */
  .sc_columns_count_2.columns_nofluid,
  .sc_columns_count_3.columns_nofluid {
    grid-template-columns: 1fr;
    gap: 1.5em;
  }
  /* 2/3 span reset */
  .column-2_3 { grid-column: span 1; }

  /* Services (3 items par rangée) → 2 colonnes sur mobile */
  .history_service.sc_columns_count_3.columns_nofluid {
    grid-template-columns: 1fr 1fr;
    gap: 1em;
  }

  /* 5 colonnes contactos → 2 colonnes */
  .sc_columns_count_5.columns_fluid {
    grid-template-columns: 1fr 1fr;
    gap: 1.5em;
  }

  /* Colonnes flex footer */
  .columns_wrap { flex-direction: column; }
  .column-1_4   { flex: 0 0 100%; max-width: 100%; }
  .sobre-cols       { grid-template-columns: 1fr; }
  .veiculos-cols    { grid-template-columns: 1fr; }
  .services-grid    { grid-template-columns: 1fr 1fr; }
  .instalacoes-list { grid-template-columns: 1fr; }
  .valores-grid     { grid-template-columns: 1fr 1fr; }

  /* ── Typographie ── */
  h2, .sc_title { font-size: 1.9em !important; }
  h3 { font-size: 1.5em; }

  /* ── content_wrap : padding latéral réduit ── */
  .content_wrap { padding-left: 1em !important; padding-right: 1em !important; }

  /* ── Sections padding réduit ── */
  .sc_content.content_wrap { padding-top: 2em !important; padding-bottom: 2em !important; }

  /* ── Parallax quote ── */
  .sc_parallax { height: auto !important; min-height: 0 !important; }
  .sc_parallax_content { padding: 3em 1.5em !important; }

  /* ── Hoverbox sobre-nos : hauteur raisonnable ── */
  .vc-hoverbox-inner { min-height: 300px !important; }

  /* ── Slider ── */
  .slide-content p { font-size: clamp(1rem, 4vw, 1.8rem); padding: 0 5%; }
  .hero-slider { height: 280px; min-height: 200px; }
  .section { padding: 2.5em 0; }
}

@media (max-width: 480px) {
  .valores-grid { grid-template-columns: 1fr; }
  .services-grid, .history_service.sc_columns_count_3.columns_nofluid { grid-template-columns: 1fr; }
  .sc_columns_count_5.columns_fluid { grid-template-columns: 1fr 1fr; }
  .sc_title, h2 { font-size: 1.6em !important; }
  .hero-slider { height: 220px; }
}
