.elementor-9021 .elementor-element.elementor-element-52c98d85{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9021 .elementor-element.elementor-element-52c98d85:not(.elementor-motion-effects-element-type-background), .elementor-9021 .elementor-element.elementor-element-52c98d85 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-9021 .elementor-element.elementor-element-2640bc57{--display:flex;--min-height:74vh;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--overlay-opacity:0.46;--padding-top:120px;--padding-bottom:96px;--padding-left:24px;--padding-right:24px;}.elementor-9021 .elementor-element.elementor-element-2640bc57:not(.elementor-motion-effects-element-type-background), .elementor-9021 .elementor-element.elementor-element-2640bc57 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#4D504A;background-image:url("https://tatachillaestate.com.au/wp-content/uploads/2026/10/aisle-walk-toward-the-ceremony-arch-tatachilla-estate-mclaren-vale.webp");background-position:center 42%;background-repeat:no-repeat;background-size:cover;}.elementor-9021 .elementor-element.elementor-element-2640bc57::before, .elementor-9021 .elementor-element.elementor-element-2640bc57 > .elementor-background-video-container::before, .elementor-9021 .elementor-element.elementor-element-2640bc57 > .e-con-inner > .elementor-background-video-container::before, .elementor-9021 .elementor-element.elementor-element-2640bc57 > .elementor-background-slideshow::before, .elementor-9021 .elementor-element.elementor-element-2640bc57 > .e-con-inner > .elementor-background-slideshow::before, .elementor-9021 .elementor-element.elementor-element-2640bc57 > .elementor-motion-effects-container > .elementor-motion-effects-layer::before{background-color:#1C1C1C;--background-overlay:'';}.elementor-9021 .elementor-element.elementor-element-9c0e8be{--display:flex;--flex-direction:column;--container-widget-width:calc( ( 1 - var( --container-widget-flex-grow ) ) * 100% );--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--align-items:center;--padding-top:34px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9021 .elementor-element.elementor-element-9c0e8be.e-con{--align-self:flex-start;}.elementor-9021 .elementor-element.elementor-element-7fa45a7a{text-align:start;}.elementor-9021 .elementor-element.elementor-element-1ef195a7{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:76px;--padding-bottom:64px;--padding-left:24px;--padding-right:24px;}.elementor-9021 .elementor-element.elementor-element-1ef195a7:not(.elementor-motion-effects-element-type-background), .elementor-9021 .elementor-element.elementor-element-1ef195a7 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FAF8F5;}.elementor-9021 .elementor-element.elementor-element-1ef195a7.e-con{--align-self:center;}.elementor-9021 .elementor-element.elementor-element-394dc025{margin:0px 0px calc(var(--kit-widget-spacing, 0px) + 0px) 0px;font-weight:500;letter-spacing:1.7px;}.elementor-9021 .elementor-element.elementor-element-394dc025.elementor-element{--align-self:flex-start;}.elementor-9021 .elementor-element.elementor-element-10d91a54{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--padding-top:44px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9021 .elementor-element.elementor-element-bf8b1a2{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9021 .elementor-element.elementor-element-3a24df85{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9021 .elementor-element.elementor-element-15c7bd0f{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9021 .elementor-element.elementor-element-44cc4cb5{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:76px;--padding-left:24px;--padding-right:24px;}.elementor-9021 .elementor-element.elementor-element-44cc4cb5:not(.elementor-motion-effects-element-type-background), .elementor-9021 .elementor-element.elementor-element-44cc4cb5 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-9021 .elementor-element.elementor-element-7e427b2b{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;}.elementor-9021 .elementor-element.elementor-element-582e3dd7{--display:flex;--min-height:340px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9021 .elementor-element.elementor-element-582e3dd7:not(.elementor-motion-effects-element-type-background), .elementor-9021 .elementor-element.elementor-element-582e3dd7 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#4D504A;background-image:url("https://tatachillaestate.com.au/wp-content/uploads/2026/10/outdoor-ceremony-beneath-the-pines-tatachilla-estate.webp");background-position:center 45%;background-repeat:no-repeat;background-size:cover;}.elementor-9021 .elementor-element.elementor-element-61fedaec{--display:flex;--min-height:340px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9021 .elementor-element.elementor-element-61fedaec:not(.elementor-motion-effects-element-type-background), .elementor-9021 .elementor-element.elementor-element-61fedaec > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#4D504A;background-image:url("https://tatachillaestate.com.au/wp-content/uploads/2026/10/wedding-at-tatachilla-estate-mclaren-vale-elegant-indoor-reception-with-bridal-table.webp");background-position:center center;background-repeat:no-repeat;background-size:cover;}.elementor-9021 .elementor-element.elementor-element-4687f564{--display:flex;--min-height:340px;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9021 .elementor-element.elementor-element-4687f564:not(.elementor-motion-effects-element-type-background), .elementor-9021 .elementor-element.elementor-element-4687f564 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#4D504A;background-image:url("https://tatachillaestate.com.au/wp-content/uploads/2026/10/tatachilla-estate-gardens-rose-arbour-and-outdoor-event-setting-in-mclaren-vale.webp");background-position:center 45%;background-repeat:no-repeat;background-size:cover;}.elementor-9021 .elementor-element.elementor-element-5fb5b73{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:76px;--padding-left:24px;--padding-right:24px;}.elementor-9021 .elementor-element.elementor-element-5fb5b73:not(.elementor-motion-effects-element-type-background), .elementor-9021 .elementor-element.elementor-element-5fb5b73 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-9021 .elementor-element.elementor-element-252fe852{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--margin-top:0px;--margin-bottom:0px;--margin-left:autopx;--margin-right:autopx;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:0px;}.elementor-9021 .elementor-element.elementor-element-7e8bead{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--padding-top:80px;--padding-bottom:88px;--padding-left:24px;--padding-right:24px;}.elementor-9021 .elementor-element.elementor-element-7e8bead:not(.elementor-motion-effects-element-type-background), .elementor-9021 .elementor-element.elementor-element-7e8bead > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#F4F0ED;}.elementor-9021 .elementor-element.elementor-element-446bf5e3{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:0px;--padding-bottom:0px;--padding-left:0px;--padding-right:34px;}.elementor-9021 .elementor-element.elementor-element-28079ac{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;border-style:solid;--border-style:solid;border-width:1px 1px 1px 1px;--border-top-width:1px;--border-right-width:1px;--border-bottom-width:1px;--border-left-width:1px;border-color:#E5E2DD;--border-color:#E5E2DD;--padding-top:34px;--padding-bottom:34px;--padding-left:36px;--padding-right:36px;}.elementor-9021 .elementor-element.elementor-element-28079ac:not(.elementor-motion-effects-element-type-background), .elementor-9021 .elementor-element.elementor-element-28079ac > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#FFFFFF;}.elementor-9021 .elementor-element.elementor-element-72c5363e .jet-form-builder__label{text-align:left;}.elementor-9021 .elementor-element.elementor-element-72c5363e .jet-form-builder__desc{text-align:left;}.elementor-9021 .elementor-element.elementor-element-72c5363e .jet-form-builder__fields-group{gap:0.7em 0.7em;}.elementor-9021 .elementor-element.elementor-element-72c5363e .jet-form-builder__field-wrap.checkradio-wrap span{gap:8px;}.elementor-9021 .elementor-element.elementor-element-72c5363e .jet-form-builder input{color-scheme:normal;}.elementor-9021 .elementor-element.elementor-element-72c5363e .jet-form-builder-repeater__row-remove{align-self:flex-start;}.elementor-9021 .elementor-element.elementor-element-72c5363e .jet-form-builder__action-button{transition:all 0.3s;}.elementor-9021 .elementor-element.elementor-element-72c5363e .jet-form-builder__next-page-wrap{text-align:left;}.elementor-9021 .elementor-element.elementor-element-72c5363e .jet-form-builder-message--success{text-align:center;}.elementor-9021 .elementor-element.elementor-element-72c5363e .jet-form-builder-message--error{text-align:center;}.elementor-9021 .elementor-element.elementor-element-1ebeb5c0{--display:flex;--flex-direction:row;--container-widget-width:initial;--container-widget-height:100%;--container-widget-flex-grow:1;--container-widget-align-self:stretch;--flex-wrap-mobile:wrap;--padding-top:56px;--padding-bottom:56px;--padding-left:24px;--padding-right:24px;}.elementor-9021 .elementor-element.elementor-element-1ebeb5c0:not(.elementor-motion-effects-element-type-background), .elementor-9021 .elementor-element.elementor-element-1ebeb5c0 > .elementor-motion-effects-container > .elementor-motion-effects-layer{background-color:#2C2C2C;}.elementor-9021 .elementor-element.elementor-element-4ff023c{--display:flex;--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9021 .elementor-element.elementor-element-71462806 .elementor-heading-title{color:#FFFFFF;}:root{--page-title-display:none;}@media(min-width:768px){.elementor-9021 .elementor-element.elementor-element-252fe852{--width:100%;}.elementor-9021 .elementor-element.elementor-element-446bf5e3{--width:40%;}.elementor-9021 .elementor-element.elementor-element-28079ac{--width:60%;}.elementor-9021 .elementor-element.elementor-element-4ff023c{--width:55%;}}@media(max-width:767px){.elementor-9021 .elementor-element.elementor-element-2640bc57{--min-height:560px;--padding-top:86px;--padding-bottom:70px;--padding-left:22px;--padding-right:22px;}.elementor-9021 .elementor-element.elementor-element-9c0e8be{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9021 .elementor-element.elementor-element-1ef195a7{--padding-top:52px;--padding-bottom:44px;--padding-left:22px;--padding-right:22px;}.elementor-9021 .elementor-element.elementor-element-10d91a54{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9021 .elementor-element.elementor-element-44cc4cb5{--padding-top:0px;--padding-bottom:52px;--padding-left:22px;--padding-right:22px;}.elementor-9021 .elementor-element.elementor-element-7e427b2b{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9021 .elementor-element.elementor-element-582e3dd7{--min-height:220px;}.elementor-9021 .elementor-element.elementor-element-61fedaec{--min-height:220px;}.elementor-9021 .elementor-element.elementor-element-4687f564{--min-height:220px;}.elementor-9021 .elementor-element.elementor-element-5fb5b73{--padding-top:0px;--padding-bottom:52px;--padding-left:22px;--padding-right:22px;}.elementor-9021 .elementor-element.elementor-element-252fe852{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;}.elementor-9021 .elementor-element.elementor-element-7e8bead{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:52px;--padding-bottom:56px;--padding-left:22px;--padding-right:22px;}.elementor-9021 .elementor-element.elementor-element-446bf5e3{--width:100%;--padding-top:0px;--padding-bottom:32px;--padding-left:0px;--padding-right:0px;}.elementor-9021 .elementor-element.elementor-element-28079ac{--width:100%;--padding-top:24px;--padding-bottom:24px;--padding-left:20px;--padding-right:20px;}.elementor-9021 .elementor-element.elementor-element-1ebeb5c0{--flex-direction:column;--container-widget-width:100%;--container-widget-height:initial;--container-widget-flex-grow:0;--container-widget-align-self:initial;--flex-wrap-mobile:wrap;--padding-top:44px;--padding-bottom:44px;--padding-left:22px;--padding-right:22px;}.elementor-9021 .elementor-element.elementor-element-4ff023c{--width:100%;}}/* Start custom CSS for container, class: .elementor-element-52c98d85 */@import url('https://fonts.googleapis.com/css2?family=Inter:wght@400;500&family=Playfair+Display:ital,wght@0,500;0,600;1,400&display=swap');

/* =====================================================================
   Tatachilla Estate — Open Day registration (pop-up + landing page)
   v2 — matched to the live site:
     fonts  : Playfair Display (headings) + Inter (body)  [Elementor kit 15]
     palette: #AFAFA5 sage-grey buttons (hover #9EA096), #7A5C45 bronze,
              #4D504A / #84847C text, #E5E2DD / #F4F0ED / #FAF8F5 neutrals
     button : 11px / 500 / letter-spacing .3em / uppercase (Solene .eltdf-btn)

   SCOPING — these class names carry the styles:
     .te-od       the snippet pop-up shell, or a container on the landing page
     .te-od-form  the JetForm widget (form fields, labels, button, messages)
     .te-od__*    individual widget classes (headings, text, photo panel)
   Nothing else on the site is affected.

   NOTE for Elementor: page editors on Elementor 4.x use SEVEN different
   class controls — widgets take `_css_classes`, containers take `css_classes`.
   ===================================================================== */

:is(.te-od, .te-od-form) {
  --te-ink:        #2C2C2C;
  --te-ink-soft:   #4D504A;
  --te-muted:      #84847C;
  --te-line:       #E5E2DD;
  --te-cream:      #FAF8F5;
  --te-sand:       #F4F0ED;
  --te-sage:       #AFAFA5;
  --te-sage-dark:  #9EA096;
  --te-bronze:     #7A5C45;
  --te-error:      #B4553F;
  --te-serif: "Playfair Display", Georgia, "Times New Roman", serif;
  --te-sans:  "Inter", -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, Helvetica, Arial, sans-serif;
  font-family: var(--te-sans);
  color: var(--te-ink);
}

/* ================================================================
   1. Pop-up shell (used by the PHP snippet route)
   ================================================================ */

.te-od__fab {
  position: fixed; right: 22px; bottom: 22px; z-index: 9998;
  display: inline-block; margin: 0; cursor: pointer;
  font-family: var(--te-sans); font-size: 11px; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase; line-height: 2em;
  color: #fff; background: var(--te-sage); border: 1px solid transparent;
  padding: 14px 30px; border-radius: 0;
  box-shadow: 0 6px 22px rgba(44, 44, 44, .18);
  transition: background-color .35s ease-out, transform .35s ease-out;
}
.te-od__fab:hover { background: var(--te-sage-dark); transform: translateY(-1px); }

.te-od__overlay {
  position: fixed; inset: 0; z-index: 9999;
  display: flex; align-items: center; justify-content: center;
  padding: 24px; background: rgba(44, 44, 44, .6);
  -webkit-backdrop-filter: blur(2px); backdrop-filter: blur(2px);
  opacity: 0; visibility: hidden; transition: opacity .3s ease, visibility .3s ease;
}
.te-od__overlay.is-open { opacity: 1; visibility: visible; }
.te-od__modal {
  position: relative; width: 100%; max-width: 940px; max-height: 92vh;
  overflow-y: auto; -webkit-overflow-scrolling: touch;
  background: #fff; box-shadow: 0 28px 70px rgba(44, 44, 44, .32);
  transform: translateY(14px); transition: transform .35s ease;
}
.te-od__overlay.is-open .te-od__modal { transform: translateY(0); }
.te-od__close {
  position: absolute; top: 14px; right: 14px; z-index: 3;
  width: 38px; height: 38px; line-height: 1; cursor: pointer; padding: 0;
  display: flex; align-items: center; justify-content: center;
  color: var(--te-ink-soft); background: rgba(255, 255, 255, .9);
  border: 1px solid var(--te-line); border-radius: 0;
  font-family: var(--te-sans); font-size: 20px;
  transition: color .25s ease, background-color .25s ease, border-color .25s ease;
}
.te-od__close:hover { color: #fff; background: var(--te-sage); border-color: var(--te-sage); }

/* two-column body used by the PHP snippet (mirrors the Elementor pop-up) */
.te-od__cols { display: flex; align-items: stretch; }
.te-od__cols > * { box-sizing: border-box; }
.te-od .te-od__media {
  box-sizing: border-box;
  flex: 1 1 38%; min-width: 0; display: flex; flex-direction: column;
  justify-content: space-between; gap: 26px; padding: 36px 30px;
  background-color: #4D504A; background-size: cover;
  background-position: 30% center; background-repeat: no-repeat;
}
.te-od__media > div { position: relative; z-index: 1; }
.te-od__content { flex: 1 1 62%; min-width: 0; display: flex; flex-direction: column; background: #fff; }
.te-od .te-od__head {
  padding: 30px 40px 24px; text-align: center;
  background: var(--te-cream); border-bottom: 1px solid var(--te-line);
}
.te-od .te-od__body { padding: 28px 40px 36px; background: #fff; }
@media (max-width: 900px) {
  .te-od__cols { display: block; }
  .te-od__content { width: 100%; }
  .te-od .te-od__media { min-height: 190px; }
}
@media (max-width: 767px) {
  .te-od .te-od__head { padding: 26px 22px 20px; }
  .te-od .te-od__body { padding: 22px 22px 28px; }
}

/* ================================================================
   2. Elementor pop-up shell
   ================================================================ */

/* square off Elementor's own dialogue box for this pop-up (and give the
   photo panel nice rounded-free edges to match the site's aesthetic) */
.elementor-popup-modal:has(.te-od-form) .dialog-widget-content {
  border-radius: 0; background-color: #fff; overflow: hidden;
}
.elementor-popup-modal:has(.te-od-form) .dialog-message { padding: 0; }
/* keep the close button clear of our content */
.elementor-popup-modal:has(.te-od-form) .dialog-close-button { z-index: 5; }

/* ================================================================
   3. Elementor widget rhythm — our classes decide the spacing,
      not the theme kit's 20px widget gap
   ================================================================ */

.elementor .elementor-widget.te-od__mark,
.elementor .elementor-widget.te-od__eyebrow,
.elementor .elementor-widget.te-od__title,
.elementor .elementor-widget.te-od__meta,
.elementor .elementor-widget.te-od__intro,
.elementor .elementor-widget.te-od__media-eyebrow,
.elementor .elementor-widget.te-od__media-title,
.elementor .elementor-widget.te-od__media-meta,
.elementor .elementor-widget.te-od__media-address,
.elementor .elementor-widget.te-od__media-note,
.elementor .elementor-widget.te-od__detail,
.elementor .elementor-widget.te-od-form { margin-block-end: 0; }

/* ================================================================
   4. Head block (eyebrow / title / meta / intro + monogram)
   ================================================================ */

.te-od__mark { margin: 0 auto 16px; text-align: center; }
.te-od__mark img { display: inline-block; width: 62px; height: auto; }

.te-od__eyebrow, .te-od__eyebrow p {
  margin: 0 0 8px; padding: 0;
  font-family: var(--te-sans); font-size: 11px; font-weight: 500;
  letter-spacing: .3em; text-transform: uppercase; color: var(--te-bronze); line-height: 1.8;
}
.te-od__title, .te-od__title h2, .te-od__title h1, .te-od__title .elementor-heading-title {
  margin: 0 0 12px; padding: 0;
  font-family: var(--te-serif); font-weight: 500; font-size: 33px; line-height: 1.16;
  letter-spacing: -.01em; color: var(--te-ink); text-transform: none;
}
.te-od__meta, .te-od__meta p {
  margin: 0; padding: 0;
  font-family: var(--te-sans); font-size: 12px; font-weight: 500;
  letter-spacing: .16em; text-transform: uppercase; color: var(--te-ink-soft); line-height: 1.8;
}
.te-od__intro, .te-od__intro p {
  margin: 12px auto 0; max-width: 46ch; padding: 0;
  font-family: var(--te-serif); font-style: italic; font-size: 16px; line-height: 1.65;
  color: var(--te-muted);
}

/* ================================================================
   5. Photo panel (left column of the pop-up)
   ================================================================ */

.te-od__media { position: relative; }
/* soft vertical gradient so white text always reads, whatever the photo does */
.te-od__media::after {
  content: ""; position: absolute; inset: 0; pointer-events: none;
  background: linear-gradient(180deg, rgba(28,28,28,.52) 0%, rgba(28,28,28,.20) 38%, rgba(28,28,28,.66) 100%);
}
/* lift the photo panel's contents above its gradient — scoped to the panel only, so
   nothing else in the modal (e.g. the close button) has its positioning overridden */
.te-od__media > .elementor-widget { position: relative; z-index: 1; }
.te-od__media > .e-con-inner { position: relative; z-index: 1; }

.te-od__media-eyebrow, .te-od__media-eyebrow p {
  margin: 0 0 10px; padding: 0;
  font-family: var(--te-sans); font-size: 10.5px; font-weight: 500;
  letter-spacing: .3em; text-transform: uppercase; color: rgba(255, 255, 255, .88);
}
.te-od__media-title, .te-od__media-title h3, .te-od__media-title h2,
.te-od__media-title .elementor-heading-title {
  margin: 0 0 14px; padding: 0;
  font-family: var(--te-serif); font-weight: 500; font-size: 27px; line-height: 1.25;
  color: #fff; text-transform: none; letter-spacing: 0;
}
.te-od__media-meta, .te-od__media-meta p,
.te-od__media-address, .te-od__media-address p {
  margin: 0; padding: 0;
  font-family: var(--te-sans); font-size: 13.5px; line-height: 1.85;
  color: rgba(255, 255, 255, .92);
}
.te-od__media-address p { letter-spacing: .01em; }
.te-od__media-note, .te-od__media-note p {
  margin: 16px 0 0; padding: 0; max-width: 34ch;
  font-family: var(--te-serif); font-style: italic; font-size: 15px; line-height: 1.6;
  color: rgba(255, 255, 255, .8);
}
/* hairline between the meta and the address block */
.te-od__media-divider .elementor-divider-separator {
  border-top: 1px solid rgba(255, 255, 255, .35) !important;
  width: 52px !important; margin: 18px 0 !important;
}

/* light-on-photo variants (landing page hero) */
.te-od__eyebrow--light, .te-od__eyebrow--light p { color: rgba(255, 255, 255, .85); }
.te-od__title--light, .te-od__title--light h1, .te-od__title--light h2,
.te-od__title--light .elementor-heading-title { color: #fff; }
.te-od__meta--light, .te-od__meta--light p { color: rgba(255, 255, 255, .9); }
.te-od__intro--light, .te-od__intro--light p { color: rgba(255, 255, 255, .82); }

/* ================================================================
   6. Form — one metric system for every control
   ----------------------------------------------------------------
   Every field is built from the same four numbers, so labels, inputs,
   selects and the checkbox cards all sit on one grid:
     48px tall  =  20px text  +  13px pad  +  13px pad  +  2px border
     15px  left/right padding (the phone field keeps its own left pad:
            intl-tel-input measures the flag and sets it inline)
     8px   between label and control, 16px between fields
   ================================================================ */

/* the form carries its own box model, so widths don't depend on the theme's reset */
:is(.te-od, .te-od-form) .jet-form-builder,
:is(.te-od, .te-od-form) .jet-form-builder *,
:is(.te-od, .te-od-form) .jet-form-builder *::before,
:is(.te-od, .te-od-form) .jet-form-builder *::after { box-sizing: border-box; }

:is(.te-od, .te-od-form) .jet-form-builder {
  --te-field-pad-y: 13px;      /* inside a control, top + bottom */
  --te-field-pad-x: 15px;      /* inside a control, left + right */
  --te-field-line: 20px;       /* one line of text               */
  --te-field-min-h: 48px;      /* 20 + 13 + 13 + 2 borders       */
  --te-label-gap: 8px;         /* label -> control               */
  --te-row-gap: 16px;          /* control -> next field          */
  display: flex; flex-direction: column; gap: var(--te-row-gap);
  margin: 0; padding: 0; font-family: var(--te-sans);
}
:is(.te-od, .te-od-form) .jet-form-builder-row { display: block; margin: 0; padding: 0; }
:is(.te-od, .te-od-form) .jet-form-builder__field-wrap { width: 100%; }

/* paired fields — WP core gives .wp-block-columns a 2em gap, so be explicit */
:is(.te-od, .te-od-form) .jet-form-builder .wp-block-columns,
:is(.te-od, .te-od-form) .jet-form-builder .wp-block-columns.te-cols {
  display: flex; flex-wrap: wrap; gap: 0 var(--te-row-gap); margin: 0;
}
:is(.te-od, .te-od-form) .jet-form-builder .wp-block-column {
  flex: 1 1 0; min-width: 0; margin: 0; padding: 0;
  /* bottom-align so a pair still lines up when one label wraps to two lines */
  display: flex; flex-direction: column; justify-content: flex-end;
}
@media (max-width: 620px) {
  /* the pair must collapse on phones — this needs the same .te-cols specificity
     as the flex rule above, otherwise the columns stay side by side */
  :is(.te-od, .te-od-form) .jet-form-builder .wp-block-columns,
  :is(.te-od, .te-od-form) .jet-form-builder .wp-block-columns.te-cols { display: block; }
  :is(.te-od, .te-od-form) .jet-form-builder .wp-block-column { flex: none; }
  :is(.te-od, .te-od-form) .jet-form-builder .wp-block-column + .wp-block-column { margin-top: var(--te-row-gap); }
}

/* ---------------------------------------------------------------- labels */

:is(.te-od, .te-od-form) .jet-form-builder__label { margin: 0 0 var(--te-label-gap); padding: 0; }
:is(.te-od, .te-od-form) .jet-form-builder__label-text {
  display: block; font-family: var(--te-sans); font-size: 10.5px; font-weight: 500;
  letter-spacing: .18em; text-transform: uppercase; color: var(--te-ink-soft); line-height: 1.8;
}
:is(.te-od, .te-od-form) .jet-form-builder__required { color: var(--te-bronze); }
:is(.te-od, .te-od-form) .jet-form-builder__desc { margin: var(--te-label-gap) 0 0; }
:is(.te-od, .te-od-form) .jet-form-builder__desc small {
  font-family: var(--te-sans); font-size: 12.5px; line-height: 1.6; color: var(--te-muted);
}

/* ------------------------------------------------- single-line controls */

:is(.te-od, .te-od-form) .jet-form-builder__field:not([type="checkbox"]):not([type="radio"]):not(.checkradio-field):not(.iti__tel-input):not(.phone-field-intl),
:is(.te-od, .te-od-form) .jet-form-builder__field.text-field,
:is(.te-od, .te-od-form) .jet-form-builder__field.email-field,
:is(.te-od, .te-od-form) .jet-form-builder__field.number-field,
:is(.te-od, .te-od-form) .jet-form-builder__field.select-field,
:is(.te-od, .te-od-form) .jet-form-builder__field.textarea-field {
  box-sizing: border-box;
  width: 100% !important; max-width: 100%; min-height: var(--te-field-min-h);
  margin: 0; padding: var(--te-field-pad-y) var(--te-field-pad-x) !important;
  font-family: var(--te-sans); font-size: 15px; line-height: var(--te-field-line); color: var(--te-ink);
  background-color: #fff; border: 1px solid var(--te-line); border-radius: 0;
  box-shadow: none; outline: none;
  -webkit-appearance: none; appearance: none;
  transition: border-color .25s ease, box-shadow .25s ease;
}
:is(.te-od, .te-od-form) .jet-form-builder__field::placeholder { color: var(--te-muted); opacity: 1; }
:is(.te-od, .te-od-form) .jet-form-builder__field:focus {
  border-color: var(--te-sage); box-shadow: 0 0 0 3px rgba(175, 175, 165, .22);
}
/* the textarea keeps the same box, it just holds more lines */
:is(.te-od, .te-od-form) textarea.jet-form-builder__field.textarea-field {
  line-height: 1.55; min-height: 100px; resize: vertical;
}
/* select: the arrow sits on the same 15px line as the text in other fields */
:is(.te-od, .te-od-form) select.jet-form-builder__field.select-field {
  padding-right: calc(var(--te-field-pad-x) + 26px) !important;
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%234D504A' d='M1.4 0 6 4.6 10.6 0 12 1.4 6 7.4 0 1.4z'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: right var(--te-field-pad-x) center; background-size: 11px auto;
  text-indent: 0;
}
:is(.te-od, .te-od-form) select.jet-form-builder__field.select-field option[value=""] { color: var(--te-muted); }

/* ------------------------------------------------------- phone (ITI) */

/* intl-tel-input measures the flag + dial code and writes its own left
   padding inline, so only the other three sides are pinned here */
:is(.te-od, .te-od-form) .phone-field-wrap input.phone-field-intl,
:is(.te-od, .te-od-form) .phone-field-wrap input.iti__tel-input {
  box-sizing: border-box;
  width: 100% !important; min-height: var(--te-field-min-h); margin: 0;
  padding-top: var(--te-field-pad-y) !important;
  padding-bottom: var(--te-field-pad-y) !important;
  padding-right: var(--te-field-pad-x) !important;
  padding-left: 52px !important;          /* fallback if the library hasn't run */
  font-family: var(--te-sans); font-size: 15px; line-height: var(--te-field-line); color: var(--te-ink);
  background-color: #fff; border: 1px solid var(--te-line); border-radius: 0;
  box-shadow: none; outline: none;
  transition: border-color .25s ease, box-shadow .25s ease;
}
:is(.te-od, .te-od-form) .phone-field-wrap input.phone-field-intl::placeholder { color: var(--te-muted); opacity: 1; }
:is(.te-od, .te-od-form) .phone-field-wrap input.phone-field-intl:focus,
:is(.te-od, .te-od-form) .phone-field-wrap input.iti__tel-input:focus {
  border-color: var(--te-sage) !important; box-shadow: 0 0 0 3px rgba(175, 175, 165, .22) !important; outline: none;
}
:is(.te-od, .te-od-form) .phone-field-wrap .iti { width: 100%; position: relative; display: block; }
/* the flag starts on the same 15px line as text in every other field */
:is(.te-od, .te-od-form) .phone-field-wrap .iti__country-container {
  display: flex; align-items: center; padding: 0 0 0 var(--te-field-pad-x);
}
:is(.te-od, .te-od-form) .phone-field-wrap .iti__selected-country { align-items: center; height: 100%; }
:is(.te-od, .te-od-form) .phone-field-wrap .iti__selected-dial-code {
  font-family: var(--te-sans); font-size: 15px; color: var(--te-ink); margin-left: 6px;
}
:is(.te-od, .te-od-form) .phone-field-wrap .iti__arrow { border-top-color: var(--te-muted) !important; margin-left: 7px; }
:is(.te-od, .te-od-form) .phone-field-wrap .iti__country-list {
  font-family: var(--te-sans); font-size: 14px; border-color: var(--te-line);
  box-shadow: 0 14px 34px rgba(44, 44, 44, .16); z-index: 5;
}
:is(.te-od, .te-od-form) .phone-field-wrap .iti__country.iti__highlight { background-color: var(--te-cream); }
/* the plugin's own red error state, restated in the palette */
:is(.te-od, .te-od-form) .phone-field-wrap.field-has-error input.phone-field-intl,
:is(.te-od, .te-od-form) .phone-field-wrap input.phone-field-intl.invalid {
  border-color: var(--te-error) !important; background-color: #FBF3F1 !important;
}

/* --------------------------------------------------------- checkboxes */

:is(.te-od, .te-od-form) .jet-form-builder__fields-group { display: flex; flex-direction: column; gap: 10px; }
:is(.te-od, .te-od-form) .jet-form-builder__field-wrap.checkradio-wrap { width: auto; margin: 0; }

/* each option is a card the same height as an input */
:is(.te-od, .te-od-form) .jet-form-builder__field-label.for-checkbox {
  display: flex; align-items: flex-start; gap: 12px; cursor: pointer; margin: 0;
  box-sizing: border-box; min-height: var(--te-field-min-h);
  padding: var(--te-field-pad-y) var(--te-field-pad-x);
  font-family: var(--te-sans); font-size: 14.5px; line-height: var(--te-field-line); color: var(--te-ink);
  background: #fff; border: 1px solid var(--te-line); border-radius: 0;
  transition: border-color .2s ease, background-color .2s ease;
}
:is(.te-od, .te-od-form) .jet-form-builder__field-label.for-checkbox > span {
  display: inline-flex; align-items: flex-start; gap: 12px; flex: 1 1 auto; min-width: 0;
}
:is(.te-od, .te-od-form) .jet-form-builder__field-label.for-checkbox:not(:has(input[name="privacy_policy"])):hover {
  border-color: var(--te-sage);
}
:is(.te-od, .te-od-form) .jet-form-builder__field-label.for-checkbox:not(:has(input[name="privacy_policy"])):has(input:checked) {
  border-color: var(--te-sage); background: var(--te-cream);
}
/* consent line: no card, but its checkbox still lines up with the day cards */
:is(.te-od, .te-od-form) .jet-form-builder__field-label.for-checkbox:has(input[name="privacy_policy"]) {
  min-height: 0; padding: 2px var(--te-field-pad-x); background: none; border-color: transparent;
}
:is(.te-od, .te-od-form) .jet-form-builder__field-label.for-checkbox a {
  color: var(--te-bronze); text-decoration: underline;
}

:is(.te-od, .te-od-form) input[type="checkbox"].jet-form-builder__field.checkradio-field {
  flex: 0 0 auto; width: 18px !important; height: 18px !important;
  min-width: 18px; max-width: 18px; margin: 1px 0 0; padding: 0;
  background-color: #fff; border: 1px solid #C9C7C1; border-radius: 0;
  -webkit-appearance: none; appearance: none; cursor: pointer;
  transition: background-color .2s ease, border-color .2s ease;
}
:is(.te-od, .te-od-form) input[type="checkbox"].jet-form-builder__field.checkradio-field:checked {
  background-color: var(--te-sage); border-color: var(--te-sage);
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='10' viewBox='0 0 12 10'%3E%3Cpath fill='none' stroke='%23fff' stroke-width='2' stroke-linecap='square' d='M1 5.3 4.2 8.5 11 1.5'/%3E%3C/svg%3E");
  background-repeat: no-repeat; background-position: center; background-size: 10px auto;
}
:is(.te-od, .te-od-form) input[type="checkbox"].jet-form-builder__field.checkradio-field:focus-visible {
  outline: none; box-shadow: 0 0 0 3px rgba(175, 175, 165, .35);
}

/* ------------------------------------------------------ submit button */

:is(.te-od, .te-od-form) .jet-form-builder__action-button-wrapper { width: 100%; margin: 2px 0 0; }
:is(.te-od, .te-od-form) .jet-form-builder__submit {
  display: inline-flex; align-items: center; justify-content: center;
  width: 100%; min-width: 0; margin: 0; padding: 17px 40px;
  font-family: var(--te-sans); font-size: 11px; font-weight: 500; line-height: 1.6;
  letter-spacing: .3em; text-transform: uppercase; text-align: center;
  color: #fff; background-color: var(--te-sage);
  border: 1px solid transparent; border-radius: 0; cursor: pointer;
  box-shadow: none; transition: background-color .35s ease-out, color .35s ease-out;
}
:is(.te-od, .te-od-form) .jet-form-builder__submit:hover { color: #fff; background-color: var(--te-sage-dark); }
:is(.te-od, .te-od-form) .jet-form-builder__submit:focus-visible { outline: 2px solid var(--te-bronze); outline-offset: 2px; }
:is(.te-od, .te-od-form) .jet-form-builder.is-loading .jet-form-builder__submit { opacity: .6; pointer-events: none; }

/* ------------------------------------------------------------ messages */

:is(.te-od, .te-od-form) .jet-form-builder-messages-wrap { margin: 0; }
:is(.te-od, .te-od-form) .jet-form-builder-message {
  margin: 0; padding: 22px 24px; text-align: center;
  font-family: var(--te-serif); font-size: 19px; line-height: 1.55;
}
:is(.te-od, .te-od-form) .jet-form-builder-message--success {
  color: var(--te-ink-soft); background: var(--te-cream); border: 1px solid var(--te-line);
}
:is(.te-od, .te-od-form) .jet-form-builder-message--error {
  color: var(--te-error); background: #FBF3F1; border: 1px solid #E9CFC7;
}
:is(.te-od, .te-od-form) .error-message,
:is(.te-od, .te-od-form) .jet-form-builder__field-error {
  display: block; margin: var(--te-label-gap) 0 0;
  font-family: var(--te-sans); font-size: 12.5px; line-height: 1.6; color: var(--te-error);
}
:is(.te-od, .te-od-form) .jet-form-builder-row.field-has-error .jet-form-builder__field,
:is(.te-od, .te-od-form) .jet-form-builder__field.field-has-error { border-color: var(--te-error); }

/* ================================================================
   7. Landing-page extras (used by elementor-open-day-page.json)
   ================================================================ */

.te-od__btn .elementor-button,
.te-od__btn.elementor-button {
  font-family: var(--te-sans); font-size: 11px; font-weight: 500;
  letter-spacing: .3em; text-transform: uppercase; line-height: 1.7;
  color: #fff; background-color: var(--te-sage); text-decoration: none;
  border: 1px solid transparent; border-radius: 0; padding: 16px 40px;
  transition: background-color .35s ease-out;
}
.te-od__btn .elementor-button:hover,
.te-od__btn.elementor-button:hover { background-color: var(--te-sage-dark); color: #fff; }
.te-od__btn--ghost .elementor-button {
  background: transparent; color: #fff; border-color: rgba(255, 255, 255, .6);
}
.te-od__btn--ghost .elementor-button:hover { background: #fff; color: var(--te-ink); border-color: #fff; }

.te-od__detail-label, .te-od__detail-label p {
  margin: 0 0 6px; padding: 0;
  font-family: var(--te-sans); font-size: 10.5px; font-weight: 500;
  letter-spacing: .22em; text-transform: uppercase; color: var(--te-bronze);
}
.te-od__detail, .te-od__detail p {
  margin: 0; padding: 0;
  font-family: var(--te-serif); font-size: 19px; line-height: 1.5; color: var(--te-ink-soft);
}
.te-od__cards { display: flex; gap: 24px; flex-wrap: wrap; }
.te-od__card {
  flex: 1 1 260px; padding: 28px 26px;
  background: #fff; border: 1px solid var(--te-line);
}
.te-od__card-title, .te-od__card-title h3 {
  margin: 0 0 8px; padding: 0;
  font-family: var(--te-serif); font-weight: 500; font-size: 21px; color: var(--te-ink);
}
.te-od__card p { margin: 0; font-family: var(--te-sans); font-size: 14.5px; line-height: 1.7; color: var(--te-ink-soft); }
.te-od__panel { background: #fff; border: 1px solid var(--te-line); padding: 34px 36px; }

/* landing-page extras: facts strip, gallery, FAQ accordion, caption */
.te-od__facts { display: flex; gap: 44px; flex-wrap: wrap; }
.te-od .te-od__fact { flex: 1 1 240px; }
.te-od .te-od__fact-label, .te-od .te-od__fact-label p {
  margin: 0 0 8px; padding: 0;
  font-family: var(--te-sans); font-size: 10.5px; font-weight: 500;
  letter-spacing: .24em; text-transform: uppercase; color: var(--te-bronze);
}
.te-od .te-od__fact-value, .te-od .te-od__fact-value p {
  margin: 0; padding: 0;
  font-family: var(--te-serif); font-size: 20px; line-height: 1.55; color: var(--te-ink-soft);
}

.te-od__gallery { display: flex; gap: 16px; flex-wrap: wrap; }
.te-od__gallery > * { flex: 1 1 260px; min-height: 340px; background-size: cover; background-position: center; }
@media (max-width: 767px) { .te-od__gallery > * { min-height: 220px; } }

.te-od .te-od__caption, .te-od .te-od__caption p {
  margin: 20px 0 0; padding: 0; text-align: center;
  font-family: var(--te-sans); font-size: 12.5px; letter-spacing: .04em; color: var(--te-muted);
}

/* FAQ — Elementor's accordion widget, dressed in the estate palette */
.te-od .te-od__faq .elementor-accordion-item { border-color: var(--te-line) !important; }
.te-od .te-od__faq .elementor-accordion-item:first-child { border-top: 1px solid var(--te-line) !important; }
.te-od .te-od__faq .elementor-tab-title {
  padding: 22px 4px !important; background: transparent !important;
  font-family: var(--te-sans) !important; font-size: 12.5px !important; font-weight: 500 !important;
  letter-spacing: .14em !important; text-transform: uppercase; color: var(--te-ink-soft) !important;
}
.te-od .te-od__faq .elementor-tab-title.elementor-active { color: var(--te-ink) !important; }
.te-od .te-od__faq .elementor-tab-content {
  padding: 0 4px 24px !important; border-color: var(--te-line) !important;
  font-family: var(--te-sans); font-size: 14.5px; line-height: 1.8; color: var(--te-ink-soft);
}
.te-od .te-od__faq .elementor-tab-content p { margin: 0; }
.te-od .te-od__faq .elementor-accordion-icon { color: var(--te-bronze) !important; }
.te-od .te-od__faq .elementor-accordion-title { text-align: left; }

/* ================================================================
   8. Responsive
   ================================================================ */

@media (max-width: 1024px) {
  .te-od__title, .te-od__title .elementor-heading-title { font-size: 28px; }
  .te-od__media-title, .te-od__media-title .elementor-heading-title { font-size: 23px; }
}
/* on phones the photo panel becomes a decorative band: the date, time and address
   already appear in the cream header, so the overlay text steps aside.
   (Belt and braces: the template also carries Elementor's "hidden-mobile" values.) */
@media (max-width: 767px) {
  .te-od .te-od__media-eyebrow,
  .te-od .te-od__media-title,
  .te-od .te-od__media-divider,
  .te-od .te-od__media-meta,
  .te-od .te-od__media-address,
  .te-od .te-od__media-note { display: none !important; }
  .te-od .te-od__media { min-height: 210px; padding: 0 22px; background-position: 50% center !important; }
}

@media (max-width: 767px) {
  .te-od__overlay { padding: 0; align-items: flex-end; }
  .te-od__modal { max-width: none; max-height: 94vh; }
  .te-od__fab { right: 14px; bottom: 14px; padding: 12px 20px; letter-spacing: .16em; }
  .te-od__title, .te-od__title .elementor-heading-title { font-size: 25px; }
  .te-od__intro, .te-od__intro p { font-size: 15px; }
  .te-od__panel { padding: 24px 20px; }
}
@media (prefers-reduced-motion: reduce) {
  .te-od__overlay, .te-od__modal, .te-od__fab { transition: none; }
}

/* after a successful submission in the snippet pop-up, the close button becomes
   the obvious next step */
.te-od__overlay.is-success .te-od__close {
  color: #fff; background: var(--te-sage); border-color: var(--te-sage);
}


/* ================================================================
   9. Success state — the thank-you takes over the pop-up
   ----------------------------------------------------------------
   Added by open-day-success.js (or the PHP snippet) after a
   successful AJAX submission. The registration content is hidden and
   an in-place thank-you panel takes its place; closing resets the form
   so the next guest starts clean.
   ================================================================ */

/* hosts that can hold the panel */
.te-od, .te-od__modal, .te-od__panel { position: relative; }

.te-od-success { display: none; }

/* while the thank-you shows, everything else steps aside (the close button stays) */
:is(.te-od, .te-od__modal, .te-od__panel).is-success { padding: 0; }
:is(.te-od, .te-od__modal, .te-od__panel).is-success > *:not(.te-od-success):not(.te-od__close) {
  display: none !important;
}

:is(.te-od, .te-od__modal, .te-od__panel).is-success .te-od-success {
  box-sizing: border-box;
  display: flex; flex-direction: column; align-items: center; justify-content: center;
  width: 100%; min-height: 320px; padding: 52px 40px; text-align: center;
  background: var(--te-cream); border: 1px solid var(--te-line);
  animation: te-od-success-in .5s ease both;
}
@keyframes te-od-success-in {
  from { opacity: 0; transform: translateY(10px); }
  to   { opacity: 1; transform: none; }
}

/* the thank-you reads better in a narrower frame than the two-column form.
   Elementor applies the pop-up's own width (960px) to the dialog AND to the
   .dialog-message wrapper, so capping the dialog alone leaves the content 340px
   wider than its frame - which is why it was clipped instead of centred.
   Cap every level of the chain. */
/* the dialog itself narrows to 620px (and to 100% on small screens) ... */
.elementor-popup-modal:has(.te-od.is-success) .dialog-widget-content {
  max-width: 620px; width: 100%; margin-left: auto; margin-right: auto;
}
/* ... and everything inside it follows that width, whatever inline width Elementor
   has set on the wrapper. !important is needed: Elementor writes the pop-up's width
   into a style attribute on .dialog-message, and inline styles beat plain rules. */
.elementor-popup-modal:has(.te-od.is-success) .dialog-message,
.elementor-popup-modal:has(.te-od.is-success) .dialog-message > .elementor,
.elementor-popup-modal:has(.te-od.is-success) .te-od {
  max-width: 100% !important; width: 100% !important;
  margin-left: auto; margin-right: auto;
}
.te-od__modal:has(.te-od-success) { max-width: 620px; }

.te-od-success__mark { margin: 0 0 18px; }
.te-od-success__mark img { display: block; width: 58px; height: auto; margin: 0 auto; }

.te-od-success__eyebrow {
  margin: 0 0 10px; padding: 0;
  font-family: var(--te-sans); font-size: 11px; font-weight: 500;
  letter-spacing: .3em; text-transform: uppercase; color: var(--te-bronze);
}
.te-od-success__title {
  margin: 0 0 14px; padding: 0;
  font-family: var(--te-serif); font-weight: 500; font-size: 30px; line-height: 1.2;
  letter-spacing: -.01em; color: var(--te-ink);
  /* the Solene kit upper-cases h3 - this panel is a sentence, not a label */
  text-transform: none;
}
.te-od-success__text {
  margin: 0; max-width: 42ch;
  font-family: var(--te-sans); font-size: 15px; line-height: 1.75; color: var(--te-ink-soft);
}
.te-od-success__details {
  margin: 18px 0 0; padding: 18px 0 0; width: 100%; max-width: 380px;
  border-top: 1px solid var(--te-line);
  font-family: var(--te-sans); font-size: 12px; font-weight: 500;
  letter-spacing: .14em; text-transform: uppercase; line-height: 1.9; color: var(--te-muted);
}
.te-od-success__cal { display: flex; flex-wrap: wrap; gap: 10px; justify-content: center; margin: 22px 0 0; }
.te-od-success__cal a {
  display: inline-block; padding: 12px 18px;
  font-family: var(--te-sans); font-size: 10.5px; font-weight: 500;
  letter-spacing: .18em; text-transform: uppercase; text-decoration: none;
  color: var(--te-ink-soft); background: #fff; border: 1px solid var(--te-line); border-radius: 0;
  transition: border-color .25s ease, color .25s ease, background-color .25s ease;
}
.te-od-success__cal a:hover { color: var(--te-ink); border-color: var(--te-sage); background: #fff; }

.te-od-success__close {
  margin: 24px 0 0; padding: 16px 44px; cursor: pointer;
  font-family: var(--te-sans); font-size: 11px; font-weight: 500; line-height: 1.6;
  letter-spacing: .3em; text-transform: uppercase;
  color: #fff; background-color: var(--te-sage); border: 1px solid transparent; border-radius: 0;
  transition: background-color .35s ease-out;
}
.te-od-success__close:hover { background-color: var(--te-sage-dark); }
.te-od-success__close:focus-visible { outline: 2px solid var(--te-bronze); outline-offset: 2px; }

.te-od-success__note {
  margin: 20px 0 0; max-width: 44ch;
  font-family: var(--te-sans); font-size: 12.5px; line-height: 1.7; color: var(--te-muted);
}
.te-od-success__note a { color: var(--te-bronze); text-decoration: underline; }

@media (max-width: 767px) {
  :is(.te-od, .te-od__modal, .te-od__panel).is-success .te-od-success { padding: 34px 22px; min-height: 0; }
  .te-od-success__title { font-size: 24px; }
  .te-od-success__cal { flex-direction: column; align-self: stretch; }
  .te-od-success__cal a { text-align: center; }
}
@media (prefers-reduced-motion: reduce) {
  :is(.te-od, .te-od__modal, .te-od__panel).is-success .te-od-success { animation: none; }
}/* End custom CSS */