@import url('https://fonts.googleapis.com/css2?family=Fraunces:ital,opsz,wght@0,9..144,400;0,9..144,500;0,9..144,600;1,9..144,400&family=Figtree:wght@400;500;600;700&display=swap');

:root {
  --et-bg: #f7f0e6; --et-bg-soft: #f2e5d6;
  --et-ink: #2b2420; --et-ink-muted: #5a4a3e;
  --et-accent: #b85c38; --et-accent-soft: #e3a24a;
  --et-border: #e2d4c1; --et-clay-deep: #9a4a2c;
  --et-plum: #3e2433; --et-sage: #7e8a6e; --et-blush: #eccdbf;
}

/* Body background + base text colour come from theme.json (styles.color /
   styles.typography); only non-control resets remain here. */
html, body { -webkit-font-smoothing: antialiased; overflow-x: hidden; }
img { max-width: 100%; height: auto; }
.et-img img { max-height: 520px; width: auto; max-width: 100%; margin: 1rem auto; }
.et-img { text-align: center; }
/* Content-link colour comes from theme.json (styles.elements.link); the underline
   trim + hover that theme.json doesn't cover stay here. */
a { text-decoration-thickness: 1px; text-underline-offset: 3px; }
a:hover { color: #b85c38; }


.et-img-grid {
  display: grid; gap: 0.75rem; margin: 1.25rem 0;
  grid-template-columns: repeat(auto-fit, minmax(220px, 1fr));
}
.et-img-grid img {
  width: 100%; height: 240px; object-fit: cover; display: block;
  border-radius: 4px;
}
@media (max-width: 720px) {
  .et-img-grid { grid-template-columns: repeat(2, 1fr); gap: 0.5rem; }
  .et-img-grid img { height: 160px; }
}

.et-section { padding: clamp(2.5rem, 5vw, 5rem) 1.5rem; }
.et-section-soft { background: #f2e5d6; }
/* Content width (56rem) and centering come from theme.json layout.contentSize
   (constrained-layout blocks get .is-layout-constrained); no fixed content frame,
   so full-bleed sections (.et-band) can still break out. */
.et-prose p { margin: 0 0 1rem; line-height: 1.65; color: #5a4a3e; }
.et-prose ul, .et-prose ol { margin: 0 0 1rem 1.25rem; color: #5a4a3e; line-height: 1.65; }
.et-prose strong { color: #2b2420; }
.et-prose h2 { margin: 2rem 0 1rem; }
.et-prose h3 { margin: 1.5rem 0 0.75rem; font-size: 24px; }
.et-prose-center, .et-prose-center h1, .et-prose-center h2, .et-prose-center h3,
.et-prose-center p, .et-prose-center ul, .et-prose-center ol { text-align: center; }
.et-prose-center ul, .et-prose-center ol { list-style-position: inside; margin-left: 0; }

/* === ET LAYOUT SYSTEM v2 === */
:root{ --et-warm-white:#fffdf9; }

/* eyebrow / kicker label */
.et-eyebrow{font-family:Figtree;text-transform:uppercase;letter-spacing:.16em;
  font-size:13px;font-weight:600;color:var(--et-accent);display:block;margin:0 0 .9rem;}

/* full-bleed coloured bands; inner content re-centred (.et-band spans full width,
   .et-band-inner caps + centres to its own max-width) */
.et-band{padding:clamp(3rem,6vw,6rem) 1.5rem;}
/* full-bleed bands own their background and are meant to stack edge-to-edge; drop
   the post-content block-gap that otherwise leaves a strip of page background
   between them (most visible where a soft band meets the dark plum CTA). */
.wp-block-post-content > .et-band{margin-block-start:0;}
.et-band-inner{max-width:62rem;margin-inline:auto;}
.et-band--soft{background:var(--et-bg-soft);}
.et-band--blush{background:var(--et-blush);}
.et-band--sage{background:color-mix(in srgb,var(--et-sage) 16%,var(--et-bg));}
.et-band--plum{background:var(--et-plum);}
.et-band--plum,.et-band--plum h1,.et-band--plum h2,.et-band--plum h3,.et-band--plum p{color:var(--et-bg);}

/* centred section header */
.et-shead{text-align:center;max-width:46rem;margin:0 auto clamp(2rem,4vw,3.25rem);}
.et-shead h2{margin:0 0 .75rem;}
.et-shead p{margin:0;color:var(--et-ink-muted);line-height:1.65;}
.et-band--plum .et-shead p{color:var(--et-blush);}

/* arch-topped cards */
.et-cards{display:grid;gap:1.5rem;max-width:62rem;margin-inline:auto;
  grid-template-columns:repeat(auto-fit,minmax(240px,1fr));}
.et-card{background:var(--et-warm-white);border:1px solid var(--et-border);
  border-radius:clamp(70px,9vw,110px) clamp(70px,9vw,110px) 16px 16px;
  padding:2.25rem 1.75rem 2rem;text-align:center;
  box-shadow:0 2px 6px rgba(43,36,32,.05),0 22px 44px -30px rgba(43,36,32,.4);}
.et-card h3{font-family:Fraunces;margin:.2rem 0 .6rem;font-size:22px;line-height:1.2;}
.et-card p{margin:0;color:var(--et-ink-muted);line-height:1.6;font-size:16px;}

/* event-intensity ladder: a clean three-across row, one column on mobile */
.et-tiers{grid-template-columns:repeat(3,1fr);}
@media(max-width:760px){.et-tiers{grid-template-columns:1fr;max-width:24rem;}}
/* event-intensity tier badge */
.et-tier-badge{display:inline-block;font-family:Figtree;text-transform:uppercase;
  letter-spacing:.1em;font-size:13px;font-weight:600;color:#fff;
  padding:.32rem .85rem;border-radius:999px;margin-bottom:1rem;}
.et-tier--sage  .et-tier-badge{background:var(--et-sage);}
.et-tier--amber .et-tier-badge{background:var(--et-accent-soft);color:var(--et-ink);}
.et-tier--plum  .et-tier-badge{background:var(--et-plum);}

/* value chips */
.et-values{display:grid;gap:.9rem;max-width:58rem;margin-inline:auto;
  grid-template-columns:repeat(auto-fit,minmax(210px,1fr));}
.et-value{background:var(--et-warm-white);border:1px solid var(--et-border);
  border-top:3px solid var(--et-accent);border-radius:4px 4px 14px 14px;
  padding:1.35rem 1.2rem;text-align:center;font-family:Fraunces;
  font-size:18px;color:var(--et-ink);line-height:1.25;}

/* wide photo band */
.et-photoband{display:grid;gap:.7rem;max-width:78rem;margin-inline:auto;
  grid-template-columns:repeat(3,1fr);grid-auto-rows:1fr;}
.et-photoband img{width:100%;height:100%;object-fit:cover;display:block;
  border-radius:6px;aspect-ratio:1/1;}
.et-photoband img:first-child{grid-row:span 2;aspect-ratio:3/4;}
@media(max-width:680px){.et-photoband{grid-template-columns:repeat(2,1fr);}
  .et-photoband img:first-child{grid-row:auto;aspect-ratio:1/1;}}

/* consent / reassurance block */
.et-consent{max-width:60rem;margin-inline:auto;border-radius:10px;
  background:color-mix(in srgb,var(--et-sage) 13%,var(--et-warm-white));
  border:1px solid color-mix(in srgb,var(--et-sage) 38%,var(--et-border));
  border-left:5px solid var(--et-sage);padding:clamp(1.75rem,3.5vw,2.75rem);}
.et-consent h2{margin-top:0;}
.et-consent p{color:var(--et-ink-muted);line-height:1.65;}

/* clay pill CTAs inside html sections */
.et-cta,.et-cta-ghost{display:inline-block;font-family:Figtree;font-weight:600;
  text-decoration:none;padding:.85rem 2rem;border-radius:999px;
  transition:background .2s,color .2s;margin-top:.5rem;}
.et-cta{background:var(--et-accent);color:var(--et-warm-white);}
.et-cta:hover{background:var(--et-accent-soft);color:var(--et-ink);}
.et-cta-ghost{border:1.5px solid var(--et-accent);color:var(--et-accent);}
.et-cta-ghost:hover{background:var(--et-accent);color:var(--et-warm-white);}
.et-band--plum .et-cta{background:var(--et-accent-soft);color:var(--et-ink);}
.et-center{text-align:center;}
.et-lead{max-width:46rem;margin:0 auto;text-align:center;font-size:18px;line-height:1.6;color:var(--et-ink-muted);}

/* value cards (left-aligned, with descriptions) */
.et-vcards{display:grid;gap:1.25rem;max-width:64rem;margin-inline:auto;
  grid-template-columns:repeat(auto-fit,minmax(290px,1fr));}
.et-vcard{background:var(--et-warm-white);border:1px solid var(--et-border);
  border-top:3px solid var(--et-accent);border-radius:6px 6px 16px 16px;padding:1.7rem 1.6rem;}
.et-vcard h3{font-family:Fraunces;margin:0 0 .65rem;font-size:21px;color:var(--et-ink);line-height:1.2;}
.et-vcard p{margin:0 0 .6rem;color:var(--et-ink-muted);line-height:1.6;font-size:16px;}
.et-vcard p:last-child{margin-bottom:0;}
.et-vcard a{color:var(--et-clay-deep);}

/* highlighted mission/quote */
.et-quote{max-width:50rem;margin:1.75rem auto 0;background:var(--et-blush);
  border-radius:8px 8px 20px 20px;padding:clamp(1.5rem,3vw,2.25rem);text-align:center;
  font-family:Fraunces;font-size:20px;line-height:1.45;color:var(--et-ink);}

/* team rows (alternating) */
.et-team{display:flex;flex-direction:column;gap:clamp(2.25rem,4.5vw,3.75rem);
  max-width:64rem;margin-inline:auto;}
.et-member{display:flex;gap:clamp(1.5rem,4vw,3rem);align-items:flex-start;}
.et-member:nth-child(even){flex-direction:row-reverse;}
.et-photo{flex:0 0 auto;width:min(270px,36%);aspect-ratio:4/5;overflow:hidden;
  display:grid;place-items:center;background:var(--et-blush);
  border-radius:clamp(90px,16vw,150px) clamp(90px,16vw,150px) 16px 16px;}
.et-photo img{width:100%;height:100%;object-fit:cover;display:block;}
.et-photo span{font-family:Fraunces;font-size:3rem;color:var(--et-clay-deep);}
.et-member-body{flex:1 1 auto;}
.et-member-body h3{font-family:Fraunces;margin:0 0 .15rem;font-size:24px;line-height:1.15;}
.et-member-role{display:block;font-family:Figtree;text-transform:uppercase;letter-spacing:.1em;
  font-size:13px;font-weight:600;color:var(--et-accent);margin:.2rem 0 1rem;line-height:1.4;}
.et-member-body p{margin:0 0 .75rem;color:var(--et-ink-muted);line-height:1.62;font-size:16px;}
.et-member-body a{color:var(--et-clay-deep);}
@media(max-width:680px){.et-member,.et-member:nth-child(even){flex-direction:column;
  text-align:center;align-items:center;} .et-photo{width:min(230px,70%);}}

/* pricing card */
.et-price{max-width:34rem;margin-inline:auto;background:var(--et-warm-white);
  border:1px solid var(--et-border);text-align:center;padding:2.6rem 2rem 2.4rem;
  border-radius:clamp(80px,11vw,130px) clamp(80px,11vw,130px) 18px 18px;
  box-shadow:0 2px 6px rgba(43,36,32,.05),0 28px 54px -30px rgba(43,36,32,.5);}
.et-price-amount{font-family:Fraunces;font-size:3.2rem;line-height:1;color:var(--et-ink);margin:.5rem 0 .1rem;}
.et-price-amount small{font-family:Figtree;font-size:14px;color:var(--et-ink-muted);font-weight:500;}
.et-price ul{list-style:none;margin:1.6rem auto;padding:0;text-align:left;max-width:25rem;}
.et-price li{position:relative;padding:.5rem 0 .5rem 1.9rem;color:var(--et-ink);line-height:1.5;
  border-bottom:1px solid var(--et-border);font-size:16px;}
.et-price li:last-child{border-bottom:0;}
.et-price li::before{content:"";position:absolute;left:.2rem;top:.7rem;width:.8rem;height:.42rem;
  border-left:2.5px solid var(--et-accent);border-bottom:2.5px solid var(--et-accent);
  transform:rotate(-45deg);}

/* rich prose container for content-heavy pages (workshops, protocols, consent) */
.et-rich{max-width:46rem;margin-inline:auto;}
.et-rich.et-rich--wide{max-width:54rem;}
.et-rich p{line-height:1.72;color:var(--et-ink-muted);margin:0 0 1.1rem;}
.et-rich h2{font-family:Fraunces;margin:2.2rem 0 1rem;}
.et-rich h3{font-family:Fraunces;font-size:22px;margin:1.8rem 0 .7rem;color:var(--et-ink);}
.et-rich ul,.et-rich ol{margin:0 0 1.1rem 1.2rem;color:var(--et-ink-muted);line-height:1.7;}
.et-rich li{margin:0 0 .4rem;}
.et-rich strong{color:var(--et-ink);}
.et-rich a{color:var(--et-clay-deep);}
.et-rich blockquote{margin:1.5rem 0;padding:.4rem 0 .4rem 1.4rem;border-left:3px solid var(--et-accent);
  font-family:Fraunces;font-size:19px;color:var(--et-ink);}

/* meta pills (workshop logistics: durée, lieu, prix) */
.et-meta{display:flex;flex-wrap:wrap;gap:.6rem;justify-content:center;margin:1.5rem 0;}
.et-meta span{background:var(--et-blush);color:var(--et-ink);font-family:Figtree;font-size:14px;
  font-weight:500;padding:.42rem .95rem;border-radius:999px;}

/* FAQ / Q&A list */
.et-faq{max-width:48rem;margin-inline:auto;}
.et-faq-item{background:var(--et-warm-white);border:1px solid var(--et-border);border-radius:10px;
  padding:1.15rem 1.45rem;margin-bottom:.8rem;}
.et-faq-item h3{font-family:Figtree;font-size:18px;font-weight:600;margin:0 0 .45rem;color:var(--et-ink);}
.et-faq-item p{margin:0 0 .5rem;color:var(--et-ink-muted);line-height:1.62;font-size:16px;}
.et-faq-item p:last-child{margin-bottom:0;}
.et-faq-item a{color:var(--et-clay-deep);}

/* === ET WOOCOMMERCE + EVENTS === */

/* ---- buttons: Woo's .button family → Clay, like .et-cta ---------------- */
.woocommerce a.button, .woocommerce button.button, .woocommerce input.button,
.woocommerce .button, .woocommerce #respond input#submit,
.woocommerce-page a.button, .woocommerce-page button.button,
.woocommerce #place_order, .woocommerce button.single_add_to_cart_button,
.woocommerce .wc-block-components-button {
  background: var(--et-accent); color: var(--et-warm-white);
  font-family: Figtree, sans-serif; font-weight: 600; letter-spacing: .01em;
  border: none; border-radius: 999px; padding: .85em 1.9em; font-size: 16px;
  line-height: 1.2; transition: background .18s ease, color .18s ease; cursor: pointer;
}
.woocommerce a.button:hover, .woocommerce button.button:hover,
.woocommerce input.button:hover, .woocommerce .button:hover,
.woocommerce #respond input#submit:hover,
.woocommerce #place_order:hover,
.woocommerce button.single_add_to_cart_button:hover {
  background: var(--et-accent-soft); color: var(--et-ink);
}
.woocommerce .button.disabled, .woocommerce button.button:disabled { opacity: .6; }

/* ---- single product (event) page -------------------------------------- */
.single-product div.product { max-width: 60rem; margin-inline: auto; }
.single-product div.product .product_title {
  font-family: Fraunces, serif; font-size: clamp(2rem, 4vw, 3rem);
  line-height: 1.1; color: var(--et-ink); margin: 0 0 .5rem;
}
.single-product div.product p.price,
.single-product div.product span.price {
  color: var(--et-clay-deep); font-family: Figtree, sans-serif;
  font-weight: 600; font-size: 22px;
}
.single-product div.product .woocommerce-product-details__short-description {
  color: var(--et-ink-muted); line-height: 1.65; font-size: 16px; max-width: 38rem;
}
.single-product div.product form.cart { margin-top: 1.5rem; }
/* event products are "sold individually" — no qty box — keep the CTA roomy */
.single-product div.product form.cart .button { font-size: 17px; padding: 1em 2.4em; }

/* ---- single product meta: hide the bare "Category: Uncategorized" ------ */
.single-product .product_meta .posted_in,
.single-product .product_meta .sku_wrapper { display: none; }

/* ---- checkout: one clean centred column (Woo's 2-col splits awkwardly at
   our content width and leaves a dead column) ---------------------------- */
.woocommerce-checkout .woocommerce { max-width: 48rem; margin-inline: auto; }
.woocommerce-checkout form.checkout { display: block; }
.woocommerce-checkout #customer_details.col2-set,
.woocommerce-checkout .col2-set { display: block; width: 100%; float: none; }
.woocommerce-checkout .col2-set .col-1,
.woocommerce-checkout .col2-set .col-2 { float: none; width: 100%; max-width: none; }
.woocommerce-checkout #order_review,
.woocommerce-checkout #order_review_heading { width: 100%; float: none; margin-top: 1.75rem; }
.woocommerce-checkout h3, .woocommerce-checkout h2,
.woocommerce form .form-row label,
.woocommerce-checkout #order_review_heading {
  font-family: Fraunces, serif; color: var(--et-ink);
}
.woocommerce form .form-row label { font-family: Figtree, sans-serif; font-weight: 500; }
.woocommerce-checkout input.input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.woocommerce-checkout .select2-selection {
  background: var(--et-warm-white); border: 1px solid var(--et-border);
  border-radius: 8px; padding: .7em .85em; color: var(--et-ink);
  font-family: Figtree, sans-serif; font-size: 1rem;
}
.woocommerce-checkout input.input-text:focus,
.woocommerce-checkout textarea:focus,
.woocommerce-checkout select:focus {
  outline: none; border-color: var(--et-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--et-accent) 18%, transparent);
}
.woocommerce-checkout #order_review,
.woocommerce-checkout .woocommerce-checkout-review-order {
  background: var(--et-warm-white); border: 1px solid var(--et-border);
  border-radius: 12px; padding: 1.5rem;
}
.woocommerce-checkout table.shop_table { border: none; }
.woocommerce-checkout table.shop_table th,
.woocommerce-checkout table.shop_table td { border-top: 1px solid var(--et-border); }

/* ---- payment: collapse Woo + Stripe's stack of nested boxes into one
   clean field. Out of the box it's a tinted wrapper → bordered method list →
   bordered radio row → bordered card box (≈4 nested rectangles). ----------- */
.woocommerce #payment, .woocommerce-checkout #payment {
  background: transparent; border: none; padding: 0;
}
.woocommerce-checkout #payment ul.payment_methods {
  background: var(--et-warm-white); border: 1px solid var(--et-border);
  border-radius: 12px; margin: 0 0 1.25rem; padding: .35rem .25rem;
}
.woocommerce-checkout #payment ul.payment_methods li {
  list-style: none; padding: .65rem .95rem; margin: 0; background: transparent;
}
.woocommerce-checkout #payment ul.payment_methods li img { max-height: 24px; }
.woocommerce-checkout #payment div.payment_box {
  background: color-mix(in srgb, var(--et-blush) 16%, var(--et-warm-white));
  border: 1px solid var(--et-border); border-radius: 10px;
  margin: .65rem 0 .25rem; padding: 1rem 1.1rem; box-shadow: none;
}
/* the little callout arrow above each payment box */
.woocommerce-checkout #payment div.payment_box::before { display: none; }
/* the Stripe card element itself → a single calm input, not nested bars */
.woocommerce-checkout #payment .wc-stripe-elements-field,
.woocommerce-checkout #payment .wc-stripe-iban-element-field,
.woocommerce-checkout #payment .StripeElement,
.woocommerce-checkout #payment .wc-card-fields {
  background: var(--et-warm-white); border: 1px solid var(--et-border);
  border-radius: 8px; padding: .85rem .9rem; margin: 0;
}
.woocommerce-checkout #payment .place-order {
  background: transparent; border: none; padding: 0; margin-top: 1rem;
}

/* ---- checkout intro banner (paid booking vs. waitlist join) ------------ */
.et-signup-intro {
  max-width: 48rem; margin: 0 auto 1.75rem; padding: 1.4rem 1.6rem;
  background: var(--et-warm-white); border: 1px solid var(--et-border);
  border-left: 5px solid var(--et-sage); border-radius: 12px;
  font-family: Figtree, sans-serif;
}
.et-signup-intro--waitlist {
  background: color-mix(in srgb, var(--et-blush) 32%, var(--et-warm-white));
  border-color: color-mix(in srgb, var(--et-clay-deep) 28%, var(--et-border));
  border-left-color: var(--et-clay-deep);
}
.et-signup-intro-eyebrow {
  margin: 0 0 .25rem; font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .09em; color: var(--et-sage);
}
.et-signup-intro--waitlist .et-signup-intro-eyebrow { color: var(--et-clay-deep); }
.et-signup-intro-title {
  font-family: Fraunces, serif; color: var(--et-ink);
  font-size: clamp(1.4rem, 2.4vw, 1.8rem); line-height: 1.15; margin: 0 0 .4rem;
}
.et-signup-intro-text { margin: 0; color: var(--et-ink-muted); line-height: 1.6; }

/* ---- event checkout: drop storefront payment chrome that doesn't belong
   on a community signup (Apple/Google Pay express buttons + their "— OR —"
   separator, the returning-customer coupon toggle). Scoped via body class so
   ordinary Woo checkouts (e.g. room rentals) keep them. ------------------- */
.et-event-checkout .wc-stripe-express-checkout-element,
.et-event-checkout #wc-stripe-express-checkout-element,
.et-event-checkout .wc-stripe-express-checkout-element-separator,
.et-event-checkout .wc-stripe-express-checkout__title-and-divider,
.et-event-checkout .wc-stripe-payment-request-wrapper,
.et-event-checkout .wc-stripe-payment-request-button-separator,
.et-event-checkout .wc-block-components-express-payment,
.et-event-checkout .woocommerce-form-coupon-toggle,
.et-event-checkout .woocommerce-form-login-toggle { display: none !important; }
/* country is forced to Canada (store sells to CA only) — Stripe needs it, but
   the visitor doesn't: the hidden input still posts, the row stays out of sight */
.et-event-checkout #billing_country_field { display: none !important; }
/* flatten the payment area to a single calm frame around Stripe's element
   (the gateway-title row + nested wrappers otherwise stack 3-4 boxes deep) */
.et-event-checkout #payment ul.payment_methods {
  border: none !important; background: transparent !important; padding: 0 !important; margin: 0 !important;
}
.et-event-checkout #payment ul.payment_methods > li { padding: 0 !important; }
.et-event-checkout #payment ul.payment_methods label { font-weight: 600; }
.et-event-checkout #payment div.payment_box {
  background: var(--et-warm-white) !important; border: 1px solid var(--et-border) !important;
  border-radius: 12px !important; padding: 1.1rem !important; margin: .6rem 0 0 !important;
}
.et-event-checkout #payment .wc-stripe-upe-element,
.et-event-checkout #payment #wc-stripe-upe-element,
.et-event-checkout #payment .wc-stripe-upe-element__container,
.et-event-checkout #payment .wc-stripe-elements-field {
  background: transparent !important; border: none !important; padding: 0 !important; margin: 0 !important;
}

/* ---- tighter, calmer checkout rhythm ---------------------------------- */
.woocommerce-checkout form .form-row { margin: 0 0 1.05rem; padding: 0; }
.woocommerce-checkout .woocommerce-billing-fields h3,
.woocommerce-checkout #order_review_heading { margin: 1.75rem 0 .9rem; }
.woocommerce-checkout .woocommerce-additional-fields { margin-top: 1.5rem; }
.woocommerce-checkout input.input-text::placeholder,
.woocommerce-checkout textarea::placeholder { color: color-mix(in srgb, var(--et-ink-muted) 70%, transparent); }

/* ---- et-events group selector (injected on checkout) ------------------ */
.et-events-group-field {
  background: color-mix(in srgb, var(--et-sage) 12%, var(--et-warm-white));
  border: 1px solid color-mix(in srgb, var(--et-sage) 38%, var(--et-border)) !important;
  border-left: 5px solid var(--et-sage) !important;
  border-radius: 12px !important; padding: 1.3rem 1.5rem !important;
  margin: 1.5rem 0 !important; font-family: Figtree, sans-serif;
}
.et-events-group-title { font-weight: 600; color: var(--et-ink); margin: 0 0 .15rem; font-size: 17px; }
.et-events-group-title .required { color: var(--et-clay-deep); }
.et-events-group-help { color: var(--et-ink-muted); font-size: 14px; margin: 0 0 .9rem; }
.et-events-group-options { display: flex; flex-wrap: wrap; gap: .6rem; }
.et-events-group-option {
  display: inline-flex; align-items: center; gap: .45rem;
  padding: .55rem 1rem; border: 1px solid var(--et-border); border-radius: 999px;
  background: var(--et-warm-white); color: var(--et-ink); cursor: pointer;
  font-weight: 500; transition: border-color .15s ease, background .15s ease;
}
.et-events-group-option:hover { border-color: var(--et-sage); }
.et-events-group-option:has(input:checked) {
  border-color: var(--et-sage);
  background: color-mix(in srgb, var(--et-sage) 18%, var(--et-warm-white));
}
.et-events-group-option input[type=radio] { accent-color: var(--et-sage); margin: 0; }

/* ---- step 1: the /inscription signup form + waitlist confirmation ------ */
.et-signup {
  max-width: 44rem; margin: 0 auto; padding: .5rem 0 2rem;
  font-family: Figtree, sans-serif; color: var(--et-ink);
}
.et-signup-eyebrow {
  margin: 0 0 .3rem; font-size: 13px; font-weight: 700;
  text-transform: uppercase; letter-spacing: .09em; color: var(--et-sage);
}
.et-signup-title {
  font-family: Fraunces, serif; color: var(--et-ink);
  font-size: clamp(1.8rem, 3.5vw, 2.6rem); line-height: 1.1; margin: 0 0 .6rem;
}
.et-signup-lead { color: var(--et-ink-muted); line-height: 1.6; margin: 0 0 1.6rem; max-width: 38rem; }
.et-signup-form { display: block; }
.et-signup-form .et-field { margin: 0 0 1.05rem; display: flex; flex-direction: column; }
.et-signup-form .et-field-row { display: flex; gap: 1rem; }
.et-signup-form .et-field-row .et-field { flex: 1; }
.et-signup-form label { font-weight: 500; margin: 0 0 .3rem; color: var(--et-ink); }
.et-signup-form .required { color: var(--et-clay-deep); }
.et-signup-form input[type=text],
.et-signup-form input[type=email],
.et-signup-form input[type=tel] {
  background: var(--et-warm-white); border: 1px solid var(--et-border);
  border-radius: 8px; padding: .7em .85em; font-size: 1rem; color: var(--et-ink);
  font-family: Figtree, sans-serif; width: 100%; box-sizing: border-box;
}
.et-signup-form input:focus {
  outline: none; border-color: var(--et-accent);
  box-shadow: 0 0 0 3px color-mix(in srgb, var(--et-accent) 18%, transparent);
}
.et-signup-groups {
  border: 1px solid color-mix(in srgb, var(--et-sage) 38%, var(--et-border));
  border-left: 5px solid var(--et-sage);
  background: color-mix(in srgb, var(--et-sage) 12%, var(--et-warm-white));
  border-radius: 12px; padding: 1.3rem 1.5rem; margin: .5rem 0 1.6rem;
}
.et-signup-groups legend { font-weight: 600; font-size: 17px; padding: 0; }
.et-signup-group-help { display: block; color: var(--et-ink-muted); font-size: 14px; margin: .15rem 0 .9rem; }
.et-signup-submit { display: inline-block; margin-top: .25rem; border: none; cursor: pointer; }
.et-signup-errors {
  background: color-mix(in srgb, var(--et-clay-deep) 10%, var(--et-warm-white));
  border: 1px solid color-mix(in srgb, var(--et-clay-deep) 35%, var(--et-border));
  border-left: 5px solid var(--et-clay-deep);
  border-radius: 10px; padding: .9rem 1.1rem 1rem; margin: 0 0 1.4rem; color: var(--et-ink);
}
.et-signup-errors ul { margin: 0; padding-left: 1.1rem; }

/* waitlist confirmation — its own calm screen, not a notice on a form */
.et-signup--confirm { text-align: center; max-width: 36rem; padding-top: 2rem; }
.et-signup--confirm .et-signup-title { margin-top: .6rem; }
.et-signup--confirm .et-signup-lead { margin-inline: auto; }
.et-signup-check {
  width: 64px; height: 64px; margin: 0 auto; border-radius: 50%;
  display: flex; align-items: center; justify-content: center;
  background: color-mix(in srgb, var(--et-sage) 22%, var(--et-warm-white));
  color: var(--et-sage); font-size: 2rem; line-height: 1;
}
.et-signup--confirm .et-cta { margin-top: 1.6rem; display: inline-block; }

/* ---- Woo notices: warm-tint instead of grey/blue ---------------------- */
.woocommerce-message, .woocommerce-info, .woocommerce-error,
.woocommerce-noreviews, .wc-block-components-notice-banner {
  background: var(--et-warm-white); border-top: 3px solid var(--et-accent);
  color: var(--et-ink); border-radius: 6px;
}
.woocommerce-message::before, .woocommerce-info::before { color: var(--et-accent); }

/* ---- [et_events_list] grid -------------------------------------------- */
.et-event-cards { grid-template-columns: repeat(auto-fill, minmax(18rem, 1fr)); }
.et-event-card { display: flex; flex-direction: column; }
.et-event-card h3 a { color: var(--et-ink); text-decoration: none; }
.et-event-card h3 a:hover { color: var(--et-clay-deep); }
.et-event-meta {
  display: flex; align-items: baseline; gap: .75rem; flex-wrap: wrap;
  margin: .25rem 0 1.1rem !important; font-family: Figtree, sans-serif;
}
.et-event-price { color: var(--et-clay-deep); font-weight: 600; font-size: 17px; }
.et-event-price .amount { color: var(--et-clay-deep); }
.et-event-spots {
  font-size: 13px; text-transform: uppercase; letter-spacing: .06em;
  color: var(--et-sage); font-weight: 600;
}
.et-event-spots--full { color: var(--et-clay-deep); }
.et-event-cta { margin-top: auto; align-self: flex-start; }
/* Full event description rendered inline on the single-event page, between the
   date/location meta and the "Réserver ma place" CTA (see Frontend::render_single_description). */
.et-event-description { margin: 1.25rem 0 1.5rem; }
.et-event-description > :first-child { margin-top: 0; }
.et-event-description > :last-child { margin-bottom: 0; }

/* === ET CHECKOUT POLISH (cart / checkout / order-received) === */
/* Woo pages use the title-less `page` template, so there's no page-title <h1>
   to frame — styling here targets Woo's own markup. */

/* center the Woo content column consistently across the flow */
.woocommerce-cart .woocommerce { max-width: 56rem; margin-inline: auto; }
.woocommerce-order-received .woocommerce { max-width: 50rem; margin-inline: auto; }

/* warm every shop/order table on the flow; kill Woo's cold grey row shading */
.woocommerce-page table.shop_table,
.woocommerce-page table.cart {
  background: var(--et-warm-white); border: 1px solid var(--et-border);
}
.woocommerce-page table.shop_table th,
.woocommerce-page table.shop_table td,
.woocommerce-page table.cart th,
.woocommerce-page table.cart td { border-top: 1px solid var(--et-border); background: transparent; }
.woocommerce-page table.shop_table thead th,
.woocommerce-page table.shop_table tfoot th,
.woocommerce-page table.shop_table tfoot td,
.woocommerce-page table.cart thead th {
  font-family: Fraunces, serif; color: var(--et-ink); background: transparent;
}

/* order-received: warm the order-summary boxes (order #/date/total/payment) */
.woocommerce-order-received .woocommerce-thankyou-order-received,
.woocommerce-order-received .woocommerce-notice--success {
  text-align: center; font-family: Fraunces, serif; color: var(--et-clay-deep);
  font-size: 21px; line-height: 1.3; border: none; background: transparent;
  margin: 0 auto 1.75rem;
}
.woocommerce-order-received ul.order_details {
  background: var(--et-warm-white); border: 1px solid var(--et-border);
  border-radius: 12px; padding: 0; margin: 0 0 2.25rem; overflow: hidden;
}
.woocommerce-order-received ul.order_details li {
  border-color: var(--et-border) !important; color: var(--et-ink-muted);
  font-family: Figtree, sans-serif; text-transform: none; letter-spacing: .02em;
  padding: 1.05rem 1.4rem; font-size: 14px;
}
.woocommerce-order-received ul.order_details li strong {
  display: block; font-family: Fraunces, serif; color: var(--et-ink);
  font-size: 18px; margin-top: .3rem; letter-spacing: 0;
}
.woocommerce-order-received h2 { font-family: Fraunces, serif; color: var(--et-ink); }
.woocommerce-order-received .woocommerce-customer-details address {
  background: var(--et-warm-white); border: 1px solid var(--et-border);
  border-radius: 12px; padding: 1.1rem 1.3rem; color: var(--et-ink);
}

/* hide an empty "Information complémentaire" heading (no fields render under it) */
.woocommerce-checkout .woocommerce-additional-fields:not(:has(.form-row)) { display: none; }
/* tighten the gap left where that empty section was removed */
.woocommerce-checkout #customer_details { margin-bottom: .25rem; }
.woocommerce-checkout #order_review_heading { margin-top: 1.25rem; }

.et-signup { padding-top: 1.75rem; }

/* cart page (was unstyled): warm totals card + Fraunces headings */
.woocommerce-cart .cart_totals {
  background: var(--et-warm-white); border: 1px solid var(--et-border);
  border-radius: 12px; padding: 1.5rem;
}
.woocommerce-cart h2 { font-family: Fraunces, serif; color: var(--et-ink); }
.woocommerce-cart .wc-proceed-to-checkout { margin-top: 1.1rem; }
.woocommerce-cart table.cart td.actions { padding-top: 1.1rem; }

/* ---- MOBILE: the whole flow had no horizontal padding, so content ran
   edge-to-edge on small screens. Inset the page's main content wrapper (the
   header/footer are separate template parts, so they're untouched). -------- */
.woocommerce-page main.wp-block-group,
main.wp-block-group:has(.et-signup) {
  padding-left: clamp(1.1rem, 4.5vw, 1.5rem);
  padding-right: clamp(1.1rem, 4.5vw, 1.5rem);
  box-sizing: border-box;
}
/* the sage intro banner + group box use margin:auto — keep them inside the inset */
.et-signup-intro, .et-signup { max-width: 46rem; }

/* ---- form fields: bigger text (>=16px, no iOS zoom) + tighter height so the
   value matches the body-text scale instead of looking small in a tall box --- */
.woocommerce-checkout input.input-text,
.woocommerce-checkout textarea,
.woocommerce-checkout select,
.et-signup-form input[type=text],
.et-signup-form input[type=email],
.et-signup-form input[type=tel] {
  font-size: 16px !important; padding: .62em .85em !important; line-height: 1.4;
}
.woocommerce-checkout .select2-selection { font-size: 16px; }

/* ---- confirmation: force-warm the order-details rows (Woo's grey tfoot/zebra
   survived the earlier rule). Warm table, transparent rows, border separators. */
.woocommerce-order-received table.shop_table { background: var(--et-warm-white); }
/* the grey lives on the tfoot/tbody ELEMENTS (cells are transparent) — clear them */
.woocommerce-page table.shop_table thead,
.woocommerce-page table.shop_table tbody,
.woocommerce-page table.shop_table tfoot,
.woocommerce-order-received table.shop_table tr,
.woocommerce-order-received table.shop_table td,
.woocommerce-order-received table.shop_table th { background: transparent !important; }
.woocommerce-order-received table.shop_table tfoot th { font-family: Fraunces, serif; }

/* ---- [et_events_calendar] month grid ---------------------------------- */
.et-cal { max-width: 62rem; margin-inline: auto; font-family: Figtree, sans-serif; }
.et-cal-head {
  display: flex; align-items: center; justify-content: center; gap: 1.25rem;
  margin: 0 0 1.5rem;
}
.et-cal-title {
  font-family: Fraunces, serif; color: var(--et-ink); margin: 0;
  font-size: clamp(1.5rem, 3vw, 2rem); line-height: 1.1;
  text-transform: capitalize; text-align: center; min-width: 11rem;
}
.et-cal-nav {
  display: inline-flex; align-items: center; justify-content: center;
  width: 2.5rem; height: 2.5rem; border-radius: 50%; flex: 0 0 auto;
  border: 1.5px solid var(--et-border); background: var(--et-warm-white);
  color: var(--et-accent); font-size: 24px; line-height: 1; text-decoration: none;
  transition: background .15s, color .15s, border-color .15s;
}
.et-cal-nav:hover { background: var(--et-accent); color: var(--et-warm-white); border-color: var(--et-accent); }
.et-cal-grid { display: grid; grid-template-columns: repeat(7, 1fr); gap: .4rem; }
.et-cal-dow {
  text-align: center; font-size: 13px; text-transform: uppercase; letter-spacing: .08em;
  font-weight: 600; color: var(--et-ink-muted); padding: .35rem 0;
}
.et-cal-cell {
  min-height: 6.5rem; background: var(--et-warm-white);
  border: 1px solid var(--et-border); border-radius: 10px; padding: .4rem;
  display: flex; flex-direction: column; gap: .3rem;
}
.et-cal-cell--empty { background: transparent; border-color: transparent; }
.et-cal-cell--today { border-color: var(--et-accent); box-shadow: inset 0 0 0 1px var(--et-accent); }
.et-cal-cell--has-events { background: var(--et-bg-soft); }
.et-cal-day { font-family: Fraunces, serif; font-size: 14px; line-height: 1; color: var(--et-ink-muted); }
.et-cal-cell--today .et-cal-day { color: var(--et-accent); font-weight: 600; }
.et-cal-events { display: flex; flex-direction: column; gap: .25rem; }
.et-cal-event {
  display: block; background: var(--et-accent); color: var(--et-warm-white);
  border-radius: 6px; padding: .25rem .4rem; font-size: 13px; line-height: 1.25;
  text-decoration: none; transition: background .15s;
}
.et-cal-event:hover { background: var(--et-clay-deep); color: var(--et-warm-white); }
.et-cal-event-time { font-weight: 600; opacity: .92; }
.et-cal-event-name { display: block; }
.et-cal-empty { text-align: center; color: var(--et-ink-muted); font-family: Figtree, sans-serif; margin: 1.5rem 0 0; }

/* Phones can't render 7 readable day columns, so the grid collapses to an
   agenda: only days that carry events show, stacked, with a big day number. */
@media (max-width: 560px) {
  .et-cal-grid { grid-template-columns: 1fr; gap: .5rem; }
  .et-cal-dow { display: none; }
  .et-cal-cell:not(.et-cal-cell--has-events) { display: none; }
  .et-cal-cell { min-height: 0; flex-direction: row; align-items: flex-start; gap: .85rem; padding: .7rem .85rem; }
  .et-cal-day { font-size: 20px; min-width: 1.6rem; text-align: center; }
  .et-cal-events { flex: 1; gap: .4rem; }
  .et-cal-event { font-size: 14px; padding: .35rem .55rem; }
}


/* mobile fix: section content wrappers must fill the section. The .et-band flex
   layout (align-items:center) shrink-wraps max-width+margin:auto blocks; auto-fit
   grids then expand to max-content and overflow (clipped by body overflow-x). */
.et-band-inner,.et-shead,.et-lead,.et-cards,.et-values,.et-photoband,.et-consent,.et-vcards,.et-team,.et-price,.et-rich,.et-faq,.et-cal{width:100%;}
.et-cards{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr));}
.et-values{grid-template-columns:repeat(auto-fit,minmax(min(210px,100%),1fr));}
.et-vcards{grid-template-columns:repeat(auto-fit,minmax(min(290px,100%),1fr));}

/* ---- Hero (two-column brand hero on the /accueil front page) ---- */
.et-hero-inner{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;
  gap:2.5rem clamp(2rem,5vw,5rem);max-width:72rem;margin-inline:auto;}
.et-hero-copy{display:flex;flex-direction:column;align-items:flex-start;gap:1.6rem;
  width:min(560px,48%);min-width:320px;}
.et-hero-copy h1{margin:0;}
.et-hero-lead{margin:0;color:var(--et-ink-muted);line-height:1.65;font-size:1.125rem;}
.et-hero-media{flex:1 1 300px;min-width:300px;max-width:560px;}
.et-hero-media img{width:100%;height:auto;border-radius:16px;display:block;
  box-shadow:0 22px 44px -30px rgba(43,36,32,.5);object-fit:cover;}
@media (max-width:600px){
  .et-hero-inner{flex-direction:column-reverse;}
  .et-hero-copy{width:100%;}
}

/* ET-FF-BUTTON: brand the Fluent Forms submit button (newsletter form) */
.fluentform .ff-btn-submit,.fluentform button[type=submit]{background:var(--et-accent);color:#fff;border:none;border-radius:999px;padding:.7rem 1.5rem;font-family:Figtree;font-weight:600;font-size:1rem;cursor:pointer;transition:background .15s;}
.fluentform .ff-btn-submit:hover,.fluentform button[type=submit]:hover{background:var(--et-accent-soft);color:var(--et-ink);}
.fluentform .ff-el-input--label label{font-family:Figtree;color:var(--et-ink-muted);}

/* ---- Site chrome (block theme header/footer template parts) ---- */
.et-site-header{padding:.9rem 1.5rem;border-bottom:1px solid var(--et-border);background:var(--et-bg);position:sticky;top:0;z-index:100;}
.et-header-bar{align-items:center;gap:1rem;}
.et-logo img{border-radius:50%;display:block;}
.et-site-header .wp-block-navigation{font-family:Figtree;font-weight:500;font-size:.95rem;--wp--style--block-gap:1.4rem;align-items:center;}
/* The header bar is space-between with three children (logo, nav, Woo account icon),
   which strands the mobile hamburger in the dead centre. Push the nav+account group
   to the right so it reads logo | … | [menu account], snug together. */
.et-header-bar .wp-block-navigation{margin-inline-start:auto;}
.et-site-header .wc-block-customer-account{--wp--style--block-gap:0;}
.et-site-header .wc-block-customer-account .wc-block-customer-account__account-icon svg{width:24px;height:24px;}
.et-site-header .wp-block-navigation a{color:var(--et-ink);text-decoration:none;}
.et-site-header .wp-block-navigation a:hover{color:var(--et-accent);}
.et-site-header .wp-block-navigation .wp-block-navigation__submenu-container{background:var(--et-ink-muted);border:none;border-radius:8px;}
.et-site-header .wp-block-navigation__submenu-container a{color:#fff;}

/* the footer template-part inherits the root block-gap as a top margin, leaving a
   strip of page background between the last content band and the footer. Kill it so
   the final band (e.g. the plum CTA on the homepage) leads straight into the footer. */
.wp-site-blocks > footer.wp-block-template-part{margin-block-start:0;}
.et-site-footer{background:var(--et-bg-soft);padding:clamp(2.5rem,5vw,4rem) 1.5rem 2rem;}
.et-footer-cols{display:grid;grid-template-columns:1.6fr 1fr 1fr;gap:2rem;max-width:72rem;margin-inline:auto;}
.et-footer-cols .col-title{font-family:Fraunces;font-size:1.05rem;margin-bottom:.6rem;color:var(--et-ink);}
.et-footer-cols .col-title.large{font-size:1.3rem;}
.et-footer-cols ul{list-style:none;margin:0;padding:0;line-height:1.95;}
.et-footer-cols a{color:var(--et-accent);text-decoration:none;}
.et-footer-cols a:hover{text-decoration:underline;}
.et-footer-cols p{color:var(--et-ink-muted);line-height:1.6;}
.et-site-footer .footer-copy{text-align:center;color:var(--et-ink-muted);font-size:.85rem;margin-top:2.5rem;}
@media(max-width:700px){.et-footer-cols{grid-template-columns:1fr;gap:1.5rem;}}

/* ---- Blog (home.html query loop) ---- */
.et-blog-grid{gap:2rem !important;}
.et-blog-grid > li{background:var(--et-warm-white,#fff);border:1px solid var(--et-border);border-radius:14px;overflow:hidden;padding:0 0 1.25rem;box-shadow:0 2px 6px rgba(43,36,32,.05),0 22px 44px -30px rgba(43,36,32,.4);}
.et-blog-grid .et-blog-thumb{margin:0 0 1rem;}
.et-blog-grid .et-blog-thumb img{border-radius:0;width:100%;}
.et-blog-grid h3{font-family:Fraunces;margin:.2rem 1.25rem .4rem;font-size:1.15rem;line-height:1.25;}
.et-blog-grid h3 a{color:var(--et-ink);text-decoration:none;}
.et-blog-grid .et-blog-date{margin:0 1.25rem .5rem;color:var(--et-accent);font-size:.8rem;font-family:Figtree;}
.et-blog-grid .wp-block-post-excerpt{margin:0 1.25rem;color:var(--et-ink-muted);line-height:1.55;font-size:.95rem;}
.et-blog-grid .wp-block-post-excerpt__more-link{color:var(--et-accent);}
