/* ==========================================================================
   GIES Pacanga — hoja de estilos del sitio
   Migrado desde el tema WordPress, sin dependencias de WordPress.
   ========================================================================== */

:root {
    --verde: #2e7d32;
    --verde-oscuro: #1b5e20;
    --verde-claro: #4caf50;
    --crema: #faf6ef;
    --blanco: #ffffff;
    --amarillo: #e8a33d;
    --marron: #6d4c41;
    --texto: #33302c;
    --texto-suave: #6b6a66;
}

* { box-sizing: border-box; margin: 0; padding: 0; }

body {
    font-family: 'Open Sans', sans-serif;
    color: var(--texto);
    line-height: 1.7;
    background: var(--blanco);
    -webkit-font-smoothing: antialiased;
}

h1, h2, h3, h4 { font-family: 'Montserrat', sans-serif; line-height: 1.2; color: var(--verde-oscuro); }

img { max-width: 100%; height: auto; display: block; }
a { text-decoration: none; color: var(--verde); }
.container { width: 100%; max-width: 1180px; margin: 0 auto; padding: 0 20px; }

/* El contenido arranca bajo la cabecera fija */
main#contenido { padding-top: 72px; }

/* ------------------------------ HEADER ------------------------------ */
.gies-header {
    position: fixed; top: 0; left: 0; right: 0; z-index: 1000;
    background: rgba(255,255,255,.97);
    box-shadow: 0 1px 4px rgba(0,0,0,.08);
}
.gies-header__inner { display: flex; align-items: center; justify-content: space-between; height: 72px; }
.gies-brand__title { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 1.3rem; color: var(--verde-oscuro); letter-spacing: .5px; }
.gies-brand__title span { color: var(--amarillo); }
.gies-nav__menu { display: flex; align-items: center; gap: 24px; }
.gies-menu { list-style: none; display: flex; gap: 26px; margin: 0; }
.gies-menu a { color: var(--texto); font-weight: 600; font-size: .95rem; transition: color .2s; }
.gies-menu a:hover { color: var(--verde); }
.gies-menu .current-menu-item > a { color: var(--verde); }
.gies-nav__toggle { display: none; background: none; border: 0; cursor: pointer; }
.gies-nav__toggle span { display: block; width: 26px; height: 3px; background: var(--verde-oscuro); margin: 5px 0; border-radius: 2px; }

/* --------------------------- MENÚ DESPLEGABLE ----------------------- */
.gies-menu .menu-item-has-children { position: relative; }
.gies-menu .menu-item-has-children > a::after {
    content: ''; display: inline-block; margin-left: 6px;
    border-left: 5px solid transparent; border-right: 5px solid transparent;
    border-top: 5px solid var(--verde); vertical-align: middle; transition: transform .2s;
}
.gies-menu .menu-item-has-children:hover > a::after { transform: rotate(180deg); }

.gies-menu .sub-menu {
    list-style: none; position: absolute; top: 100%; left: 50%; transform: translateX(-50%);
    min-width: 220px; background: var(--blanco); border-radius: 10px;
    box-shadow: 0 10px 30px rgba(0,0,0,.14); border: 1px solid #eee;
    padding: 10px 0; margin: 14px 0 0; opacity: 0; visibility: hidden;
    transition: opacity .2s ease, visibility .2s ease, margin .2s ease;
    z-index: 500;
}
.gies-menu .menu-item-has-children > .sub-menu::before {
    content: ''; position: absolute; top: -14px; left: 0; right: 0; height: 14px;
}
.gies-menu .menu-item-has-children:hover > .sub-menu { opacity: 1; visibility: visible; margin-top: 4px; }
.gies-menu .sub-menu li { position: relative; }
.gies-menu .sub-menu a { display: block; padding: 10px 20px; font-size: .9rem; color: var(--texto); white-space: nowrap; }
.gies-menu .sub-menu a:hover { color: var(--verde); background: var(--crema); }
.gies-menu .sub-menu .sub-menu { top: 0; left: 100%; transform: none; margin-left: 2px; }

/* ------------------------------ BOTONES ----------------------------- */
.gies-btn {
    display: inline-block; padding: 13px 26px; border-radius: 40px;
    font-family: 'Montserrat', sans-serif; font-weight: 700; font-size: .92rem;
    transition: all .25s; text-align: center;
}
.gies-btn--accent { background: var(--amarillo); color: #4a3400; }
.gies-btn--accent:hover { background: #d8922d; }
.gies-btn--outline { border: 2px solid var(--blanco); color: var(--blanco); }
.gies-btn--outline:hover { background: rgba(255,255,255,.15); }
.gies-btn--small { padding: 9px 18px; font-size: .82rem; }
.gies-btn--lg { padding: 16px 34px; font-size: 1rem; }
.gies-header__cta { padding: 10px 20px; font-size: .85rem; }

/* ----------------------------- WHATSAPP ----------------------------- */
.gies-whatsapp {
    position: fixed; right: 20px; bottom: 20px; z-index: 2000;
    width: 58px; height: 58px; border-radius: 50%; background: #25d366;
    display: flex; align-items: center; justify-content: center;
    box-shadow: 0 6px 18px rgba(0,0,0,.25); transition: transform .2s;
}
.gies-whatsapp:hover { transform: scale(1.08); }

/* ------------------------------ FOOTER ------------------------------ */
.gies-footer { background: var(--verde-oscuro); color: rgba(255,255,255,.9); padding-top: 60px; }
.gies-footer__grid { display: grid; grid-template-columns: 1.3fr 1fr 1fr 1fr; gap: 40px; padding-bottom: 40px; }
.gies-footer__brand { font-family: 'Montserrat', sans-serif; font-weight: 800; font-size: 1.3rem; color: var(--blanco); margin-bottom: 14px; }
.gies-footer__brand span { color: var(--amarillo); }
.gies-footer__col h4 { color: var(--blanco); font-size: 1.05rem; margin-bottom: 16px; }
.gies-footer__menu { list-style: none; }
.gies-footer__menu li { margin-bottom: 8px; }
.gies-footer__menu a { color: rgba(255,255,255,.85); font-size: .92rem; }
.gies-footer__menu a:hover { color: var(--amarillo); }
.gies-footer__menu .sub-menu { list-style: none; margin: 6px 0 0 12px; }
.gies-footer__menu .sub-menu li { margin-bottom: 6px; }
.gies-footer__menu .sub-menu a { color: rgba(255,255,255,.6); font-size: .85rem; }
.gies-footer__menu .menu-item-has-children > a { color: var(--amarillo); font-weight: 700; }
.gies-footer__contact { list-style: none; }
.gies-footer__contact li { margin-bottom: 10px; font-size: .9rem; }
.gies-footer__contact a { color: rgba(255,255,255,.85); }
.gies-social { display: flex; gap: 14px; flex-wrap: wrap; }
.gies-social a { color: rgba(255,255,255,.85); font-size: .92rem; }
.gies-social a:hover { color: var(--amarillo); }
.gies-footer__bottom { border-top: 1px solid rgba(255,255,255,.15); padding: 20px 0; }
.gies-footer__bottom p { font-size: .82rem; color: rgba(255,255,255,.7); text-align: center; }

/* =========================================================
   Sistema de páginas GP
   ========================================================= */
.gp-hero{position:relative;color:#fff;padding:120px 24px 76px;text-align:center;background-size:cover;background-position:center;overflow:hidden}
.gp-hero::before{content:'';position:absolute;inset:0;background:linear-gradient(180deg, rgba(27,94,32,.72), rgba(27,94,32,.90));}
.gp-hero__inner{position:relative;max-width:820px;margin:0 auto}
.gp-hero .gp-eyebrow{letter-spacing:.14em;text-transform:uppercase;font-size:.8rem;font-weight:700;color:var(--amarillo);margin-bottom:14px;display:block}
.gp-hero h1{color:#fff;font-size:clamp(2rem,4vw,2.75rem);margin-bottom:16px}
.gp-hero p{font-size:1.15rem;opacity:.95;max-width:640px;margin:0 auto;color:#fff}

.gp-section{padding:70px 24px}
.gp-section--alt{background:var(--crema)}
.gp-section--dark{background:var(--verde-oscuro);color:#fff}
.gp-section--dark h2,.gp-section--dark h3{color:#fff}
.gp-section--dark .gp-kicker{color:var(--amarillo)}
.gp-container{max-width:1120px;margin:0 auto}
.gp-container--narrow{max-width:820px}
.gp-kicker{letter-spacing:.12em;text-transform:uppercase;font-size:.8rem;font-weight:700;color:var(--verde);margin-bottom:12px;display:block}
.gp-lede{font-size:1.15rem;color:var(--texto-suave);max-width:760px;margin-bottom:10px}
.gp-section--dark .gp-lede{color:#e7ede7}
.gp-h2{margin-bottom:22px}
.gp-center{text-align:center;margin-left:auto;margin-right:auto}

.gp-grid{display:grid;gap:24px;margin-top:32px}
.gp-grid--2{grid-template-columns:repeat(auto-fit,minmax(280px,1fr))}
.gp-grid--3{grid-template-columns:repeat(auto-fit,minmax(240px,1fr))}
.gp-grid--4{grid-template-columns:repeat(auto-fit,minmax(220px,1fr))}

.gp-card{background:#fff;border:1px solid #ece6d8;border-radius:12px;padding:28px}
.gp-card h3{font-size:1.12rem;margin-bottom:10px;color:var(--verde-oscuro)}
.gp-card p{color:var(--texto-suave);font-size:.98rem;margin:0}
.gp-card--icon{border-left:4px solid var(--amarillo)}
.gp-section--dark .gp-card{background:rgba(255,255,255,.06);border-color:rgba(255,255,255,.14)}
.gp-section--dark .gp-card p{color:#dce6dc}
.gp-section--dark .gp-card h3{color:#fff}

.gp-media-card{background:#fff;border-radius:12px;overflow:hidden;box-shadow:0 2px 14px rgba(27,94,32,.08);display:flex;flex-direction:column}
.gp-media-card img{width:100%;height:190px;object-fit:cover;display:block}
.gp-media-card__body{padding:24px;display:flex;flex-direction:column;flex:1}
.gp-media-card h3{color:var(--verde-oscuro);margin-bottom:10px;font-size:1.15rem}
.gp-media-card p{color:var(--texto-suave);font-size:.95rem;margin-bottom:18px;flex:1}

.gp-steps{counter-reset:step;margin-top:32px}
.gp-step{display:flex;gap:22px;padding:24px 0;border-bottom:1px solid #ece6d8;align-items:flex-start}
.gp-step:last-child{border-bottom:none}
.gp-step__num{flex:0 0 auto;width:56px;height:56px;border-radius:10px;background:var(--amarillo);color:#fff;display:flex;align-items:center;justify-content:center;font-family:'Montserrat',sans-serif;font-weight:800;font-size:1.3rem}
.gp-step h3{margin-bottom:6px;font-size:1.1rem}
.gp-step p{color:var(--texto-suave);margin:0}

.gp-btn{display:inline-block;padding:14px 30px;border-radius:8px;background:var(--amarillo);color:#fff !important;font-weight:700;text-decoration:none;transition:transform .15s ease,box-shadow .15s ease;border:2px solid var(--amarillo);font-family:inherit;font-size:1rem;cursor:pointer}
.gp-btn:hover{transform:translateY(-2px);box-shadow:0 8px 18px rgba(232,163,61,.35);color:#fff !important}
.gp-btn--outline{background:transparent;border:2px solid #fff;color:#fff !important}
.gp-btn--outline:hover{background:#fff;color:var(--verde-oscuro) !important}
.gp-btn--green{background:var(--verde);border-color:var(--verde)}
.gp-btn:disabled{opacity:.65;cursor:progress;transform:none}
.gp-btn-row{display:flex;gap:16px;flex-wrap:wrap;margin-top:28px}
.gp-btn-row--center{justify-content:center}

.gp-quote{border-left:4px solid var(--amarillo);padding:6px 0 6px 26px;font-family:'Montserrat',sans-serif;font-size:1.35rem;font-style:italic;color:var(--verde-oscuro);max-width:820px;margin:36px auto 0}
.gp-section--dark .gp-quote{color:#fff;border-left-color:var(--amarillo)}

.gp-list-letters{list-style:none;counter-reset:letra;margin-top:24px;max-width:820px}
.gp-list-letters li{position:relative;padding-left:38px;margin-bottom:16px}
.gp-list-letters li::before{content:counter(letra,lower-alpha) ")";counter-increment:letra;position:absolute;left:0;top:0;font-weight:700;color:var(--amarillo)}

.gp-cta{text-align:center;background:var(--crema);padding:60px 24px;border-radius:16px;margin:0 24px}
.gp-cta h2{margin-bottom:14px}
.gp-cta p{color:var(--texto-suave);max-width:600px;margin:0 auto 8px}

.gp-flow{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:24px;margin-top:32px}
.gp-flow__item{text-align:center}
.gp-flow__item img{width:100%;height:150px;object-fit:cover;border-radius:12px;margin-bottom:14px}
.gp-flow__item h3{font-size:1rem;letter-spacing:.02em;color:var(--verde-oscuro)}

.gp-fullimg{width:100%;border-radius:16px;overflow:hidden;margin-top:32px}
.gp-fullimg img{width:100%;display:block;height:380px;object-fit:cover}

.gp-info-list{list-style:none;margin-top:24px}
.gp-info-list li{padding:14px 0;border-bottom:1px solid #ece6d8;display:flex;gap:10px;flex-wrap:wrap}
.gp-info-list strong{color:var(--verde-oscuro);min-width:110px;display:inline-block}
.gp-info-list a{color:var(--texto);text-decoration:underline}

.gp-contact-grid{display:grid;grid-template-columns:1fr 1.2fr;gap:48px;margin-top:36px;align-items:start}
@media (max-width:820px){.gp-contact-grid{grid-template-columns:1fr}}

/* -------------------------- FORMULARIOS ---------------------------- */
.gp-form-wrap{background:#fff;border:1px solid #ece6d8;border-radius:14px;padding:32px}
.gp-form p{margin-bottom:16px}
.gp-form label{display:block;font-weight:700;color:var(--verde-oscuro);margin-bottom:6px;font-size:.92rem}
.gp-form input[type=text],
.gp-form input[type=email],
.gp-form input[type=tel],
.gp-form textarea{
    width:100%;padding:12px 14px;border:1px solid #d8d2c2;border-radius:8px;
    font-family:inherit;font-size:.98rem;background:#fff;color:var(--texto)
}
.gp-form input:focus,.gp-form textarea:focus{
    outline:none;border-color:var(--verde);box-shadow:0 0 0 3px rgba(46,125,50,.12)
}
/* Solo se marca en rojo DESPUÉS de que la persona interactúa con el campo,
   nunca al cargar la página. */
.gp-form input:user-invalid,
.gp-form textarea:user-invalid{border-color:#c0392b;background:#fffafa}
.gp-form textarea{min-height:120px;resize:vertical}

/* Campo trampa anti-spam: invisible para las personas, visible para los bots */
.gp-form .gp-hp{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;opacity:0!important}

.gp-form-msg{margin-top:14px;padding:0;border-radius:8px;font-size:.94rem;font-weight:600}
.gp-form-msg.is-ok{padding:12px 16px;background:#e8f5e9;color:#1b5e20;border:1px solid #b7dfba}
.gp-form-msg.is-error{padding:12px 16px;background:#fdecea;color:#b3261e;border:1px solid #f5c6c2}

@media (max-width:640px){
    .gp-hero{padding:96px 20px 52px}
    .gp-step{flex-direction:column;gap:10px}
    .gp-section{padding:50px 18px}
    .gp-cta{margin:0}
}

/* ----------------------------- RESPONSIVE --------------------------- */
@media (max-width: 992px) {
    .gies-footer__grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 768px) {
    .gies-nav__toggle { display: block; }
    .gies-nav__menu {
        position: fixed; top: 72px; right: -100%; width: 80%; max-width: 340px; height: calc(100vh - 72px);
        background: var(--blanco); flex-direction: column; align-items: flex-start; padding: 40px 30px;
        transition: right .3s; box-shadow: -6px 0 20px rgba(0,0,0,.12); gap: 18px; overflow-y: auto;
    }
    .gies-nav__menu.open { right: 0; }
    .gies-menu { flex-direction: column; gap: 20px; }
    .gies-menu .menu-item-has-children > a::after { display: none; }
    .gies-menu .sub-menu {
        position: static; transform: none; opacity: 1; visibility: visible;
        min-width: 0; box-shadow: none; border: none; background: var(--crema);
        border-radius: 8px; margin: 8px 0 0; padding: 6px 0; display: none;
    }
    .gies-menu .menu-item-has-children.open > .sub-menu { display: block; }
    .gies-menu .sub-menu a { white-space: normal; padding: 8px 18px; }
    .gies-footer__grid { grid-template-columns: 1fr; gap: 30px; }
}

/* --------------------------- GALERÍA DE FOTOS ---------------------------- */
.gp-galeria{
    display:grid;grid-template-columns:repeat(auto-fill,minmax(240px,1fr));
    gap:14px;margin-top:32px;
}
.gp-galeria__item{
    position:relative;display:block;overflow:hidden;border-radius:14px;
    background:#ece6d8;border:0;padding:0;cursor:zoom-in;line-height:0;
}
.gp-galeria__item img{
    width:100%;height:220px;object-fit:cover;display:block;
    transition:transform .45s ease;
}
.gp-galeria__item:hover img,
.gp-galeria__item:focus-visible img{transform:scale(1.06)}
.gp-galeria__item:focus-visible{outline:3px solid var(--verde-claro);outline-offset:3px}
.gp-galeria__pie{
    position:absolute;left:0;right:0;bottom:0;padding:26px 14px 12px;
    background:linear-gradient(to top,rgba(27,94,32,.85),rgba(27,94,32,0));
    color:#fff;font-size:.82rem;line-height:1.4;text-align:left;
    opacity:0;transform:translateY(8px);transition:opacity .3s ease,transform .3s ease;
}
.gp-galeria__item:hover .gp-galeria__pie,
.gp-galeria__item:focus-visible .gp-galeria__pie{opacity:1;transform:none}
.gp-galeria--alta .gp-galeria__item img{height:280px}
@media (max-width:600px){
    .gp-galeria{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:10px}
    .gp-galeria__item img,.gp-galeria--alta .gp-galeria__item img{height:150px}
    .gp-galeria__pie{opacity:1;transform:none;font-size:.72rem;padding:20px 10px 8px}
}

/* Visor a pantalla completa */
.gp-visor{
    position:fixed;inset:0;z-index:3000;display:none;
    align-items:center;justify-content:center;padding:24px;
    background:rgba(20,26,20,.92);
}
.gp-visor[open],.gp-visor.is-abierto{display:flex}
.gp-visor img{max-width:min(1100px,92vw);max-height:82vh;border-radius:12px;display:block}
.gp-visor__pie{
    position:absolute;left:0;right:0;bottom:22px;text-align:center;
    color:#f3efe6;font-size:.9rem;padding:0 24px;
}
.gp-visor__btn{
    position:absolute;top:18px;right:22px;width:44px;height:44px;border:0;
    border-radius:50%;background:rgba(255,255,255,.14);color:#fff;font-size:1.4rem;
    cursor:pointer;line-height:1;
}
.gp-visor__btn:hover{background:rgba(255,255,255,.26)}
.gp-visor__nav{
    position:absolute;top:50%;transform:translateY(-50%);width:48px;height:48px;
    border:0;border-radius:50%;background:rgba(255,255,255,.14);color:#fff;
    font-size:1.5rem;cursor:pointer;line-height:1;
}
.gp-visor__nav--prev{left:18px}
.gp-visor__nav--next{right:18px}
.gp-visor__nav:hover{background:rgba(255,255,255,.26)}

/* ---------------------------- MOSAICO DE FOTOS --------------------------- */
/* Una vertical (9:16) a la izquierda + dos horizontales (16:9) apiladas.
   Las proporciones estan calculadas para que ambas columnas midan lo mismo. */
.gp-mosaico{
    display:grid;grid-template-columns:.645fr 1fr;gap:14px;margin-top:34px;align-items:stretch;
}
.gp-mosaico__col{display:grid;grid-template-rows:1fr 1fr;gap:14px}
.gp-mosaico .gp-galeria__item{margin:0;height:100%}
.gp-mosaico .gp-galeria__item img{width:100%;height:100%;object-fit:cover}
.gp-mosaico__alta{aspect-ratio:9/16}
.gp-mosaico__ancha{aspect-ratio:16/9}
.gp-mosaico + .gp-btn-row{margin-top:28px}

/* Texto al costado del mosaico */
.gp-mosaico-split{
    display:grid;grid-template-columns:.85fr 1.15fr;gap:44px;align-items:center;margin-top:10px;
}
.gp-mosaico-split .gp-mosaico{margin-top:0}
@media (max-width:900px){
    .gp-mosaico-split{grid-template-columns:1fr;gap:26px}
    .gp-mosaico{grid-template-columns:1fr;gap:10px}
    .gp-mosaico__col{grid-template-rows:auto auto;gap:10px}
    .gp-mosaico__alta{aspect-ratio:4/3}
}

/* ---------------------------- ORGANIGRAMA -------------------------------- */
.gp-org{margin-top:36px;display:flex;flex-direction:column;align-items:center;gap:0}
.gp-org__caja{
    background:#fff;border:1px solid #e3e8d6;border-left:4px solid var(--verde-claro);
    border-radius:12px;padding:18px 22px;box-shadow:0 2px 10px rgba(0,0,0,.05);
    max-width:420px;width:100%;text-align:center;
}
.gp-org__caja h3{font-size:1rem;color:var(--verde-oscuro);margin:0;line-height:1.35}
.gp-org__caja small{display:block;color:var(--texto-suave);font-size:.78rem;
    font-weight:600;margin-top:4px;line-height:1.4}
.gp-org__caja ul{list-style:none;margin:12px 0 0;padding:0;display:flex;
    flex-wrap:wrap;gap:6px;justify-content:center}
.gp-org__caja li{background:var(--crema);border-radius:999px;padding:4px 12px;
    font-size:.78rem;color:var(--marron);font-weight:600}

.gp-org__caja--top{border-left:0;border-top:4px solid var(--verde);max-width:480px;
    background:var(--verde-oscuro);border-color:var(--verde-oscuro)}
.gp-org__caja--top h3{color:#fff;font-size:1.2rem}
.gp-org__caja--top small{color:rgba(255,255,255,.75)}

.gp-org__caja--destacada{border-left-color:var(--amarillo);max-width:480px}
.gp-org__caja--final{background:var(--crema);border-left-color:var(--verde);max-width:380px}

/* Conector vertical entre niveles */
.gp-org__linea{width:2px;height:26px;background:#d8e0c8;flex:none}

/* Fila de varias cajas al mismo nivel */
.gp-org__fila{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));
    gap:14px;width:100%;max-width:900px}
.gp-org__fila .gp-org__caja{max-width:none;padding:14px 16px}
.gp-org__fila .gp-org__caja h3{font-size:.88rem}
.gp-org__fila--dos{grid-template-columns:repeat(auto-fit,minmax(260px,1fr));max-width:720px}
.gp-org__fila--dos .gp-org__caja{padding:20px}

/* Barra horizontal que agrupa la fila */
.gp-org__reparto{position:relative;width:100%;max-width:900px;height:26px;flex:none}
.gp-org__reparto::before{content:"";position:absolute;top:0;left:50%;width:2px;
    height:13px;background:#d8e0c8}
.gp-org__nota{color:var(--texto-suave);font-size:.85rem;text-align:center;
    margin-top:26px;max-width:640px}

@media (max-width:600px){
    .gp-org__fila{grid-template-columns:1fr;gap:10px}
    .gp-org__linea{height:18px}
}
