/**
Theme Name: cultivating-digital-child
Author: Cultivating Digital
Author URI: https://cultivatingdigital.com/
Description: Cultivating Digital – Organic marketing for the Life of your business.
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: cultivating-digital-child
Template: astra
*/
/* =============================================================
   Ivy Collaborative Resources — CalVer 2026.09.10
   CLI-authored Spectra pages get no Spectra CSS, so layout is
   owned here and keyed to semantic classes. !important is on the
   properties Spectra's defaults contest (flex-direction, wrap,
   justify, align, padding, overflow) per cd-wp-build.
   ============================================================= */
:root{
  --ivy-blue:#0C489C; --ivy-blue-dk:#08306B; --ivy-blue-lt:#E9EFF8;
  --ivy-cream:#F7F5F0; --ivy-ink:#23282F; --ivy-muted:#5A6472;
  --ivy-line:#D9E1EE;
}
.ivy-res{ color:var(--ivy-ink); }
.ivy-res h1,.ivy-res h2,.ivy-res h3{ color:var(--ivy-blue-dk); letter-spacing:-.01em; }

/* --- bands --- */
.ivy-band{ padding:64px 24px !important; }
.ivy-band--hero{ background:linear-gradient(180deg,var(--ivy-blue-lt) 0%,#fff 100%); padding:88px 24px 72px !important; }
.ivy-band--tint{ background:var(--ivy-cream); }
.ivy-band--blue{ background:var(--ivy-blue); }
.ivy-band--blue h2,.ivy-band--blue p{ color:#fff !important; }
.ivy-band__inner{ max-width:1120px; margin:0 auto !important; }

.ivy-hero__title{ font-size:clamp(2rem,4.4vw,3.25rem); line-height:1.12; margin:0 0 .5em; }
.ivy-hero__lede{ font-size:clamp(1.05rem,1.6vw,1.3rem); color:var(--ivy-muted); max-width:60ch; line-height:1.55; }
.ivy-eyebrow{ text-transform:uppercase; letter-spacing:.11em; font-size:.78rem; font-weight:700; color:var(--ivy-blue); margin:0 0 .75em !important; }

/* --- card grid --- */
.ivy-cardgrid{
  display:flex !important; flex-direction:row !important; flex-wrap:wrap !important;
  align-items:stretch !important; justify-content:flex-start !important;
  gap:22px; padding:0 !important;
}
.ivy-card{
  display:flex !important; flex-direction:column !important; align-items:flex-start !important;
  justify-content:flex-start !important;
  flex:1 1 260px; min-width:250px; background:#fff; border:1px solid var(--ivy-line);
  border-radius:14px; padding:28px 26px !important;
  box-shadow:0 1px 2px rgba(12,72,156,.05);
}
.ivy-card > *{ display:block !important; }
.ivy-card h3{ font-size:1.22rem; margin:0 0 .45em; }
.ivy-card p{ color:var(--ivy-muted); margin:0; line-height:1.55; font-size:.97rem; }
.ivy-card__count{ margin-top:auto !important; padding-top:16px; font-size:.82rem; font-weight:700;
  color:var(--ivy-blue); text-transform:uppercase; letter-spacing:.07em; }

/* --- numbered steps --- */
.ivy-steps{ display:flex !important; flex-direction:row !important; flex-wrap:wrap !important;
  align-items:stretch !important; justify-content:flex-start !important; gap:26px; padding:0 !important; }
.ivy-step{ display:block !important; flex:1 1 280px; min-width:260px; padding:0 !important; }
.ivy-step h3{ font-size:1.08rem; margin:.35em 0 .4em; }
.ivy-step p{ color:var(--ivy-muted); line-height:1.55; margin:0; font-size:.96rem; }
.ivy-step__num{ display:inline-flex !important; align-items:center !important; justify-content:center !important;
  width:34px; height:34px; border-radius:50%; background:var(--ivy-blue); color:#fff;
  font-weight:700; font-size:.95rem; }

/* --- guide body --- */
.ivy-guide__inner{ max-width:800px; margin:0 auto !important; }
.ivy-guide h2{ font-size:1.5rem; margin:0 0 .5em; padding-top:.2em; }
.ivy-guide p,.ivy-guide li{ line-height:1.68; color:var(--ivy-ink); }
.ivy-guide ul{ padding-left:1.15em; }
.ivy-guide li{ margin-bottom:.55em; }
.ivy-guide__block{ display:block !important; border-left:4px solid var(--ivy-blue-lt);
  padding:4px 0 4px 22px !important; margin:0 0 40px !important; }
.ivy-guide__block--ivy{ border-left-color:var(--ivy-blue); background:var(--ivy-blue-lt);
  border-radius:0 12px 12px 0; padding:22px 24px !important; }

/* --- affiliate disclosure --- */
.ivy-disclosure{ display:block !important; background:var(--ivy-cream); border:1px solid var(--ivy-line);
  border-radius:10px; padding:16px 20px !important; font-size:.88rem; color:var(--ivy-muted);
  line-height:1.5; margin:0 0 28px !important; }

/* --- CTA --- */
.ivy-cta__inner{ max-width:820px; margin:0 auto !important; text-align:center; }
.ivy-cta__phone{ font-size:1.6rem; font-weight:700; color:#fff !important; display:block !important; margin-top:.4em; }

/* --- medical disclaimer footer --- */
.ivy-medlegal{ display:block !important; max-width:1120px; margin:0 auto !important;
  font-size:.82rem; color:var(--ivy-muted); line-height:1.55; }

@media (max-width:880px){
  .ivy-band{ padding:44px 20px !important; }
  .ivy-band--hero{ padding:56px 20px 44px !important; }
  .ivy-card{ flex:1 1 100%; }
}

/* --- Spectra defaults trap: text-flow containers must be block.
       uag CSS loads after this stylesheet, so specificity + !important. --- */
.ivy-res .ivy-band__inner,
.ivy-res .ivy-cta__inner,
.ivy-res .ivy-guide__inner,
.ivy-res .ivy-guide__block,
.ivy-res .ivy-disclosure,
.ivy-res .ivy-medlegal,
.ivy-res .ivy-step,
.wp-block-uagb-container.ivy-band__inner,
.wp-block-uagb-container.ivy-cta__inner,
.wp-block-uagb-container.ivy-guide__inner,
.wp-block-uagb-container.ivy-guide__block,
.wp-block-uagb-container.ivy-disclosure,
.wp-block-uagb-container.ivy-medlegal,
.wp-block-uagb-container.ivy-step{
  display:block !important;
  flex-direction:column !important;
  align-items:stretch !important;
  justify-content:flex-start !important;
  overflow:visible !important;
  width:100% !important;
  max-width:1120px;
}
.ivy-res .ivy-guide__inner,
.wp-block-uagb-container.ivy-guide__inner{ max-width:800px; }
.ivy-res .ivy-cta__inner,
.wp-block-uagb-container.ivy-cta__inner{ max-width:820px; }
.ivy-res .ivy-guide__block,
.ivy-res .ivy-disclosure,
.ivy-res .ivy-step{ max-width:none; }

/* root bands stay block; the inner container does the centering */
.wp-block-uagb-container.ivy-band{
  display:block !important; flex-direction:column !important; overflow:visible !important;
}

/* grids stay flex and must beat the column default */
.wp-block-uagb-container.ivy-cardgrid{
  display:flex !important; flex-direction:row !important; flex-wrap:wrap !important;
  align-items:stretch !important; justify-content:flex-start !important; max-width:none !important;
}
.wp-block-uagb-container.ivy-steps{
  display:flex !important; flex-direction:row !important; flex-wrap:wrap !important;
  align-items:flex-start !important; justify-content:flex-start !important; max-width:none !important;
}
.wp-block-uagb-container.ivy-card{
  display:flex !important; flex-direction:column !important;
  align-items:flex-start !important; justify-content:flex-start !important;
  width:auto !important; max-width:none !important;
}
.ivy-res .ivy-card > *, .ivy-res .ivy-step > *{ display:block !important; width:100% !important; }
.ivy-res .ivy-step__num{ display:inline-flex !important; width:34px !important; }

/* headings/paragraphs shouldn't inherit any flex sizing */
.ivy-res .wp-block-uagb-advanced-heading{ width:100% !important; }
.ivy-res p{ max-width:72ch; }
.ivy-res .ivy-cta__inner p{ max-width:none; }


/* --- alignfull without 100vw: page uses Astra's stretched template,
       so bands fill the content area and never exceed it (kills the
       100vw-vs-scrollbar horizontal overflow). --- */
.wp-block-uagb-container.alignfull.ivy-band{
  width:100% !important; max-width:100% !important;
  margin-left:0 !important; margin-right:0 !important;
  left:auto !important; right:auto !important;
}
.ast-page-builder-template .entry-content > .alignfull{ margin-left:0 !important; margin-right:0 !important; }

/* --- card affordance: live cards are links, pending cards are not --- */
.ivy-res .ivy-card{ position:relative; transition:box-shadow .18s ease, transform .18s ease, border-color .18s ease; }
.ivy-res .ivy-card--live{ cursor:pointer; }
.ivy-res .ivy-card--live:hover,
.ivy-res .ivy-card--live:focus-within{
  border-color:var(--ivy-blue); box-shadow:0 6px 20px rgba(12,72,156,.13); transform:translateY(-2px);
}
.ivy-res .ivy-card__link{ color:inherit; text-decoration:none; }
.ivy-res .ivy-card__link::after{ content:""; position:absolute; inset:0; border-radius:14px; }
.ivy-res .ivy-card--live:hover .ivy-card__link{ color:var(--ivy-blue); }
.ivy-res .ivy-card--live .ivy-card__count::after{ content:" →"; }
.ivy-res .ivy-card__link:focus-visible::after{ outline:3px solid var(--ivy-blue); outline-offset:3px; }

/* pending cards: no pointer, no lift, visibly not-yet */
.ivy-res .ivy-card--soon{ cursor:default; background:#FCFBF9; border-style:dashed; }
.ivy-res .ivy-card--soon h3{ color:var(--ivy-muted); }
.ivy-res .ivy-card--soon .ivy-card__count{ color:var(--ivy-muted); }

/* --- medical disclaimer: centred block AND centred text --- */
.ivy-res .ivy-medlegal{ text-align:center; }
.ivy-res .ivy-medlegal .ivy-medlegal__text,
.ivy-res .ivy-medlegal p{
  max-width:78ch !important; margin-left:auto !important; margin-right:auto !important;
  text-align:center;
}
