/*
 Theme Name:   PROFASA Child
 Theme URI:    https://profasa.itcio.mx
 Description:  Tema hijo personalizado para PROFASA Farmacos Ganaderos
 Author:       WEB72H-DEV
 Template:     twentytwentyfive
 Version:      1.0.0
 License:      GPL-2.0-or-later
 Text Domain:  profasa-child
*/

/* ===== RESET & BASE ===== */
*, *::before, *::after { box-sizing:border-box; margin:0; padding:0; }
html { scroll-behavior:smooth; font-size:16px; }
body { font-family:var(--font-body); color:var(--text-primary); background:var(--surface-page); line-height:1.65; -webkit-font-smoothing:antialiased; overflow-x:hidden; }
img { max-width:100%; height:auto; display:block; }
a { color:var(--action-primary); text-decoration:none; transition:color .2s; }
a:hover, a:focus { color:var(--action-primary-hover); }
a:focus-visible { outline:var(--focus-ring); border-radius:4px; }
h1,h2,h3,h4 { font-family:var(--font-display); line-height:1.15; color:var(--color-navy); }
h1 { font-size:clamp(2rem,5vw,3.25rem); font-weight:800; letter-spacing:-0.02em; }
h2 { font-size:clamp(1.5rem,4vw,2.25rem); font-weight:700; }
h3 { font-size:clamp(1.15rem,2.5vw,1.5rem); font-weight:600; }
.container { max-width:var(--container-max); margin:0 auto; padding:0 1.25rem; }
@media(min-width:768px){ .container{padding:0 2rem;} }

/* ===== HEADER ===== */
.site-header { background:var(--surface-page); border-bottom:1px solid var(--border-subtle); position:sticky; top:0; z-index:100; }
.header-inner { display:flex; align-items:center; justify-content:space-between; height:4.5rem; max-width:var(--container-max); margin:0 auto; padding:0 1.25rem; }
@media(min-width:768px){ .header-inner{padding:0 2rem;} }
.site-branding { display:flex; align-items:center; gap:0.75rem; font-family:var(--font-display); font-weight:700; font-size:1.35rem; color:var(--color-navy); text-decoration:none; }
.site-branding .brand-icon { width:2.5rem; height:2.5rem; background:var(--color-navy); border-radius:var(--radius-sm); display:flex; align-items:center; justify-content:center; color:var(--color-white); font-size:1.1rem; font-weight:800; flex-shrink:0; }
.site-branding span { line-height:1.2; }
.site-branding small { display:block; font-family:var(--font-body); font-size:0.65rem; font-weight:400; color:var(--text-secondary); }
.main-nav { display:none; }
@media(min-width:1024px){
  .main-nav { display:flex; align-items:center; gap:0.25rem; }
  .main-nav a { font-size:0.875rem; font-weight:500; color:var(--text-primary); padding:0.5rem 0.85rem; border-radius:var(--radius-sm); transition:background .2s,color .2s; white-space:nowrap; }
  .main-nav a:hover,.main-nav a:focus { background:var(--surface-subtle); color:var(--color-navy); }
}
.header-actions { display:flex; align-items:center; gap:0.75rem; }
.btn-whatsapp { display:inline-flex; align-items:center; gap:0.5rem; background:var(--color-whatsapp); color:#fff; padding:0.6rem 1rem; border-radius:var(--radius-pill); font-size:0.85rem; font-weight:600; border:none; cursor:pointer; transition:filter .2s; white-space:nowrap; text-decoration:none; }
.btn-whatsapp:hover,.btn-whatsapp:focus { filter:brightness(1.1); color:#fff; }
.hamburger { display:flex; flex-direction:column; gap:5px; background:none; border:none; cursor:pointer; padding:0.5rem; width:2.75rem; height:2.75rem; align-items:center; justify-content:center; border-radius:var(--radius-sm); }
.hamburger span { display:block; width:1.5rem; height:2px; background:var(--color-navy); transition:.2s; }
@media(min-width:1024px){ .hamburger{display:none;} }
.mobile-menu { position:fixed; top:4.5rem; left:0; right:0; bottom:0; background:var(--surface-page); z-index:99; display:flex; flex-direction:column; padding:2rem 1.25rem; transform:translateX(-100%); transition:transform .3s; overflow-y:auto; }
.mobile-menu.open { transform:translateX(0); }
.mobile-menu a { display:block; padding:1rem 0; border-bottom:1px solid var(--border-subtle); font-size:1.1rem; font-weight:500; color:var(--text-primary); text-decoration:none; }

/* ===== HERO ===== */
.hero { position:relative; background:var(--color-navy); color:var(--text-inverse); overflow:hidden; }
.hero::before { content:''; position:absolute; top:0; right:0; bottom:0; left:0; background:linear-gradient(135deg, var(--color-navy) 0%, #0b4d73 100%); opacity:0.85; }
.hero .container { position:relative; z-index:1; padding-top:4rem; padding-bottom:4rem; }
@media(min-width:768px){ .hero .container{padding-top:6rem; padding-bottom:6rem;} }
.hero h1 { color:var(--text-inverse); max-width:36rem; margin-bottom:1.25rem; }
.hero p { font-size:1.1rem; color:rgba(255,255,255,0.85); max-width:32rem; margin-bottom:2rem; line-height:1.7; }
.hero-ctas { display:flex; flex-wrap:wrap; gap:1rem; }

/* ===== BUTTONS ===== */
.btn { display:inline-flex; align-items:center; gap:0.5rem; padding:0.85rem 1.75rem; border-radius:var(--radius-pill); font-size:0.95rem; font-weight:600; cursor:pointer; transition:transform .2s,filter .2s; border:none; text-decoration:none; }
.btn:active { transform:scale(0.97); }
.btn-primary { background:var(--color-green-deep); color:#fff; }
.btn-primary:hover { filter:brightness(1.1); color:#fff; }
.btn-outline { background:transparent; border:2px solid rgba(255,255,255,0.3); color:var(--text-inverse); }
.btn-outline:hover { background:rgba(255,255,255,0.08); color:#fff; }

/* ===== TRUST BAR ===== */
.trust-bar { background:var(--surface-subtle); padding:1.5rem 0; }
.trust-bar .container { display:grid; grid-template-columns:repeat(2,1fr); gap:1.5rem; }
@media(min-width:768px){ .trust-bar .container{grid-template-columns:repeat(4,1fr);} }
.trust-item { text-align:center; }
.trust-item .icon { font-size:1.75rem; margin-bottom:0.4rem; }
.trust-item strong { display:block; font-size:0.85rem; color:var(--color-navy); }
.trust-item small { font-size:0.75rem; color:var(--text-secondary); }

/* ===== SECTIONS ===== */
.section { padding:3.5rem 0; }
@media(min-width:768px){ .section{padding:5rem 0;} }
.section-header { text-align:center; margin-bottom:3rem; max-width:36rem; margin-left:auto; margin-right:auto; }
.section-header h2 { margin-bottom:0.75rem; }
.section-header p { font-size:1.05rem; color:var(--text-secondary); }
.section-dark { background:var(--color-navy); color:var(--text-inverse); }
.section-dark h2,.section-dark h3 { color:var(--text-inverse); }
.section-dark p { color:rgba(255,255,255,0.82); }
.section-subtle { background:var(--surface-subtle); }

/* ===== CATEGORY GRID ===== */
.cat-grid { display:grid; grid-template-columns:repeat(1,1fr); gap:1.25rem; }
@media(min-width:480px){ .cat-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:1024px){ .cat-grid{grid-template-columns:repeat(3,1fr);} }
.cat-card { display:block; background:var(--surface-page); border:1px solid var(--border-subtle); border-radius:var(--radius-md); padding:2rem 1.5rem; text-align:center; transition:transform .2s,box-shadow .2s; text-decoration:none; position:relative; overflow:hidden; }
.cat-card::after { content:''; position:absolute; bottom:0; left:0; right:0; height:4px; background:var(--color-green-deep); transform:scaleX(0); transform-origin:left; transition:transform .3s; }
.cat-card:hover { transform:translateY(-4px); box-shadow:var(--shadow-card); }
.cat-card:hover::after { transform:scaleX(1); }
.cat-card .cat-icon { font-size:2.5rem; margin-bottom:1rem; }
.cat-card h3 { font-size:1.15rem; margin-bottom:0.5rem; color:var(--color-navy); }
.cat-card p { font-size:0.85rem; color:var(--text-secondary); }

/* ===== SOLUTIONS ===== */
.solutions-grid { display:grid; grid-template-columns:1fr; gap:1.5rem; }
@media(min-width:768px){ .solutions-grid{grid-template-columns:repeat(3,1fr);} }
.solution-card { background:var(--surface-page); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); padding:2rem; text-align:center; transition:box-shadow .2s; }
.solution-card:hover { box-shadow:var(--shadow-card); }
.solution-card .icon { font-size:2.25rem; margin-bottom:1rem; }
.solution-card h3 { margin-bottom:0.75rem; }
.solution-card p { font-size:0.9rem; color:var(--text-secondary); line-height:1.6; }
.solution-card .solution-cta { display:inline-block; margin-top:1.25rem; padding:0.6rem 1.5rem; background:var(--color-navy); color:#fff; border-radius:var(--radius-pill); font-size:0.85rem; font-weight:600; text-decoration:none; }
.solution-card .solution-cta:hover { background:var(--action-primary-hover); color:#fff; }

/* ===== PRODUCT GRID ===== */
.product-grid { display:grid; grid-template-columns:1fr; gap:1.25rem; }
@media(min-width:480px){ .product-grid{grid-template-columns:repeat(2,1fr);} }
@media(min-width:768px){ .product-grid{grid-template-columns:repeat(3,1fr);} }
@media(min-width:1024px){ .product-grid{grid-template-columns:repeat(4,1fr);} }
.product-card { background:var(--surface-page); border:1px solid var(--border-subtle); border-radius:var(--radius-lg); overflow:hidden; transition:box-shadow .2s,transform .2s; position:relative; }
.product-card:hover { box-shadow:var(--shadow-card); transform:translateY(-2px); }
.product-card .product-image { width:100%; aspect-ratio:4/3; background:var(--surface-subtle); display:flex; align-items:center; justify-content:center; font-size:2.5rem; }
.product-card .product-body { padding:1.25rem; }
.product-card .product-cat { font-size:0.7rem; text-transform:uppercase; letter-spacing:0.05em; color:var(--color-green-deep); font-weight:600; }
.product-card h3 { font-size:1rem; margin:0.4rem 0; }
.product-card .product-meta { display:flex; gap:0.4rem; flex-wrap:wrap; margin-bottom:0.75rem; }
.product-card .tag { font-size:0.68rem; padding:0.2rem 0.6rem; border-radius:var(--radius-pill); background:var(--surface-subtle); color:var(--text-secondary); font-weight:500; }
.product-card .tag.cero-retiro { background:#d1fae5; color:#065f46; }
.product-card .product-footer { display:flex; align-items:center; justify-content:space-between; }
.product-card .price { font-weight:700; font-size:1.15rem; color:var(--color-navy); }
.product-card .btn-cart { padding:0.5rem 1rem; background:var(--action-primary); color:#fff; border-radius:var(--radius-pill); font-size:0.8rem; font-weight:600; border:none; cursor:pointer; text-decoration:none; }
.product-card .btn-cart:hover { filter:brightness(1.1); color:#fff; }
.product-badge { position:absolute; top:0.75rem; left:0.75rem; padding:0.25rem 0.75rem; border-radius:var(--radius-pill); font-size:0.7rem; font-weight:700; text-transform:uppercase; z-index:1; }
.product-badge.featured { background:var(--color-amber); color:var(--color-navy); }

/* ===== COVERAGE ===== */
.coverage { background:var(--color-green-deep); color:var(--text-inverse); padding:3rem 0; }
.coverage .container { display:flex; flex-direction:column; align-items:center; text-align:center; gap:2rem; }
@media(min-width:768px){ .coverage .container{flex-direction:row; text-align:left;} }
.coverage h2 { color:var(--text-inverse); font-size:clamp(1.4rem,3vw,1.8rem); }
.coverage p { color:rgba(255,255,255,0.85); font-size:0.95rem; margin-top:0.75rem; }
.coverage .btn-whatsapp { background:var(--color-whatsapp); color:#fff; padding:0.85rem 2rem; border-radius:var(--radius-pill); font-size:1rem; font-weight:600; border:none; cursor:pointer; text-decoration:none; white-space:nowrap; flex-shrink:0; }
.coverage .btn-whatsapp:hover { filter:brightness(1.1); color:#fff; }

/* ===== CTA ===== */
.cta-section { text-align:center; padding:4rem 0; }
.cta-section h2 { margin-bottom:1rem; }
.cta-section p { max-width:30rem; margin:0 auto 2rem; font-size:1.05rem; color:var(--text-secondary); }
.cta-section .btn-group { display:flex; gap:1rem; flex-wrap:wrap; justify-content:center; }

/* ===== FOOTER ===== */
.site-footer { background:var(--color-navy); color:var(--text-inverse); padding:3.5rem 0 1.5rem; font-size:0.9rem; }
.site-footer a { color:rgba(255,255,255,0.7); }
.site-footer a:hover { color:var(--text-inverse); }
.footer-grid { display:grid; grid-template-columns:1fr; gap:2rem; margin-bottom:2.5rem; }
@media(min-width:600px){ .footer-grid{grid-templae-columns:repeat(2,1fr);} }
@media(min-width:960px){ .footer-grid{grid-template-columns:2fr 1fr 1fr;} }
.footer-col h4 { color:var(--text-inverse); font-size:1rem; margin-bottom:1rem; font-family:var(--font-display); }
.footer-col p { color:rgba(255,255,255,0.65); line-height:1.7; }
.footer-col ul { list-style:none; }
.footer-col ul li { margin-bottom:0.6rem; }
.footer-bottom { border-top:1px solid rgba(255,255,255,0.1); padding-top:1.5rem; display:flex; flex-wrap:wrap; gap:1rem; justify-content:space-between; align-items:center; color:rgba(255,255,255,0.4); font-size:0.8rem; }

/* ===== WOOCOMMERCE OVERRIDES ===== */
.wc-product-page .container { padding-top:2rem; padding-bottom:3rem; }
.product-single { display:grid; gap:2.5rem; }
@media(min-width:768px){ .product-single{grid-template-columns:1fr 1fr;} }
.product-gallery { background:var(--surface-subtle); border-radius:var(--radius-lg); aspect-ratio:4/3; display:flex; align-items:center; justify-content:center; font-size:5rem; }
.product-info h1 { font-size:1.75rem; margin-bottom:0.5rem; }
.product-info .sku { font-size:0.8rem; color:var(--text-secondary); margin-bottom:1rem; }
.product-info .price { font-size:1.75rem; font-weight:700; color:var(--color-navy); margin-bottom:1rem; }
.product-info .description { margin-bottom:1.5rem; line-height:1.7; }
.profasa-product-metas { background:var(--surface-subtle); border-radius:var(--radius-md); padding:1.25rem; margin:1.5rem 0; }
.profasa-product-metas p { margin-bottom:0.5rem; font-size:0.9rem; }
.profasa-reg { color:var(--color-red); font-weight:600; }
.profasa-legend { margin-top:1rem; padding:0.75rem 1rem; background:#fef2f2; border-left:4px solid var(--color-red); font-size:0.85rem; color:var(--color-red); border-radius:var(--radius-sm); }
.button { display:inline-flex; align-items:center; gap:0.5rem; padding:0.75rem 1.5rem; border-radius:var(--radius-pill); font-size:0.9rem; font-weight:600; cursor:pointer; transition:filter .2s,transform .2s; text-decoration:none; border:none; }
.button:active { transform:scale(0.97); }
.button--primary { background:var(--action-primary); color:#fff; }
.button--primary:hover { filter:brightness(1.1); color:#fff; }
.button--secondary { background:var(--surface-subtle); color:var(--color-navy); border:1px solid var(--border-subtle); }
.button--whatsapp { background:var(--color-whatsapp); color:#fff; }
.button--whatsapp:hover { filter:brightness(1.1); color:#fff; }

/* ===== SHOP ARCHIVE ===== */
.shop-header { background:var(--color-navy); color:var(--text-inverse); padding:3rem 0; text-align:center; }
.shop-header h1 { color:var(--text-inverse); }
.shop-filters { display:flex; flex-wrap:wrap; gap:0.75rem; padding:1.25rem 0; margin-bottom:1.5rem; border-bottom:1px solid var(--border-subtle); }
.filter-btn { padding:0.5rem 1rem; border:1px solid var(--border-subtle); border-radius:var(--radius-pill); font-size:0.8rem; font-weight:500; cursor:pointer; background:var(--surface-page); transition:background .2s,color .2s; text-decoration:none; color:var(--text-primary); }
.filter-btn:hover,.filter-btn.active { background:var(--color-navy); color:var(--text-inverse); border-color:var(--color-navy); }

/* ===== WHATSAPP FLOATING ===== */
.profasa-whatsapp-float { position:fixed; bottom:1.5rem; right:1.5rem; z-index:1000; width:3.5rem; height:3.5rem; background:var(--color-whatsapp); color:#fff; border-radius:50%; display:flex; align-items:center; justify-content:center; font-size:1.5rem; box-shadow:var(--shadow-float); transition:transform .2s,filter .2s; text-decoration:none; }
.profasa-whatsapp-float:hover { transform:scale(1.1); filter:brightness(1.1); }

/* ===== CHECKOUT SENASICA ===== */
#profasa-senasica-fields { margin-top:2rem; padding:1.5rem; background:#fefce8; border:1px solid #fde68a; border-radius:var(--radius-md); }
#profasa-senasica-fields h3 { font-size:1.05rem; color:var(--color-navy); margin-bottom:1rem; }

/* ===== UTILITY ===== */
.text-center { text-align:center; }
.sr-only { position:absolute; width:1px; height:1px; overflow:hidden; clip:rect(0,0,0,0); white-space:nowrap; }
@media(max-width:1023px){ .desktop-only{display:none;} }

/* ===== CAROUSEL ===== */
.carousel { position:relative; width:100%; overflow:hidden; }
.carousel-track { display:flex; transition:transform .6s ease-in-out; }
.carousel-slide { min-width:100%; flex-shrink:0; }
.carousel-slide img { width:100%; height:auto; display:block; }
.carousel-dots { position:absolute; bottom:1.2rem; left:50%; transform:translateX(-50%); display:flex; gap:0.6rem; z-index:10; }
.carousel-dot { width:12px; height:12px; border-radius:50%; border:2px solid #FFFFFF; background:transparent; cursor:pointer; padding:0; transition:background .3s; }
.carousel-dot.active,.carousel-dot:hover { background:#FFFFFF; }
@media(max-width:768px){ .carousel-dots{bottom:8px;} }

/* ===== DROPDOWN NAV ===== */
.nav-dropdown { position:relative; }
.nav-dropdown-trigger { font-size:0.875rem; font-weight:500; color:var(--text-primary); padding:0.5rem 0.85rem; border-radius:var(--radius-sm); cursor:pointer; white-space:nowrap; display:block; transition:background .2s,color .2s; }
.nav-dropdown-trigger:hover { background:var(--surface-subtle); color:var(--color-navy); }
.nav-dropdown-menu { display:none; position:absolute; top:100%; left:0; background:var(--surface-page); border:1px solid var(--border-subtle); border-radius:var(--radius-md); min-width:14rem; box-shadow:var(--shadow-card); z-index:200; padding:0.5rem 0; }
.nav-dropdown:hover .nav-dropdown-menu { display:block; }
.nav-dropdown-menu a { display:block; padding:0.6rem 1rem; font-size:0.85rem; color:var(--text-primary); transition:background 15s; white-space:nowrap; }
.nav-dropdown-menu a:hover { background:var(--surface-subtle); color:var(--color-navy); }

/* ===== PAGE CONTENT ===== */
.page-content { padding:3rem 0 4rem; }
.page-content h1 { margin-bottom:1.5rem; }
.page-body { font-size:1.05rem; line-height:1.75; }
.page-body p { margin-bottom:1.25rem; }
.page-body h2 { margin:2.5rem 0 1rem; }
.page-body ul,.page-body ol { margin:0 0 1.5rem 1.5rem; }
.page-body li { margin-bottom:0.5rem; }

/* ===== MOBILE MENU SECTIONS ===== */
.mobile-menu-section { display:block; padding:1rem 0 0.5rem; font-size:0.75rem; font-weight:700; text-transform:uppercase; letter-spacing:0.05em; color:var(--text-secondary); border-bottom:none; }
.mobile-menu-sub { padding-left:1.25rem !important; font-size:0.95rem !important; }

/* ===== WOOCOMMERCE ADD TO CART ===== */
.profasa-add-to-cart { margin-top:1.25rem; padding-top:1.25rem; border-top:1px solid var(--border-subtle); }
.profasa-add-to-cart .cart { display:flex; align-items:center; gap:0.75rem; flex-wrap:wrap; }
.profasa-add-to-cart .quantity .qty { width:4rem; height:2.75rem; border:1px solid var(--border-subtle); border-radius:var(--radius-sm); text-align:center; font-size:1rem; font-family:var(--font-body); }
.single_add_to_cart_button { background:var(--color-green-deep) !important; color:#FFFFFF !important; border:none !important; padding:0.75rem 1.75rem !important; border-radius:var(--radius-sm) !important; font-family:var(--font-body) !important; font-size:0.95rem !important; font-weight:600 !important; cursor:pointer !important; transition:background .2s !important; }
.single_add_to_cart_button:hover { background:var(--action-primary-hover) !important; }

/* ===== CART TABLE ===== */
.woocommerce-cart-form .shop_table { width:100%; border-collapse:collapse; margin-bottom:2rem; }
.woocommerce-cart-form .shop_table th { background:var(--surface-subtle); padding:0.75rem; text-align:left; font-size:0.85rem; font-weight:600; color:var(--color-navy); }
.woocommerce-cart-form .shop_table td { padding:0.75rem; border-bottom:1px solid var(--border-subtle); vertical-align:middle; }
.woocommerce-cart-form .product-remove a { color:var(--color-red); font-size:1.25rem; text-decoration:none; }
.woocommerce-cart-form .actions { padding:1rem 0; }
.woocommerce-cart-form .coupon { display:flex; gap:0.5rem; }
.woocommerce-cart-form .coupon .input-text { padding:0.6rem 0.75rem; border:1px solid var(--border-subtle); border-radius:var(--radius-sm); }
.woocommerce-cart-form .button { background:var(--color-navy); color:#FFF; border:none; padding:0.6rem 1.25rem; border-radius:var(--radius-sm); cursor:pointer; font-family:var(--font-body); font-weight:500; }

/* ===== CHECKOUT ===== */
.woocommerce-checkout .col2-set { display:grid; grid-template-columns:1fr 1fr; gap:2rem; margin-bottom:2rem; }
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #order_review_heading { font-size:1.25rem; font-weight:700; margin-bottom:1rem; color:var(--color-navy); }
.woocommerce-checkout .form-row { margin-bottom:1rem; }
.woocommerce-checkout .form-row label { display:block; font-size:0.85rem; font-weight:500; margin-bottom:0.3rem; }
.woocommerce-checkout .form-row .input-text,
.woocommerce-checkout .form-row select { width:100%; padding:0.65rem 0.75rem; border:1px solid var(--border-subtle); border-radius:var(--radius-sm); font-family:var(--font-body); font-size:0.95rem; }
.woocommerce-checkout .button.alt { background:var(--color-green-deep); color:#FFF; border:none; padding:0.85rem 2rem; border-radius:var(--radius-sm); font-size:1.05rem; font-weight:700; cursor:pointer; width:100%; font-family:var(--font-body); }
.woocommerce-checkout .button.alt:hover { background:var(--action-primary-hover); }
.woocommerce-checkout .shop_table { width:100%; border-collapse:collapse; }
.woocommerce-checkout .shop_table th,.woocommerce-checkout .shop_table td { padding:0.5rem 0.75rem; border-bottom:1px solid var(--border-subtle); font-size:0.9rem; }
.woocommerce-checkout .payment_methods { list-style:none; padding:1rem 0; }
.woocommerce-checkout .payment_methods li { padding:0.5rem 0; }
.woocommerce-checkout .payment_box { background:var(--surface-subtle); padding:1rem; border-radius:var(--radius-md); margin-top:0.5rem; font-size:0.9rem; }
#profasa-senasica-fields { margin:1.5rem 0; padding:1rem; background:#fefce8; border:1px solid #fde68a; border-radius:var(--radius-md); }

@media(max-width:767px){
  .woocommerce-checkout .col2-set { grid-template-columns:1fr; }
  .woocommerce-cart-form .coupon { flex-direction:column; }
}
