/*
Theme Name: Thryvv Child
Theme URI: https://www.thryvv.io
Description: Thryvv.io GeneratePress child theme for the custom staging site build.
Author: Thryvv / Data
Template: generatepress
Version: 1.0.1
Text Domain: thryvv-child
*/
/* Feature image radius alignment — match the rounded hero image treatment on the index page. */
img.wp-post-image,
.featured-image img,
.post-image img,
.inside-article .featured-image img {
  border-radius: clamp(28px, 3vw, 44px);
  overflow: hidden;
}


/* What We Do baseline consistency for GeneratePress/default WordPress surfaces. */
:root {
  --c-coral: #FF5C46;
  --c-coral-deep: #E8472F;
  --c-ink: #0F1316;
  --c-graphite: #2A3338;
  --c-mid: #5B6770;
  --c-line: #ECE9E3;
  --c-paper: #FBFAF7;
  --ff-display: "Newsreader", "Source Serif 4", Georgia, serif;
  --ff-body: "Inter Tight", "Inter", system-ui, sans-serif;
  --fs-body: 1.0625rem;
  --fs-body-lg: 1.2rem;
  --fs-h3: clamp(1.625rem, 1.3rem + 1.2vw, 2.25rem);
  --fs-h2: clamp(2rem, 1.4rem + 2.4vw, 3.25rem);
  --fs-h1: clamp(2.75rem, 1.6rem + 5.5vw, 6rem);
  --tracking-tight: -0.028em;
  --tracking-caps: 0.14em;
}
body { font-family: var(--ff-body); font-size: var(--fs-body); line-height: 1.6; color: var(--c-graphite); }
h1, h2, h3, h4, .entry-title, .page-title, .widget-title { font-family: var(--ff-display); font-weight: 400; color: var(--c-ink); line-height: 1.04; letter-spacing: var(--tracking-tight); }
.entry-title, .page-title { font-size: var(--fs-h1); }
.entry-content h2, .widget-title { font-size: var(--fs-h2); }
.entry-content h3 { font-size: var(--fs-h3); }
.entry-content p, .entry-summary { font-size: var(--fs-body-lg); line-height: 1.55; }
em, mark { color: var(--c-coral); font-family: var(--ff-display); font-style: italic; background: transparent; }
a:hover { color: var(--c-coral); }
img.wp-post-image, .featured-image img, .post-image img, .inside-article .featured-image img { border-radius: clamp(28px, 3vw, 44px); overflow: hidden; }

/* Consistency refinement: buttons, blog archive and sidebar polish against What We Do baseline. */
.btn,
.btn:visited,
.btn:hover,
.btn:focus,
a.btn,
a.btn:visited,
a.btn:hover,
a.btn:focus,
.nav__cta a,
.hero__foot a.btn--coral,
.contact-hero a.btn--coral {
  text-decoration: none !important;
}

.blog .entry-header .entry-title,
.archive .entry-header .entry-title,
.search .entry-header .entry-title {
  font-size: clamp(2rem, 1.4rem + 2.4vw, 3.25rem);
  line-height: 1.04;
  max-width: 18ch;
  margin-bottom: 18px;
}
.blog .entry-title a,
.archive .entry-title a,
.search .entry-title a,
.sidebar a {
  color: var(--c-ink);
  text-decoration: none;
}
.blog .entry-title a:hover,
.archive .entry-title a:hover,
.search .entry-title a:hover,
.sidebar a:hover {
  color: var(--c-coral);
  text-decoration: none;
}
.blog .entry-summary,
.archive .entry-summary,
.search .entry-summary {
  font-size: var(--fs-body);
  color: var(--c-graphite);
  line-height: 1.6;
}
.sidebar .widget-title {
  font-family: var(--ff-body);
  font-size: var(--fs-eyebrow, 0.74rem);
  font-weight: 500;
  letter-spacing: var(--tracking-caps, 0.14em);
  text-transform: uppercase;
  color: var(--c-coral);
  margin-bottom: 18px;
}
.sidebar .widget {
  border: 1px solid var(--c-line);
  border-radius: var(--r-lg, 24px);
  background: var(--c-white);
}
.sidebar .search-form {
  display: grid;
  grid-template-columns: minmax(0, 1fr) auto;
  gap: 10px;
  align-items: end;
}
.sidebar .search-field {
  width: 100%;
  border: 1px solid var(--c-line);
  border-radius: 14px;
  background: var(--c-white);
  color: var(--c-ink);
  padding: 13px 14px;
  font-family: var(--ff-body);
  font-size: 1rem;
}
.sidebar .search-submit,
.search-submit {
  border: 0;
  border-radius: var(--r-pill, 999px);
  background: var(--c-coral);
  color: var(--c-white);
  padding: 13px 18px;
  font-family: var(--ff-body);
  font-weight: 500;
}
.sidebar .search-submit:hover,
.search-submit:hover { background: var(--c-coral-deep); }
@media (min-width: 1024px) {
  .hero { padding-top: clamp(72px, 8vw, 122px); }
  .thryvv-contact-page .contact-hero { padding-top: clamp(86px, 10vw, 132px); }
}

/* Consistency refinement 2: remove default blue WordPress link/widget styling. */
.byline a,
.posted-on a,
.cat-links a,
.tags-links a,
.comments-link a,
.entry-meta a,
.entry-footer a,
.sidebar .widget a {
  color: var(--c-ink) !important;
  text-decoration: none !important;
}
.byline a:hover,
.posted-on a:hover,
.cat-links a:hover,
.tags-links a:hover,
.comments-link a:hover,
.entry-meta a:hover,
.entry-footer a:hover,
.sidebar .widget a:hover {
  color: var(--c-coral) !important;
}
.sidebar .widget .widget-title,
.sidebar .widget h2,
.sidebar .widget h3 {
  font-family: var(--ff-body) !important;
  font-size: var(--fs-eyebrow, 0.74rem) !important;
  font-weight: 500 !important;
  letter-spacing: var(--tracking-caps, 0.14em) !important;
  text-transform: uppercase !important;
  color: var(--c-coral) !important;
  line-height: 1.25 !important;
}

/* STRICT What We Do baseline — computed-size and highlight-colour enforcement. */
:root {
  --c-coral: #FF5C46;
  --c-coral-deep: #E8472F;
  --ff-display: "Newsreader", "Source Serif 4", Georgia, serif;
  --ff-body: "Inter Tight", "Inter", system-ui, sans-serif;
  --wwd-h1: clamp(2.5rem, 1.5rem + 3.6vw, 4.5rem);
  --wwd-h2: clamp(2rem, 1.4rem + 2.2vw, 3rem);
  --wwd-h3: clamp(1.5rem, 1.15rem + 1.4vw, 2.25rem);
  --wwd-body-lg: 1.2rem;
  --wwd-body: 1.0625rem;
}

.thryvv-claude-home .hero__h1,
.thryvv-contact-page .hero__h1,
.thryvv-contact-page .contact-hero .hero__h1,
.blog .entry-header .entry-title,
.archive .entry-header .entry-title,
.search .entry-header .entry-title,
.single .entry-header .entry-title,
.page-header h1,
.entry-header h1.entry-title {
  font-family: var(--ff-display) !important;
  font-size: var(--wwd-h1) !important;
  line-height: 1 !important;
  letter-spacing: -0.032em !important;
  font-weight: 400 !important;
  color: var(--c-ink) !important;
}

.thryvv-claude-home .section h2,
.thryvv-claude-home .advocate-bridge__statement,
.thryvv-contact-page .form-heading h2,
.thryvv-contact-page .expect-card h2,
.entry-content h2,
.sidebar .widget-title,
.sidebar .widget h2,
.sidebar .widget h3 {
  font-family: var(--ff-display) !important;
  font-size: var(--wwd-h2) !important;
  line-height: 1.04 !important;
  letter-spacing: -0.028em !important;
  font-weight: 400 !important;
  color: var(--c-ink) !important;
}

.thryvv-claude-home .section h3,
.entry-content h3,
.blog .entry-summary h2,
.archive .entry-summary h2 {
  font-family: var(--ff-display) !important;
  font-size: var(--wwd-h3) !important;
  line-height: 1.08 !important;
  letter-spacing: -0.02em !important;
  font-weight: 400 !important;
  color: var(--c-ink) !important;
}

.thryvv-claude-home .hero__sub,
.thryvv-contact-page .hero__sub,
.thryvv-claude-home .section p,
.thryvv-contact-page p,
.entry-content p,
.entry-summary,
.sidebar .widget,
.sidebar .widget p,
.sidebar .widget li {
  font-family: var(--ff-body) !important;
  font-size: var(--wwd-body-lg) !important;
  line-height: 1.55 !important;
  color: var(--c-graphite) !important;
}

.thryvv-claude-home .hero__sub--punch {
  font-weight: 400 !important;
}

.thryvv-claude-home h1 em,
.thryvv-claude-home h2 em,
.thryvv-claude-home h3 em,
.thryvv-contact-page h1 em,
.thryvv-contact-page h2 em,
.entry-content h1 em,
.entry-content h2 em,
.entry-content h3 em,
.hero__highlight,
mark,
.advocate-bridge__statement-red,
[class*="highlight"] {
  font-family: var(--ff-display) !important;
  font-style: italic !important;
  font-weight: 400 !important;
  color: var(--c-coral) !important;
  background: transparent !important;
}

.btn--coral,
.nav__cta .btn,
button[type="submit"],
input[type="submit"],
.search-submit {
  background: var(--c-coral) !important;
  border-color: var(--c-coral) !important;
  color: #fff !important;
  font-family: var(--ff-body) !important;
}
.btn--coral:hover,
.nav__cta .btn:hover,
button[type="submit"]:hover,
input[type="submit"]:hover,
.search-submit:hover {
  background: var(--c-coral-deep) !important;
  border-color: var(--c-coral-deep) !important;
  color: #fff !important;
}

a:hover,
.nav__links a:hover,
.nav__phone:hover,
.sidebar a:hover,
.entry-title a:hover,
.entry-meta a:hover,
.entry-footer a:hover { color: var(--c-coral) !important; }

@media (max-width: 760px) {
  :root {
    --wwd-h1: clamp(2.5rem, 1.55rem + 7vw, 4rem);
    --wwd-h2: clamp(2rem, 1.35rem + 4.6vw, 3rem);
    --wwd-body-lg: 1.08rem;
  }
}

/* Strict baseline correction: sidebar widget titles use the What We Do eyebrow scale, not H2 scale. */
.sidebar .widget-title,
.sidebar .widget h2,
.sidebar .widget h3 {
  font-family: var(--ff-body) !important;
  font-size: 0.74rem !important;
  line-height: 1.6 !important;
  letter-spacing: var(--tracking-caps, 0.14em) !important;
  text-transform: uppercase !important;
  font-weight: 500 !important;
  color: var(--c-coral) !important;
  overflow-wrap: normal !important;
  word-break: normal !important;
  hyphens: none !important;
}

/* Homepage hero copy accent — only colours the requested words, without changing type scale/layout. */
.thryvv-claude-home .hero__h1 .hero__headline-accent {
  color: var(--c-coral) !important;
  font: inherit !important;
  font-style: inherit !important;
  font-weight: inherit !important;
  letter-spacing: inherit !important;
}

/* Homepage hero refinement — italic coral feature words and slightly larger punch subhead. */
.thryvv-claude-home .hero__h1 .hero__headline-accent {
  font-style: italic !important;
}
html body.thryvv-claude-front-page .hero__sub.hero__sub--punch,
html body .thryvv-claude-home .hero__sub.hero__sub--punch {
  font-size: 19px !important;
  line-height: 1.5 !important;
}
@media (max-width: 760px) {
  html body.thryvv-claude-front-page .hero__sub.hero__sub--punch,
  html body .thryvv-claude-home .hero__sub.hero__sub--punch {
    font-size: 18px !important;
  }
}

/* Homepage hero refinement — bold the main reassurance line. */
html body.thryvv-claude-front-page .hero__sub.hero__sub--punch,
html body .thryvv-claude-home .hero__sub.hero__sub--punch {
  font-weight: 700 !important;
}
/* Homepage hero subhead typewriter treatment. */
html body.thryvv-claude-front-page .hero__sub--typewriter,
html body .thryvv-claude-home .hero__sub--typewriter {
  display: block !important;
  min-height: 1.5em;
}
html body.thryvv-claude-front-page .hero__sub-typewriter-text,
html body .thryvv-claude-home .hero__sub-typewriter-text {
  display: inline-block;
}
html body.thryvv-claude-front-page .hero__sub-typewriter-cursor,
html body .thryvv-claude-home .hero__sub-typewriter-cursor {
  display: inline-block;
  margin-left: 0.16em;
  color: var(--c-coral) !important;
  font: inherit;
  line-height: inherit;
  animation: thryvv-home-subhead-cursor 1s steps(1) infinite;
}
@keyframes thryvv-home-subhead-cursor {
  0%, 49% { opacity: 1; }
  50%, 100% { opacity: 0; }
}
@media (prefers-reduced-motion: reduce) {
  html body.thryvv-claude-front-page .hero__sub-typewriter-cursor,
  html body .thryvv-claude-home .hero__sub-typewriter-cursor { animation: none; }
}

/* Homepage hero background-image trial — supplied team photo as full hero background with copy over left. */
html body.thryvv-claude-front-page .hero,
html body .thryvv-claude-home .hero {
  position: relative !important;
  min-height: calc(100vh - 73px) !important;
  min-height: calc(100svh - 73px) !important;
  padding-block: clamp(96px, 11vw, 150px) clamp(80px, 9vw, 130px) !important;
  background-image: url('/wp-content/themes/thryvv-child/assets/images/thryvv-home-hero-background.png') !important;
  background-size: cover !important;
  background-position: center center !important;
  background-repeat: no-repeat !important;
  display: flex !important;
  align-items: center !important;
}
html body.thryvv-claude-front-page .hero::before,
html body .thryvv-claude-home .hero::before {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(90deg, rgba(15,19,22,0.22) 0%, rgba(15,19,22,0.10) 42%, rgba(15,19,22,0.02) 74%);
  pointer-events: none;
  z-index: 0;
}
html body.thryvv-claude-front-page .hero__inner,
html body .thryvv-claude-home .hero__inner {
  position: relative !important;
  z-index: 1 !important;
  width: 100% !important;
  display: block !important;
  max-width: var(--container) !important;
}
html body.thryvv-claude-front-page .hero__copy,
html body .thryvv-claude-home .hero__copy {
  max-width: 650px !important;
  color: rgba(255,255,255,0.90) !important;
}
html body.thryvv-claude-front-page .hero__chip,
html body .thryvv-claude-home .hero__chip {
  color: rgba(255,255,255,0.86) !important;
  border-color: rgba(255,255,255,0.30) !important;
  background: rgba(15,19,22,0.18) !important;
  backdrop-filter: blur(8px);
}
html body.thryvv-claude-front-page .hero__h1,
html body .thryvv-claude-home .hero__h1 {
  color: #fff !important;
  text-shadow: 0 18px 42px rgba(15,19,22,0.25);
}
html body.thryvv-claude-front-page .hero__headline-accent,
html body .thryvv-claude-home .hero__headline-accent {
  color: var(--c-coral) !important;
  font: inherit !important;
  font-style: inherit !important;
}
html body.thryvv-claude-front-page .hero__sub,
html body.thryvv-claude-home .hero__sub,
html body .thryvv-claude-home .hero__sub {
  color: rgba(255,255,255,0.90) !important;
}
html body.thryvv-claude-front-page .hero__foot-meta,
html body .thryvv-claude-home .hero__foot-meta,
html body.thryvv-claude-front-page .hero__foot .btn--link,
html body .thryvv-claude-home .hero__foot .btn--link {
  color: rgba(255,255,255,0.82) !important;
}
html body.thryvv-claude-front-page .hero__image-space,
html body .thryvv-claude-home .hero__image-space {
  display: none !important;
}
@media (max-width: 900px) {
  html body.thryvv-claude-front-page .hero,
  html body .thryvv-claude-home .hero {
    min-height: auto !important;
    padding-block: clamp(92px, 22vw, 132px) clamp(70px, 18vw, 104px) !important;
    background-position: 62% center !important;
  }
  html body.thryvv-claude-front-page .hero::before,
  html body .thryvv-claude-home .hero::before {
    background: linear-gradient(90deg, rgba(15,19,22,0.44) 0%, rgba(15,19,22,0.26) 58%, rgba(15,19,22,0.12) 100%);
  }
  html body.thryvv-claude-front-page .hero__copy,
  html body .thryvv-claude-home .hero__copy {
    max-width: 620px !important;
  }
}
@media (max-width: 560px) {
  html body.thryvv-claude-front-page .hero,
  html body .thryvv-claude-home .hero {
    background-position: 66% center !important;
  }
  html body.thryvv-claude-front-page .hero::before,
  html body .thryvv-claude-home .hero::before {
    background: linear-gradient(90deg, rgba(15,19,22,0.62) 0%, rgba(15,19,22,0.42) 64%, rgba(15,19,22,0.22) 100%);
  }
}

/* Mobile refinement for the background-image hero trial: keep the positioning label compact and readable. */
@media (max-width: 560px) {
  html body.thryvv-claude-front-page .hero__chip,
  html body .thryvv-claude-home .hero__chip {
    font-size: 0.66rem !important;
    letter-spacing: 0.08em !important;
    white-space: nowrap !important;
    padding-inline: 12px !important;
  }
}

/* Homepage hero headline accent: matters. is coral and italic, without changing weight/scale/layout. */
html body.thryvv-claude-front-page .hero__h1 .hero__headline-accent,
html body .thryvv-claude-home .hero__h1 .hero__headline-accent {
  color: var(--c-coral) !important;
  font-style: italic !important;
  font-weight: inherit !important;
  font-size: inherit !important;
  line-height: inherit !important;
  letter-spacing: inherit !important;
}

/* Improve small hero proof-line contrast over the photo background. */
html body.thryvv-claude-front-page .hero__foot-meta,
html body .thryvv-claude-home .hero__foot-meta {
  color: rgba(255,255,255,0.92) !important;
  text-shadow: 0 8px 24px rgba(15,19,22,0.28);
}
