/*
Theme Name: AD3 Impulsar Soluciones
Theme URI: https://ad3impuslarsoluciones.com/
Author: AD3 / Graficon
Description: Tema WordPress limpio para AD3 Impulsar Soluciones, con secciones ADA Naturals, Royal Prestige, Tienda y Últimas entradas. Editable con Gutenberg y compatible con Elementor y WooCommerce.
Version: 3.0.0
Requires at least: 6.6
Tested up to: 7.0
Requires PHP: 7.4
Text Domain: ad3-impulsar
License: GPL-2.0-or-later
*/

:root {
  --ad3-dark-green: #0B3D2E;
  --ad3-light-green: #78B85A;
  --ad3-gold: #C7A246;
  --ad3-cream: #F7F5ED;
  --ad3-surface: #FFFFFF;
  --ad3-text: #1D2A24;
  --ad3-muted: #65756D;
  --ad3-border: #DDE7E1;
  --ad3-shadow: 0 18px 50px rgba(11,61,46,.11);
  --ad3-radius: 22px;
  --ad3-container: 1180px;
  --ad3-primary: var(--ad3-dark-green);
  --ad3-accent: var(--ad3-gold);
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  background: #fff;
  color: var(--ad3-text);
  font-family: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
  font-size: 17px;
  line-height: 1.65;
  -webkit-font-smoothing: antialiased;
}
img { max-width: 100%; height: auto; }
a { color: var(--ad3-dark-green); text-underline-offset: 3px; }
a:hover { color: var(--ad3-gold); }
.ad3-container { width: min(calc(100% - 40px), var(--ad3-container)); margin-inline: auto; }

.screen-reader-text { border: 0; clip: rect(1px,1px,1px,1px); clip-path: inset(50%); height: 1px; margin: -1px; overflow: hidden; padding: 0; position: absolute; width: 1px; }
.screen-reader-text:focus { clip: auto !important; clip-path: none; height: auto; width: auto; z-index: 100000; background:#fff; color:#111; padding:10px; }

/* Header */
.ad3-site-header { position: sticky; top: 0; z-index: 999; background: rgba(11,61,46,.97); border-bottom: 1px solid rgba(255,255,255,.10); backdrop-filter: blur(14px); transition: box-shadow .25s ease; }
.ad3-site-header.is-scrolled { box-shadow: 0 12px 34px rgba(7,42,31,.22); }
.ad3-header-inner { min-height: 82px; display: flex; align-items: center; gap: 24px; }
.ad3-brand { display: flex; align-items: center; min-width: 180px; }
.ad3-brand img, .custom-logo { width: auto; max-height: 58px; }
.ad3-site-title { color: #fff; text-decoration: none; font-size: 1.08rem; line-height: 1.05; font-weight: 850; }
.ad3-menu-toggle { display: none; margin-left: auto; border: 1px solid rgba(255,255,255,.25); background: transparent; color:#fff; border-radius: 12px; padding: 10px 13px; font-weight: 750; }
.ad3-primary-nav { margin-left: auto; }
.ad3-primary-nav ul { list-style: none; display: flex; align-items: center; gap: 3px; margin: 0; padding: 0; }
.ad3-primary-nav li { position: relative; }
.ad3-primary-nav a { display: block; padding: 12px 10px; color: rgba(255,255,255,.9); text-decoration: none; font-size: .93rem; font-weight: 680; border-radius: 10px; transition: .2s ease; }
.ad3-primary-nav a:hover, .ad3-primary-nav .current-menu-item > a, .ad3-primary-nav .current_page_item > a { color: #fff; background: rgba(120,184,90,.20); }
.ad3-primary-nav .sub-menu { display: none; position: absolute; top: calc(100% + 8px); left: 0; min-width: 220px; background: #fff; padding: 10px; border: 1px solid var(--ad3-border); border-radius: 14px; box-shadow: var(--ad3-shadow); }
.ad3-primary-nav li:hover > .sub-menu, .ad3-primary-nav li:focus-within > .sub-menu { display: block; }
.ad3-primary-nav .sub-menu a { color: var(--ad3-text); white-space: nowrap; }
.ad3-primary-nav .sub-menu a:hover { color: var(--ad3-dark-green); background: #F1F7F0; }

/* Hero de páginas */
.ad3-page-hero { position: relative; overflow: hidden; background: radial-gradient(circle at 85% 18%, rgba(199,162,70,.34), transparent 26%), radial-gradient(circle at 70% 110%, rgba(120,184,90,.27), transparent 34%), linear-gradient(135deg, var(--ad3-dark-green), #062B20); color: #fff; padding: clamp(58px,8vw,104px) 0; }
.ad3-page-hero::after { content:""; position:absolute; right:-70px; bottom:-120px; width:320px; height:320px; border:1px solid rgba(255,255,255,.11); border-radius:50%; }
.ad3-page-hero-inner { position: relative; z-index: 1; }
.ad3-kicker { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 14px; color: #EAD89E; font-size: .78rem; font-weight: 850; letter-spacing: .15em; text-transform: uppercase; }
.ad3-kicker::before { content:""; width: 28px; height: 2px; background: var(--ad3-gold); }
.ad3-page-title { max-width: 900px; margin: 0; color: #fff; font-size: clamp(2.35rem,5.5vw,5rem); line-height: .98; letter-spacing: -.045em; font-weight: 870; }

/* Contenido */
.ad3-content-wrap { padding: clamp(42px,6vw,82px) 0 90px; }
.ad3-content { min-width: 0; }
.ad3-content > *:first-child { margin-top: 0; }
.ad3-content h2, .ad3-content h3, .ad3-content h4 { color: var(--ad3-dark-green); line-height: 1.15; letter-spacing: -.025em; }
.ad3-content h2 { font-size: clamp(1.75rem,3.2vw,3rem); margin-top: 1.35em; }
.ad3-content h3 { font-size: clamp(1.28rem,2.2vw,1.8rem); }
.ad3-content p { color: #46584F; }
.ad3-content .wp-block-group.alignfull, .ad3-content .wp-block-cover.alignfull { width: 100vw; margin-left: calc(50% - 50vw); }
.ad3-content .alignwide { width: min(100%, 1180px); margin-left: auto; margin-right: auto; }
.ad3-content .wp-block-image img, .ad3-content .wp-block-gallery img { border-radius: 16px; }
.ad3-elementor-content { width:100%; padding:0; }

/* Gutenberg / secciones iniciales */
.ad3-hero-home { position: relative; overflow: hidden; min-height: 680px; display: flex; flex-direction: column; justify-content: center; padding: clamp(90px,12vw,150px) max(20px,calc((100vw - 1180px)/2)); color:#fff; background: radial-gradient(circle at 82% 18%, rgba(199,162,70,.40), transparent 25%), radial-gradient(circle at 70% 82%, rgba(120,184,90,.25), transparent 30%), linear-gradient(135deg, #0B3D2E 0%, #0D513B 52%, #082E23 100%); }
.ad3-hero-home::after { content:""; position:absolute; inset:0; background: linear-gradient(90deg,rgba(6,35,26,.10),transparent 55%); pointer-events:none; }
.ad3-hero-home > * { position:relative; z-index:1; max-width:900px; margin-left:0 !important; margin-right:0 !important; }
.ad3-hero-home h1 { margin:.15em 0 .35em; color:#fff; font-size:clamp(3rem,7vw,6.5rem) !important; line-height:.94; letter-spacing:-.055em; }
.ad3-hero-home p { color:rgba(255,255,255,.86); max-width:760px; }
.ad3-eyebrow { color:#EBD99D !important; font-weight:850; font-size:.8rem; letter-spacing:.16em; text-transform:uppercase; }
.ad3-section { padding: clamp(58px,7vw,95px) 20px; }
.ad3-section > h2:first-child { margin-top:0; }
.ad3-brand-card, .ad3-shop-category { height:100%; padding: clamp(30px,4vw,50px); border-radius:var(--ad3-radius); border:1px solid var(--ad3-border); box-shadow:0 12px 35px rgba(11,61,46,.07); }
.ad3-brand-card--ada, .ad3-shop-category--ada { background: linear-gradient(145deg,#F4F9F1,#E9F4E4); border-color:#CFE1C7; }
.ad3-brand-card--ada h3, .ad3-shop-category--ada h3 { color:var(--ad3-dark-green); }
.ad3-brand-card--royal, .ad3-shop-category--royal { background: linear-gradient(145deg,#173E31,#0B3D2E); border-color:rgba(199,162,70,.34); color:#fff; }
.ad3-brand-card--royal h3, .ad3-brand-card--royal p, .ad3-shop-category--royal h3, .ad3-shop-category--royal p { color:#fff; }
.ad3-store-band { padding: clamp(60px,8vw,100px) 20px; background: linear-gradient(120deg,var(--ad3-gold),#E0C36E); color:#17352B; }
.ad3-store-band h2 { margin-top:0; color:var(--ad3-dark-green); font-size:clamp(2.2rem,4vw,4.2rem); }
.ad3-cta-band { padding: clamp(60px,8vw,100px) 20px; background: linear-gradient(135deg,var(--ad3-dark-green),#082F24); color:#fff; }
.ad3-cta-band h2, .ad3-cta-band p { color:#fff; }
.ad3-inner-intro { padding: clamp(42px,6vw,75px) 28px; margin-bottom: clamp(36px,5vw,65px); border-radius:var(--ad3-radius); }
.ad3-intro-ada { background:linear-gradient(135deg,#EFF8EA,#DDEFD3); border:1px solid #CBE1C1; }
.ad3-intro-royal { background:linear-gradient(135deg,#123F30,#082F24); border:1px solid rgba(199,162,70,.34); color:#fff; }
.ad3-intro-royal h2, .ad3-intro-royal p { color:#fff; }
.ad3-feature-grid { margin:0 0 10px; }
.ad3-feature-card { height:100%; padding:28px; background:#fff; border:1px solid var(--ad3-border); border-top:4px solid var(--ad3-light-green); border-radius:18px; box-shadow:0 12px 28px rgba(11,61,46,.06); }
.ad3-feature-card h3 { margin-top:0; }
.ad3-form-placeholder { padding:32px; background:var(--ad3-cream); border:1px dashed #C9D5CE; border-radius:18px; }

/* Entradas */
.wp-block-post-template { gap:26px !important; }
.ad3-post-card { height:100%; overflow:hidden; padding:0 0 24px; background:#fff; border:1px solid var(--ad3-border); border-radius:18px; box-shadow:0 10px 30px rgba(11,61,46,.07); }
.ad3-post-card .wp-block-post-featured-image { margin:0 0 18px; }
.ad3-post-card .wp-block-post-featured-image img { border-radius:0; }
.ad3-post-card > :not(.wp-block-post-featured-image) { margin-left:22px; margin-right:22px; }
.ad3-post-card .wp-block-post-date { color:var(--ad3-gold); font-size:.78rem; font-weight:800; text-transform:uppercase; letter-spacing:.08em; }
.ad3-post-card .wp-block-post-title a { color:var(--ad3-dark-green); text-decoration:none; }

/* Botones */
.wp-block-button__link, .wp-element-button, button, input[type="submit"], .woocommerce a.button, .woocommerce button.button, .woocommerce input.button { border:0; border-radius:999px; padding:.85em 1.45em; background:var(--ad3-dark-green); color:#fff; font-weight:780; text-decoration:none; transition:transform .2s ease, box-shadow .2s ease, background .2s ease; }
.wp-block-button__link:hover, .wp-element-button:hover, button:hover, input[type="submit"]:hover, .woocommerce a.button:hover, .woocommerce button.button:hover { color:#fff; background:#0E4D39; transform:translateY(-1px); box-shadow:0 10px 24px rgba(11,61,46,.18); }
.wp-block-button.is-style-outline .wp-block-button__link { background:transparent; border:2px solid currentColor; color:var(--ad3-dark-green); }
.ad3-hero-home .wp-block-button.is-style-outline .wp-block-button__link, .ad3-cta-band .wp-block-button.is-style-outline .wp-block-button__link { color:#fff; }
.ad3-store-band .wp-block-button__link { background:var(--ad3-dark-green); }
.ad3-brand-card--royal .wp-block-button__link, .ad3-shop-category--royal .wp-block-button__link { background:var(--ad3-gold); color:#17352B; }

/* Formularios */
.ad3-content input[type="text"], .ad3-content input[type="email"], .ad3-content input[type="tel"], .ad3-content input[type="number"], .ad3-content input[type="url"], .ad3-content select, .ad3-content textarea, .woocommerce form .form-row input.input-text, .woocommerce form .form-row textarea { width:100%; border:1px solid #D6E0DA; border-radius:12px; background:#fff; color:var(--ad3-text); padding:13px 14px; outline:none; transition:border .2s, box-shadow .2s; }
.ad3-content input:focus, .ad3-content select:focus, .ad3-content textarea:focus { border-color:var(--ad3-light-green); box-shadow:0 0 0 4px rgba(120,184,90,.16); }

/* WooCommerce */
.woocommerce ul.products { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:24px; margin:0; }
.woocommerce ul.products::before, .woocommerce ul.products::after { display:none; }
.woocommerce ul.products li.product { width:auto !important; margin:0 !important; float:none !important; background:#fff; border:1px solid var(--ad3-border); border-radius:18px; padding:14px 14px 20px; box-shadow:0 10px 28px rgba(11,61,46,.06); transition:transform .22s ease, box-shadow .22s ease; }
.woocommerce ul.products li.product:hover { transform:translateY(-4px); box-shadow:var(--ad3-shadow); }
.woocommerce ul.products li.product a img { margin-bottom:14px; border-radius:13px; aspect-ratio:1/1; object-fit:cover; }
.woocommerce ul.products li.product .woocommerce-loop-product__title { color:var(--ad3-dark-green); font-size:1.04rem; line-height:1.3; }
.woocommerce ul.products li.product .price { color:var(--ad3-dark-green); font-size:1.02rem; font-weight:850; }
.woocommerce span.onsale { min-width:52px; min-height:52px; display:grid; place-items:center; background:var(--ad3-light-green); color:#fff; }
.woocommerce div.product div.images img { border-radius:18px; }
.woocommerce-message, .woocommerce-info { border-top-color:var(--ad3-gold); border-radius:12px; }
.woocommerce-message::before, .woocommerce-info::before { color:var(--ad3-gold); }

/* Footer */
.ad3-site-footer { margin-top:0; background:#062B20; color:#C8D6D0; }
.ad3-footer-main { display:grid; grid-template-columns:minmax(240px,1.1fr) 2fr; gap:50px; padding:58px 0 42px; }
.ad3-footer-brand { color:#fff; }
.ad3-footer-brand img { max-height:62px; width:auto; margin-bottom:15px; }
.ad3-footer-brand strong { display:block; color:#fff; font-size:1.1rem; }
.ad3-footer-brand a { color:#E8F0EC; }
.ad3-footer-nav ul { list-style:none; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:9px 20px; padding:0; margin:0; }
.ad3-footer-nav a { color:#D7E3DE; text-decoration:none; }
.ad3-footer-nav a:hover { color:#E9D89A; }
.ad3-footer-bottom { border-top:1px solid rgba(255,255,255,.10); padding:18px 0; font-size:.86rem; color:#94AAA1; }
.ad3-whatsapp { position:fixed; right:22px; bottom:22px; z-index:998; display:inline-flex; align-items:center; gap:8px; padding:12px 16px; border-radius:999px; background:#25D366; color:#fff; text-decoration:none; font-weight:800; box-shadow:0 12px 30px rgba(0,0,0,.16); }
.ad3-whatsapp:hover { color:#fff; transform:translateY(-2px); }

/* Single, archives, search */
.ad3-entry-list { display:grid; gap:26px; }
.ad3-empty { text-align:center; padding:90px 0; }
.ad3-empty h1 { font-size:clamp(2.5rem,7vw,5.5rem); margin:0 0 15px; }

@media (max-width: 1040px) {
  .ad3-primary-nav a { padding:10px 7px; font-size:.88rem; }
  .woocommerce ul.products { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media (max-width: 900px) {
  .ad3-header-inner { min-height:72px; }
  .ad3-menu-toggle { display:inline-flex; }
  .ad3-primary-nav { position:absolute; left:20px; right:20px; top:calc(100% + 8px); margin:0; padding:10px; border:1px solid var(--ad3-border); border-radius:16px; background:#fff; box-shadow:var(--ad3-shadow); display:none; }
  .ad3-primary-nav.is-open { display:block; }
  .ad3-primary-nav ul { display:block; }
  .ad3-primary-nav a { color:var(--ad3-text); padding:12px; }
  .ad3-primary-nav .sub-menu { display:block; position:static; min-width:0; box-shadow:none; border:0; margin:0 0 0 14px; padding:0; }
  .woocommerce ul.products { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .ad3-footer-main { grid-template-columns:1fr; }
  .ad3-hero-home { min-height:600px; }
}
@media (max-width: 640px) {
  body { font-size:16px; }
  .ad3-container { width:min(calc(100% - 28px),var(--ad3-container)); }
  .ad3-site-title { font-size:.95rem; }
  .ad3-page-hero { padding:54px 0; }
  .ad3-hero-home { min-height:560px; padding-left:20px; padding-right:20px; }
  .ad3-hero-home h1 { font-size:clamp(2.6rem,14vw,4.6rem) !important; }
  .woocommerce ul.products { grid-template-columns:1fr; }
  .ad3-footer-nav ul { grid-template-columns:1fr 1fr; }
  .ad3-whatsapp span { display:none; }
  .ad3-whatsapp { width:50px; height:50px; justify-content:center; padding:0; }
}
