/* CAMYnergía — www.camynergia.es — charte vert sapin / jaune safran */
@font-face { font-family: "Montserrat"; font-style: normal; font-weight: 500 800; font-display: swap; src: url(/r/fuentes/montserrat-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: "Montserrat"; font-style: normal; font-weight: 500 800; font-display: swap; src: url(/r/fuentes/montserrat-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-20C0, 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(/r/fuentes/inter-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: "Inter"; font-style: normal; font-weight: 400 700; font-display: swap; src: url(/r/fuentes/inter-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-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF; }

:root {
  --verde: #1d4b3a; --verde-osc: #143528; --verde-cl: #2c6a52; --oro: #e2b13c; --oro-osc: #c9971f;
  --crema: #faf6ec; --tinta: #1b2420; --gris: #5b6660; --linea: #e4dfd1; --blanco: #fff;
  --radio: 14px; --sombra: 0 10px 30px rgba(20, 53, 40, .10);
  --titulos: "Montserrat", system-ui, sans-serif; --texto: "Inter", system-ui, sans-serif;
}
*, *::before, *::after { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 96px; -webkit-text-size-adjust: 100%; }
body { margin: 0; font: 400 1.0625rem/1.65 var(--texto); color: var(--tinta); background: var(--blanco); }
img { max-width: 100%; height: auto; display: block; }
a { color: var(--verde); }
h1, h2, h3 { font-family: var(--titulos); line-height: 1.15; margin: 0; letter-spacing: -.01em; }
p { margin: 0 0 1em; }
.contenedor { width: min(1200px, 100% - 40px); margin-inline: auto; }
.sr, .saltar:not(:focus) { position: absolute; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.saltar:focus { position: fixed; top: 8px; left: 8px; z-index: 100; background: var(--oro); color: var(--tinta); padding: 8px 14px; border-radius: 8px; }
.ico, .barra-sup svg, .area svg { width: 22px; height: 22px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; flex: none; }

/* boutons */
.btn { display: inline-flex; align-items: center; justify-content: center; gap: 8px; font: 700 .95rem/1 var(--titulos); padding: 14px 24px; border-radius: 999px; text-decoration: none; border: 2px solid transparent; cursor: pointer; transition: background .2s, color .2s, transform .2s; }
.btn:hover { transform: translateY(-1px); }
.btn-oro { background: var(--oro); color: var(--verde-osc); }
.btn-oro:hover { background: #ecc35a; }
.btn-linea { border-color: rgba(255,255,255,.8); color: #fff; }
.btn-linea:hover { background: rgba(255,255,255,.12); }
.btn-claro { background: #fff; color: var(--verde); }
.btn-grande { padding: 17px 30px; font-size: 1rem; }
.enlace-flecha { font: 700 .95rem var(--titulos); color: var(--verde); text-decoration: none; display: inline-flex; gap: 6px; }
.enlace-flecha:hover { text-decoration: underline; text-underline-offset: 4px; }

/* barre du haut */
.barra-sup { background: var(--verde-osc); color: #dfe8e3; font-size: .82rem; }
.barra-sup-in { display: flex; align-items: center; gap: 14px; min-height: 40px; }
.barra-sup a { color: #fff; text-decoration: none; }
.barra-mail { display: inline-flex; align-items: center; gap: 6px; }
.barra-mail svg { width: 16px; height: 16px; }
.barra-sep { width: 1px; height: 16px; background: rgba(255,255,255,.25); }
.barra-der { margin-left: auto; display: flex; align-items: center; gap: 6px; }
.idiomas { position: relative; }
.idiomas summary { list-style: none; cursor: pointer; display: flex; align-items: center; gap: 6px; padding: 6px 10px; border-radius: 8px; font-weight: 600; }
.idiomas summary::-webkit-details-marker { display: none; }
.idiomas summary svg { width: 16px; height: 16px; }
.idiomas summary:hover, .idiomas[open] summary { background: rgba(255,255,255,.1); }
.idiomas ul { position: absolute; right: 0; top: calc(100% + 6px); z-index: 60; list-style: none; margin: 0; padding: 6px; background: #fff; border-radius: 12px; box-shadow: var(--sombra); min-width: 190px; }
.idiomas li a { display: flex; gap: 10px; color: var(--tinta) !important; padding: 9px 12px; border-radius: 8px; font-size: .92rem; }
.idiomas li a b { width: 24px; color: var(--verde); }
.idiomas li a:hover, .idiomas li a[aria-current] { background: var(--crema); }
.area { display: inline-flex; align-items: center; gap: 7px; background: var(--oro); color: var(--verde-osc) !important; font-weight: 700; padding: 6px 14px; border-radius: 999px; }
.area svg { width: 16px; height: 16px; stroke-width: 2; }
.area:hover { background: #ecc35a; }
.area-movil { display: none; }

/* en-tête */
.cabecera { position: sticky; top: 0; z-index: 50; background: rgba(255,255,255,.97); backdrop-filter: blur(8px); border-bottom: 1px solid transparent; transition: box-shadow .2s, border-color .2s; }
.cabecera.sombra { box-shadow: 0 6px 20px rgba(0,0,0,.06); border-color: var(--linea); }
.cabecera-in { display: flex; align-items: center; gap: 24px; min-height: 84px; }
.marca img { width: 170px; height: auto; }
.menu { margin-left: auto; display: flex; align-items: center; gap: 4px; }
.menu a:not(.btn) { font: 600 .95rem var(--titulos); color: var(--tinta); text-decoration: none; padding: 10px 14px; border-radius: 8px; }
.menu a:not(.btn):hover { color: var(--verde); background: var(--crema); }
.menu-cta { margin-left: 10px; padding: 12px 20px; }
.menu-btn { display: none; margin-left: auto; background: none; border: 0; width: 44px; height: 44px; padding: 10px; cursor: pointer; }
.menu-btn span { display: block; height: 2px; background: var(--verde); margin: 5px 0; border-radius: 2px; transition: transform .2s, opacity .2s; }

/* portada */
.portada { position: relative; color: #fff; background: var(--verde-osc) var(--fondo) center 60% / cover no-repeat; }
.portada::before { content: ""; position: absolute; inset: 0; background: linear-gradient(100deg, rgba(20,53,40,.94) 0%, rgba(20,53,40,.82) 40%, rgba(20,53,40,.25) 78%, rgba(20,53,40,.1) 100%); }
.portada-in { position: relative; padding: 110px 0 150px; max-width: 1200px; }
.portada h1 { font-size: clamp(2.2rem, 1.3rem + 3.6vw, 4rem); font-weight: 800; max-width: 17ch; margin-bottom: 22px; }
.portada h1 em { font-style: normal; color: var(--oro); }
.portada-txt { font-size: 1.2rem; max-width: 46ch; color: #e8efeb; margin-bottom: 34px; }
.portada-btns { display: flex; flex-wrap: wrap; gap: 14px; }
.antetitulo { font: 700 .8rem var(--titulos); text-transform: uppercase; letter-spacing: .14em; color: var(--oro-osc); margin-bottom: 14px; display: flex; align-items: center; gap: 10px; }
.antetitulo::before { content: ""; width: 28px; height: 3px; background: var(--oro); border-radius: 2px; }
.portada .antetitulo, .cabeza-clara .antetitulo { color: var(--oro); }

/* avantages */
.ventajas { position: relative; z-index: 2; margin-top: -70px; }
.ventajas-in { display: grid; grid-template-columns: repeat(4, 1fr); background: #fff; border-radius: var(--radio); box-shadow: var(--sombra); overflow: hidden; }
.ventaja { display: flex; gap: 14px; padding: 28px 24px; border-right: 1px solid var(--linea); }
.ventaja:last-child { border-right: 0; }
.ventaja .ico { width: 40px; height: 40px; color: var(--verde); background: var(--crema); border-radius: 12px; padding: 8px; }
.ventaja h2 { font-size: 1rem; margin-bottom: 4px; }
.ventaja p { margin: 0; font-size: .9rem; color: var(--gris); line-height: 1.5; }

/* sections */
.seccion { padding: 100px 0; }
.seccion-crema { background: var(--crema); }
.titulo { font-size: clamp(1.8rem, 1.2rem + 2vw, 2.7rem); font-weight: 800; color: var(--verde-osc); margin-bottom: 20px; }
.cabeza-seccion { max-width: 760px; margin-bottom: 52px; }
.cabeza-seccion > p:last-child { color: var(--gris); font-size: 1.1rem; }

/* CAE */
.cae { display: grid; grid-template-columns: 1.35fr 1fr; gap: 64px; align-items: start; }
.cae-txt p { color: #34403a; }
.cae-txt strong { color: var(--verde-osc); }
.cae-cifras { display: grid; gap: 16px; }
.cifra { background: var(--verde); color: #fff; border-radius: var(--radio); padding: 26px 28px; display: grid; gap: 4px; position: relative; overflow: hidden; }
.cifra::after { content: ""; position: absolute; right: -30px; top: -30px; width: 110px; height: 110px; border-radius: 50%; border: 18px solid rgba(226,177,60,.18); }
.cifra b { font: 800 1.9rem var(--titulos); color: var(--oro); }
.cifra span { color: #dfe9e4; font-size: .98rem; }
.cifra:nth-child(2) { background: var(--verde-cl); }
.cifra:nth-child(3) { background: var(--verde-osc); }
.actores { margin-top: 70px; }
.actores h3 { font-size: 1.3rem; color: var(--verde-osc); margin-bottom: 24px; }
.actores-lista { list-style: none; counter-reset: a; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, 1fr); gap: 18px; }
.actores-lista li { counter-increment: a; border: 1px solid var(--linea); border-radius: var(--radio); padding: 24px; display: grid; gap: 8px; align-content: start; }
.actores-lista li::before { content: counter(a); font: 800 .85rem var(--titulos); width: 30px; height: 30px; display: grid; place-items: center; border-radius: 50%; background: var(--oro); color: var(--verde-osc); }
.actores-lista b { font-family: var(--titulos); color: var(--verde-osc); }
.actores-lista span { color: var(--gris); font-size: .93rem; line-height: 1.55; }

/* secteurs */
.sector { display: grid; grid-template-columns: 1fr 1.15fr; gap: 56px; align-items: center; margin-bottom: 90px; }
.sector-inv .sector-img { order: 2; }
.sector-img { margin: 0; position: relative; }
.sector-img img { border-radius: 20px; width: 100%; aspect-ratio: 4/3.4; object-fit: cover; box-shadow: var(--sombra); }
.sector-img figcaption { position: absolute; left: 20px; bottom: 20px; background: var(--oro); color: var(--verde-osc); font: 800 .85rem var(--titulos); text-transform: uppercase; letter-spacing: .1em; padding: 9px 16px; border-radius: 999px; }
.sector-txt h3 { font-size: clamp(1.6rem, 1.2rem + 1.2vw, 2.1rem); color: var(--verde-osc); margin-bottom: 14px; }
.sector-intro { color: var(--gris); font-size: 1.08rem; }
.dominios { list-style: none; margin: 24px 0 26px; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 16px 22px; }
.dominios li { display: flex; gap: 12px; align-items: flex-start; }
.dominios .ico { width: 38px; height: 38px; padding: 8px; color: var(--verde); background: #fff; border: 1px solid var(--linea); border-radius: 10px; }
.dominios b { display: block; font: 700 .97rem/1.3 var(--titulos); color: var(--tinta); margin-bottom: 3px; }
.dominios span { font-size: .9rem; color: var(--gris); line-height: 1.45; display: block; }
.nota-sect { text-align: center; max-width: 760px; margin: 0 auto; color: var(--gris); font-style: italic; }

/* méthode */
.metodo { position: relative; color: #fff; background: var(--verde-osc) var(--fondo) center / cover no-repeat; }
.metodo::before { content: ""; position: absolute; inset: 0; background: rgba(20,53,40,.88); }
.metodo .contenedor { position: relative; }
.cabeza-clara .titulo { color: #fff; }
.cabeza-clara > p:last-child { color: #d6e2dc; }
.pasos { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(5, 1fr); gap: 18px; }
.pasos li { background: rgba(255,255,255,.07); border: 1px solid rgba(255,255,255,.14); border-radius: var(--radio); padding: 26px 22px; }
.paso-n { font: 800 2.2rem var(--titulos); color: var(--oro); display: block; margin-bottom: 12px; }
.pasos h3 { font-size: 1.08rem; margin-bottom: 8px; }
.pasos p { margin: 0; color: #d6e2dc; font-size: .93rem; line-height: 1.55; }

/* pourquoi */
.porque { display: grid; grid-template-columns: 1fr 1.1fr; gap: 64px; align-items: center; }
.porque-img { margin: 0; }
.porque-img img { border-radius: 20px; aspect-ratio: 1/1.05; object-fit: cover; width: 100%; box-shadow: var(--sombra); }
.porque-lista { list-style: none; margin: 10px 0 0; padding: 0; display: grid; gap: 22px; }
.porque-lista li { display: flex; gap: 14px; }
.porque-lista .ico { width: 30px; height: 30px; color: var(--oro-osc); margin-top: 2px; }
.porque-lista b { display: block; font: 700 1.08rem var(--titulos); color: var(--verde-osc); margin-bottom: 4px; }
.porque-lista span { color: var(--gris); }

/* FAQ */
.faq { max-width: 900px; }
.faq .cabeza-seccion { margin-bottom: 32px; }
.faq-lista { display: grid; gap: 12px; }
.faq-lista details { background: #fff; border: 1px solid var(--linea); border-radius: 12px; }
.faq-lista summary { cursor: pointer; list-style: none; padding: 20px 56px 20px 24px; font: 700 1.03rem var(--titulos); color: var(--verde-osc); position: relative; }
.faq-lista summary::-webkit-details-marker { display: none; }
.faq-lista summary::after { content: "+"; position: absolute; right: 22px; top: 50%; translate: 0 -50%; width: 28px; height: 28px; border-radius: 50%; background: var(--crema); display: grid; place-items: center; font-size: 1.2rem; color: var(--verde); transition: rotate .2s; }
.faq-lista details[open] summary::after { rotate: 45deg; background: var(--oro); }
.faq-lista details > div { padding: 0 24px 22px; color: #3e4943; }
.faq-lista details > div p:last-child { margin: 0; }

/* contact */
.contacto-in { display: grid; grid-template-columns: .9fr 1.1fr; gap: 64px; align-items: start; }
.contacto-info > p { color: var(--gris); font-size: 1.08rem; }
.contacto-datos { list-style: none; margin: 30px 0 0; padding: 0; display: grid; gap: 20px; }
.contacto-datos li { display: flex; gap: 14px; }
.contacto-datos .ico { width: 44px; height: 44px; padding: 10px; border-radius: 12px; background: var(--crema); color: var(--verde); }
.contacto-datos b { display: block; font-family: var(--titulos); color: var(--verde-osc); }
.contacto-datos span, .contacto-datos a { color: var(--gris); }
.contacto-form { background: var(--crema); border-radius: 20px; padding: 36px; border: 1px solid var(--linea); }
.campos { display: grid; grid-template-columns: 1fr 1fr; gap: 16px; margin-bottom: 18px; }
.campo { display: grid; gap: 6px; font: 600 .87rem var(--titulos); color: var(--verde-osc); }
.campo-ancho { grid-column: 1 / -1; }
.campo input, .campo select, .campo textarea { font: 400 1rem var(--texto); color: var(--tinta); padding: 13px 14px; border: 1px solid #d9d2bf; border-radius: 10px; background: #fff; width: 100%; }
.campo textarea { resize: vertical; min-height: 110px; }
.campo input:focus, .campo select:focus, .campo textarea:focus, .casilla input:focus { outline: 3px solid rgba(226,177,60,.55); outline-offset: 1px; border-color: var(--oro-osc); }
.casilla { display: flex; gap: 10px; align-items: flex-start; font-size: .9rem; color: #3e4943; margin-bottom: 22px; }
.casilla input { width: 20px; height: 20px; margin-top: 2px; accent-color: var(--verde); flex: none; }
.form-oblig { font-size: .8rem; color: var(--gris); margin: 12px 0 0; }
.form-error { background: #fbe9e7; color: #8a2a17; border-radius: 10px; padding: 12px 16px; font-weight: 600; }
.form-ok { text-align: center; padding: 30px 10px; }
.form-ok .ico { width: 64px; height: 64px; color: var(--verde); margin: 0 auto 14px; }
.form-ok h3 { font-size: 1.5rem; color: var(--verde-osc); margin-bottom: 10px; }
.trampa { position: absolute; left: -9999px; }
.rgpd { margin-top: 24px; font-size: .82rem; color: #4d5852; border-top: 1px solid var(--linea); padding-top: 16px; }
.rgpd summary { cursor: pointer; font-weight: 700; color: var(--verde-osc); }
.rgpd dl { display: grid; grid-template-columns: max-content 1fr; gap: 8px 14px; margin: 14px 0 0; }
.rgpd dt { font-weight: 700; }
.rgpd dd { margin: 0; }

/* pied de page */
.pie { background: var(--verde-osc); color: #cbd8d1; font-size: .93rem; }
.pie-in { display: grid; grid-template-columns: 1.5fr 1fr 1fr 1.2fr; gap: 40px; padding: 70px 0 50px; }
.pie-marca img { width: 170px; background: #fbf8ef; border-radius: 12px; padding: 10px 14px; margin-bottom: 18px; }
.pie h2 { font-size: .85rem; text-transform: uppercase; letter-spacing: .12em; color: var(--oro); margin-bottom: 16px; }
.pie ul { list-style: none; margin: 0; padding: 0; display: grid; gap: 9px; }
.pie a { color: #fff; text-decoration: none; }
.pie a:hover { text-decoration: underline; }
.pie address { font-style: normal; line-height: 1.8; }
.pie-legal { border-top: 1px solid rgba(255,255,255,.12); font-size: .82rem; }
.pie-legal-in { display: flex; flex-wrap: wrap; justify-content: space-between; gap: 12px; padding: 20px 0; }
.pie-legal nav { display: flex; flex-wrap: wrap; gap: 20px; }

/* pages légales */
.legal { padding: 60px 0 90px; background: var(--crema); }
.legal-in { max-width: 860px; background: #fff; border-radius: 20px; padding: 48px 56px; border: 1px solid var(--linea); }
.legal h1 { font-size: clamp(1.8rem, 1.3rem + 1.5vw, 2.4rem); color: var(--verde-osc); margin: 6px 0 28px; }
.legal h2 { font-size: 1.2rem; color: var(--verde-osc); margin: 32px 0 12px; }
.legal p, .legal li { color: #34403a; }
.legal table { border-collapse: collapse; width: 100%; margin: 10px 0 18px; font-size: .95rem; }
.legal th, .legal td { text-align: left; border: 1px solid var(--linea); padding: 10px 12px; vertical-align: top; }
.legal th { background: var(--crema); width: 32%; }
.miga { font-size: .85rem; color: var(--gris); }
.miga a { color: var(--gris); }
.legal-fecha { margin-top: 30px; font-size: .85rem; color: var(--gris); }

/* bandeau cookies */
.cookies { position: fixed; left: 0; right: 0; bottom: 0; z-index: 80; background: var(--verde-osc); color: #e3ece7; padding: 14px max(20px, calc((100% - 1200px) / 2)); box-shadow: 0 -8px 30px rgba(0,0,0,.18); display: flex; align-items: center; gap: 24px; font-size: .9rem; border-top: 3px solid var(--oro); }
.cookies[hidden] { display: none !important; }
.cookies p { margin: 0; }
.cookies a { color: var(--oro); }
.cookies .btn { flex: none; padding: 10px 22px; }

/* tablette et téléphone */
@media (max-width: 1100px) {
  .menu-btn { display: block; }
  .menu { position: absolute; top: 100%; left: 0; right: 0; flex-direction: column; align-items: stretch; background: #fff; padding: 12px 20px 24px; box-shadow: 0 20px 30px rgba(0,0,0,.08); display: none; max-height: calc(100vh - 90px); overflow: auto; }
  .menu.abierto { display: flex; }
  .menu a:not(.btn) { padding: 14px 6px; border-bottom: 1px solid var(--linea); border-radius: 0; }
  .menu-cta { margin: 16px 0 0; }
  .area-movil { display: inline-flex; justify-content: center; margin-top: 12px; padding: 12px 16px; }
  .cabecera.abierto .menu-btn span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
  .cabecera.abierto .menu-btn span:nth-child(2) { opacity: 0; }
  .cabecera.abierto .menu-btn span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }
  .ventajas-in { grid-template-columns: 1fr 1fr; }
  .ventaja:nth-child(2) { border-right: 0; }
  .ventaja:nth-child(-n+2) { border-bottom: 1px solid var(--linea); }
  .pasos { grid-template-columns: repeat(2, 1fr); }
  .actores-lista { grid-template-columns: 1fr 1fr; }
  .pie-in { grid-template-columns: 1fr 1fr; }
}
@media (max-width: 860px) {
  .barra-txt, .barra-sep { display: none; }
  .barra-sup .area span { display: none; }
  .cae, .sector, .porque, .contacto-in { grid-template-columns: 1fr; gap: 36px; }
  .sector-inv .sector-img { order: 0; }
  .sector { margin-bottom: 70px; }
  .seccion { padding: 72px 0; }
  .portada-in { padding: 70px 0 130px; }
  .legal-in { padding: 32px 24px; }
}
@media (max-width: 600px) {
  body { font-size: 1rem; }
  .contenedor { width: calc(100% - 32px); }
  .cabecera-in { min-height: 72px; }
  .marca img { width: 140px; }
  .ventajas-in, .dominios, .campos, .pasos, .actores-lista, .pie-in { grid-template-columns: 1fr; }
  .ventaja { border-right: 0; border-bottom: 1px solid var(--linea); }
  .ventaja:last-child { border-bottom: 0; }
  .contacto-form { padding: 24px 18px; }
  .rgpd dl { grid-template-columns: 1fr; gap: 2px; }
  .rgpd dd { margin-bottom: 8px; }
  .portada-btns .btn { width: 100%; }
  .cookies { flex-direction: column; align-items: stretch; gap: 12px; padding: 16px; }
}
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } .btn, .menu-btn span { transition: none; } }
