/*
 Theme Name:   ANPA CEIP Luís Seoane
 Template:     astra
 Version:      1.0.0
*/

@import url('https://fonts.googleapis.com/css2?family=Nunito:wght@400;600;700;800;900&family=Source+Serif+4:ital,wght@0,300;0,400;0,600;1,400&display=swap');

:root {
  --verde:      #2D6A4F;
  --verde-c:    #52B788;
  --verde-p:    #D8F3DC;
  --verde-o:    #1B4332;
  --morado:     #7B5EA7;
  --naranja:    #E07B39;
  --negro:      #1C1C1C;
  --gris:       #4A5568;
  --gris-f:     #F7F9F7;
  --gris-b:     #E2E8E2;
  --blanco:     #FFFFFF;
  --ft:         'Nunito', sans-serif;
  --fb:         'Source Serif 4', serif;
  --r:          12px;
  --rx:         20px;
  --s:          0 4px 20px rgba(45,106,79,.10);
  --sh:         0 10px 36px rgba(45,106,79,.20);
  --tr:         all .28s cubic-bezier(.4,0,.2,1);
}

*,*::before,*::after { box-sizing: border-box }
html { scroll-behavior: smooth }
body { font-family: var(--fb); color: var(--negro); background: var(--blanco); line-height: 1.75; font-size: 17px }
h1,h2,h3,h4,h5,h6 { font-family: var(--ft) !important; font-weight: 800; color: var(--verde-o); line-height: 1.2 }
a { color: var(--verde); text-decoration: none; transition: var(--tr) }
a:hover { color: var(--verde-c) }
img { max-width: 100%; height: auto }
::-webkit-scrollbar { width: 5px }
::-webkit-scrollbar-track { background: var(--verde-p) }
::-webkit-scrollbar-thumb { background: var(--verde); border-radius: 3px }

/* TOPBAR */
.anpa-topbar { background: var(--verde-o); padding: 7px 0; font-family: var(--ft); font-size: .82rem }
.anpa-topbar-inner { max-width: 1100px; margin: 0 auto; padding: 0 32px; display: flex; justify-content: space-between; align-items: center; gap: 16px; flex-wrap: wrap }
.anpa-topbar a { color: rgba(255,255,255,.9) !important; font-weight: 700 }
.anpa-topbar a:hover { color: var(--naranja) !important }
.anpa-topbar-soc { display: flex; gap: 8px }
.anpa-topbar-soc a { width: 26px; height: 26px; background: rgba(255,255,255,.1); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .78rem; border: 1px solid rgba(255,255,255,.15); color: white !important }
.anpa-topbar-soc a:hover { background: var(--verde-c) !important }

/* CABECERA */
.ast-header-wrap,.site-header,#ast-hfb-header { background: var(--blanco) !important; box-shadow: 0 2px 16px rgba(45,106,79,.08) !important; border-bottom: 3px solid var(--verde-p) !important; position: sticky !important; top: 0 !important; z-index: 9999 !important }
.site-branding img,.ast-site-identity img { max-height: 70px !important; width: auto !important }
.site-title a,.ast-site-name { font-family: var(--ft) !important; font-weight: 900 !important; font-size: 1.25rem !important; color: var(--verde-o) !important }
.site-description { font-family: var(--ft) !important; font-size: .76rem !important; color: var(--verde) !important; font-weight: 700; text-transform: uppercase; letter-spacing: 1px }

/* MENÚ */
.main-header-menu .menu-item > a,.ast-nav-menu .menu-item > a { font-family: var(--ft) !important; font-weight: 700 !important; font-size: .88rem !important; color: var(--verde-o) !important; padding: 8px 13px !important; border-radius: var(--r) !important; transition: var(--tr) !important; text-transform: uppercase; letter-spacing: .4px }
.main-header-menu .menu-item > a:hover,.main-header-menu .current-menu-item > a { background: var(--verde-p) !important; color: var(--verde) !important }
.main-header-menu .sub-menu { border: none !important; border-radius: var(--r) !important; box-shadow: var(--sh) !important; padding: 8px !important; background: var(--blanco) !important }
.menu-item-alta > a { background: linear-gradient(135deg,var(--verde),var(--verde-c)) !important; color: white !important; padding: 8px 16px !important; border-radius: 50px !important }
.menu-item-alta > a:hover { background: var(--verde-o) !important }

/* HERO */
.anpa-hero { background: linear-gradient(150deg,var(--verde-o) 0%,var(--verde) 60%,var(--verde-c) 100%); padding: 88px 0 68px; position: relative; overflow: hidden }
.anpa-hero::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 15% 50%,rgba(123,94,167,.18) 0%,transparent 45%), radial-gradient(circle at 85% 15%,rgba(224,123,57,.12) 0%,transparent 40%) }
.anpa-hero::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 56px; background: var(--blanco); clip-path: ellipse(55% 100% at 50% 100%) }
.anpa-hero-inner { position: relative; z-index: 2; max-width: 1100px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 1.2fr 1fr; gap: 60px; align-items: center }
.anpa-hero h1 { font-family: var(--ft) !important; font-size: clamp(1.8rem,5vw,2.9rem) !important; color: white !important; line-height: 1.1 !important; margin-bottom: 18px !important }
.anpa-hero h1 em { color: var(--naranja); font-style: normal }
.anpa-lead { font-size: 1rem; color: rgba(255,255,255,.88); margin-bottom: 28px; font-family: var(--ft) }
.anpa-hero-btns { display: flex; gap: 12px; flex-wrap: wrap }
.anpa-btn { display: inline-flex; align-items: center; gap: 7px; font-family: var(--ft) !important; font-weight: 800 !important; font-size: .9rem; padding: 12px 24px; border-radius: 50px; transition: var(--tr); text-decoration: none !important; cursor: pointer }
.anpa-btn-white { background: var(--blanco); color: var(--verde-o) !important; box-shadow: 0 4px 20px rgba(0,0,0,.15) }
.anpa-btn-white:hover { transform: translateY(-3px); color: var(--verde) !important; box-shadow: 0 8px 28px rgba(0,0,0,.2) }
.anpa-btn-ghost { background: rgba(255,255,255,.13); color: white !important; border: 2px solid rgba(255,255,255,.35); backdrop-filter: blur(8px) }
.anpa-btn-ghost:hover { background: rgba(255,255,255,.23); border-color: white; transform: translateY(-3px) }
.anpa-btn-verde { background: linear-gradient(135deg,var(--verde),var(--verde-c)); color: white !important }
.anpa-btn-verde:hover { background: var(--verde-o) !important; transform: translateY(-2px); box-shadow: var(--s) }
.anpa-hero-stats { display: grid; grid-template-columns: repeat(3,1fr); gap: 10px; margin-top: 40px; padding-top: 26px; border-top: 1px solid rgba(255,255,255,.18) }
.anpa-stat-num { font-family: var(--ft); font-size: 1.9rem; font-weight: 900; color: var(--naranja); line-height: 1 }
.anpa-stat-lbl { font-family: var(--ft); font-size: .72rem; font-weight: 700; color: rgba(255,255,255,.7); text-transform: uppercase; letter-spacing: .4px; margin-top: 3px }
.anpa-hero-card { background: rgba(255,255,255,.12); backdrop-filter: blur(20px); border: 2px solid rgba(255,255,255,.18); border-radius: 26px; padding: 34px; text-align: center; box-shadow: 0 20px 60px rgba(0,0,0,.2) }
.anpa-hero-card img { max-width: 170px; filter: drop-shadow(0 4px 12px rgba(0,0,0,.2)) }
.anpa-hero-card p { font-family: var(--ft) !important; color: rgba(255,255,255,.88) !important; font-weight: 700 !important; font-size: .8rem !important; margin: 13px 0 0 !important; text-transform: uppercase; letter-spacing: 1px }

/* SECCIONES */
.anpa-section { padding: 76px 0 }
.anpa-section-alt { background: var(--gris-f) }
.anpa-container { max-width: 1100px; margin: 0 auto; padding: 0 32px }
.anpa-hdr { text-align: center; margin-bottom: 48px }
.anpa-etiqueta { display: inline-block; background: var(--verde-p); color: var(--verde); font-family: var(--ft); font-weight: 700; font-size: .74rem; text-transform: uppercase; letter-spacing: 1.5px; padding: 5px 14px; border-radius: 50px; margin-bottom: 13px }
.anpa-hdr h2 { font-size: clamp(1.6rem,4vw,2.4rem) !important; color: var(--verde-o) !important; margin-bottom: 13px !important }
.anpa-hdr p { font-size: .97rem; color: var(--gris); max-width: 560px; margin: 0 auto }

/* TARJETAS */
.anpa-grid { display: grid; grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); gap: 22px }
.anpa-card { background: var(--blanco); border-radius: var(--rx); overflow: hidden; box-shadow: var(--s); border: 1px solid var(--gris-b); transition: var(--tr) }
.anpa-card:hover { transform: translateY(-5px); box-shadow: var(--sh); border-color: var(--verde-c) }
.anpa-card-top { background: linear-gradient(135deg,var(--verde),var(--verde-c)); padding: 26px 22px 20px; position: relative; overflow: hidden }
.anpa-card-top::after { content: ''; position: absolute; bottom: -1px; left: 0; right: 0; height: 18px; background: var(--blanco); clip-path: ellipse(55% 100% at 50% 100%) }
.anpa-card-icon { font-size: 2.2rem; margin-bottom: 9px; display: block }
.anpa-card-top h3 { font-family: var(--ft) !important; font-weight: 800 !important; font-size: 1.05rem !important; color: white !important; margin: 0 !important }
.anpa-card-body { padding: 20px 22px 22px }
.anpa-card-body p { font-size: .88rem; color: var(--gris); margin-bottom: 13px; line-height: 1.65 }

/* LISTA CHECK */
.anpa-lista { list-style: none; padding: 0; margin: 0; display: grid; gap: 9px }
.anpa-lista li { display: flex; align-items: flex-start; gap: 11px; padding: 13px 15px; background: var(--gris-f); border-radius: var(--r); font-family: var(--ft); font-size: .9rem; color: var(--negro); border-left: 3px solid var(--verde); transition: var(--tr) }
.anpa-lista li:hover { background: var(--verde-p); border-left-color: var(--verde-c) }
.anpa-lista li::before { content: '✓'; width: 20px; height: 20px; min-width: 20px; background: var(--verde); color: white; border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .7rem; font-weight: 900; margin-top: 1px }

/* PRECIOS */
.anpa-precios { display: grid; grid-template-columns: repeat(auto-fit,minmax(210px,1fr)); gap: 18px }
.anpa-precio { background: var(--blanco); border-radius: var(--rx); padding: 28px 22px; text-align: center; box-shadow: var(--s); border: 1px solid var(--gris-b); transition: var(--tr) }
.anpa-precio:hover { transform: translateY(-4px); box-shadow: var(--sh) }
.anpa-precio.dest { background: linear-gradient(135deg,var(--verde-o),var(--verde)); border-color: transparent }
.anpa-precio.dest h3,.anpa-precio.dest .anpa-precio-per,.anpa-precio.dest p { color: white !important }
.anpa-precio h3 { font-family: var(--ft) !important; font-weight: 800 !important; font-size: .92rem !important; color: var(--verde-o) !important; margin-bottom: 8px !important }
.anpa-precio-num { font-family: var(--ft); font-size: 2.8rem; font-weight: 900; color: var(--verde); line-height: 1; margin: 10px 0 3px }
.anpa-precio.dest .anpa-precio-num { color: var(--naranja) }
.anpa-precio-per { font-family: var(--ft); font-size: .8rem; font-weight: 700; color: var(--gris); display: block; margin-bottom: 8px }
.anpa-precio p { font-size: .82rem; color: var(--gris); margin: 0 }

/* AVISO */
.anpa-aviso { background: #FFF3CD; border-left: 5px solid var(--naranja); border-radius: 0 var(--r) var(--r) 0; padding: 14px 20px; display: flex; align-items: center; gap: 13px; font-family: var(--ft); font-weight: 600; color: #7B4F00; box-shadow: var(--s); margin: 20px 0 }

/* CTA */
.anpa-cta { background: linear-gradient(135deg,var(--verde-o),var(--verde)); padding: 76px 0; position: relative; overflow: hidden }
.anpa-cta::before { content: ''; position: absolute; inset: 0; background: radial-gradient(circle at 75% 50%,rgba(123,94,167,.2) 0%,transparent 55%) }
.anpa-cta-inner { position: relative; z-index: 2; max-width: 800px; margin: 0 auto; padding: 0 32px; text-align: center }
.anpa-cta-inner h2 { font-size: clamp(1.6rem,4vw,2.6rem) !important; color: white !important; margin-bottom: 13px !important }
.anpa-cta-inner > p { font-family: var(--ft); font-size: 1rem; color: rgba(255,255,255,.85); margin-bottom: 32px }
.anpa-cta-pw { display: flex; justify-content: center; margin-bottom: 24px }
.anpa-cta-p { display: inline-flex; align-items: baseline; gap: 4px; background: rgba(255,255,255,.12); border: 2px solid rgba(255,255,255,.25); border-radius: var(--rx); padding: 13px 26px; backdrop-filter: blur(10px) }
.anpa-cta-n { font-family: var(--ft); font-size: 2.7rem; font-weight: 900; color: var(--naranja); line-height: 1 }
.anpa-cta-u { font-family: var(--ft); font-size: .86rem; color: rgba(255,255,255,.7) }
.anpa-cta-checks { display: flex; gap: 18px; justify-content: center; flex-wrap: wrap; margin-bottom: 32px }
.anpa-cta-check { display: flex; align-items: center; gap: 7px; font-family: var(--ft); font-size: .87rem; color: rgba(255,255,255,.9); font-weight: 600 }
.anpa-cta-check::before { content: '✓'; width: 19px; height: 19px; background: var(--naranja); border-radius: 50%; display: flex; align-items: center; justify-content: center; font-size: .68rem; font-weight: 900; color: white; flex-shrink: 0 }

/* CONTACTO */
.anpa-contacto-grid { display: grid; grid-template-columns: 1fr 1.2fr; gap: 44px; align-items: start }
.anpa-info-item { display: flex; align-items: flex-start; gap: 13px; padding: 16px; background: var(--gris-f); border-radius: var(--r); margin-bottom: 12px }
.anpa-info-icon { font-size: 1.4rem; width: 44px; height: 44px; min-width: 44px; background: var(--verde-p); border-radius: 11px; display: flex; align-items: center; justify-content: center }
.anpa-info-lbl { font-family: var(--ft); font-size: .73rem; font-weight: 700; color: var(--verde); text-transform: uppercase; letter-spacing: .5px; display: block; margin-bottom: 3px }
.anpa-info-val { font-size: .9rem; color: var(--negro); font-family: var(--ft); font-weight: 600 }
.anpa-info-val a { color: var(--verde-o) !important }
.anpa-info-val a:hover { color: var(--verde) !important }
.anpa-redes { display: flex; gap: 10px; margin-top: 6px }
.anpa-red { display: inline-flex; align-items: center; gap: 7px; font-family: var(--ft); font-weight: 700; font-size: .83rem; padding: 9px 16px; border-radius: 50px; transition: var(--tr) }
.anpa-red-ig { background: #E1306C; color: white !important }
.anpa-red-fb { background: #1877F2; color: white !important }
.anpa-red:hover { transform: translateY(-2px); box-shadow: var(--s) }

/* FORMULARIOS */
.wpcf7-form input[type="text"],.wpcf7-form input[type="email"],.wpcf7-form input[type="tel"],.wpcf7-form select,.wpcf7-form textarea { width: 100% !important; padding: 11px 14px !important; border: 2px solid var(--gris-b) !important; border-radius: var(--r) !important; font-family: var(--fb) !important; font-size: .95rem !important; color: var(--negro) !important; background: var(--blanco) !important; transition: var(--tr) !important; outline: none !important }
.wpcf7-form input:focus,.wpcf7-form textarea:focus { border-color: var(--verde) !important; box-shadow: 0 0 0 3px rgba(45,106,79,.1) !important }
.wpcf7-submit,input[type="submit"],button[type="submit"] { background: linear-gradient(135deg,var(--verde),var(--verde-c)) !important; color: white !important; font-family: var(--ft) !important; font-weight: 800 !important; font-size: .9rem !important; padding: 12px 28px !important; border: none !important; border-radius: 50px !important; cursor: pointer !important; transition: var(--tr) !important }
.wpcf7-submit:hover { background: var(--verde-o) !important; transform: translateY(-2px) !important }

/* FOOTER */
.site-footer,#colophon,.ast-small-footer { background: var(--verde-o) !important; color: rgba(255,255,255,.72) !important; padding: 0 !important }
.anpa-footer { padding: 54px 0 30px }
.anpa-footer-grid { max-width: 1100px; margin: 0 auto; padding: 0 32px; display: grid; grid-template-columns: 2fr 1fr 1fr 1fr; gap: 40px }
.anpa-footer-logo img { max-height: 75px; margin-bottom: 13px; filter: brightness(0) invert(1) opacity(.85) }
.anpa-footer-logo p { font-size: .85rem; color: rgba(255,255,255,.58); line-height: 1.7; margin-bottom: 16px }
.anpa-footer-soc { display: flex; gap: 8px }
.anpa-footer-soc a { width: 34px; height: 34px; background: rgba(255,255,255,.1); border-radius: 50%; display: flex; align-items: center; justify-content: center; color: white !important; font-size: .78rem; transition: var(--tr); border: 1px solid rgba(255,255,255,.12) }
.anpa-footer-soc a:hover { background: var(--verde-c); transform: translateY(-3px) }
.anpa-footer-col h4 { font-family: var(--ft) !important; font-weight: 800 !important; font-size: .82rem !important; color: white !important; text-transform: uppercase; letter-spacing: 1px; margin-bottom: 16px !important; padding-bottom: 9px; border-bottom: 2px solid rgba(255,255,255,.1) }
.anpa-footer-col ul { list-style: none; margin: 0; padding: 0 }
.anpa-footer-col ul li { margin-bottom: 8px }
.anpa-footer-col ul li a { font-size: .85rem; color: rgba(255,255,255,.6) !important; transition: var(--tr); font-family: var(--ft); display: flex; align-items: center; gap: 5px }
.anpa-footer-col ul li a:hover { color: var(--verde-c) !important; padding-left: 4px }
.anpa-footer-bottom { background: rgba(0,0,0,.22); padding: 13px 32px }
.anpa-footer-bottom-inner { max-width: 1100px; margin: 0 auto; display: flex; justify-content: space-between; align-items: center; flex-wrap: wrap; gap: 10px }
.anpa-footer-bottom p { font-family: var(--ft); font-size: .76rem; color: rgba(255,255,255,.46); margin: 0 }
.anpa-footer-bottom a { color: rgba(255,255,255,.52) !important; transition: var(--tr) }
.anpa-footer-bottom a:hover { color: var(--verde-c) !important }

/* ANIMACIONES */
@keyframes fadeUp { from { opacity:0; transform:translateY(20px) } to { opacity:1; transform:translateY(0) } }
.af  { animation: fadeUp .55s ease both }
.af2 { animation-delay: .1s }
.af3 { animation-delay: .2s }

/* LOGIN */
body.login { background: var(--verde-o) !important }
.login h1 a { background: none !important; font-family: var(--ft) !important; font-size: 1.4rem !important; font-weight: 900 !important; color: white !important; text-indent: 0 !important; width: auto !important; height: auto !important }
.login form { border-radius: 16px !important; box-shadow: 0 20px 60px rgba(0,0,0,.3) !important }
.wp-core-ui .button-primary { background: var(--verde) !important; border-color: var(--verde) !important; border-radius: 50px !important; font-weight: 700 !important }

/* RESPONSIVE */
@media (max-width:900px) {
  .anpa-hero-inner { grid-template-columns: 1fr; gap: 32px; text-align: center }
  .anpa-hero-btns { justify-content: center }
  .anpa-hero-card { display: none }
  .anpa-footer-grid { grid-template-columns: 1fr 1fr; gap: 28px }
  .anpa-contacto-grid { grid-template-columns: 1fr }
}
@media (max-width:600px) {
  .anpa-hero { padding: 54px 0 42px }
  .anpa-section { padding: 46px 0 }
  .anpa-container { padding: 0 18px }
  .anpa-footer-grid { grid-template-columns: 1fr; gap: 20px }
  .anpa-footer-bottom-inner { flex-direction: column; text-align: center }
  .anpa-precios { grid-template-columns: 1fr 1fr }
  .anpa-topbar-inner { justify-content: center }
}
