/* The Cozy Talk theme: everything theme.json cannot express. */
:root {
  --ct-sand: #F4EBDF; --ct-cream: #FFF8EF; --ct-ink: #241C17; --ct-ink-2: #33271F; --ct-muted: #6B5B4F;
  --ct-line: #E6D8C6; --ct-ember: #B4532F; --ct-ember-soft: #E4936A; --ct-peach: #F3D9C6; --ct-clay: #E9C9B4;
  --ct-sage: #3F5E4F; --ct-sage-soft: #DCE5DC; --ct-amber: #F0B27A;
  --ct-serif: "Noto Serif Display", Georgia, serif;
  --ct-gutter: clamp(18px, 5vw, 96px);
  --ct-radius: 32px;
}
html { scroll-behavior: smooth; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }
body { -webkit-font-smoothing: antialiased; }
:where(a, button, input, textarea, select, summary):focus-visible { outline: 3px solid var(--ct-ember); outline-offset: 3px; border-radius: 6px; }

/* Serif italic accent: any <em> inside a heading */
:where(h1, h2, h3, .ct-logo, .ct-footer__brand) em { font-family: var(--ct-serif); font-style: italic; font-weight: 400; letter-spacing: -0.01em; color: var(--ct-ember); }
.ct-band--night :where(h1, h2, h3) em { color: var(--ct-amber); }

/* Paragraph styles */
.is-style-eyebrow, .ct-eyebrow { font-size: 13px !important; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ct-ember); margin-bottom: 0 !important; }
.is-style-eyebrow a { color: inherit; text-decoration: none; }
.is-style-lead { font-size: var(--wp--preset--font-size--large); font-weight: 300; line-height: 1.7; color: #4E4038; max-width: 62ch; }
.ct-serif-note { font-family: var(--ct-serif); font-style: italic; font-size: 20px; line-height: 1.6; color: #4E4038; }
.ct-pill { display: inline-flex; align-items: center; gap: 10px; padding: 8px 16px; border-radius: 999px; background: var(--ct-cream); border: 1px solid var(--ct-line); font-size: 14px; }
.ct-meta { color: var(--ct-muted); font-size: 15px; }

/* Buttons */
.wp-block-button.is-style-outline > .wp-block-button__link { background: transparent; color: var(--ct-ink); border: 1px solid #CDBBA6; }
.wp-block-button.is-style-outline > .wp-block-button__link:hover { background: var(--ct-cream); }
.ct-btn-amber > .wp-block-button__link { background: var(--ct-amber); color: var(--ct-ink); }
.ct-btn { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 0 24px; border: 0; border-radius: 999px; background: var(--ct-sage); color: #fff; font: inherit; font-size: 15px; font-weight: 500; cursor: pointer; }

/* Lists */
.is-style-checks { list-style: none; padding: 0; }
.is-style-checks li { position: relative; padding-left: 28px; }
.is-style-checks li::before { content: ""; position: absolute; left: 0; top: .45em; width: 16px; height: 9px; border-left: 2px solid var(--ct-sage); border-bottom: 2px solid var(--ct-sage); transform: rotate(-45deg); }
.ct-inline { display: flex; flex-wrap: wrap; gap: 8px 26px; font-size: 15px; color: #4E4038; }
.ct-chips, .is-style-chips { display: flex; flex-wrap: wrap; gap: 8px; list-style: none; padding: 0; margin: 8px 0 40px; }
.ct-chips a, .is-style-chips li { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; border: 1px solid var(--ct-line); background: var(--ct-cream); color: var(--ct-ink); text-decoration: none; font-size: 15px; }
.ct-chips a[aria-current] { background: var(--ct-ink); border-color: var(--ct-ink); color: var(--ct-sand); }

/* Crisis strip */
.ct-crisis { display: flex; flex-wrap: wrap; align-items: center; justify-content: center; gap: 6px 16px; padding: 10px var(--ct-gutter); background: var(--ct-ink); color: var(--ct-sand); font-size: 13.5px; text-align: center; }
.ct-crisis a { color: var(--ct-amber); font-weight: 600; text-decoration: none; }
.ct-crisis a.ct-crisis__all { color: var(--ct-sand); font-weight: 400; text-decoration: underline; }

/* Header */
.ct-header { position: sticky; top: 0; z-index: 50; padding: 16px var(--ct-gutter) 0; }
.admin-bar .ct-header { top: 32px; }
.ct-nav { display: flex; align-items: center; justify-content: space-between; gap: 16px; max-width: 1344px; margin: 0 auto; min-height: 72px; padding: 0 12px 0 20px; box-sizing: border-box;
  background: rgba(255, 248, 239, 0.9); -webkit-backdrop-filter: blur(12px); backdrop-filter: blur(12px); border: 1px solid var(--ct-line); border-radius: 999px; box-shadow: 0 10px 30px rgba(36, 28, 23, 0.06); }
.ct-logo { display: inline-flex; align-items: center; gap: 10px; color: var(--ct-ink); text-decoration: none; font-size: 21px; font-weight: 600; letter-spacing: -0.03em; }
.ct-logo__mark { display: inline-flex; align-items: center; justify-content: center; width: 44px; height: 44px; border-radius: 50%; background: var(--ct-peach); color: var(--ct-ember); }
.ct-nav__panel { display: flex; align-items: center; gap: 12px; flex: 1; justify-content: space-between; }
.ct-menu { display: flex; gap: 4px; list-style: none; margin: 0 auto; padding: 0; }
.ct-menu a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 18px; border-radius: 999px; color: var(--ct-ink); text-decoration: none; font-size: 15px; }
.ct-menu a:hover { background: var(--ct-sand); }
.ct-menu a[aria-current] { background: var(--ct-ink); color: var(--ct-sand); }
.ct-nav__end { display: flex; align-items: center; gap: 10px; }
.ct-langs { display: flex; padding: 4px; border-radius: 999px; background: var(--ct-sand); font-size: 13px; font-weight: 600; }
.ct-langs a { display: inline-flex; align-items: center; min-height: 36px; padding: 0 12px; border-radius: 999px; color: var(--ct-muted); text-decoration: none; }
.ct-langs a[aria-current] { background: var(--ct-ink); color: var(--ct-sand); }
.ct-cta { display: inline-flex; align-items: center; min-height: 50px; padding: 0 22px; border-radius: 999px; background: var(--ct-sage); color: #fff; text-decoration: none; font-size: 15px; font-weight: 500; }
.ct-cta:hover { background: #34503F; color: #fff; }
.ct-burger { display: none; width: 48px; height: 48px; border: 0; border-radius: 50%; background: var(--ct-ink); cursor: pointer; }
.ct-burger span[aria-hidden] { display: block; width: 18px; height: 2px; margin: 0 auto; background: var(--ct-sand); box-shadow: 0 -6px 0 var(--ct-sand), 0 6px 0 var(--ct-sand); }
@media (max-width: 1020px) {
  .ct-nav { border-radius: 30px; flex-wrap: wrap; padding: 8px 8px 8px 14px; }
  .ct-burger { display: inline-block; }
  .ct-nav__panel { display: none; flex-basis: 100%; flex-direction: column; align-items: stretch; padding: 8px 4px 12px; }
  .ct-nav.is-open .ct-nav__panel { display: flex; }
  .ct-menu { flex-direction: column; margin: 0; }
  .ct-nav__end { justify-content: space-between; }
}

/* Main spacing */
.ct-main { padding-top: clamp(24px, 4vw, 48px); padding-bottom: 0; }
.ct-page, .ct-article, .ct-404 { padding-bottom: clamp(56px, 9vw, 112px); }
.ct-section { padding-block: clamp(56px, 9vw, 112px); }
.ct-section > .wp-block-heading { margin-bottom: 40px; }

/* Full-bleed bands inside the constrained main */
.ct-band { margin-inline: calc(50% - 50vw) !important; padding-inline: max(calc(50vw - 624px), var(--ct-gutter)); max-width: none !important; }
.ct-band--cream { background: var(--ct-cream); border-block: 1px solid var(--ct-line); }
.ct-band--night { background: var(--ct-ink); color: var(--ct-sand); }
.ct-band--night .is-style-eyebrow { color: var(--ct-amber); }
.ct-band--night .is-style-lead { color: #D9CBBB; }

/* Hero */
.ct-hero { padding-block: clamp(24px, 5vw, 64px) clamp(56px, 9vw, 112px); }
.ct-hero--text .is-style-lead { max-width: 70ch; }
.ct-hero__chat { position: relative; display: flex; flex-direction: column; gap: 12px; padding: clamp(28px, 5vw, 64px) clamp(18px, 3vw, 36px) 40px; }

/* Cards and shapes */
.is-style-card, .is-style-card-dark, .is-style-card-sage, .is-style-card-peach { padding: clamp(24px, 3vw, 40px); border-radius: var(--ct-radius); }
.is-style-card { background: var(--ct-cream); border: 1px solid var(--ct-line); }
.is-style-card-dark { background: var(--ct-ink); color: var(--ct-sand); }
.is-style-card-dark a { color: var(--ct-sand); }
.is-style-card-sage { background: var(--ct-sage-soft); }
.is-style-card-peach { background: var(--ct-peach); }
.is-style-arch { border-radius: 999px 999px 40px 40px; background: var(--ct-clay); }
.ct-photo { min-height: 380px; display: flex; align-items: center; justify-content: center; color: #6B4A3A; font-size: 14px; }
.ct-rounded img, .ct-rounded { border-radius: 28px; }
.ct-steps { gap: 24px; }
.ct-step-no { font-family: var(--ct-serif); font-style: italic; font-size: 60px; line-height: 1; color: var(--ct-ember); margin: 0; }
.ct-about-teaser { padding: clamp(24px, 4vw, 64px); }

/* Eva's photo */
.ct-eva-photo { margin: 0; }
.ct-eva-photo img { display: block; width: 100%; height: auto; border-radius: 999px 999px 40px 40px; }
.ct-eva-photo--float { float: right; width: min(300px, 40%); margin: 0 0 24px 40px; }
@media (max-width: 640px) { .ct-eva-photo--float { float: none; width: 70%; margin: 0 auto 24px; } }

/* Chat bubbles */
.is-style-bubble-reader, .is-style-bubble-eva, .is-style-bubble-quote { max-width: min(640px, 88%); padding: 16px 20px; line-height: 1.6; margin-block: 6px !important; }
.is-style-bubble-reader { margin-right: auto !important; border-radius: 26px 26px 26px 8px; background: #fff; border: 1px solid var(--ct-line); }
.is-style-bubble-eva { margin-left: auto !important; border-radius: 26px 26px 8px 26px; background: var(--ct-peach); }
.is-style-bubble-quote { margin-left: auto !important; padding: 22px 28px; border-radius: 30px 30px 8px 30px; background: var(--ct-ink); color: var(--ct-sand); font-family: var(--ct-serif); font-style: italic; font-size: 24px; line-height: 1.35; }
.is-style-bubble-eva + .is-style-bubble-reader, .is-style-bubble-quote + .is-style-bubble-reader,
.is-style-bubble-reader + .is-style-bubble-eva, .is-style-bubble-reader + .is-style-bubble-quote { margin-top: 28px !important; }
.is-style-thread { padding: clamp(18px, 4vw, 44px); border-radius: 40px; background: var(--ct-cream); border: 1px solid var(--ct-line); }
.is-style-thread .wp-block-post-content > * + * { margin-top: 0; }

/* Talk and post cards */
.ct-talk-grid .wp-block-post-template, .ct-post-grid .wp-block-post-template { gap: 24px; }
.ct-talk-card { height: 100%; box-sizing: border-box; padding: 32px; border-radius: 30px; background: #fff; border: 1px solid var(--ct-line); display: flex; flex-direction: column; gap: 12px; }
.ct-talk-grid .wp-block-post:first-child .ct-talk-card { background: var(--ct-ink-2); color: var(--ct-sand); border-color: var(--ct-ink-2); }
.ct-talk-grid .wp-block-post:first-child .ct-talk-card a { color: var(--ct-sand); }
.ct-talk-grid .wp-block-post:first-child .is-style-eyebrow a { color: var(--ct-amber); }
.ct-talk-card .wp-block-post-title { font-size: 26px; line-height: 1.12; letter-spacing: -0.03em; margin: 0; }
.ct-talk-card .wp-block-post-title a, .ct-post-card .wp-block-post-title a { color: inherit; text-decoration: none; }
.ct-talk-card .wp-block-post-excerpt { font-size: 16px; opacity: .85; margin: 0; }
.ct-talk-card .wp-block-post-excerpt__more-text { display: none; }
.ct-post-card { display: flex; flex-direction: column; gap: 12px; }
.ct-post-card .wp-block-post-featured-image { margin: 0; }
.ct-post-card .wp-block-post-title { font-size: 26px; line-height: 1.12; letter-spacing: -0.03em; margin: 0; }
.ct-post-card .wp-block-post-excerpt { font-size: 16px; color: #4E4038; margin: 0; }

/* Talk page */
.ct-talk__cols { gap: clamp(24px, 4vw, 56px); }
.ct-talk__aside { display: flex; flex-direction: column; gap: 22px; padding-top: clamp(0px, 10vw, 180px); }
.ct-talk .wp-block-post-title { margin-block: 8px 28px; font-size: clamp(40px, 6vw, 76px); }
.ct-comments { margin-top: 48px; }
.ct-comment { max-width: 600px; padding: 16px 20px; border-radius: 26px 26px 26px 8px; background: #fff; border: 1px solid var(--ct-line); margin-bottom: 12px; }
.ct-comment .wp-block-comment-author-name { font-weight: 600; font-size: 15px; }
.ct-comments textarea, .ct-comments input[type="text"], .ct-comments input[type="email"], .ct-comments input[type="url"] { width: 100%; box-sizing: border-box; padding: 14px 18px; border: 1px solid #D9C7B2; border-radius: 20px; background: #FFFDF8; font: inherit; }
.ct-comments .comment-form-email, .ct-comments .comment-form-url, .ct-comments .comment-form-cookies-consent { display: none; }

/* Help */
.ct-help-card h3 { font-size: 24px; }
.ct-phone-list { list-style: none; padding: 0; display: grid; gap: 8px; }
.ct-phone-list a { display: flex; justify-content: space-between; align-items: center; min-height: 50px; padding: 0 18px; border-radius: 16px; background: var(--ct-ink-2); color: var(--ct-sand); text-decoration: none; font-size: 15px; }
.ct-phone-list strong { color: var(--ct-amber); }
.ct-emergency-card .wp-block-columns { align-items: center; }
.ct-emergency { padding: 24px 28px; border-radius: 28px; background: var(--ct-amber); color: var(--ct-ink); }
.ct-emergency--dim { background: var(--ct-ink-2); color: var(--ct-sand); }
.ct-line__no { margin: 0; font-size: clamp(40px, 5vw, 58px); line-height: 1; font-weight: 700; letter-spacing: -0.04em; }
.ct-line__no a { color: inherit; text-decoration: none; }
.ct-line .ct-line__no a { color: var(--ct-ember); }
.ct-lines { gap: 20px; margin-bottom: 20px; }
.ct-tips { display: grid; gap: 14px; padding-left: 1.2em; font-size: 17px; }

/* FAQ */
.ct-faq { padding: 22px 28px; border-radius: 26px; background: var(--ct-cream); border: 1px solid var(--ct-line); margin-block: 12px; }
.ct-faq summary { cursor: pointer; font-size: 20px; font-weight: 600; letter-spacing: -0.02em; }
.ct-faq p { margin-top: 12px; color: #4E4038; }

/* Radio art (home band) */
.ct-radio-art { position: relative; height: clamp(220px, 30vw, 360px); border-radius: 32px; overflow: hidden; background: #4A3A30; }
.ct-radio-art__sun { position: absolute; left: 10%; top: 14%; width: 36%; aspect-ratio: 1; border-radius: 50%; background: var(--ct-amber); }
.ct-radio-art__arch { position: absolute; left: 34%; top: 34%; width: 44%; height: 70%; border-radius: 999px 999px 0 0; background: rgba(255, 248, 239, .12); }
.ct-radio-art__eq { position: absolute; right: 8%; bottom: 12%; display: flex; align-items: flex-end; gap: 7px; height: 90px; }
.ct-radio-art__eq i { width: 10px; border-radius: 5px; background: var(--ct-amber); height: 40%; animation: ct-eq 1.2s ease-in-out infinite; }
.ct-radio-art__eq i:nth-child(2) { animation-delay: -.3s; } .ct-radio-art__eq i:nth-child(3) { animation-delay: -.6s; }
.ct-radio-art__eq i:nth-child(4) { animation-delay: -.9s; } .ct-radio-art__eq i:nth-child(5) { animation-delay: -.45s; }
@keyframes ct-eq { 0%, 100% { height: 30%; } 50% { height: 100%; } }

/* Breathing exercise */
.ct-breathe-card { display: flex; flex-direction: column; align-items: flex-start; gap: 12px; }
.ct-breathe { display: flex; justify-content: center; width: 100%; margin-bottom: 8px; }
.ct-breathe > .ct-breathe__ring { width: 210px; height: 210px; background: rgba(63, 94, 79, .14); }
.ct-breathe__ring { display: flex; align-items: center; justify-content: center; border-radius: 50%; }
.ct-breathe__ring .ct-breathe__ring { width: 70%; height: 70%; background: rgba(63, 94, 79, .22); }
.ct-breathe__core { display: flex; align-items: center; justify-content: center; width: 60%; height: 60%; border-radius: 50%; background: var(--ct-sage); color: #fff; font-family: var(--ct-serif); font-style: italic; font-size: 17px; transition: transform 4s ease-in-out; }
.ct-breathe.is-in .ct-breathe__core, .ct-breathe.is-hold .ct-breathe__core { transform: scale(1.55); }
.ct-breathe.is-out .ct-breathe__core { transition-duration: 6s; transform: scale(1); }
@media (prefers-reduced-motion: reduce) { .ct-breathe__core { transition: none !important; transform: none !important; } .ct-radio-art__eq i { animation: none; height: 70%; } }

/* Quote in the thought card */
.ct-thought .wp-block-quote { border: 0; padding: 0; margin: 0; }
.ct-thought .wp-block-quote cite { display: block; margin-top: 16px; font-family: inherit; font-style: normal; font-size: 15px; color: #6B4A3A; }
.ct-thought .wp-block-quote cite::before { content: "— "; }

/* Fluent Forms: match the theme */
.fluentform .ff-el-input--label label { font-weight: 600; }
.fluentform .ff-el-form-control { border: 1px solid #D9C7B2 !important; border-radius: 20px !important; background: #FFFDF8 !important; padding: 14px 18px !important; font: inherit !important; }
.fluentform textarea.ff-el-form-control { border-radius: 26px 26px 26px 8px !important; min-height: 280px; }
.fluentform .ff-btn-submit { border-radius: 999px !important; background: var(--ct-sage) !important; padding: 16px 32px !important; font: inherit !important; font-weight: 500 !important; }
.ff-message-success { border-radius: 26px 26px 8px 26px; background: var(--ct-peach); border: 0 !important; padding: 20px 24px !important; }

/* Footer */
.ct-footer { background: var(--ct-ink); color: var(--ct-sand); padding: clamp(48px, 7vw, 72px) var(--ct-gutter) 36px; margin-top: 0; }
.ct-footer__grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 40px; max-width: 1248px; margin: 0 auto; }
.ct-footer p { margin: 0 0 14px; color: #D9CBBB; font-size: 15px; }
.ct-footer .ct-footer__brand { font-size: 30px; font-weight: 600; letter-spacing: -0.03em; color: var(--ct-sand); }
.ct-footer .ct-footer__brand em { color: var(--ct-amber); }
.ct-footer .ct-footer__small { font-size: 13px; color: #B7A796; }
.ct-footer .ct-footer__title { font-size: 13px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; color: var(--ct-amber); }
.ct-footer ul { list-style: none; padding: 0; margin: 0; display: grid; gap: 10px; }
.ct-footer a { color: var(--ct-sand); text-decoration: none; font-size: 15px; }
.ct-footer a:hover { text-decoration: underline; }
.ct-footer .ct-footer__accent { color: var(--ct-amber); }
.ct-footer__bottom { display: flex; justify-content: space-between; gap: 16px; max-width: 1248px; margin: 40px auto 0; padding-top: 24px; border-top: 1px solid #4A3D34; font-size: 13px; color: #B7A796; }
@media (max-width: 900px) { .ct-footer__grid { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .ct-footer__grid { grid-template-columns: 1fr; } }

/* Small screens */
@media (max-width: 781px) {
  .ct-hero__chat { margin-top: 24px; }
  .ct-talk__aside { padding-top: 0; }
  .ct-talk-grid .wp-block-post-template, .ct-post-grid .wp-block-post-template { grid-template-columns: 1fr !important; }
}
