/* ==========================================================================
   GOLIVO — HOME PAGE SECTIONS
   Page-specific composition rules. Not portable like tokens/components —
   these are tied to this particular Home build.
   ========================================================================== */

.golivo-hero-section{
  position: relative;
  /* visible (not hidden): the app-frame is allowed to bleed past its
     column on desktop for a "breaking out of the grid" effect */
  overflow: visible;
}

/* ---- CTA: hero gets a slightly larger, more confident button than the
   in-app button scale. Scoped to hero only — app-parity buttons elsewhere
   on the site stay at the compact default in golivo-components.css. ---- */
.golivo-hero-cta .golivo-btn{
  padding: 15px 30px;
  font-size: 15px;
}

/* ---- Microcopy: bumped from secondary to primary-weighted tone so the
   Etsy-reviewer trust line reads immediately, not as an afterthought. ---- */
.golivo-hero-microcopy .golivo-meta-text{
  color: var(--golivo-text-primary);
  font-weight: 500;
  font-size: 13px;
  opacity: 0.82;
}
.golivo-hero-microcopy svg{ opacity: 0.82; }

/* ---- Final CTA: bigger, more confident button — this is the page's
   closing conversion point, it should read as the most important click
   on the page, not the same compact scale as an in-app button. ---- */
.golivo-final-cta-btn .golivo-btn{
  padding: 16px 42px;
  font-size: 15px;
}

/* ---- Contact page form (Contact Form 7 inside .golivo-contact-form-wrap) ---- */
.golivo-contact-form-wrap .wpcf7-form-control-wrap{ display: block; margin-bottom: 18px; }
.golivo-contact-form-wrap label{
  display: block;
  font-family: var(--golivo-font-body);
  font-weight: 500;
  font-size: 13px;
  color: var(--golivo-text-primary);
  margin-bottom: 6px;
}
.golivo-contact-form-wrap input[type="text"],
.golivo-contact-form-wrap input[type="email"],
.golivo-contact-form-wrap textarea{
  width: 100%;
  padding: 12px 14px;
  background: var(--golivo-paper);
  border: 1px solid var(--golivo-border-strong);
  border-radius: var(--golivo-radius-md);
  font-family: var(--golivo-font-body);
  font-size: 14px;
  color: var(--golivo-text-primary);
}
.golivo-contact-form-wrap textarea{ min-height: 140px; resize: vertical; }
.golivo-contact-form-wrap input:focus,
.golivo-contact-form-wrap textarea:focus{
  outline: none;
  border-color: var(--golivo-terracotta);
}
.golivo-contact-form-wrap .wpcf7-submit,
.golivo-contact-form-wrap input[type="submit"]{
  padding: 14px 32px !important;
  background: var(--golivo-terracotta-deep) !important;
  color: #FFF7EE !important;
  border: none !important;
  border-radius: var(--golivo-radius-md) !important;
  font-family: var(--golivo-font-body) !important;
  font-weight: 500 !important;
  font-size: 14px !important;
  text-transform: none !important;
  letter-spacing: normal !important;
  cursor: pointer;
  box-shadow: var(--golivo-shadow-cta) !important;
}
.golivo-contact-form-wrap .wpcf7-submit:hover,
.golivo-contact-form-wrap input[type="submit"]:hover{
  background: var(--golivo-terracotta-deep-hover) !important;
}
.golivo-contact-form-wrap .wpcf7-not-valid-tip{
  color: var(--golivo-destructive);
  font-size: 12px;
  margin-top: 4px;
}
.golivo-contact-form-wrap .wpcf7-response-output{
  border-radius: var(--golivo-radius-md) !important;
  font-family: var(--golivo-font-body);
  font-size: 13px;
  margin-top: 16px !important;
}

/* ---- Contact page: unified two-tone card wrapper (beige info half +
   white form half). overflow:hidden here is what makes the inner
   halves' flat color blocks respect the outer rounded corners. ---- */
.golivo-contact-card{
  border-radius: 16px;
  overflow: hidden;
  border: 1px solid var(--golivo-border);
  box-shadow: 0 24px 60px -24px rgba(58, 44, 34, 0.20);
}

/* ==========================================================================
   SPACING TOKENS — single source of truth for the gaps that were
   previously hand-typed as different pixel values in every section's
   JSON (16/18/22/24/44/48/62px...). Apply via _css_classes on the
   relevant Elementor container instead of a one-off "margin" setting,
   so changing the rhythm site-wide means editing this file once.
   ========================================================================== */
.golivo-gap-heading{ margin-top: 44px; }   /* section heading -> content below it */
.golivo-gap-content{ margin-top: 40px; }   /* content/note -> a following CTA button */
.golivo-gap-sm{ margin-top: 18px; }        /* small in-block gap, e.g. heading -> its own short intro line */
.golivo-gap-tight{ margin-top: 8px; }      /* a question -> its own answer, tightly paired */
.golivo-gap-qa{ margin-top: 30px; }        /* between separate Q&A pairs within a category */

.golivo-sticky-sidebar{ position: sticky; top: 110px; }

/* ==========================================================================
   HEADER SPACER — compensates for a fixed/sticky header pushing content
   underneath it. Responsive on purpose: the header's real height differs
   between desktop (full nav row) and mobile (compact/hamburger), so a
   single fixed px value is wrong on one of the two. Breakpoint matches
   the site's existing mobile_header_start_from (992px).
   Use as the very first element inside any Hero section:
     <div class="golivo-header-spacer"></div>
   ========================================================================== */
.golivo-header-spacer{ height: 0; } /* deprecated — see golivo-elementor-overrides.css
   for the theme-native spacer fix, which is the correct mechanism.
   Kept at 0 instead of removed from every page's JSON so nothing
   breaks; harmless no-op now. */
@media (max-width: 992px){
  .golivo-header-spacer{ height: 0; }
}

@media (max-width: 767px){
  .golivo-gap-heading{ margin-top: 32px; }
  .golivo-gap-content{ margin-top: 28px; }
}

/* Divider — single definition. If this stylesheet fails to load, an
   empty <div class="golivo-divider"> just collapses to nothing (safe
   failure), unlike the old empty-Elementor-container approach which
   rendered a visible gray placeholder block. */
.golivo-divider{
  border-top: 1px solid rgba(61,43,31,0.10);
  width: 100%;
}

.golivo-hero-visual{
  width: 100%;
  max-width: 560px;
  margin: 0 auto;
}
.golivo-hero-visual svg{
  display: block;
  width: 100%;
  height: auto;
}

/* Real-app-screenshot frame — soft elevation, no glass/blur/glow.
   A slight tilt gives it presence without tipping into 3D-mockup cliché. */
.golivo-app-frame{
  max-width: 700px;
  margin: 0 auto;
  border-radius: 14px;
  overflow: hidden;
  border: 1px solid var(--golivo-border);
  box-shadow:
    0 30px 60px -20px rgba(58, 44, 34, 0.28),
    0 8px 20px -8px rgba(58, 44, 34, 0.12);
  transform: rotate(-1.2deg);
  transition: transform .3s ease;
}
.golivo-app-frame:hover{ transform: rotate(0deg); }
.golivo-app-frame img{
  display: block;
  width: 100%;
  height: auto;
}

/* Bleed past the column edge on larger screens — fills the empty right
   margin instead of floating in the middle of unused space. */
@media (min-width: 1200px){
  .golivo-app-frame{
    max-width: 860px;
    margin-right: -24px;
    transform: rotate(-1.2deg) translateX(0);
  }
}
@media (min-width: 1440px){
  .golivo-app-frame{
    max-width: 940px;
    margin-right: -120px;
  }
}
@media (max-width: 767px){
  .golivo-app-frame{ transform: none; max-width: 100%; margin-right: 0; }
}

/* ---- Video section: hover-only progressive enhancements. Base layout,
   colors and positioning are inlined directly in the widget HTML (see
   golivo-video-section-v2.json) so the section renders correctly even if
   this stylesheet fails to load or is served stale from cache — that is
   exactly what happened with the v1 version of this section. ---- */
.golivo-video-play-btn{
  transition: transform .2s ease, box-shadow .2s ease;
  cursor: pointer;
}
.golivo-video-play-btn:hover{
  transform: translate(-50%, -50%) scale(1.06);
  box-shadow: 0 18px 36px rgba(156, 79, 30, 0.42);
}

/* ---- About section: decorative drop cap, brand-moment typographic detail.
   Non-critical — paragraph reads fine without it if this file fails to load. ---- */
.golivo-about-dropcap::first-letter{
  font-family: var(--golivo-font-display);
  font-weight: 500;
  font-size: 2.6em;
  float: left;
  line-height: 0.85;
  margin: 0.03em 0.08em 0 0;
  color: var(--golivo-olive-deep);
}

/* ---- FAQ accordion: bring the native Elementor widget onto brand type
   without fighting its own generated CSS specificity (learned from the
   Hero headline issue) — !important is deliberate here. ---- */
.golivo-faq-accordion .elementor-accordion-item{
  border: none !important;
  border-bottom: 1px solid rgba(61,43,31,0.10) !important;
}
.golivo-faq-accordion .elementor-tab-title{
  font-family: var(--golivo-font-body) !important;
  font-weight: 500 !important;
  font-size: 15px !important;
  color: var(--golivo-text-primary) !important;
  padding: 20px 0 !important;
  background: transparent !important;
}
.golivo-faq-accordion .elementor-tab-content{
  font-family: var(--golivo-font-body) !important;
  font-size: 14px !important;
  line-height: 1.65 !important;
  color: var(--golivo-text-secondary) !important;
  padding: 0 0 20px !important;
  border: none !important;
}
.golivo-faq-accordion .elementor-accordion-icon{
  color: var(--golivo-terracotta-deep) !important;
}

/* Native <details> chevron rotation (progressive enhancement only —
   details/summary works natively without this) */
.golivo-faq-list details[open] .golivo-faq-chevron{
  transform: rotate(180deg);
}
.golivo-faq-list summary::-webkit-details-marker{ display: none; }
.golivo-faq-list summary::marker{ content: ""; }

.golivo-hero-microcopy{
  color: var(--golivo-text-muted);
}

/* The shortcode widget wraps our .golivo-btn output in Elementor's own
   <div class="elementor-shortcode"> — strip its default block spacing so
   the button sits flush with surrounding text. */
.golivo-hero-cta .elementor-shortcode{
  display: inline-block;
}

@media (max-width: 767px){
  .golivo-hero-visual{ max-width: 400px; }
}
