/* ==========================================================
   IPC TOOLS — Child Theme · main.css
   Variables de marca + estilos globales (header, footer, etc.)
   ========================================================== */

:root{
  --ipc-navy:        #0A1F44;
  --ipc-navy-2:      #102756;
  --ipc-navy-3:      #1A3B7C;
  --ipc-red:         #E63946;
  --ipc-red-2:       #DC2638;
  --ipc-green:       #10B981;
  --ipc-gold:        #F4A93C;
  --ipc-bg:          #F7F8FB;
  --ipc-bg-2:        #FFFFFF;
  --ipc-text:        #0B1320;
  --ipc-text-2:      #4A5568;
  --ipc-muted:       #8A95A8;
  --ipc-border:      #E5E9F0;
  --ipc-border-2:    #CFD6E1;
  --ipc-radius:      14px;
  --ipc-radius-sm:   10px;
  --ipc-shadow:      0 6px 20px rgba(10, 31, 68, .08);
  --ipc-shadow-lg:   0 18px 60px rgba(10, 31, 68, .14);
  --ipc-font:        'Inter', system-ui, -apple-system, 'Segoe UI', sans-serif;
  --ipc-ease:        cubic-bezier(.2,.7,.2,1);
}

html, body{ font-family: var(--ipc-font); color: var(--ipc-text); background: var(--ipc-bg); }
body{ -webkit-font-smoothing: antialiased; }
*, *::before, *::after{ box-sizing: border-box; }
img{ max-width: 100%; height: auto; }

a{ color: var(--ipc-navy); text-decoration: none; transition: color .2s var(--ipc-ease); }
a:hover{ color: var(--ipc-red); }

.ipct-container{ width: 100%; max-width: 1280px; margin: 0 auto; padding: 0 24px; }

/* ===== Botones globales ===== */
.ipct-btn, .button, .wp-element-button,
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button{
  display: inline-flex; align-items: center; justify-content: center; gap: 8px;
  padding: 12px 24px; border-radius: var(--ipc-radius-sm);
  font-family: var(--ipc-font); font-weight: 700; font-size: 14px; text-transform: uppercase; letter-spacing: .02em;
  border: 0; cursor: pointer; transition: all .25s var(--ipc-ease);
  background: var(--ipc-navy); color: #fff; text-decoration: none;
  position: relative; overflow: hidden;
}
.ipct-btn:hover, .button:hover,
.woocommerce a.button:hover, .woocommerce button.button:hover{
  background: var(--ipc-navy-3); color: #fff; transform: translateY(-1px); box-shadow: var(--ipc-shadow);
}
.ipct-btn--red, .woocommerce a.button.alt, .woocommerce button.button.alt,
.woocommerce-page #respond input#submit.alt{ background: var(--ipc-red); }
.ipct-btn--red:hover, .woocommerce a.button.alt:hover,
.woocommerce button.button.alt:hover{ background: var(--ipc-red-2); }
.ipct-btn--ghost{ background: transparent; color: var(--ipc-navy); border: 2px solid var(--ipc-border-2); }
.ipct-btn--ghost:hover{ background: var(--ipc-navy); color: #fff; border-color: var(--ipc-navy); }

/* Magnetic effect (JS-driven) */
[data-magnetic]{ transition: transform .25s var(--ipc-ease); }

/* ===== Scroll progress bar ===== */
.ipct-scroll-progress{
  position: fixed; top: 0; left: 0; right: 0; height: 3px; z-index: 200;
  background: linear-gradient(90deg, var(--ipc-red), var(--ipc-gold));
  transform-origin: 0 50%; transform: scaleX(0);
  transition: transform .15s linear;
  pointer-events: none;
}

/* ===== Header IPC ===== */
.ipct-header{
  position: sticky; top: 0; z-index: 100;
  background: var(--ipc-bg-2);
  border-bottom: 1px solid var(--ipc-border);
  backdrop-filter: blur(12px);
  -webkit-backdrop-filter: blur(12px);
  transition: padding .25s var(--ipc-ease);
}
.ipct-header.is-scrolled{ box-shadow: var(--ipc-shadow); }
.ipct-header__top{
  background: linear-gradient(90deg, var(--ipc-navy), var(--ipc-navy-3));
  color: #fff; font-size: 13px;
}
.ipct-header__top-inner{
  display: flex; justify-content: space-between; align-items: center; padding: 8px 0;
  gap: 12px; flex-wrap: wrap;
}
.ipct-header__top a{ color: #fff; opacity: .9; }
.ipct-header__top a:hover{ opacity: 1; }
.ipct-header__main{ display: flex; align-items: center; gap: 32px; padding: 16px 0; }
.ipct-header__logo img{ height: 48px; width: auto; display: block; }
.ipct-header__search{ flex: 1; display: flex; align-items: center; gap: 0;
  background: var(--ipc-bg); border-radius: var(--ipc-radius); padding: 4px 6px 4px 20px;
  transition: box-shadow .2s, background .2s;
}
.ipct-header__search:focus-within{ background: #fff; box-shadow: 0 0 0 2px var(--ipc-navy); }
.ipct-header__search input{
  flex: 1; border: 0; background: transparent; padding: 12px 0; font: 500 14px var(--ipc-font);
  color: var(--ipc-text); outline: none;
}
.ipct-header__search input::placeholder{ color: var(--ipc-muted); }
.ipct-header__search button{
  padding: 10px 18px; background: var(--ipc-navy); color: #fff;
  border: 0; border-radius: 10px; cursor: pointer; font-weight: 700;
}
.ipct-header__actions{ display: flex; align-items: center; gap: 8px; }
.ipct-icon-btn{
  position: relative; width: 44px; height: 44px;
  display: inline-flex; align-items: center; justify-content: center;
  border-radius: 12px; color: var(--ipc-navy); background: transparent;
  border: 1px solid transparent; transition: all .2s var(--ipc-ease);
}
.ipct-icon-btn:hover{ background: var(--ipc-bg); border-color: var(--ipc-border); }
.ipct-icon-btn i{ font-size: 22px; }
.ipct-icon-btn__count{
  position: absolute; top: -2px; right: -2px;
  min-width: 18px; height: 18px; padding: 0 5px;
  background: var(--ipc-red); color: #fff;
  border-radius: 9px; font-size: 11px; font-weight: 700;
  display: inline-flex; align-items: center; justify-content: center;
}
.ipct-menu-toggle{ display: none; }

/* ===== Nav principal ===== */
.ipct-nav{ border-top: 1px solid var(--ipc-border); }
.ipct-nav__list{
  list-style: none; margin: 0; padding: 0;
  display: flex; gap: 4px; align-items: center;
}
.ipct-nav__list > li > a{
  display: block; padding: 14px 16px; font-weight: 700;
  color: var(--ipc-text); text-transform: uppercase; font-size: 13px; letter-spacing: .03em;
  border-bottom: 2px solid transparent;
}
.ipct-nav__list > li > a:hover, .ipct-nav__list > li.current-menu-item > a{
  color: var(--ipc-red); border-color: var(--ipc-red);
}

/* ===== Footer ===== */
.ipct-footer{ background: var(--ipc-navy); color: #DCE3F1; margin-top: 80px; }
.ipct-footer__main{ padding: 64px 0 40px; }
.ipct-footer__cols{ display: grid; grid-template-columns: 1.5fr 1fr 1fr 1fr; gap: 40px; }
.ipct-footer h4{ font-size: 13px; text-transform: uppercase; letter-spacing: .08em; margin: 0 0 16px; color: #fff; }
.ipct-footer ul{ list-style: none; padding: 0; margin: 0; }
.ipct-footer ul li{ margin-bottom: 8px; }
.ipct-footer a{ color: #B7C1D6; font-size: 14px; }
.ipct-footer a:hover{ color: #fff; }
.ipct-footer__about p{ color: #B7C1D6; font-size: 14px; line-height: 1.6; }
.ipct-footer__logo img{ height: 48px; margin-bottom: 16px; filter: brightness(0) invert(1); }
.ipct-footer__bottom{
  border-top: 1px solid rgba(255,255,255,.08); padding: 20px 0;
  display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 12px;
  font-size: 13px; color: #8A95A8;
}
.ipct-footer__legal{ display: flex; gap: 16px; flex-wrap: wrap; }

/* ===== Reveal animations ===== */
.ipct-reveal{ opacity: 0; transform: translateY(20px); transition: opacity .8s var(--ipc-ease), transform .8s var(--ipc-ease); }
.ipct-reveal.is-visible{ opacity: 1; transform: translateY(0); }

/* ===== Breadcrumb ===== */
.ipct-breadcrumb, .woocommerce-breadcrumb{ font-size: 13px; color: var(--ipc-muted); margin: 16px 0; }
.ipct-breadcrumb a, .woocommerce-breadcrumb a{ color: var(--ipc-text-2); }
.ipct-breadcrumb a:hover, .woocommerce-breadcrumb a:hover{ color: var(--ipc-red); }

/* ===== Headings ===== */
h1,h2,h3,h4,h5,h6{ font-family: var(--ipc-font); color: var(--ipc-text); margin-top: 0; }
h1{ font-weight: 900; } h2{ font-weight: 800; } h3, h4{ font-weight: 700; }

/* ===== Section ===== */
.ipct-section{ padding: 64px 0; }
.ipct-section__head{ text-align: center; margin-bottom: 48px; }
.ipct-section__eyebrow{
  display: inline-block; padding: 6px 16px;
  background: rgba(230, 57, 70, .1); color: var(--ipc-red);
  border-radius: 100px; font-size: 12px; font-weight: 800; letter-spacing: .08em;
  text-transform: uppercase; margin-bottom: 16px;
}
.ipct-section__title{ font-size: clamp(28px, 4vw, 44px); font-weight: 900; line-height: 1.1; margin: 0 0 12px; }
.ipct-section__sub{ font-size: 17px; color: var(--ipc-text-2); max-width: 680px; margin: 0 auto; }

/* ===== Trust bar ===== */
.ipct-trust-bar{ background: #fff; padding: 28px 0; border-top: 1px solid var(--ipc-border); border-bottom: 1px solid var(--ipc-border); }
.ipct-trust-bar__row{ display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.ipct-trust-bar__item{ display: flex; align-items: center; gap: 12px; }
.ipct-trust-bar__icon{
  width: 44px; height: 44px; border-radius: 12px;
  background: linear-gradient(135deg, var(--ipc-navy), var(--ipc-navy-3));
  color: #fff; display: flex; align-items: center; justify-content: center;
}
.ipct-trust-bar__icon i{ font-size: 22px; }
.ipct-trust-bar__txt strong{ display: block; font-size: 14px; }
.ipct-trust-bar__txt span{ font-size: 12px; color: var(--ipc-text-2); }

/* ===== WhatsApp floating ===== */
.ipct-wa-fab{
  position: fixed; bottom: 24px; right: 24px; z-index: 60;
  width: 60px; height: 60px; border-radius: 50%;
  background: #25D366; color: #fff;
  display: inline-flex; align-items: center; justify-content: center;
  box-shadow: 0 14px 40px rgba(37,211,102,.4);
  transition: transform .25s var(--ipc-ease);
}
.ipct-wa-fab i{ font-size: 30px; color: #fff; }
.ipct-wa-fab:hover{ transform: scale(1.08); }

/* ===== Activity toast ===== */
.ipct-toast{
  position: fixed; left: 24px; bottom: 24px; z-index: 60;
  background: #fff; padding: 12px 16px 12px 14px; border-radius: 14px;
  display: flex; gap: 12px; align-items: center; max-width: 320px;
  box-shadow: 0 14px 40px rgba(10,31,68,.14); border: 1px solid var(--ipc-border);
  font-size: 13px; transform: translateY(140%); transition: transform .4s var(--ipc-ease);
}
.ipct-toast.is-visible{ transform: translateY(0); }
.ipct-toast__icon{
  width: 36px; height: 36px; border-radius: 10px;
  background: rgba(16,185,129,.12); color: var(--ipc-green);
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.ipct-toast__title{ font-weight: 700; color: var(--ipc-text); }
.ipct-toast__sub{ color: var(--ipc-muted); font-size: 12px; }

/* ===== Forms (global) ===== */
input[type="text"], input[type="email"], input[type="tel"], input[type="search"],
input[type="password"], input[type="number"], select, textarea,
.woocommerce form .form-row input.input-text,
.woocommerce form .form-row textarea,
.woocommerce form .form-row select{
  font: 500 15px var(--ipc-font);
  padding: 12px 16px;
  border-radius: var(--ipc-radius-sm);
  border: 1px solid var(--ipc-border);
  background: #fff;
  color: var(--ipc-text);
  width: 100%;
  transition: border-color .2s var(--ipc-ease), box-shadow .2s var(--ipc-ease);
}
input:focus, select:focus, textarea:focus{
  outline: none; border-color: var(--ipc-navy);
  box-shadow: 0 0 0 4px rgba(10, 31, 68, .08);
}

/* ===== FAQ accordion (shortcode) ===== */
.ipct-faq{ max-width: 800px; margin: 0 auto; display: grid; gap: 12px; }
.ipct-faq__item{
  background: #fff; border: 1px solid var(--ipc-border);
  border-radius: var(--ipc-radius); overflow: hidden;
}
.ipct-faq__item summary{
  list-style: none; cursor: pointer;
  display: flex; align-items: center; justify-content: space-between; gap: 12px;
  padding: 18px 22px; font-weight: 700; color: var(--ipc-text);
}
.ipct-faq__item summary::-webkit-details-marker{ display: none; }
.ipct-faq__item summary i{ font-size: 22px; color: var(--ipc-red); transition: transform .25s; }
.ipct-faq__item[open] summary i{ transform: rotate(180deg); }
.ipct-faq__body{ padding: 0 22px 22px; color: var(--ipc-text-2); line-height: 1.65; }

/* ===== Contacto shortcode ===== */
.ipct-contact{ display: grid; grid-template-columns: 1fr 1fr; gap: 32px; align-items: start; max-width: 1100px; margin: 0 auto; }
.ipct-contact__cards{ display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ipct-contact__card{
  background: #fff; border: 1px solid var(--ipc-border); border-radius: var(--ipc-radius);
  padding: 20px; display: block; transition: all .25s var(--ipc-ease);
}
.ipct-contact__card:hover{ transform: translateY(-3px); box-shadow: var(--ipc-shadow); border-color: var(--ipc-navy); }
.ipct-contact__icon{
  width: 48px; height: 48px; border-radius: 12px;
  display: inline-flex; align-items: center; justify-content: center;
  color: #fff; margin-bottom: 14px;
}
.ipct-contact__icon i{ font-size: 24px; color: #fff; }
.ipct-contact__card h3{ font-size: 16px; margin: 0 0 4px; color: var(--ipc-text); }
.ipct-contact__card p{ font-size: 14px; color: var(--ipc-text-2); margin: 0 0 10px; }
.ipct-contact__cta{ font-size: 13px; color: var(--ipc-red); font-weight: 700; text-transform: uppercase; letter-spacing: .04em; }
.ipct-contact__form-wrap{
  background: #fff; border: 1px solid var(--ipc-border); border-radius: var(--ipc-radius); padding: 28px;
}
.ipct-contact__form-wrap h3{ font-size: 22px; margin: 0 0 6px; }
.ipct-contact__sub{ color: var(--ipc-text-2); margin: 0 0 20px; font-size: 14px; }
.ipct-contact__form{ display: flex; flex-direction: column; gap: 12px; }
.ipct-form-row{ display: grid; grid-template-columns: 1fr 1fr; gap: 12px; }
.ipct-contact__form button{ align-self: flex-start; margin-top: 4px; }

@media (max-width: 900px){
  .ipct-contact{ grid-template-columns: 1fr; }
  .ipct-form-row{ grid-template-columns: 1fr; }
}

/* ===== Account dashboard cards ===== */
.ipct-account-welcome{ margin-bottom: 24px; }
.ipct-account-welcome h2{ font-size: 24px; margin: 0 0 4px; }
.ipct-account-welcome p{ color: var(--ipc-text-2); margin: 0; }
.ipct-account-stats{
  display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin-bottom: 32px;
}
.ipct-account-stat{
  background: linear-gradient(135deg, var(--ipc-bg), #fff);
  border: 1px solid var(--ipc-border); border-radius: var(--ipc-radius);
  padding: 20px; display: flex; gap: 14px; align-items: center;
}
.ipct-account-stat__icon{
  width: 44px; height: 44px; border-radius: 12px;
  background: linear-gradient(135deg, var(--ipc-navy), var(--ipc-navy-3)); color: #fff;
  display: flex; align-items: center; justify-content: center; flex-shrink: 0;
}
.ipct-account-stat__icon i{ font-size: 22px; }
.ipct-account-stat strong{ display: block; font-size: 18px; font-weight: 800; color: var(--ipc-navy); }
.ipct-account-stat span{ font-size: 12px; color: var(--ipc-muted); text-transform: uppercase; letter-spacing: .04em; }

@media (max-width: 700px){
  .ipct-account-stats{ grid-template-columns: 1fr; }
}

/* ===== Mobile menu / off-canvas ===== */
@media (max-width: 900px){
  .ipct-header__main{ flex-wrap: wrap; gap: 12px; }
  .ipct-header__search{ order: 3; width: 100%; }
  .ipct-menu-toggle{ display: inline-flex; }
  .ipct-nav{ position: fixed; inset: 0 0 0 auto; width: 86%; max-width: 360px; background: #fff; transform: translateX(100%); transition: transform .35s var(--ipc-ease); z-index: 200; padding: 24px; overflow-y: auto; box-shadow: -20px 0 60px rgba(0,0,0,.18); }
  .ipct-nav.is-open{ transform: translateX(0); }
  .ipct-nav__list{ flex-direction: column; gap: 0; align-items: stretch; }
  .ipct-nav__list > li > a{ padding: 16px 4px; border-bottom: 1px solid var(--ipc-border); }
  .ipct-nav-backdrop{ position: fixed; inset: 0; background: rgba(10,31,68,.5); opacity: 0; pointer-events: none; transition: opacity .25s; z-index: 199; }
  .ipct-nav-backdrop.is-visible{ opacity: 1; pointer-events: auto; }
}

@media (max-width: 1024px){
  .ipct-footer__cols{ grid-template-columns: 1fr 1fr; }
  .ipct-trust-bar__row{ grid-template-columns: 1fr 1fr; gap: 20px; }
}
@media (max-width: 600px){
  .ipct-footer__cols{ grid-template-columns: 1fr; }
  .ipct-trust-bar__row{ grid-template-columns: 1fr; }
  .ipct-section{ padding: 48px 0; }
  .ipct-toast{ left: 12px; right: 12px; max-width: none; }
}

/* ===== Blog (novedades) cards ===== */
.ipct-blog-grid{ display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.ipct-blog-card{ background: #fff; border: 1px solid var(--ipc-border); border-radius: var(--ipc-radius); overflow: hidden; transition: all .25s var(--ipc-ease); display: flex; flex-direction: column; }
.ipct-blog-card:hover{ transform: translateY(-3px); box-shadow: var(--ipc-shadow); border-color: var(--ipc-navy); }
.ipct-blog-card__media{ display: block; aspect-ratio: 16/9; overflow: hidden; background: var(--ipc-bg); }
.ipct-blog-card__media img{ width: 100%; height: 100%; object-fit: cover; transition: transform .4s var(--ipc-ease); }
.ipct-blog-card:hover .ipct-blog-card__media img{ transform: scale(1.05); }
.ipct-blog-card__body{ padding: 20px; flex: 1; display: flex; flex-direction: column; }
.ipct-blog-card__cat{ display: inline-block; padding: 3px 10px; background: rgba(230,57,70,.1); color: var(--ipc-red); border-radius: 100px; font-size: 11px; font-weight: 800; text-transform: uppercase; letter-spacing: .05em; margin-bottom: 12px; }
.ipct-blog-card__title{ margin: 0 0 8px; font-size: 18px; line-height: 1.3; }
.ipct-blog-card__title a{ color: var(--ipc-text); }
.ipct-blog-card__excerpt{ color: var(--ipc-text-2); font-size: 14px; line-height: 1.55; margin: 0 0 12px; flex: 1; }
.ipct-blog-card__meta{ display: flex; justify-content: space-between; font-size: 12px; color: var(--ipc-muted); }
.ipct-blog-card__meta a{ color: var(--ipc-red); font-weight: 700; }

.ipct-blog-featured{
  display: grid; grid-template-columns: 1.4fr 1fr; gap: 24px; margin-bottom: 32px; align-items: stretch;
}
.ipct-blog-featured > .ipct-blog-card:first-child .ipct-blog-card__media{ aspect-ratio: 4/3; }
.ipct-blog-featured > .ipct-blog-card:first-child .ipct-blog-card__title{ font-size: 26px; }
.ipct-blog-featured__side{ display: grid; gap: 16px; }

@media (max-width: 1024px){
  .ipct-blog-grid{ grid-template-columns: 1fr 1fr; }
  .ipct-blog-featured{ grid-template-columns: 1fr; }
}
@media (max-width: 600px){
  .ipct-blog-grid{ grid-template-columns: 1fr; }
}
