/*
Theme Name: The Cleansing Wave
Theme URI: https://hiveco716.com/
Author: Hive & Company
Author URI: https://hiveco716.com/
Description: A warm, ministry-centered WordPress theme for The Cleansing Wave Soap Company.
Version: 1.2.0
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: cleansing-wave
*/

:root {
  --cw-navy: #17324f;
  --cw-blue: #168dd0;
  --cw-sky: #72bee9;
  --cw-pale: #eaf6fc;
  --cw-cream: #fbf8f2;
  --cw-white: #ffffff;
  --cw-ink: #293846;
  --cw-muted: #677481;
  --cw-line: #d9e6ee;
  --cw-shadow: 0 18px 50px rgba(23, 50, 79, .09);
  --cw-serif: "Cormorant Garamond", Georgia, serif;
  --cw-sans: "Manrope", Arial, sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--cw-ink); background: var(--cw-white); font-family: var(--cw-sans); line-height: 1.7; }
body.admin-bar .site-header { top: 32px; }
img { display: block; max-width: 100%; height: auto; }
a { color: var(--cw-blue); text-decoration: none; }
a:hover { color: var(--cw-navy); }
h1, h2, h3, h4 { color: var(--cw-navy); font-family: var(--cw-serif); font-weight: 600; line-height: 1.08; margin: 0 0 .55em; }
h1 { font-size: clamp(3rem, 6vw, 5.8rem); }
h2 { font-size: clamp(2.35rem, 4vw, 4.1rem); }
h3 { font-size: clamp(1.55rem, 2.5vw, 2rem); }
p { margin: 0 0 1.2rem; }

.cw-container { width: min(1180px, calc(100% - 44px)); margin-inline: auto; }
.cw-section { padding: 92px 0; }
.cw-section--cream { background: var(--cw-cream); }
.cw-section--pale { background: linear-gradient(135deg, #f5fbfe, #dff2fb); }
.cw-eyebrow { color: var(--cw-blue); font-size: .78rem; font-weight: 800; letter-spacing: .16em; text-transform: uppercase; }
.cw-intro { max-width: 720px; margin: 0 auto 48px; text-align: center; }
.cw-intro p { color: var(--cw-muted); font-size: 1.05rem; }
.cw-button { display: inline-flex; align-items: center; justify-content: center; min-height: 48px; padding: 12px 24px; border: 2px solid var(--cw-blue); border-radius: 4px; background: var(--cw-blue); color: #fff; font-size: .86rem; font-weight: 800; letter-spacing: .02em; transition: .2s ease; }
.cw-button:hover { background: var(--cw-navy); border-color: var(--cw-navy); color: #fff; transform: translateY(-2px); }
.cw-button--outline { background: transparent; color: var(--cw-blue); }
.cw-button--outline:hover { color: #fff; }
.cw-buttons { display: flex; flex-wrap: wrap; gap: 14px; }

.site-header { position: sticky; z-index: 100; top: 0; border-bottom: 1px solid rgba(23,50,79,.08); background: rgba(255,255,255,.96); backdrop-filter: blur(14px); }
.site-header__inner { display: flex; align-items: center; min-height: 92px; gap: 30px; }
.site-branding { flex: 0 0 min(300px, 33vw); }
.site-branding img { width: auto; max-height: 66px; }
.site-title { color: var(--cw-navy); font-family: var(--cw-serif); font-size: 2rem; }
.site-description { color: var(--cw-muted); font-size: .72rem; margin: 0; }
.primary-navigation { margin-left: auto; }
.primary-navigation ul { display: flex; align-items: center; gap: 26px; list-style: none; margin: 0; padding: 0; }
.primary-navigation a { color: var(--cw-ink); font-size: .82rem; font-weight: 700; }
.primary-navigation a:hover, .primary-navigation .current-menu-item > a { color: var(--cw-blue); }
.menu-toggle { display: none; margin-left: auto; padding: 10px 12px; border: 1px solid var(--cw-line); background: #fff; color: var(--cw-navy); font: 700 .85rem var(--cw-sans); }

.cw-hero { overflow: hidden; background: var(--cw-cream); }
.cw-hero__grid { display: grid; grid-template-columns: .9fr 1.1fr; min-height: 650px; }
.cw-hero__copy { position: relative; display: flex; justify-content: center; flex-direction: column; padding: 80px max(42px, calc((100vw - 1180px)/2)); padding-right: 60px; }
.cw-hero__copy p { max-width: 570px; color: var(--cw-muted); font-size: 1.12rem; }
.cw-hero__media { position: relative; min-height: 560px; background: #dcebf3 center/cover no-repeat; }
.cw-hero__media img { width: 100%; height: 100%; object-fit: cover; }
.cw-wave { position: absolute; right: -30px; bottom: 24px; width: 320px; height: 70px; opacity: .62; }
.cw-wave::before, .cw-wave::after { position: absolute; right: 0; width: 100%; height: 34px; border-top: 5px solid var(--cw-sky); border-radius: 50%; content: ""; transform: rotate(-5deg); }
.cw-wave::after { top: 18px; right: 20px; border-color: var(--cw-blue); }

.cw-verse { padding: 52px 20px; text-align: center; }
.cw-verse blockquote { margin: 0; color: var(--cw-navy); font-family: var(--cw-serif); font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.15; }
.cw-verse cite { display: block; margin-top: 10px; color: var(--cw-muted); font-style: normal; }

.cw-grid { display: grid; gap: 24px; }
.cw-grid--3 { grid-template-columns: repeat(3, 1fr); }
.cw-grid--4 { grid-template-columns: repeat(4, 1fr); }
.cw-purpose-card { min-height: 250px; padding: 38px 30px; border: 1px solid var(--cw-line); border-radius: 8px; background: #fff; text-align: center; box-shadow: 0 8px 24px rgba(23,50,79,.04); }
.cw-purpose-card__icon { display: grid; width: 62px; height: 62px; margin: 0 auto 20px; border-radius: 50%; background: var(--cw-pale); color: var(--cw-blue); place-items: center; font-family: var(--cw-serif); font-size: 2rem; }
.cw-purpose-card p { color: var(--cw-muted); font-size: .92rem; }

.cw-split { display: grid; grid-template-columns: 1fr 1fr; align-items: stretch; }
.cw-split__media { min-height: 520px; background: #e4eef2 center/cover no-repeat; }
.cw-split__media img { width: 100%; height: 100%; object-fit: cover; }
.cw-split__content { display: flex; justify-content: center; flex-direction: column; padding: 74px clamp(38px, 7vw, 110px); background: var(--cw-cream); }
.cw-split__content p { max-width: 590px; color: var(--cw-muted); }

.cw-card { overflow: hidden; border: 1px solid var(--cw-line); border-radius: 8px; background: #fff; box-shadow: 0 10px 30px rgba(23,50,79,.05); transition: .2s ease; }
.cw-card:hover { box-shadow: var(--cw-shadow); transform: translateY(-4px); }
.cw-card__image { position: relative; aspect-ratio: 4 / 3; background: linear-gradient(135deg, #edf6fa, #d5e8f1); overflow: hidden; }
.cw-card__image img { width: 100%; height: 100%; object-fit: cover; }
.cw-card__image--placeholder::after { position: absolute; inset: 0; background: radial-gradient(circle at 35% 45%, rgba(255,255,255,.9) 0 16%, transparent 17%), linear-gradient(145deg, transparent 38%, rgba(22,141,208,.16) 39% 48%, transparent 49%); content: ""; }
.cw-card__body { padding: 24px; }
.cw-card__body h3 { font-size: 1.75rem; }
.cw-card__body p { color: var(--cw-muted); font-size: .9rem; }
.cw-meta { display: flex; flex-wrap: wrap; gap: 8px 16px; color: var(--cw-muted); font-size: .78rem; font-weight: 700; }
.cw-status { display: inline-block; position: absolute; top: 14px; left: 14px; z-index: 2; padding: 6px 10px; border-radius: 999px; background: rgba(255,255,255,.92); color: var(--cw-navy); font-size: .68rem; font-weight: 800; letter-spacing: .06em; text-transform: uppercase; }

.cw-event-strip { padding: 38px 0; background: var(--cw-cream); }
.cw-event-strip__inner { display: grid; grid-template-columns: auto 1fr auto; align-items: center; gap: 28px; }
.cw-event-strip__icon { display: grid; width: 74px; height: 74px; border-radius: 50%; background: var(--cw-pale); color: var(--cw-blue); place-items: center; font-size: 2rem; }
.cw-event-strip h2 { margin-bottom: 4px; font-size: 2rem; }
.cw-event-strip p { margin: 0; color: var(--cw-muted); }

.cw-gospel { position: relative; overflow: hidden; padding: 80px 0; background: linear-gradient(120deg, #e3f3fb, #cfeafa); }
.cw-gospel__content { position: relative; z-index: 2; max-width: 700px; }
.cw-gospel p { color: #435b6c; font-size: 1.05rem; }
.cw-gospel__cross { position: absolute; right: 10%; top: 50%; color: rgba(23,50,79,.14); font-family: Georgia, serif; font-size: 12rem; transform: translateY(-50%); }

.cw-newsletter { padding: 65px 0; background: var(--cw-cream); }
.cw-newsletter__inner { display: grid; grid-template-columns: 1fr 1fr; align-items: center; gap: 70px; }
.cw-newsletter__form { display: flex; gap: 10px; }
.cw-newsletter input { min-width: 0; flex: 1; min-height: 50px; padding: 12px 16px; border: 1px solid var(--cw-line); border-radius: 4px; font: inherit; }

.site-footer { background: #fff; border-top: 1px solid var(--cw-line); }
.site-footer__main { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 60px; padding: 62px 0; }
.site-footer__brand img { max-height: 70px; width: auto; margin-bottom: 18px; }
.site-footer h3 { font-size: 1.35rem; }
.site-footer ul { list-style: none; margin: 0; padding: 0; }
.site-footer li { margin: 6px 0; }
.site-footer p, .site-footer a { color: var(--cw-muted); font-size: .88rem; }
.site-footer__bottom { padding: 15px 20px; background: var(--cw-navy); color: rgba(255,255,255,.75); text-align: center; font-size: .75rem; }
.site-footer__bottom a { color: #fff; }

.cw-page-hero { padding: 105px 0 78px; background: linear-gradient(135deg, var(--cw-cream), var(--cw-pale)); text-align: center; }
.cw-page-hero h1 { font-size: clamp(3rem, 5vw, 5rem); }
.cw-content { width: min(820px, calc(100% - 44px)); margin: 0 auto; padding: 74px 0 100px; }
.cw-content > * { max-width: 100%; }
.cw-content h2 { margin-top: 1.2em; font-size: 2.5rem; }
.cw-content h3 { margin-top: 1.4em; }
.cw-content input:not([type="submit"]), .cw-content textarea, .cw-content select,
.wpcf7 input:not([type="submit"]), .wpcf7 textarea, .wpcf7 select { width: 100%; min-height: 50px; padding: 12px 15px; border: 1px solid var(--cw-line); border-radius: 4px; background: #fff; font: inherit; }
.cw-content textarea, .wpcf7 textarea { min-height: 150px; resize: vertical; }
.cw-content input[type="submit"], .wpcf7 input[type="submit"] { min-height: 48px; padding: 12px 24px; border: 2px solid var(--cw-blue); border-radius: 4px; background: var(--cw-blue); color: #fff; font: 800 .86rem var(--cw-sans); cursor: pointer; }
.cw-content .wp-block-button__link { min-height: 48px; padding: 12px 24px; border: 2px solid var(--cw-blue); border-radius: 4px; background: var(--cw-blue); color: #fff; font: 800 .86rem var(--cw-sans); }
.cw-content .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--cw-blue); }
.cw-content .wp-block-button__link:hover { background: var(--cw-navy); border-color: var(--cw-navy); color: #fff; }
.cw-content > .wp-block-shortcode { width: min(1180px, calc(100vw - 44px)); max-width: none; margin: 42px 0 58px 50%; transform: translateX(-50%); }
.cw-story-quote, .cw-scripture-band { margin-block: 42px; padding: 34px 40px; border-left: 5px solid var(--cw-blue); background: var(--cw-pale); }
.cw-story-quote p, .cw-scripture-band blockquote p { color: var(--cw-navy); font-family: var(--cw-serif); font-size: 1.65rem; line-height: 1.35; }
.cw-story-quote cite, .cw-scripture-band cite { color: var(--cw-muted); font-style: normal; font-weight: 700; }
.cw-interior-split { margin-block: 58px; gap: clamp(34px, 6vw, 78px); }
.cw-interior-split img { border-radius: 8px; box-shadow: var(--cw-shadow); }
.cw-interior-cards { margin-block: 32px 50px; gap: 22px; }
.cw-interior-cards > .wp-block-column { padding: 30px 26px; border: 1px solid var(--cw-line); border-radius: 8px; background: var(--cw-cream); text-align: center; }
.cw-info-band, .cw-page-cta { margin-block: 44px; padding: 42px clamp(24px, 5vw, 64px); border-radius: 8px; background: var(--cw-cream); }
.cw-page-cta { margin-top: 72px; background: linear-gradient(135deg, var(--cw-pale), #d8effa); }
.cw-contact-layout { margin-top: 48px; gap: clamp(30px, 5vw, 64px); }
.cw-contact-card { padding: 34px; border-radius: 8px; background: var(--cw-cream); }
.cw-contact-card h2, .cw-contact-card h3 { margin-top: 0; }
.cw-contact-form label { display: block; margin-bottom: 5px; color: var(--cw-navy); font-size: .82rem; font-weight: 800; }
.cw-contact-form p { margin-bottom: 18px; }
.cw-contact-form .cw-form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 18px; }
.cw-contact-form .cw-form-row p { margin-bottom: 0; }
.cw-contact-form .cw-hp { position: absolute !important; left: -10000px !important; width: 1px; height: 1px; overflow: hidden; }
.cw-form-message { margin-bottom: 24px; padding: 14px 18px; border-radius: 4px; font-weight: 700; }
.cw-form-message--success { border: 1px solid #8fc79d; background: #eef8f0; color: #285f36; }
.cw-form-message--error { border: 1px solid #dc9b9b; background: #fff2f2; color: #8b2929; }
.wpcf7 form > p { margin-bottom: 18px; }
.cw-pagination { margin-top: 48px; text-align: center; }
.cw-pagination .page-numbers { display: inline-grid; min-width: 42px; height: 42px; margin: 3px; border: 1px solid var(--cw-line); place-items: center; }
.cw-pagination .current { background: var(--cw-blue); color: #fff; }
.alignwide { width: min(1100px, 100vw - 44px); max-width: none; margin-left: 50%; transform: translateX(-50%); }

/* Editable Gutenberg homepage */
.cw-block-home > * { margin-block-start: 0; margin-block-end: 0; }
.cw-block-home .alignfull { width: 100%; margin-left: 0; margin-right: 0; }
.cw-block-home .wp-block-button__link { min-height: 48px; padding: 12px 24px; border: 2px solid var(--cw-blue); border-radius: 4px; background: var(--cw-blue); color: #fff; font: 800 .86rem var(--cw-sans); }
.cw-block-home .wp-block-button.is-style-outline .wp-block-button__link { background: transparent; color: var(--cw-blue); }
.cw-block-home .wp-block-button__link:hover { background: var(--cw-navy); border-color: var(--cw-navy); color: #fff; }
.cw-block-hero { overflow: hidden; background: var(--cw-cream); }
.cw-block-hero > .wp-block-columns { min-height: 650px; margin: 0; gap: 0; }
.cw-block-hero .cw-block-hero__copy { display: flex; justify-content: center; flex-direction: column; padding: 80px max(42px, calc((100vw - 1180px)/2)); padding-right: 60px; }
.cw-block-hero .cw-block-hero__copy > * { max-width: 580px; }
.cw-block-hero .cw-block-hero__copy > p:not(.cw-eyebrow) { color: var(--cw-muted); font-size: 1.12rem; }
.cw-block-hero .cw-block-hero__image, .cw-block-hero .cw-block-hero__image img { width: 100%; height: 100%; min-height: 650px; object-fit: cover; }
.cw-block-hero .cw-block-hero__image { margin: 0; }
.cw-block-verse { padding: 52px 20px; text-align: center; }
.cw-block-verse blockquote { margin: 0; color: var(--cw-navy); font-family: var(--cw-serif); font-size: clamp(2rem, 4vw, 3.2rem); line-height: 1.15; }
.cw-block-verse p { margin: 10px 0 0; color: var(--cw-muted); }
.cw-block-section { padding: 92px 22px; }
.cw-block-section--cream { background: var(--cw-cream); }
.cw-block-section > .wp-block-group__inner-container { width: min(1180px, 100%); margin-inline: auto; }
.cw-block-intro { max-width: 720px; margin: 0 auto 48px; text-align: center; }
.cw-block-intro > p:not(.cw-eyebrow) { color: var(--cw-muted); }
.cw-block-purpose { gap: 24px; }
.cw-block-purpose > .wp-block-column { min-height: 250px; padding: 38px 30px; border: 1px solid var(--cw-line); border-radius: 8px; background: #fff; text-align: center; box-shadow: 0 8px 24px rgba(23,50,79,.04); }
.cw-block-purpose .cw-purpose-card__icon { margin-inline: auto; }
.cw-block-purpose p { color: var(--cw-muted); font-size: .92rem; }
.cw-block-story { margin: 0; gap: 0; background: var(--cw-cream); }
.cw-block-story .cw-block-story__image, .cw-block-story .cw-block-story__image img { width: 100%; height: 100%; min-height: 520px; object-fit: cover; }
.cw-block-story .cw-block-story__image { margin: 0; }
.cw-block-story .cw-block-story__copy { display: flex; justify-content: center; flex-direction: column; padding: 74px clamp(38px, 7vw, 110px); }
.cw-block-story .cw-block-story__copy p:not(.cw-eyebrow) { color: var(--cw-muted); }
.cw-block-gospel { position: relative; overflow: hidden; padding: 80px 22px; background: linear-gradient(120deg, #e3f3fb, #cfeafa); }
.cw-block-gospel > .wp-block-group__inner-container { width: min(1180px, 100%); margin-inline: auto; }
.cw-block-gospel .cw-block-gospel__copy { max-width: 700px; }
.cw-block-gospel .cw-block-gospel__copy > p:not(.cw-eyebrow) { color: #435b6c; font-size: 1.05rem; }
.cw-block-newsletter { padding: 65px 22px; background: var(--cw-cream); }
.cw-block-newsletter > .wp-block-group__inner-container { width: min(1180px, 100%); margin-inline: auto; }
.cw-block-newsletter__columns { align-items: center !important; gap: 70px; margin: 0; }
.cw-editor-note { display: none; }

@media (max-width: 980px) {
  body.admin-bar .site-header { top: 46px; }
  .site-header__inner { min-height: 78px; }
  .site-branding { flex-basis: 230px; }
  .menu-toggle { display: block; }
  .primary-navigation { display: none; position: absolute; top: 100%; left: 0; width: 100%; padding: 18px 22px 24px; border-top: 1px solid var(--cw-line); background: #fff; }
  .primary-navigation.is-open { display: block; }
  .primary-navigation ul { align-items: stretch; flex-direction: column; gap: 0; }
  .primary-navigation a { display: block; padding: 10px 0; }
  .cw-hero__grid { grid-template-columns: 1fr; }
  .cw-hero__copy { min-height: 520px; padding: 70px max(30px, calc((100vw - 760px)/2)); }
  .cw-hero__media { min-height: 520px; }
  .cw-grid--4 { grid-template-columns: repeat(2, 1fr); }
  .cw-split { grid-template-columns: 1fr; }
  .cw-split__media { min-height: 440px; }
  .cw-newsletter__inner { grid-template-columns: 1fr; gap: 20px; }
  .cw-block-hero > .wp-block-columns, .cw-block-story { display: block; }
  .cw-block-hero .cw-block-hero__image, .cw-block-hero .cw-block-hero__image img { min-height: 520px; }
  .cw-block-story .cw-block-story__image, .cw-block-story .cw-block-story__image img { min-height: 440px; }
  .cw-block-newsletter__columns { display: block; }
}

@media (max-width: 720px) {
  .cw-container { width: min(100% - 30px, 1180px); }
  .cw-section { padding: 68px 0; }
  .cw-grid--3, .cw-grid--4 { grid-template-columns: 1fr; }
  .cw-hero__copy { min-height: auto; padding: 68px 24px 74px; }
  .cw-hero__media { min-height: 390px; }
  .cw-block-section { padding: 68px 15px; }
  .cw-block-hero .cw-block-hero__copy { padding: 68px 24px 74px; }
  .cw-block-hero .cw-block-hero__image, .cw-block-hero .cw-block-hero__image img { min-height: 390px; }
  .cw-purpose-card { min-height: auto; }
  .cw-event-strip__inner { grid-template-columns: auto 1fr; }
  .cw-event-strip .cw-button { grid-column: 1 / -1; }
  .cw-gospel__cross { right: -5%; font-size: 9rem; }
  .cw-newsletter__form { flex-direction: column; }
  .cw-contact-form .cw-form-row { grid-template-columns: 1fr; gap: 0; }
  .site-footer__main { grid-template-columns: 1fr; gap: 30px; padding: 48px 0; }
}

@media (max-width: 460px) {
  .site-branding { flex-basis: 205px; }
  .site-branding img { max-height: 54px; }
  h1 { font-size: 2.85rem; }
  h2 { font-size: 2.35rem; }
  .cw-buttons { align-items: stretch; flex-direction: column; }
  .cw-button { width: 100%; }
}
