/*
Theme Name: Cristina Aparicio Makeup
Theme URI: https://cristinaapariciomakeup.com
Author: Cristina Aparicio
Author URI: https://cristinaapariciomakeup.com
Description: Theme profesional para Cristina Aparicio Makeup — Maquilladora profesional con más de 35 años de experiencia en televisión.
Version: 1.0.0
Requires at least: 6.0
Tested up to: 6.7
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cristina-aparicio
Tags: one-column, custom-menu, custom-logo, featured-images, theme-options, translation-ready
*/

/* ===================================================================
   DESIGN TOKENS
   =================================================================== */
:root {
    --c-black: #1a1a1a;
    --c-white: #ffffff;
    --c-cream: #f8f6f3;
    --c-rose: #b76e79;
    --c-rose-light: #d4a0a7;
    --c-rose-dark: #9a5a63;
    --c-gray: #6b6b6b;
    --c-gray-light: #e8e8e8;
    --c-gray-dark: #333333;
    --c-dark: #141414;
    --ff-heading: 'Playfair Display', Georgia, serif;
    --ff-body: 'Montserrat', 'Helvetica Neue', Arial, sans-serif;
    --header-h: 80px;
    --max-w: 1200px;
    --max-w-narrow: 800px;
    --max-w-wide: 1400px;
    --ease: cubic-bezier(.25,.46,.45,.94);
    --radius: 8px;
}

/* ===================================================================
   RESET
   =================================================================== */
*,*::before,*::after{box-sizing:border-box;margin:0;padding:0}
html{font-size:16px;scroll-behavior:smooth;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale}
body{font-family:var(--ff-body);font-weight:400;line-height:1.7;color:var(--c-black);background:var(--c-white);overflow-x:hidden}
body.menu-open{overflow:hidden}
img{max-width:100%;height:auto;display:block}
a{color:var(--c-rose);text-decoration:none;transition:color .2s}
a:hover{color:var(--c-rose-dark)}
a:focus-visible{outline:2px solid var(--c-rose);outline-offset:2px}
ul,ol{list-style:none}
button{cursor:pointer;border:none;background:none;font-family:inherit}
button:focus-visible{outline:2px solid var(--c-rose);outline-offset:2px}
h1,h2,h3,h4,h5,h6{font-family:var(--ff-heading);font-weight:700;line-height:1.2;color:var(--c-black)}
h1{font-size:clamp(2.5rem,5vw,4.5rem);letter-spacing:-.02em}
h2{font-size:clamp(1.8rem,3.5vw,3rem)}
h3{font-size:clamp(1.4rem,2.5vw,1.8rem)}
p{margin-bottom:1rem;color:var(--c-gray)}

/* ===================================================================
   UTILITY / LAYOUT
   =================================================================== */
.wrap{width:100%;max-width:var(--max-w);margin:0 auto;padding:0 2rem}
.wrap--narrow{max-width:var(--max-w-narrow)}
.wrap--wide{max-width:var(--max-w-wide)}
.sec{padding:6rem 0}
.sec--cream{background:var(--c-cream)}
.sec--dark{background:var(--c-black)}
.sec--dark h2,.sec--dark h3,.sec--dark h4{color:var(--c-white)}
.sec--dark p{color:rgba(255,255,255,.7)}
.sec-header{text-align:center;margin-bottom:3rem}
.sec-header .eyebrow{display:block;font-family:var(--ff-body);font-size:.7rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--c-rose);margin-bottom:.75rem}
.sec-header h2{margin-bottom:.75rem}
.sec-header p{max-width:550px;margin:0 auto;font-size:1.05rem}
.text-center{text-align:center}

/* ===================================================================
   BUTTONS
   =================================================================== */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;padding:.875rem 2.25rem;font-family:var(--ff-body);font-size:.75rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;border-radius:4px;border:2px solid transparent;transition:all .3s var(--ease);white-space:nowrap}
.btn--rose{background:var(--c-rose);color:var(--c-white);border-color:var(--c-rose)}
.btn--rose:hover{background:var(--c-rose-dark);border-color:var(--c-rose-dark);color:var(--c-white);transform:translateY(-2px);box-shadow:0 4px 20px rgba(183,110,121,.35)}
.btn--outline{background:transparent;color:var(--c-white);border-color:var(--c-white)}
.btn--outline:hover{background:var(--c-white);color:var(--c-black);transform:translateY(-2px)}
.btn--dark{background:transparent;color:var(--c-black);border-color:var(--c-black)}
.btn--dark:hover{background:var(--c-black);color:var(--c-white);transform:translateY(-2px)}
.btn--white{background:var(--c-white);color:var(--c-black);border-color:var(--c-white)}
.btn--white:hover{background:transparent;color:var(--c-white);transform:translateY(-2px)}
.btn--full{width:100%}

/* ===================================================================
   HEADER
   =================================================================== */
.site-header{position:fixed;top:0;left:0;width:100%;height:var(--header-h);z-index:1000;transition:all .35s var(--ease)}
.site-header.scrolled{background:rgba(255,255,255,.97);backdrop-filter:blur(12px);box-shadow:0 1px 20px rgba(0,0,0,.07)}
.site-header.hidden{transform:translateY(-100%)}
.header-wrap{display:flex;align-items:center;justify-content:space-between;height:100%;max-width:var(--max-w-wide);margin:0 auto;padding:0 2rem}

/* Logo */
.logo{display:flex;flex-direction:column;text-decoration:none;line-height:1;z-index:1001}
.logo__name{font-family:var(--ff-heading);font-style:italic;font-size:1.5rem;font-weight:700;color:var(--c-white);transition:color .3s;letter-spacing:.01em}
.logo__sub{font-family:var(--ff-body);font-size:.5rem;font-weight:300;letter-spacing:.4em;text-transform:uppercase;color:rgba(255,255,255,.75);transition:color .3s;margin-top:2px}
.logo__img{max-height:55px;width:auto;object-fit:contain;transition:opacity .3s var(--ease)}
.logo__img--dark{display:none}
.site-header.scrolled .logo__img--white{display:none}
.site-header.scrolled .logo__img--dark{display:block}
.site-header.scrolled .logo__name{color:var(--c-black)}
.site-header.scrolled .logo__sub{color:var(--c-gray)}

/* Nav */
.main-nav{display:flex;align-items:center;gap:.25rem}
.main-nav li{list-style:none}
.main-nav a{font-size:.7rem;font-weight:500;letter-spacing:.15em;text-transform:uppercase;color:var(--c-white);padding:.5rem .75rem;position:relative;transition:color .2s}
.main-nav a::after{content:'';position:absolute;bottom:0;left:.75rem;right:.75rem;height:1.5px;background:var(--c-rose);transform:scaleX(0);transform-origin:right;transition:transform .3s var(--ease)}
.main-nav a:hover::after,.main-nav .current-menu-item a::after{transform:scaleX(1);transform-origin:left}
.main-nav a:hover,.main-nav .current-menu-item a{color:var(--c-rose)}
.site-header.scrolled .main-nav a{color:var(--c-black)}
.site-header.scrolled .main-nav a:hover,.site-header.scrolled .main-nav .current-menu-item a{color:var(--c-rose)}

/* Header CTA */
.header-cta{display:inline-flex;align-items:center;padding:.55rem 1.4rem;font-size:.65rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;background:var(--c-rose);color:var(--c-white);border-radius:4px;transition:all .3s;margin-left:1rem}
.header-cta:hover{background:var(--c-rose-dark);color:var(--c-white);transform:translateY(-1px)}
.site-header.scrolled .header-cta{color:var(--c-white)}

/* Burger */
.burger{display:none;flex-direction:column;gap:5px;padding:.5rem;z-index:1001}
.burger span{display:block;width:24px;height:1.5px;background:var(--c-white);transition:all .3s}
.site-header.scrolled .burger span{background:var(--c-black)}
.burger.active span:nth-child(1){transform:rotate(45deg) translate(5px,4px)}
.burger.active span:nth-child(2){opacity:0}
.burger.active span:nth-child(3){transform:rotate(-45deg) translate(5px,-4px)}

/* Overlay */
.nav-overlay{position:fixed;inset:0;background:rgba(0,0,0,.5);opacity:0;visibility:hidden;transition:all .3s;z-index:999}
.nav-overlay.visible{opacity:1;visibility:visible}

@media(max-width:1024px){
    .burger{display:flex}
    .header-cta{display:none}
    .main-nav{position:fixed;top:0;right:-100%;width:100%;max-width:380px;height:100vh;background:var(--c-white);flex-direction:column;justify-content:center;padding:3rem;transition:right .5s var(--ease);box-shadow:-10px 0 40px rgba(0,0,0,.1);z-index:1000}
    .main-nav.open{right:0}
    .main-nav a{color:var(--c-black);font-size:.85rem;padding:1rem 0;display:block}
    .main-nav a::after{left:0;right:0}
}

/* ===================================================================
   HERO
   =================================================================== */
.hero{position:relative;width:100%;min-height:100vh;display:flex;align-items:center;justify-content:center;overflow:hidden}
.hero__bg{position:absolute;inset:0;background-size:cover;background-position:center}
.hero__overlay{position:absolute;inset:0;background:linear-gradient(180deg,rgba(26,26,26,.35) 0%,rgba(26,26,26,.55) 50%,rgba(26,26,26,.8) 100%)}
.hero__body{position:relative;z-index:2;text-align:center;padding:0 2rem;max-width:900px}
.hero__line{width:1.5px;height:60px;background:var(--c-rose);margin:0 auto 2rem}
.hero__kicker{font-size:.75rem;font-weight:600;letter-spacing:.3em;text-transform:uppercase;color:var(--c-rose-light);margin-bottom:1rem}
.hero__title{font-style:italic;font-size:clamp(3rem,7vw,6rem);color:var(--c-white);letter-spacing:-.02em;line-height:1.05;margin-bottom:.5rem}
.hero__tagline{font-size:clamp(.7rem,1.2vw,.9rem);font-weight:300;letter-spacing:.2em;color:rgba(255,255,255,.8);margin-bottom:2.5rem}
.hero__btns{display:flex;gap:1rem;justify-content:center;flex-wrap:wrap}
.hero__scroll{position:absolute;bottom:2rem;left:50%;transform:translateX(-50%);z-index:2;display:flex;flex-direction:column;align-items:center;gap:.75rem;color:rgba(255,255,255,.45);font-size:.6rem;letter-spacing:.2em;text-transform:uppercase}
.hero__scroll-bar{width:1px;height:40px;background:rgba(255,255,255,.25);animation:pulse-bar 2s ease-in-out infinite}
@keyframes pulse-bar{0%,100%{opacity:.25;transform:scaleY(1)}50%{opacity:1;transform:scaleY(.6)}}

/* ===================================================================
   TV EXPERIENCE SECTION
   =================================================================== */
.tv-exp{padding:5rem 0;background:var(--c-black);color:var(--c-white);overflow:hidden}
.tv-exp__header{text-align:center;max-width:700px;margin:0 auto 4rem}
.tv-exp__header .eyebrow{color:var(--c-rose-light)}
.tv-exp__title{font-style:italic;font-size:clamp(1.8rem,3.5vw,2.8rem);line-height:1.2;margin-bottom:1.25rem;color:var(--c-white)}
.tv-exp__text{font-size:.95rem;color:rgba(255,255,255,.65);line-height:1.7;max-width:600px;margin:0 auto}

/* Network cards */
.tv-exp__networks{display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:3rem;max-width:900px;margin:0 auto 4rem}
.tv-network{text-align:center;padding:2.5rem 2rem;border-radius:var(--radius);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);transition:border-color .3s,background .3s}
.tv-network:hover{border-color:var(--c-rose);background:rgba(183,110,121,.06)}
.tv-network__logo-wrap{height:60px;display:flex;align-items:center;justify-content:center;margin-bottom:1.5rem}
.tv-network__logo{max-height:55px;max-width:200px;width:auto;object-fit:contain;filter:brightness(0) invert(1) opacity(.85);transition:filter .3s}
.tv-network:hover .tv-network__logo{filter:brightness(0) invert(1) opacity(1)}
.tv-network__name{font-family:var(--ff-heading);font-size:1.8rem;font-weight:700;color:var(--c-white);letter-spacing:.02em}
.tv-network__years{display:flex;align-items:baseline;justify-content:center;gap:.4rem;margin-bottom:1rem}
.tv-network__num{font-family:var(--ff-heading);font-size:3.5rem;font-weight:700;color:var(--c-rose);line-height:1}
.tv-network__label{font-size:1rem;font-weight:300;color:rgba(255,255,255,.6);text-transform:uppercase;letter-spacing:.15em}
.tv-network__desc{font-size:.85rem;color:rgba(255,255,255,.5);line-height:1.6;max-width:280px;margin:0 auto}

.tv-exp__divider{width:1px;height:120px;background:linear-gradient(180deg,transparent,var(--c-rose),transparent);margin:0 auto}

/* Stats row */
.tv-exp__stats{display:flex;justify-content:center;gap:4rem;padding-top:3rem;border-top:1px solid rgba(255,255,255,.08)}
.tv-stat{text-align:center}
.tv-stat__num{font-family:var(--ff-heading);font-size:2.5rem;font-weight:700;color:var(--c-rose);line-height:1;display:inline}
.tv-stat__label{display:block;font-size:.7rem;font-weight:500;letter-spacing:.1em;color:rgba(255,255,255,.5);text-transform:uppercase;margin-top:.5rem}

@media(max-width:768px){
    .tv-exp{padding:3.5rem 0}
    .tv-exp__networks{grid-template-columns:1fr;gap:2rem;max-width:400px}
    .tv-exp__divider{width:80px;height:1px;background:linear-gradient(90deg,transparent,var(--c-rose),transparent)}
    .tv-exp__stats{flex-direction:column;gap:2rem;align-items:center}
    .tv-network{padding:2rem 1.5rem}
    .tv-network__num{font-size:2.8rem}
}

/* ===================================================================
   SERVICE CARDS (Homepage grid)
   =================================================================== */
.svc-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1.5rem}
.svc-card{position:relative;border-radius:var(--radius);overflow:hidden;cursor:pointer;text-decoration:none;display:block}
.svc-card__img{aspect-ratio:3/4;overflow:hidden}
.svc-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.svc-card:hover .svc-card__img img{transform:scale(1.06)}
.svc-card__placeholder{width:100%;height:100%;background:var(--c-black);display:flex;align-items:center;justify-content:center;color:var(--c-rose)}
.svc-card__body{position:absolute;inset:0;background:linear-gradient(0deg,rgba(26,26,26,.85) 0%,rgba(26,26,26,.15) 60%,transparent 100%);display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;transition:background .35s}
.svc-card:hover .svc-card__body{background:linear-gradient(0deg,rgba(183,110,121,.92) 0%,rgba(183,110,121,.25) 60%,transparent 100%)}
.svc-card__title{font-family:var(--ff-heading);font-size:1.35rem;color:var(--c-white);margin-bottom:.4rem}
.svc-card__text{font-size:.82rem;color:rgba(255,255,255,.85);opacity:0;transform:translateY(8px);transition:all .35s .05s;margin-bottom:.6rem}
.svc-card:hover .svc-card__text{opacity:1;transform:translateY(0)}
.svc-card__more{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--c-white);opacity:0;transform:translateY(8px);transition:all .35s .1s}
.svc-card:hover .svc-card__more{opacity:1;transform:translateY(0)}
@media(max-width:1024px){.svc-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.svc-grid{grid-template-columns:1fr}.svc-card__img{aspect-ratio:4/3}}

/* ===================================================================
   ABOUT PREVIEW (Homepage)
   =================================================================== */
.about-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.about-img{position:relative}
.about-img img{width:100%;aspect-ratio:3/4;object-fit:cover;border-radius:var(--radius)}
.about-img__placeholder{width:100%;aspect-ratio:3/4;background:var(--c-cream);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--c-gray-light)}
.about-img__accent{position:absolute;top:-20px;right:-20px;width:100%;height:100%;border:2px solid var(--c-rose);border-radius:var(--radius);z-index:-1}
.about-body .eyebrow{display:block;font-size:.7rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--c-rose);margin-bottom:.5rem}
.about-body h2{text-align:left;margin-bottom:1.5rem}
.about-body p{font-size:1.05rem;line-height:1.8}
.about-stats{display:flex;gap:2rem;margin:2rem 0;padding-top:2rem;border-top:1px solid var(--c-gray-light)}
.stat{text-align:center}
.stat__num{display:block;font-family:var(--ff-heading);font-size:2.5rem;font-weight:700;color:var(--c-rose);line-height:1}
.stat__label{display:block;font-size:.7rem;color:var(--c-gray);margin-top:.25rem}
@media(max-width:768px){.about-grid{grid-template-columns:1fr;gap:2rem}.about-img__accent{display:none}.about-body h2{text-align:center}}

/* ===================================================================
   PORTFOLIO CARDS
   =================================================================== */
.folio-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.folio-card{display:block;text-decoration:none;border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 20px rgba(0,0,0,.06);transition:transform .3s,box-shadow .3s;background:var(--c-white)}
.folio-card:hover{transform:translateY(-5px);box-shadow:0 10px 35px rgba(0,0,0,.12)}
.folio-card__img{aspect-ratio:4/5;overflow:hidden}
.folio-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .6s var(--ease)}
.folio-card:hover .folio-card__img img{transform:scale(1.05)}
.folio-card__placeholder{width:100%;height:100%;background:var(--c-cream);display:flex;align-items:center;justify-content:center;color:var(--c-gray-light)}
.folio-card__info{padding:1.25rem 1.5rem}
.folio-card__cat{display:inline-block;font-size:.65rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--c-rose);margin-bottom:.25rem}
.folio-card__title{font-family:var(--ff-heading);font-size:1.15rem;color:var(--c-black);margin-bottom:.2rem}
.folio-card__date{font-size:.78rem;color:var(--c-gray)}
@media(max-width:768px){.folio-grid{grid-template-columns:repeat(2,1fr)}}
@media(max-width:480px){.folio-grid{grid-template-columns:1fr}}

/* ===================================================================
   GALLERY MASONRY
   =================================================================== */
.masonry{columns:3;column-gap:1rem}
.masonry--sm{columns:3}
.masonry-item{break-inside:avoid;margin-bottom:1rem;border-radius:var(--radius);overflow:hidden;position:relative;cursor:pointer}
.masonry-item img{width:100%;display:block;transition:transform .5s var(--ease)}
.masonry-item:hover img{transform:scale(1.04)}
.masonry-item__placeholder{width:100%;aspect-ratio:1;background:var(--c-cream);display:flex;flex-direction:column;align-items:center;justify-content:center;color:var(--c-gray-light);gap:.5rem;font-size:.75rem}
.masonry-item__hover{position:absolute;inset:0;background:rgba(183,110,121,.3);display:flex;align-items:center;justify-content:center;opacity:0;transition:opacity .3s}
.masonry-item:hover .masonry-item__hover{opacity:1}
.masonry-item__hover svg{color:var(--c-white)}

/* Filters */
.filters{display:flex;justify-content:center;gap:.5rem;margin-bottom:3rem;flex-wrap:wrap}
.filters button{padding:.5rem 1.25rem;font-size:.7rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--c-gray-dark);border:1px solid var(--c-gray);border-radius:50px;background:var(--c-white);transition:all .2s;cursor:pointer;box-shadow:0 1px 3px rgba(0,0,0,.06)}
.filters button:hover{background:var(--c-rose-light);border-color:var(--c-rose-light);color:var(--c-white)}
.filters button.active{background:var(--c-rose);border-color:var(--c-rose);color:var(--c-white);box-shadow:0 2px 8px rgba(183,110,121,.3)}
.gallery-item--hidden{display:none}
.gallery-item--reveal{animation:galleryFadeIn .4s ease forwards}
@keyframes galleryFadeIn{from{opacity:0;transform:translateY(16px)}to{opacity:1;transform:translateY(0)}}

/* Gallery Actions (Home + Page) */
.gallery-actions{display:flex;justify-content:center;align-items:center;gap:1rem;margin-top:2.5rem;flex-wrap:wrap}
.btn--outline-rose{padding:.75rem 2rem;font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--c-rose);border:2px solid var(--c-rose);border-radius:50px;background:transparent;transition:all .3s;cursor:pointer;text-decoration:none}
.btn--outline-rose:hover{background:var(--c-rose);color:var(--c-white)}
.gallery-actions__count{font-weight:400;opacity:.7;margin-left:.25rem}

@media(max-width:768px){.masonry,.masonry--sm{columns:2}}
@media(max-width:480px){.masonry,.masonry--sm{columns:1}}

/* ─── Gallery Page (Portfolio Style) ─────────────────────── */
.gallery-hero{position:relative;min-height:40vh;display:flex;align-items:center;justify-content:center;text-align:center;background:var(--c-dark);overflow:hidden}
.gallery-hero__bg{position:absolute;inset:0;background:linear-gradient(135deg,rgba(183,110,121,.15) 0%,rgba(20,20,20,.95) 50%,rgba(183,110,121,.1) 100%)}
.gallery-hero__body{position:relative;z-index:1;padding:4rem 2rem}
.gallery-hero__title{font-family:var(--ff-heading);font-size:clamp(2.5rem,6vw,4rem);color:var(--c-white);margin:.5rem 0}
.gallery-hero__sub{color:rgba(255,255,255,.6);font-size:1rem;max-width:500px;margin:.75rem auto 0}

/* Gallery Filters (page) — floating pill bar */
.gallery-filters-wrap{position:sticky;top:calc(var(--header-h) + .75rem);z-index:90;display:flex;justify-content:center;padding:1rem 0;transition:top .35s var(--ease)}
.gallery-filters-wrap.filters-top{top:1rem}
.gallery-filters{display:inline-flex;gap:.4rem;padding:.5rem .75rem;flex-wrap:wrap;justify-content:center;background:rgba(255,255,255,.92);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-radius:50px;border:1px solid var(--c-gray-light);box-shadow:0 4px 20px rgba(0,0,0,.08)}
.gallery-filters button{padding:.45rem 1.25rem;font-size:.68rem;font-weight:500;letter-spacing:.1em;text-transform:uppercase;color:var(--c-gray-dark);border:1px solid transparent;border-radius:50px;background:transparent;transition:all .25s;cursor:pointer}
.gallery-filters button:hover{background:rgba(183,110,121,.08);color:var(--c-rose-dark)}
.gallery-filters button.active{background:var(--c-rose);color:var(--c-white)}
.gallery-filters__count{font-size:.6rem;opacity:.5;margin-left:.15rem}
.gallery-sec{padding-top:0;background:var(--c-white);min-height:60vh}
.wrap--wide{max-width:1400px}

/* Gallery Grid — Pinterest-style columns */
.gallery-grid{columns:4;column-gap:.75rem;padding-top:2rem}
.gallery-grid__item{break-inside:avoid;margin-bottom:.75rem;border-radius:var(--radius);overflow:hidden;position:relative;cursor:pointer}
.gallery-grid__item img{width:100%;display:block;transition:transform .6s var(--ease),filter .4s}
.gallery-grid__item:hover img{transform:scale(1.05)}
.gallery-grid__overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(0,0,0,.6) 0%,transparent 50%);display:flex;flex-direction:column;align-items:center;justify-content:flex-end;padding:1.5rem;opacity:0;transition:opacity .3s}
.gallery-grid__item:hover .gallery-grid__overlay{opacity:1}
.gallery-grid__cat{font-size:.65rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--c-rose-light);margin-bottom:.5rem}
.gallery-grid__overlay svg{color:rgba(255,255,255,.8)}

.btn--lg{padding:1rem 2.5rem;font-size:.8rem}

@media(max-width:1200px){.gallery-grid{columns:3}}
@media(max-width:768px){
    .gallery-grid{columns:2;column-gap:.5rem}
    .gallery-grid__item{margin-bottom:.5rem}
    .gallery-filters{gap:.35rem;padding:.4rem .6rem;overflow-x:auto;flex-wrap:nowrap;justify-content:flex-start;-webkit-overflow-scrolling:touch;border-radius:40px}
    .gallery-filters button{white-space:nowrap;flex-shrink:0;padding:.4rem 1rem;font-size:.65rem}
    .gallery-filters button{white-space:nowrap;flex-shrink:0}
    .gallery-hero{min-height:30vh}
}
@media(max-width:480px){
    .gallery-grid{columns:2;column-gap:.4rem}
    .gallery-grid__item{margin-bottom:.4rem;border-radius:4px}
}

/* ===================================================================
   TESTIMONIALS
   =================================================================== */
.testi-slider{position:relative;max-width:800px;margin:0 auto;min-height:260px}
.testi-track{position:relative}
.testi-card{text-align:center;padding:0 2rem;position:absolute;width:100%;opacity:0;visibility:hidden;transform:translateX(30px);transition:all .6s var(--ease)}
.testi-card.active{position:relative;opacity:1;visibility:visible;transform:translateX(0)}
.testi-card__icon{color:var(--c-rose);opacity:.2;margin-bottom:1rem}
.testi-card__quote{font-family:var(--ff-heading);font-size:clamp(1.1rem,2vw,1.4rem);font-style:italic;color:var(--c-black);line-height:1.8;margin-bottom:2rem}
.testi-card__name{font-weight:600;font-size:.85rem;color:var(--c-black);letter-spacing:.05em}
.testi-card__role{font-size:.75rem;color:var(--c-gray);margin-top:.2rem}
.testi-dots{display:flex;justify-content:center;gap:.5rem;margin-top:2rem}
.testi-dots button{width:8px;height:8px;border-radius:50%;background:var(--c-gray-light);padding:0;transition:all .2s}
.testi-dots button.active{background:var(--c-rose);transform:scale(1.3)}

/* ===================================================================
   VIP VIDEO TESTIMONIALS
   =================================================================== */
.vip-section{padding:6rem 0;background:var(--c-black);overflow:hidden}
.vip-section .sec-header{margin-bottom:3rem}
.vip-section .eyebrow{color:var(--c-rose-light)}

/* Mosaic grid */
.vip-mosaic{display:grid;grid-template-columns:repeat(4,1fr);gap:1.25rem}
.vip-card{border-radius:var(--radius);background:rgba(255,255,255,.04);border:1px solid rgba(255,255,255,.08);transition:border-color .3s,transform .3s}
.vip-card:hover{border-color:var(--c-rose);transform:translateY(-4px)}

/* Video container — 9:16 vertical selfie */
.vip-card__video{position:relative;aspect-ratio:9/16;overflow:hidden;background:#000;cursor:pointer;border-radius:var(--radius) var(--radius) 0 0}
.vip-card__player{width:100%;height:100%;object-fit:cover}
.vip-card__poster{width:100%;height:100%;object-fit:cover}
.vip-card__poster-ph{width:100%;height:100%;background:linear-gradient(135deg,#1a1a1a,#2a2a2a)}
.vip-card__embed{width:100%;height:100%;position:relative}
.vip-card__embed iframe{width:100%;height:100%;border:0}
.vip-card__play{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:transparent;color:var(--c-white);transition:background .3s;z-index:2;border:none;cursor:pointer}
.vip-card__play svg{filter:drop-shadow(0 2px 12px rgba(0,0,0,.5));transition:transform .3s;opacity:.85}
.vip-card:hover .vip-card__play svg{transform:scale(1.1);opacity:1}
.vip-card__play.playing{opacity:0;pointer-events:none}
.vip-card.is-playing .vip-card__overlay{opacity:0;transition:opacity .3s}
/* Name/role overlay at bottom of video */
.vip-card__overlay{position:absolute;bottom:0;left:0;right:0;padding:3rem 1.25rem 1.1rem;background:linear-gradient(to top,rgba(0,0,0,.9) 0%,rgba(0,0,0,.4) 60%,transparent 100%);z-index:1;pointer-events:none}
.vip-card__name{font-size:1rem;color:var(--c-white);margin-bottom:.15rem;font-weight:600}
.vip-card__role{display:block;font-size:.7rem;font-weight:500;letter-spacing:.08em;color:var(--c-rose-light);text-transform:uppercase}
/* Quote strip */
.vip-card__quote{margin:0;padding:.75rem 1.1rem 1rem;font-size:.78rem;font-style:italic;color:rgba(255,255,255,.5);line-height:1.5}
/* Hidden cards + load more */
.vip-card--hidden{display:none}
.vip-card--reveal{display:block;animation:vipFadeIn .5s ease forwards}
@keyframes vipFadeIn{from{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}
.vip-actions{display:flex;align-items:center;justify-content:center;gap:1rem;margin-top:2.5rem;flex-wrap:wrap}
.vip-actions__count{font-weight:400;opacity:.6;margin-left:.3rem}
.btn--outline-white{background:transparent;color:var(--c-white);border:1px solid rgba(255,255,255,.3);padding:.85rem 2rem;border-radius:var(--radius);font-size:.8rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:all .3s}
.btn--outline-white:hover{background:rgba(255,255,255,.1);border-color:rgba(255,255,255,.6)}

/* Full page grid */
.vip-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(300px,1fr));gap:2rem}
.vip-full{border-radius:var(--radius);overflow:hidden;background:var(--c-white);box-shadow:0 4px 30px rgba(0,0,0,.07);transition:transform .3s,box-shadow .3s}
.vip-full:hover{transform:translateY(-4px);box-shadow:0 8px 40px rgba(0,0,0,.12)}
.vip-full__video{position:relative;aspect-ratio:9/16;overflow:hidden;background:#000;cursor:pointer}
.vip-full__body{padding:1.5rem 2rem 2rem}
.vip-full__name{font-size:1.25rem;margin-bottom:.25rem}
.vip-full__role{display:block;font-size:.75rem;font-weight:500;letter-spacing:.08em;color:var(--c-rose);text-transform:uppercase;margin-bottom:1rem}
.vip-full__quote{font-family:var(--ff-heading);font-style:italic;font-size:1rem;color:var(--c-gray);line-height:1.7;border-left:2px solid var(--c-rose);padding-left:1rem;margin:0 0 1rem}
.vip-full__excerpt{font-size:.88rem;color:var(--c-gray);line-height:1.7}

@media(max-width:1024px){.vip-mosaic{grid-template-columns:repeat(3,1fr)}}
@media(max-width:768px){
.vip-mosaic{grid-template-columns:repeat(2,1fr);gap:1rem}
.vip-card__overlay{padding:1.5rem 1rem 1rem}
.vip-card__name{font-size:.88rem}
.vip-card__role{font-size:.65rem}
.vip-card__quote{font-size:.72rem;padding:.7rem 1rem 1rem}
.vip-grid{grid-template-columns:1fr;max-width:400px;margin:0 auto}
}

/* ===================================================================
   CTA BANNER
   =================================================================== */
.cta-banner{position:relative;padding:7rem 0;background:var(--c-black);text-align:center;overflow:hidden}
.cta-banner__bg{position:absolute;inset:0;background-size:cover;background-position:center;opacity:.25}
.cta-banner__body{position:relative;z-index:2;max-width:var(--max-w);margin:0 auto;padding:0 2rem}
.cta-banner__title{font-style:italic;font-size:clamp(2rem,4vw,3.5rem);color:var(--c-white);margin-bottom:1rem}
.cta-banner__text{font-size:1.05rem;color:rgba(255,255,255,.7);max-width:500px;margin:0 auto 2rem}

/* ===================================================================
   PAGE HERO (Interior pages)
   =================================================================== */
.page-hero{position:relative;min-height:50vh;display:flex;align-items:center;justify-content:center;text-align:center;background:var(--c-black);padding-top:var(--header-h)}
.page-hero__body{position:relative;z-index:2;padding:4rem 2rem}
.page-hero .eyebrow{display:block;font-size:.7rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--c-rose-light);margin-bottom:.5rem}
.page-hero__title{font-size:clamp(2.5rem,5vw,4rem);color:var(--c-white);margin-bottom:1rem}
.page-hero__sub{font-size:1.05rem;color:rgba(255,255,255,.8);max-width:500px;margin:0 auto}

/* ===================================================================
   SERVICE DETAIL (Servicios page)
   =================================================================== */
.svc-detail{display:grid;grid-template-columns:1fr 1fr;margin-bottom:4rem;border-radius:var(--radius);overflow:hidden;box-shadow:0 4px 30px rgba(0,0,0,.07)}
.svc-detail--flip{direction:rtl}
.svc-detail--flip>*{direction:ltr}
.svc-detail__img{min-height:400px;overflow:hidden}
.svc-detail__img img{width:100%;height:100%;object-fit:cover}
.svc-detail__img-ph{width:100%;height:100%;min-height:400px;background:var(--c-cream);display:flex;align-items:center;justify-content:center;color:var(--c-gray-light)}
.svc-detail__body{padding:3rem;display:flex;flex-direction:column;justify-content:center}
.svc-detail__num{font-family:var(--ff-heading);font-size:3rem;font-weight:700;color:var(--c-rose);opacity:.25;line-height:1;margin-bottom:1rem}
.svc-detail__title{margin-bottom:1rem}
.svc-detail__desc{line-height:1.8;margin-bottom:1.5rem}
.svc-detail__list{margin-bottom:2rem}
.svc-detail__list li{display:flex;align-items:center;gap:.75rem;padding:.45rem 0;font-size:.9rem;color:var(--c-gray)}
.svc-detail__list li::before{content:'';width:6px;height:6px;border-radius:50%;background:var(--c-rose);flex-shrink:0}
@media(max-width:768px){.svc-detail{grid-template-columns:1fr}.svc-detail--flip{direction:ltr}.svc-detail__img{min-height:250px}.svc-detail__img-ph{min-height:250px}}

/* SERVICE SINGLE PAGE */
.wrap--narrow{max-width:900px}
.svc-single__intro{margin-bottom:1rem}
.svc-single__hero-img{border-radius:var(--radius);overflow:hidden;margin-bottom:2.5rem}
.svc-single__hero-img img{width:100%;height:auto;display:block;max-height:500px;object-fit:cover}
.svc-single__lead h2{font-family:var(--ff-heading);font-size:clamp(1.5rem,3vw,2rem);color:var(--c-black);margin-bottom:1.25rem}
.svc-single__lead p{font-size:1rem;line-height:1.85;color:var(--c-gray);margin-bottom:1rem}

/* Steps */
.svc-steps{display:grid;grid-template-columns:repeat(2,1fr);gap:2rem}
.svc-step{padding:2rem;background:var(--c-white);border-radius:var(--radius);border:1px solid var(--c-gray-light);transition:box-shadow .3s,transform .3s}
.svc-step:hover{box-shadow:0 8px 30px rgba(0,0,0,.06);transform:translateY(-3px)}
.svc-step__num{font-family:var(--ff-heading);font-size:2.5rem;font-weight:700;color:var(--c-rose);opacity:.2;line-height:1;display:block;margin-bottom:.75rem}
.svc-step__title{font-family:var(--ff-heading);font-size:1.15rem;color:var(--c-black);margin-bottom:.5rem}
.svc-step__text{font-size:.88rem;line-height:1.75;color:var(--c-gray)}
@media(max-width:768px){.svc-steps{grid-template-columns:1fr}.svc-step{padding:1.5rem}}

/* Features grid */
.svc-features{display:grid;grid-template-columns:repeat(3,1fr);gap:2rem}
.svc-feature{text-align:center;padding:2rem 1.5rem}
.svc-feature__icon{display:inline-flex;align-items:center;justify-content:center;width:60px;height:60px;border-radius:50%;background:rgba(183,110,121,.08);color:var(--c-rose);margin-bottom:1.25rem}
.svc-feature h3{font-family:var(--ff-heading);font-size:1rem;color:var(--c-black);margin-bottom:.5rem}
.svc-feature p{font-size:.85rem;line-height:1.7;color:var(--c-gray)}
@media(max-width:1024px){.svc-features{grid-template-columns:repeat(2,1fr)}}
@media(max-width:600px){.svc-features{grid-template-columns:1fr}.svc-feature{padding:1.5rem 1rem}}

.svc-guests__header{display:grid;grid-template-columns:1fr 1.2fr;gap:3rem;align-items:center;margin-bottom:3.5rem}
.svc-guests__image{position:relative;border-radius:var(--radius);overflow:hidden;box-shadow:0 12px 40px rgba(0,0,0,.12)}
.svc-guests__image img{width:100%;height:100%;display:block;object-fit:cover;aspect-ratio:4/5;transition:transform .8s var(--ease)}
.svc-guests__image:hover img{transform:scale(1.04)}
.svc-guests__image::after{content:'';position:absolute;inset:0;background:linear-gradient(135deg,transparent 60%,rgba(183,110,121,.08));pointer-events:none}
.svc-guests__intro .eyebrow{display:block;font-size:.7rem;font-weight:600;letter-spacing:.25em;text-transform:uppercase;color:var(--c-rose);margin-bottom:.75rem}
.svc-guests__intro h2{font-family:var(--ff-heading);font-size:clamp(1.6rem,3vw,2.2rem);color:var(--c-black);margin-bottom:1rem;line-height:1.2}
.svc-guests__intro p{font-size:1rem;line-height:1.8;color:var(--c-gray);margin:0}

@media(max-width:768px){
    .svc-guests__header{grid-template-columns:1fr;gap:2rem;margin-bottom:2.5rem}
    .svc-guests__image img{aspect-ratio:16/12}
    .svc-guests__intro{text-align:center}
}

.svc-guests__cta{text-align:center;margin-top:2rem;padding:2rem 1.5rem;border-top:1px solid var(--c-gray-light)}
.svc-guests__cta p{font-size:.95rem;color:var(--c-gray);font-style:italic;margin-bottom:1.25rem;max-width:500px;margin-left:auto;margin-right:auto}

/* ===================================================================
   ABOUT INTRO (Sobre Mí page)
   =================================================================== */
.about-intro{display:grid;grid-template-columns:1fr 1fr;gap:4rem;align-items:center}
.about-intro__img img{width:100%;border-radius:var(--radius)}
.about-intro__img-ph{width:100%;aspect-ratio:3/4;background:var(--c-cream);border-radius:var(--radius);display:flex;align-items:center;justify-content:center;color:var(--c-gray-light)}
.about-intro__body h2{margin-bottom:1rem}
.about-intro__lead{font-size:1.15rem;font-weight:500;color:var(--c-black);line-height:1.8;margin-bottom:1.5rem}
@media(max-width:768px){.about-intro{grid-template-columns:1fr}}

/* ===================================================================
   TIMELINE
   =================================================================== */
.timeline{position:relative;max-width:800px;margin:0 auto;padding:2rem 0}
.timeline::before{content:'';position:absolute;top:0;left:50%;width:1px;height:100%;background:var(--c-gray-light);transform:translateX(-50%)}
.tl-item{position:relative;width:50%;padding-bottom:3rem}
.tl-item:nth-child(odd){padding-right:3rem;text-align:right}
.tl-item:nth-child(even){left:50%;padding-left:3rem}
.tl-dot{position:absolute;top:0;width:12px;height:12px;border-radius:50%;background:var(--c-rose);border:3px solid var(--c-white);box-shadow:0 0 0 2px var(--c-rose)}
.tl-item:nth-child(odd) .tl-dot{right:-6px}
.tl-item:nth-child(even) .tl-dot{left:-6px}
.tl-year{font-family:var(--ff-heading);font-size:1.5rem;font-weight:700;color:var(--c-rose);margin-bottom:.25rem;display:block}
.tl-title{font-size:1.1rem;font-weight:600;color:var(--c-black);margin-bottom:.5rem}
.tl-text{font-size:.88rem;color:var(--c-gray);line-height:1.7}
@media(max-width:768px){
    .timeline::before{left:20px}
    .tl-item{width:100%;left:0!important;text-align:left!important;padding-left:3rem!important;padding-right:0!important}
    .tl-dot{left:14px!important;right:auto!important}
}

/* ===================================================================
   PHILOSOPHY QUOTE
   =================================================================== */
.philosophy{max-width:800px;margin:0 auto;text-align:center;padding:3rem 0}
.philosophy blockquote{border:none;margin:0;padding:0}
.philosophy blockquote p{font-family:var(--ff-heading);font-size:clamp(1.3rem,2.5vw,1.8rem);font-style:italic;color:var(--c-black);line-height:1.8;margin-bottom:2rem}
.philosophy cite{font-style:normal;font-weight:600;font-size:.85rem;letter-spacing:.1em;color:var(--c-rose)}

/* ===================================================================
   CONTACT
   =================================================================== */
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:4rem}
.contact-info h2{font-size:1.5rem;margin-bottom:1rem}
.contact-info>p{margin-bottom:2rem}
.ci-item{display:flex;gap:1rem;margin-bottom:1.5rem}
.ci-icon{width:48px;height:48px;border-radius:50%;background:var(--c-cream);display:flex;align-items:center;justify-content:center;flex-shrink:0;color:var(--c-rose)}
.ci-item h4{font-family:var(--ff-body);font-size:.92rem;font-weight:600;color:var(--c-black);margin-bottom:.2rem}
.ci-item p,.ci-item a{font-size:.88rem;color:var(--c-gray);margin-bottom:0}
.ci-item a:hover{color:var(--c-rose)}
.ci-social{display:flex;gap:.75rem;margin-top:1.5rem}
.ci-social a{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--c-gray-light);color:var(--c-gray);transition:all .2s}
.ci-social a:hover{background:var(--c-rose);border-color:var(--c-rose);color:var(--c-white)}
.contact-form h2{font-size:1.5rem;margin-bottom:1.5rem}
.contact-form form{display:flex;flex-direction:column;gap:1rem}
.field{display:flex;flex-direction:column;gap:.4rem}
.field label{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--c-black)}
.field input,.field textarea,.field select{width:100%;padding:.85rem 1rem;font-family:var(--ff-body);font-size:.92rem;border:1px solid var(--c-gray-light);border-radius:4px;background:var(--c-cream);transition:border-color .2s;color:var(--c-black)}
.field input:focus,.field textarea:focus,.field select:focus{outline:none;border-color:var(--c-rose)}
.field textarea{min-height:140px;resize:vertical}
.field select{appearance:none;background-image:url("data:image/svg+xml,%3Csvg width='10' height='6' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M1 1l4 4 4-4' stroke='%236b6b6b' stroke-width='1.5' fill='none'/%3E%3C/svg%3E");background-repeat:no-repeat;background-position:right 1rem center;padding-right:2.5rem}
.form-note{font-size:.72rem;color:var(--c-gray);margin-top:.5rem}

/* CF7 compat */
.wpcf7-form{display:flex;flex-direction:column;gap:1rem}
.wpcf7-form input[type="text"],.wpcf7-form input[type="email"],.wpcf7-form input[type="tel"],.wpcf7-form textarea{width:100%;padding:.85rem 1rem;font-family:var(--ff-body);font-size:.92rem;border:1px solid var(--c-gray-light);border-radius:4px;background:var(--c-cream);transition:border-color .2s}
.wpcf7-form input:focus,.wpcf7-form textarea:focus{outline:none;border-color:var(--c-rose)}
@media(max-width:768px){.contact-grid{grid-template-columns:1fr}}

/* ===================================================================
   SINGLE PORTFOLIO
   =================================================================== */
.folio-meta{display:flex;justify-content:center;gap:2rem;margin-top:1rem;font-size:.85rem;color:rgba(255,255,255,.7)}
.folio-meta span{display:flex;align-items:center;gap:.5rem}
.folio-featured{max-width:var(--max-w);margin:0 auto;padding:0 2rem}
.folio-featured__inner{border-radius:var(--radius);overflow:hidden;margin-top:-4rem;position:relative;z-index:3;box-shadow:0 10px 50px rgba(0,0,0,.2)}
.folio-featured__inner img{width:100%;display:block}

/* Portfolio Nav */
.folio-nav{max-width:var(--max-w);margin:0 auto;padding:2rem;border-top:1px solid var(--c-gray-light)}
.folio-nav__inner{display:flex;justify-content:space-between;align-items:center}
.folio-nav__link{display:flex;flex-direction:column;gap:.2rem;text-decoration:none;max-width:240px}
.folio-nav__link--next{text-align:right}
.folio-nav__label{font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--c-gray);transition:color .2s}
.folio-nav__title{font-family:var(--ff-heading);font-size:1rem;color:var(--c-black);transition:color .2s}
.folio-nav__link:hover .folio-nav__label,.folio-nav__link:hover .folio-nav__title{color:var(--c-rose)}
.folio-nav__back{width:42px;height:42px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid var(--c-gray-light);color:var(--c-gray);transition:all .2s}
.folio-nav__back:hover{background:var(--c-rose);border-color:var(--c-rose);color:var(--c-white)}

/* ===================================================================
   BLOG / ARCHIVE
   =================================================================== */
.posts-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem}
.post-card{border-radius:var(--radius);overflow:hidden;box-shadow:0 2px 20px rgba(0,0,0,.06);transition:transform .3s,box-shadow .3s;background:var(--c-white)}
.post-card:hover{transform:translateY(-4px);box-shadow:0 8px 30px rgba(0,0,0,.1)}
.post-card__img{display:block;aspect-ratio:16/10;overflow:hidden}
.post-card__img img{width:100%;height:100%;object-fit:cover;transition:transform .5s var(--ease)}
.post-card:hover .post-card__img img{transform:scale(1.05)}
.post-card__body{padding:1.5rem}
.post-card__date{display:block;font-size:.68rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--c-rose);margin-bottom:.5rem}
.post-card__title{font-size:1.1rem;margin-bottom:.5rem}
.post-card__title a{color:var(--c-black)}
.post-card__title a:hover{color:var(--c-rose)}
.post-card__excerpt{font-size:.88rem;color:var(--c-gray);margin-bottom:1rem}
.post-card__more{font-size:.7rem;font-weight:600;letter-spacing:.1em;text-transform:uppercase;color:var(--c-rose)}
@media(max-width:768px){.posts-grid{grid-template-columns:1fr}}

/* ===================================================================
   ENTRY CONTENT (Single pages)
   =================================================================== */
.entry-content{font-size:1.05rem;line-height:1.85}
.entry-content h2{margin-top:3rem;margin-bottom:1rem}
.entry-content h3{margin-top:2rem;margin-bottom:1rem}
.entry-content p{margin-bottom:1rem}
.entry-content ul,.entry-content ol{margin-bottom:1rem;padding-left:1.5rem;list-style:disc}
.entry-content img{border-radius:var(--radius);margin:2rem 0}
.entry-content blockquote{border-left:3px solid var(--c-rose);padding:1rem 2rem;margin:2rem 0;font-style:italic;color:var(--c-gray)}

/* ===================================================================
   404
   =================================================================== */
.err404{min-height:80vh;display:flex;align-items:center;justify-content:center;text-align:center;padding:4rem 2rem}
.err404__inner{max-width:500px}
.err404__num{font-family:var(--ff-heading);font-size:clamp(6rem,15vw,12rem);font-weight:700;color:var(--c-cream);line-height:1}
.err404__title{margin-bottom:1rem}
.err404__text{max-width:400px;margin:0 auto 2rem}

/* ===================================================================
   LEGAL PAGES
   =================================================================== */
.page-hero--sm{min-height:30vh}
.legal-content{line-height:1.85;color:var(--c-gray)}
.legal-content h2{font-family:var(--ff-heading);font-size:1.3rem;color:var(--c-black);margin:2.5rem 0 .75rem}
.legal-content h3{font-size:1rem;color:var(--c-black);margin:1.5rem 0 .5rem}
.legal-content p{margin-bottom:1rem;font-size:.92rem}
.legal-content ul{margin:0 0 1.5rem 1.25rem;font-size:.92rem}
.legal-content ul li{margin-bottom:.4rem}
.legal-content a{color:var(--c-rose);text-decoration:underline}
.legal-content a:hover{color:var(--c-rose-dark)}
.legal-content__update{margin-top:3rem;padding-top:1.5rem;border-top:1px solid var(--c-gray-light);font-size:.85rem;color:var(--c-gray)}
.legal-table{width:100%;border-collapse:collapse;margin:1rem 0 1.5rem;font-size:.85rem}
.legal-table th,.legal-table td{border:1px solid var(--c-gray-light);padding:.6rem .75rem;text-align:left}
.legal-table th{background:var(--c-cream);font-weight:600;color:var(--c-black)}

/* ===================================================================
   COOKIE BANNER
   =================================================================== */
.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:9999;transform:translateY(100%);transition:transform .4s var(--ease);background:var(--c-black);border-top:1px solid rgba(255,255,255,.08)}
.cookie-banner--visible{transform:translateY(0)}
.cookie-banner__body{max-width:1200px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;gap:2rem;padding:1.25rem 2rem}
.cookie-banner__text{font-size:.82rem;color:rgba(255,255,255,.7);line-height:1.6;margin:0;flex:1}
.cookie-banner__text a{color:var(--c-rose-light);text-decoration:underline}
.cookie-banner__text a:hover{color:var(--c-white)}
.cookie-banner__btns{display:flex;gap:.5rem;flex-shrink:0}
.cookie-banner__btn{padding:.55rem 1.25rem;font-size:.7rem;font-weight:600;letter-spacing:.08em;text-transform:uppercase;border-radius:50px;cursor:pointer;transition:all .2s;border:none}
.cookie-banner__btn--accept{background:var(--c-rose);color:var(--c-white)}
.cookie-banner__btn--accept:hover{background:var(--c-rose-dark)}
.cookie-banner__btn--reject{background:transparent;color:rgba(255,255,255,.5);border:1px solid rgba(255,255,255,.2)}
.cookie-banner__btn--reject:hover{color:var(--c-white);border-color:rgba(255,255,255,.4)}

@media(max-width:768px){
    .cookie-banner__body{flex-direction:column;gap:1rem;padding:1.25rem 1.5rem;text-align:center}
    .cookie-banner__btns{width:100%;justify-content:center}
}

/* ===================================================================
   LIGHTBOX
   =================================================================== */
.lightbox{position:fixed;inset:0;background:rgba(0,0,0,.95);z-index:10000;display:flex;align-items:center;justify-content:center;opacity:0;visibility:hidden;transition:all .3s}
.lightbox.open{opacity:1;visibility:visible}
.lightbox__wrap{display:flex;align-items:center;justify-content:center;width:100%;height:100%}
.lightbox__img{max-width:90vw;max-height:90vh;object-fit:contain;border-radius:4px;transition:opacity .3s}
.lightbox__close{position:absolute;top:1.5rem;right:1.5rem;width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--c-white);font-size:2rem;border-radius:50%;transition:background .2s;z-index:10001}
.lightbox__close:hover{background:rgba(255,255,255,.1)}
.lightbox__prev,.lightbox__next{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;display:flex;align-items:center;justify-content:center;color:var(--c-white);border-radius:50%;transition:background .2s;z-index:10001}
.lightbox__prev:hover,.lightbox__next:hover{background:rgba(255,255,255,.1)}
.lightbox__prev{left:1.5rem}
.lightbox__next{right:1.5rem}
.lightbox__count{position:absolute;bottom:1.5rem;left:50%;transform:translateX(-50%);color:rgba(255,255,255,.5);font-size:.8rem;letter-spacing:.1em}

/* ===================================================================
   INSTAGRAM SECTION
   =================================================================== */
.ig-section{position:relative;overflow:hidden}
.ig-banner{position:relative;padding:5rem 2rem;text-align:center;background:var(--c-black);overflow:hidden}
.ig-banner__glow{position:absolute;inset:0;background:radial-gradient(ellipse at 50% 50%,rgba(183,110,121,.15) 0%,transparent 70%);pointer-events:none}
.ig-banner__content{position:relative;z-index:1;max-width:500px;margin:0 auto}
.ig-banner__icon{color:var(--c-rose-light);margin-bottom:1.25rem;animation:igPulse 3s ease-in-out infinite}
@keyframes igPulse{0%,100%{transform:scale(1);opacity:1}50%{transform:scale(1.08);opacity:.85}}
.ig-banner__handle{font-family:var(--ff-heading);font-size:clamp(1.6rem,4vw,2.2rem);color:var(--c-white);margin:0 0 .75rem;letter-spacing:.02em}
.ig-banner__text{color:rgba(255,255,255,.55);font-size:.95rem;line-height:1.6;margin:0 0 2rem}
.ig-banner__btn{display:inline-flex;align-items:center;gap:.5rem;padding:.85rem 2.25rem;font-size:.72rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;color:var(--c-white);border:2px solid var(--c-rose);border-radius:50px;text-decoration:none;transition:all .3s;background:transparent}
.ig-banner__btn:hover{background:var(--c-rose);color:var(--c-white);transform:translateY(-2px);box-shadow:0 8px 24px rgba(183,110,121,.3)}
.ig-banner__btn svg{transition:transform .3s}
.ig-banner__btn:hover svg{transform:translateX(4px)}

@media(max-width:768px){
    .ig-banner{padding:3.5rem 1.5rem}
    .ig-banner__text{font-size:.85rem}
}

/* ===================================================================
   FOOTER
   =================================================================== */
.site-footer{background:var(--c-black);color:rgba(255,255,255,.7);padding:5rem 0 2rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:3rem;margin-bottom:3rem}
.footer-logo{display:inline-flex;flex-direction:column;text-decoration:none;line-height:1;margin-bottom:1rem}
.footer-logo .logo__img{max-height:50px;width:auto;object-fit:contain}
.footer-logo .logo__name{font-size:1.8rem;color:var(--c-white)}
.footer-logo .logo__sub{color:rgba(255,255,255,.5)}
.footer-desc{font-size:.88rem;line-height:1.8;color:rgba(255,255,255,.6);margin-bottom:1rem}
.footer-social{display:flex;gap:.75rem}
.footer-social a{width:38px;height:38px;display:flex;align-items:center;justify-content:center;border-radius:50%;border:1px solid rgba(255,255,255,.15);color:rgba(255,255,255,.6);transition:all .2s}
.footer-social a:hover{background:var(--c-rose);border-color:var(--c-rose);color:var(--c-white)}
.footer-social a svg{width:16px;height:16px}
.footer-heading{font-family:var(--ff-body);font-size:.7rem;font-weight:600;letter-spacing:.15em;text-transform:uppercase;color:var(--c-white);margin-bottom:1rem}
.footer-links a{display:block;color:rgba(255,255,255,.55);font-size:.88rem;padding:.25rem 0;transition:color .2s}
.footer-links a:hover{color:var(--c-rose)}
.footer-contact li{display:flex;align-items:flex-start;gap:.75rem;margin-bottom:.75rem;font-size:.88rem;color:rgba(255,255,255,.55)}
.footer-contact li svg{flex-shrink:0;margin-top:3px;color:var(--c-rose)}
.footer-contact a{color:rgba(255,255,255,.55)}
.footer-contact a:hover{color:var(--c-rose)}
.footer-bottom{border-top:1px solid rgba(255,255,255,.08);padding-top:2rem;display:flex;justify-content:space-between;align-items:center;font-size:.78rem;color:rgba(255,255,255,.35)}
.footer-bottom p{color:rgba(255,255,255,.35);margin:0}
.footer-legal{display:flex;gap:1.5rem}
.footer-legal a{color:rgba(255,255,255,.35)}
.footer-legal a:hover{color:var(--c-rose)}
@media(max-width:768px){.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}.footer-bottom{flex-direction:column;gap:.5rem;text-align:center}}
@media(max-width:480px){.footer-grid{grid-template-columns:1fr}}

/* ===================================================================
   PAGINATION
   =================================================================== */
.pagination{display:flex;justify-content:center;gap:.5rem;margin-top:3rem}
.pagination .page-numbers{display:inline-flex;align-items:center;justify-content:center;min-width:42px;height:42px;border-radius:50%;font-size:.85rem;font-weight:500;color:var(--c-gray);border:1px solid var(--c-gray-light);transition:all .2s}
.pagination .page-numbers:hover,.pagination .page-numbers.current{background:var(--c-rose);border-color:var(--c-rose);color:var(--c-white)}
.pagination .prev,.pagination .next{width:auto;padding:0 1rem;border-radius:4px}

/* ===================================================================
   WP CORE
   =================================================================== */
.alignleft{float:left;margin-right:2rem;margin-bottom:1rem}
.alignright{float:right;margin-left:2rem;margin-bottom:1rem}
.wp-caption{max-width:100%}
.wp-caption-text{font-size:.85rem;color:var(--c-gray);text-align:center;margin-top:.5rem}
.screen-reader-text{clip:rect(1px,1px,1px,1px);position:absolute!important;height:1px;width:1px;overflow:hidden}
.screen-reader-text:focus{background:var(--c-cream);border-radius:4px;box-shadow:0 0 2px 2px rgba(0,0,0,.6);clip:auto!important;color:var(--c-black);display:block;font-size:.875rem;font-weight:700;height:auto;left:5px;line-height:normal;padding:15px 23px 14px;text-decoration:none;top:5px;width:auto;z-index:100000}
