/* =========================================================================
   GoViral Marketing — main.css
   Component & layout styles. Loaded after style.css.
   ========================================================================= */

*,*::before,*::after { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
    margin: 0;
    font-family: var(--gv-font-body);
    font-size: var(--gv-fs-base);
    line-height: var(--gv-lh-base);
    color: var(--gv-text);
    background: var(--gv-white);
    -webkit-font-smoothing: antialiased;
    overflow-x: hidden;
}
img { max-width: 100%; height: auto; display: block; }
a { color: var(--gv-primary-dark); text-decoration: none; transition: color var(--gv-transition); }
a:hover { color: var(--gv-primary); }

h1,h2,h3,h4,h5,h6 {
    font-family: var(--gv-font-heading);
    color: var(--gv-heading);
    line-height: 1.2;
    margin: 0 0 .6em;
    font-weight: 800;
}
h1 { font-size: clamp(2.4rem, 5vw, 4rem); }
h2 { font-size: clamp(1.9rem, 3.6vw, 2.8rem); }
h3 { font-size: clamp(1.4rem, 2.4vw, 1.9rem); }
p  { margin: 0 0 1.2em; }

/* ---------- Layout helpers ---------- */
.gv-container { width: 100%; max-width: var(--gv-container); margin: 0 auto; padding: 0 24px; }
.gv-section   { padding: 100px 0; position: relative; }
.gv-section--tight { padding: 70px 0; }
.gv-section--dark { background: var(--gv-dark); color: #c7ccd6; }
.gv-section--dark h1,.gv-section--dark h2,.gv-section--dark h3 { color: #fff; }
.gv-section--light { background: var(--gv-bg-light); }
.gv-text-center { text-align: center; }
.gv-grid { display: grid; gap: 30px; }

/* ---------- Buttons ---------- */
.gv-btn {
    display: inline-flex; align-items: center; gap: 10px;
    font-family: var(--gv-font-heading); font-weight: 700;
    font-size: .92rem; letter-spacing: .04em; text-transform: uppercase;
    padding: 15px 34px; border-radius: 50px; border: 2px solid transparent;
    cursor: pointer; transition: all var(--gv-transition);
    background: var(--gv-primary); color: var(--gv-dark);
    box-shadow: 0 10px 24px rgba(253,184,19,.32);
}
.gv-btn:hover { transform: translateY(-3px); background: var(--gv-primary-dark); color: var(--gv-dark); box-shadow: 0 16px 34px rgba(253,184,19,.42); }
.gv-btn--outline { background: transparent; border-color: var(--gv-primary); color: var(--gv-heading); box-shadow: none; }
.gv-btn--outline:hover { background: var(--gv-primary); color: var(--gv-dark); }
.gv-btn--light { background:#fff; color: var(--gv-dark); box-shadow:none;}
.gv-btn--light:hover { background: var(--gv-primary); }

/* ---------- Outline / doubled section headings (GoViral signature) ---------- */
.gv-heading-stack { position: relative; display: inline-block; margin-bottom: 50px; }
.gv-heading-stack .gv-heading-outline {
    position: absolute; left: 50%; top: -38px; transform: translateX(-50%);
    font-family: var(--gv-font-heading); font-weight: 800;
    font-size: clamp(3rem, 7vw, 6rem); letter-spacing: .02em;
    color: transparent; -webkit-text-stroke: 1.5px rgba(22,24,29,.08);
    white-space: nowrap; pointer-events: none; z-index: 0; text-transform: uppercase;
}
.gv-section--dark .gv-heading-stack .gv-heading-outline { -webkit-text-stroke-color: rgba(255,255,255,.10); }
.gv-heading-stack .gv-heading-solid {
    position: relative; z-index: 1; margin: 0;
    font-size: clamp(1.6rem, 3vw, 2.4rem); letter-spacing: .14em;
    text-transform: uppercase;
}
.gv-heading-stack .gv-heading-solid::after {
    content: ""; display: block; width: 60px; height: 4px;
    background: var(--gv-primary); margin: 18px auto 0; border-radius: 2px;
}
.gv-lead { max-width: 760px; margin: 0 auto 40px; font-size: 1.08rem; color: var(--gv-text); }

/* =========================================================================
   HEADER
   ========================================================================= */
.gv-header {
    position: absolute; top: 0; left: 0; width: 100%; z-index: 999;
    transition: all var(--gv-transition);
}
.gv-header__inner {
    display: flex; align-items: center; justify-content: space-between;
    min-height: var(--gv-header-h);
}
.gv-header__logo img { max-height: 52px; width: auto; }
.gv-header__logo .gv-site-title { font-family: var(--gv-font-heading); font-weight: 800; font-size: 1.6rem; color: #fff; }
.gv-header.is-light .gv-header__logo .gv-site-title { color: var(--gv-heading); }

.gv-nav ul { list-style: none; margin: 0; padding: 0; display: flex; align-items: center; gap: 6px; }
.gv-nav a {
    display: block; padding: 12px 18px; font-family: var(--gv-font-heading);
    font-weight: 600; font-size: .95rem; color: #fff; position: relative;
}
.gv-header.is-light .gv-nav a { color: var(--gv-heading); }
.gv-nav a::after {
    content:""; position:absolute; left:18px; right:18px; bottom:6px; height:2px;
    background: var(--gv-primary); transform: scaleX(0); transform-origin: left;
    transition: transform var(--gv-transition);
}
.gv-nav a:hover::after,
.gv-nav .current-menu-item > a::after { transform: scaleX(1); }
.gv-nav li { position: relative; }
.gv-nav .sub-menu {
    position: absolute; top: 100%; left: 0; min-width: 230px; display: block;
    background: #fff; box-shadow: var(--gv-shadow); border-radius: 12px;
    padding: 12px; opacity: 0; visibility: hidden; transform: translateY(12px);
    transition: all var(--gv-transition); flex-direction: column; gap: 0; z-index: 5;
}
.gv-nav li:hover > .sub-menu { opacity: 1; visibility: visible; transform: translateY(0); }
.gv-nav .sub-menu a { color: var(--gv-heading); padding: 10px 16px; border-radius: 8px; }
.gv-nav .sub-menu a:hover { background: var(--gv-primary-soft); color: var(--gv-primary-dark); }
.gv-nav .sub-menu a::after { display: none; }
.gv-nav .menu-item-has-children > a::before {
    content:"\f107"; font-family:"dashicons"; font-size:14px; vertical-align:middle; margin-left:6px; opacity:.7;
}

.gv-header__actions { display: flex; align-items: center; gap: 18px; }

/* Sticky header */
.gv-header.is-sticky {
    position: fixed; background: #fff; box-shadow: 0 6px 24px rgba(20,23,28,.08);
    animation: gvSlideDown .4s ease;
}
.gv-header.is-sticky .gv-nav a,
.gv-header.is-sticky .gv-header__logo .gv-site-title { color: var(--gv-heading); }
.gv-header.is-sticky .gv-header__toggle span { background: var(--gv-heading); }
@keyframes gvSlideDown { from { transform: translateY(-100%); } to { transform: translateY(0); } }

.admin-bar .gv-header.is-sticky { top: 32px; }

/* Mobile toggle */
.gv-header__toggle {
    display: none; flex-direction: column; gap: 5px; background: none; border: 0;
    cursor: pointer; padding: 8px;
}
.gv-header__toggle span { width: 26px; height: 3px; background: #fff; border-radius: 2px; transition: var(--gv-transition); }
.gv-header.is-light .gv-header__toggle span { background: var(--gv-heading); }

/* =========================================================================
   HERO SLIDER (Websites that Wow / Rank / Win)
   ========================================================================= */
.gv-hero {
    position: relative; min-height: 100vh; display: flex; align-items: center;
    background: var(--gv-dark); color: #fff; overflow: hidden;
    padding-top: var(--gv-header-h);
}
.gv-hero::before {
    content:""; position:absolute; inset:0;
    background: radial-gradient(circle at 80% 20%, rgba(253,184,19,.14), transparent 45%),
                radial-gradient(circle at 10% 90%, rgba(253,184,19,.08), transparent 40%);
}
.gv-hero__slide {
    display: none; width: 100%; align-items: center; gap: 40px;
    grid-template-columns: 1.1fr .9fr; position: relative; z-index: 2;
}
.gv-hero__slide.is-active { display: grid; animation: gvFadeUp .9s ease; }
.gv-hero__title { font-size: clamp(2.8rem, 6.5vw, 5.2rem); line-height: 1.05; color: #fff; margin-bottom: 24px; }
.gv-hero__title .gv-accent { color: var(--gv-primary); position: relative; }
.gv-hero__text { font-size: 1.15rem; color: #b9bfca; max-width: 520px; margin-bottom: 36px; }
.gv-hero__media img { filter: drop-shadow(0 30px 60px rgba(0,0,0,.45)); }
.gv-hero__dots { position: absolute; bottom: 46px; left: 50%; transform: translateX(-50%); display: flex; gap: 12px; z-index: 5; }
.gv-hero__dots button { width: 12px; height: 12px; border-radius: 50%; border: 0; background: rgba(255,255,255,.3); cursor: pointer; transition: var(--gv-transition); padding: 0; }
.gv-hero__dots button.is-active { background: var(--gv-primary); width: 34px; border-radius: 6px; }

@keyframes gvFadeUp { from { opacity: 0; transform: translateY(28px); } to { opacity: 1; transform: translateY(0); } }

/* Google rating badge */
.gv-rating-badge {
    position: absolute; right: 30px; bottom: 40px; z-index: 6;
    background:#fff; color: var(--gv-heading); border-radius: 14px;
    padding: 14px 18px; box-shadow: var(--gv-shadow); display:flex; align-items:center; gap:12px;
    font-size:.85rem;
}
.gv-rating-badge strong { font-size:1.4rem; color: var(--gv-heading); display:block; line-height:1; }
.gv-rating-badge .gv-stars { color: var(--gv-primary); letter-spacing:2px; }

/* =========================================================================
   WHO WE ARE
   ========================================================================= */
.gv-about__grid { display:grid; grid-template-columns: 1fr 1fr; gap: 60px; align-items:center; }
.gv-about__title { margin-bottom: 24px; }

/* =========================================================================
   PORTFOLIO / SERVICES CARDS
   ========================================================================= */
.gv-portfolio__grid { grid-template-columns: repeat(auto-fit, minmax(280px,1fr)); }
.gv-card {
    background:#fff; border-radius: var(--gv-radius-lg); overflow:hidden;
    box-shadow: var(--gv-shadow-sm); transition: var(--gv-transition);
    border:1px solid var(--gv-border);
}
.gv-card:hover { transform: translateY(-10px); box-shadow: var(--gv-shadow); }
.gv-card__media { aspect-ratio: 16/11; overflow:hidden; }
.gv-card__media img { width:100%; height:100%; object-fit:cover; transition: var(--gv-transition); }
.gv-card:hover .gv-card__media img { transform: scale(1.07); }
.gv-card__body { padding: 26px; }
.gv-card__title { font-size:1.25rem; margin-bottom:10px; }
.gv-card__link { display:inline-flex; align-items:center; gap:8px; font-weight:700; margin-top:10px; color: var(--gv-primary-dark); }

/* 9-pillar numbered service rows */
.gv-pillars__tabs { display:flex; flex-wrap:wrap; gap:10px; justify-content:center; margin-bottom: 50px; }
.gv-pillars__tab {
    display:flex; align-items:center; gap:10px; padding:12px 20px; border-radius:50px;
    background:#fff; border:1px solid var(--gv-border); cursor:pointer; font-weight:700;
    font-family: var(--gv-font-heading); color: var(--gv-heading); transition: var(--gv-transition);
}
.gv-pillars__tab .num { width:26px; height:26px; border-radius:50%; background: var(--gv-bg-light); display:grid; place-items:center; font-size:.8rem; }
.gv-pillars__tab.is-active { background: var(--gv-primary); border-color: var(--gv-primary); }
.gv-pillars__tab.is-active .num { background: rgba(0,0,0,.12); }

.gv-service-row { display:grid; grid-template-columns: 90px 1fr 1fr; gap:40px; align-items:center; padding: 46px 0; border-top:1px solid var(--gv-border); }
.gv-service-row__num { font-family: var(--gv-font-heading); font-weight:800; font-size: clamp(2.6rem,5vw,4.5rem); color: var(--gv-primary); line-height:1; }
.gv-service-row__title { font-size: clamp(1.5rem,2.6vw,2.1rem); margin-bottom:14px; text-transform:uppercase; letter-spacing:.04em; }
.gv-service-row__media img { border-radius: var(--gv-radius-lg); box-shadow: var(--gv-shadow-sm); }
.gv-service-row:nth-child(even) .gv-service-row__media { order:-1; }

/* =========================================================================
   CLIENT LOGOS
   ========================================================================= */
.gv-clients__grid { display:grid; grid-template-columns: repeat(auto-fit, minmax(150px,1fr)); gap:30px; align-items:center; }
.gv-clients__item { display:grid; place-items:center; padding:24px; filter: grayscale(1); opacity:.6; transition: var(--gv-transition); }
.gv-clients__item:hover { filter:none; opacity:1; }

/* =========================================================================
   TESTIMONIALS
   ========================================================================= */
.gv-testimonials__grid { grid-template-columns: repeat(auto-fit, minmax(300px,1fr)); }
.gv-testimonial {
    background: var(--gv-dark-2); border-radius: var(--gv-radius-lg); padding: 34px;
    position:relative; color:#c7ccd6;
}
.gv-testimonial::before { content:"\201C"; font-family: Georgia, serif; font-size:5rem; color: var(--gv-primary); position:absolute; top:6px; right:24px; opacity:.35; line-height:1; }
.gv-testimonial__text { font-style:italic; margin-bottom:24px; }
.gv-testimonial__person { display:flex; align-items:center; gap:14px; }
.gv-testimonial__person img { width:54px; height:54px; border-radius:50%; object-fit:cover; }
.gv-testimonial__name { font-weight:700; color:#fff; font-family: var(--gv-font-heading); }
.gv-testimonial__stars { color: var(--gv-primary); }

/* =========================================================================
   CTA BAND
   ========================================================================= */
.gv-cta { background: var(--gv-primary); text-align:center; padding: 90px 0; }
.gv-cta h2 { color: var(--gv-dark); font-size: clamp(2rem,4vw,3.2rem); }
.gv-cta .gv-heading-outline { -webkit-text-stroke-color: rgba(21,23,28,.16); }
.gv-cta p { color: rgba(21,23,28,.78); max-width:620px; margin:0 auto 30px; font-size:1.1rem; }
.gv-cta .gv-btn { background: var(--gv-dark); color:#fff; box-shadow:0 12px 30px rgba(0,0,0,.25); }
.gv-cta .gv-btn:hover { background:#000; }

/* =========================================================================
   FOOTER
   ========================================================================= */
.gv-footer { background: var(--gv-dark); color:#9aa0ac; padding: 80px 0 0; }
.gv-footer h4 { color:#fff; font-size:1.1rem; margin-bottom:22px; letter-spacing:.05em; }
.gv-footer__grid { display:grid; grid-template-columns: 1.4fr 1fr 1fr 1.2fr; gap:46px; }
.gv-footer__social { display:flex; gap:12px; margin:20px 0; }
.gv-footer__social a { width:42px; height:42px; border-radius:50%; background: rgba(255,255,255,.08); display:grid; place-items:center; color:#fff; transition: var(--gv-transition); }
.gv-footer__social a:hover { background: var(--gv-primary); color: var(--gv-dark); transform:translateY(-3px); }
.gv-footer ul { list-style:none; margin:0; padding:0; }
.gv-footer li { margin-bottom:12px; }
.gv-footer a { color:#9aa0ac; }
.gv-footer a:hover { color: var(--gv-primary); }
.gv-footer__contact li { display:flex; gap:12px; align-items:flex-start; }
.gv-footer__contact .dashicons { color: var(--gv-primary); }
.gv-footer__bottom { border-top:1px solid rgba(255,255,255,.08); margin-top:60px; padding:26px 0; text-align:center; font-size:.9rem; }

/* =========================================================================
   PAGE HERO (inner pages)
   ========================================================================= */
.gv-page-hero { background: var(--gv-dark); color:#fff; padding: calc(var(--gv-header-h) + 70px) 0 80px; text-align:center; position:relative; overflow:hidden; }
.gv-page-hero::before { content:""; position:absolute; inset:0; background: radial-gradient(circle at 75% 25%, rgba(253,184,19,.12), transparent 50%); }
.gv-page-hero h1 { color:#fff; position:relative; }
.gv-breadcrumbs { position:relative; color:#aeb4c0; font-size:.9rem; }
.gv-breadcrumbs a { color: var(--gv-primary); }

/* =========================================================================
   BLOG
   ========================================================================= */
.gv-blog__layout { display:grid; grid-template-columns: 1fr 340px; gap:50px; align-items:start; }
.gv-post-card { background:#fff; border-radius: var(--gv-radius-lg); overflow:hidden; box-shadow: var(--gv-shadow-sm); border:1px solid var(--gv-border); margin-bottom:40px; transition: var(--gv-transition); }
.gv-post-card:hover { box-shadow: var(--gv-shadow); transform: translateY(-6px); }
.gv-post-card__media img { width:100%; aspect-ratio:16/9; object-fit:cover; }
.gv-post-card__body { padding:30px; }
.gv-post-card__meta { font-size:.85rem; color: var(--gv-text-light); margin-bottom:12px; display:flex; gap:18px; flex-wrap:wrap; }
.gv-post-card__meta .dashicons { color: var(--gv-primary); font-size:16px; }
.gv-badge { display:inline-block; background: var(--gv-primary-soft); color: var(--gv-primary-dark); font-size:.78rem; font-weight:700; padding:5px 12px; border-radius:50px; text-transform:uppercase; letter-spacing:.05em; }

.gv-sidebar .widget { background:#fff; border:1px solid var(--gv-border); border-radius: var(--gv-radius); padding:26px; margin-bottom:30px; }
.gv-sidebar .widget-title { font-size:1.15rem; margin-bottom:18px; padding-bottom:14px; border-bottom:2px solid var(--gv-primary); display:inline-block; }
.gv-sidebar ul { list-style:none; margin:0; padding:0; }
.gv-sidebar li { padding:8px 0; border-bottom:1px solid var(--gv-border); }

/* Single post */
.gv-entry-content { font-size:1.05rem; line-height:1.85; }
.gv-entry-content h2,.gv-entry-content h3 { margin-top:1.6em; }
.gv-entry-content img { border-radius: var(--gv-radius); margin:1.5em 0; }
.gv-entry-content blockquote { border-left:4px solid var(--gv-primary); background: var(--gv-bg-light); padding:20px 26px; margin:1.5em 0; border-radius:0 var(--gv-radius) var(--gv-radius) 0; font-style:italic; }

/* Pagination */
.gv-pagination { display:flex; gap:8px; justify-content:center; margin-top:40px; flex-wrap:wrap; }
.gv-pagination a,.gv-pagination span { display:grid; place-items:center; min-width:46px; height:46px; border-radius:10px; border:1px solid var(--gv-border); font-weight:700; color: var(--gv-heading); padding:0 12px; }
.gv-pagination .current { background: var(--gv-primary); border-color: var(--gv-primary); }
.gv-pagination a:hover { background: var(--gv-primary-soft); }

/* =========================================================================
   PRICING
   ========================================================================= */
.gv-pricing__grid { grid-template-columns: repeat(auto-fit,minmax(280px,1fr)); align-items:stretch; }
.gv-price-card { background:#fff; border:1px solid var(--gv-border); border-radius: var(--gv-radius-lg); padding:42px 34px; text-align:center; transition: var(--gv-transition); position:relative; }
.gv-price-card.is-featured { border-color: var(--gv-primary); box-shadow: var(--gv-shadow); transform:scale(1.03); }
.gv-price-card.is-featured::before { content:"Most Popular"; position:absolute; top:-14px; left:50%; transform:translateX(-50%); background: var(--gv-primary); color: var(--gv-dark); font-size:.75rem; font-weight:700; padding:6px 18px; border-radius:50px; text-transform:uppercase; }
.gv-price-card__price { font-family: var(--gv-font-heading); font-size:3rem; font-weight:800; color: var(--gv-heading); margin:14px 0; }
.gv-price-card__price span { font-size:1rem; color: var(--gv-text-light); }
.gv-price-card ul { list-style:none; padding:0; margin:24px 0 32px; text-align:left; }
.gv-price-card li { padding:9px 0; border-bottom:1px solid var(--gv-border); display:flex; gap:10px; }
.gv-price-card li .dashicons { color: var(--gv-primary); }

/* =========================================================================
   FAQ accordion
   ========================================================================= */
.gv-faq { max-width:840px; margin:0 auto; }
.gv-faq__item { border:1px solid var(--gv-border); border-radius: var(--gv-radius); margin-bottom:16px; overflow:hidden; background:#fff; }
.gv-faq__q { display:flex; justify-content:space-between; align-items:center; gap:20px; padding:22px 26px; cursor:pointer; font-family: var(--gv-font-heading); font-weight:700; color: var(--gv-heading); }
.gv-faq__q .gv-faq__icon { flex:0 0 auto; width:30px; height:30px; border-radius:50%; background: var(--gv-primary-soft); color: var(--gv-primary-dark); display:grid; place-items:center; transition: var(--gv-transition); }
.gv-faq__item.is-open .gv-faq__icon { background: var(--gv-primary); transform: rotate(45deg); }
.gv-faq__a { max-height:0; overflow:hidden; transition: max-height .4s ease; }
.gv-faq__a-inner { padding:0 26px 24px; }

/* =========================================================================
   TEAM
   ========================================================================= */
.gv-team__grid { grid-template-columns: repeat(auto-fit,minmax(240px,1fr)); }
.gv-team-card { text-align:center; }
.gv-team-card__media { border-radius: var(--gv-radius-lg); overflow:hidden; position:relative; }
.gv-team-card__media img { width:100%; aspect-ratio:1; object-fit:cover; transition: var(--gv-transition); }
.gv-team-card:hover .gv-team-card__media img { transform:scale(1.06); }
.gv-team-card__social { position:absolute; inset:auto 0 0 0; background: linear-gradient(transparent, rgba(21,23,28,.85)); padding:50px 0 18px; display:flex; gap:12px; justify-content:center; opacity:0; transition: var(--gv-transition); }
.gv-team-card:hover .gv-team-card__social { opacity:1; }
.gv-team-card__social a { color:#fff; width:36px; height:36px; border-radius:50%; background:rgba(255,255,255,.15); display:grid; place-items:center; }
.gv-team-card__social a:hover { background: var(--gv-primary); color: var(--gv-dark); }
.gv-team-card h3 { margin:18px 0 4px; }
.gv-team-card .gv-role { color: var(--gv-primary-dark); font-weight:600; }

/* =========================================================================
   CONTACT / FORMS
   ========================================================================= */
.gv-contact__grid { display:grid; grid-template-columns: 1fr 1.2fr; gap:50px; }
.gv-form { display:grid; gap:18px; }
.gv-form label { font-weight:600; font-family: var(--gv-font-heading); color: var(--gv-heading); font-size:.92rem; display:block; margin-bottom:6px; }
.gv-form input,.gv-form textarea,.gv-form select {
    width:100%; padding:14px 18px; border:1px solid var(--gv-border); border-radius:10px;
    font-family: var(--gv-font-body); font-size:1rem; background:#fff; transition: var(--gv-transition);
}
.gv-form input:focus,.gv-form textarea:focus { outline:none; border-color: var(--gv-primary); box-shadow:0 0 0 3px rgba(253,184,19,.18); }
.gv-form textarea { min-height:150px; resize:vertical; }
.gv-form__row { display:grid; grid-template-columns:1fr 1fr; gap:18px; }
.gv-info-card { display:flex; gap:16px; padding:22px; background:#fff; border:1px solid var(--gv-border); border-radius: var(--gv-radius); margin-bottom:18px; }
.gv-info-card .gv-info-icon { flex:0 0 auto; width:52px; height:52px; border-radius:14px; background: var(--gv-primary-soft); color: var(--gv-primary-dark); display:grid; place-items:center; font-size:22px; }

/* =========================================================================
   STATS / counters
   ========================================================================= */
.gv-stats { grid-template-columns: repeat(auto-fit,minmax(180px,1fr)); text-align:center; }
.gv-stat__num { font-family: var(--gv-font-heading); font-weight:800; font-size:3rem; color: var(--gv-primary); }
.gv-stat__label { color: var(--gv-text-light); font-weight:600; }

/* =========================================================================
   404 / thank you
   ========================================================================= */
.gv-utility { min-height:70vh; display:grid; place-items:center; text-align:center; padding: calc(var(--gv-header-h) + 40px) 0 80px; }
.gv-utility__big { font-family: var(--gv-font-heading); font-weight:800; font-size: clamp(6rem,18vw,12rem); line-height:1; color: var(--gv-primary); }

/* =========================================================================
   Scroll reveal
   ========================================================================= */
[data-reveal] { opacity:0; transform: translateY(40px); transition: opacity .8s ease, transform .8s ease; }
[data-reveal].is-visible { opacity:1; transform:none; }

@media (prefers-reduced-motion: reduce) {
    *,*::before,*::after { animation-duration:.001ms !important; transition-duration:.001ms !important; scroll-behavior:auto !important; }
    [data-reveal] { opacity:1; transform:none; }
}

/* WooCommerce light touch */
.woocommerce a.button,.woocommerce button.button,.woocommerce .button { background: var(--gv-primary)!important; color: var(--gv-dark)!important; border-radius:50px!important; font-weight:700; }
.woocommerce span.price,.woocommerce ins { color: var(--gv-heading); }
