@import url('fonts.css');
:root{--plum:#482b43;--muted:#6a6269;--tint:#f7f5f9;--line:#ded7de;--serif:'Cormorant Garamond',Georgia,serif;--sans:Inter,Arial,sans-serif}*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:30px}body{margin:0;color:#423d42;background:#fff;font:16px/1.65 var(--sans)}body.lock{overflow:hidden}button,input{font:inherit}button,a{-webkit-tap-highlight-color:transparent}button{cursor:pointer}a{color:inherit;text-decoration:none}img{display:block;width:100%;object-fit:cover}button{border-radius:0}button:focus-visible,a:focus-visible,summary:focus-visible{outline:2px solid var(--plum);outline-offset:5px}h1,h2,h3,p,figure,blockquote{margin:0}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;color:var(--plum)}h1{font-size:clamp(3.4rem,5.4vw,5.4rem);letter-spacing:-.045em}h2{font-size:clamp(2.55rem,4vw,3.65rem);letter-spacing:-.035em}h3{font-size:1.7rem;letter-spacing:-.02em}em{font-weight:400}.wrap{width:min(1200px,calc(100% - 96px));margin-inline:auto}.header{display:flex;align-items:center;justify-content:space-between;height:112px}.brand{display:inline-flex;flex-direction:column;align-items:center;color:var(--plum);font:400 3.5rem/.8 var(--serif);letter-spacing:-.035em}.brand span{font:500 .6rem/1 var(--sans);letter-spacing:.35em;margin-top:13px;padding-left:5px}.header nav{display:flex;align-items:center;gap:33px;font-size:.85rem}.header nav a{padding-block:10px}.header nav a:hover{color:var(--plum);text-decoration:underline;text-underline-offset:7px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;background:var(--plum);color:white;border:1px solid var(--plum);padding:16px 24px;min-height:52px;font-size:.875rem;font-weight:500;transition:background .18s,transform .18s}.button:hover{background:#67445f;transform:translateY(-1px)}.button.outline{background:white;color:var(--plum);min-height:44px;padding:10px 26px}.button.outline:hover{background:var(--tint)}.button.light{background:#fff;color:var(--plum);border-color:white}.button.light:hover{background:#f4eaf1}.button:disabled{opacity:.65;cursor:wait;transform:none}.menu-toggle{display:none}.hero{display:grid;grid-template-columns:1fr 1.03fr;align-items:center;gap:44px;padding-top:28px;padding-bottom:26px}.eyebrow{text-transform:uppercase;font-size:.66rem;font-weight:500;letter-spacing:.22em;color:var(--plum);margin-bottom:23px}.hero-description{margin-top:27px;font-size:1.05rem}.location{font-size:.875rem;margin:4px 0 30px}.hero-media{height:440px}.hero-media img{height:100%;object-position:center}.section{padding-block:76px}.section-intro{margin-top:16px}.audience-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:35px 30px;margin-top:35px}.audience-photo{width:100%;aspect-ratio:1.65;background-image:url('../images/audience.png');background-size:300% auto;background-repeat:no-repeat;background-color:var(--tint)}.photo-0{background-position:0 0}.photo-1{background-position:50% 0}.photo-2{background-position:100% 0}.photo-3{background-position:0 100%}.photo-4{background-position:50% 100%}.photo-5{background-position:100% 100%}.audience-grid h3{margin-top:15px}.text-button{padding:3px 0;background:none;border:0;border-bottom:1px solid #c7b7c4;color:var(--plum);font-size:.85rem;line-height:1.5;display:inline-flex;gap:15px;align-items:center}.text-button:hover{border-bottom-color:var(--plum)}.audience-grid .text-button{margin-top:7px}.about-band,.faq-band{background:var(--tint)}.about{display:grid;grid-template-columns:.88fr 1.12fr;gap:70px;align-items:center;padding-block:65px}.portrait{height:435px;object-position:center 30%}.about .eyebrow{margin-bottom:20px}.about .subtitle{color:var(--plum);margin:18px 0 22px}.about p:not(.eyebrow):not(.subtitle){margin-bottom:18px}.about .text-button{margin-top:10px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:20px}.slider-controls{display:flex;gap:10px}.slider-controls button{border:1px solid var(--line);background:white;color:var(--plum);width:42px;height:42px;font-size:1.3rem}.slider-controls button:hover{background:var(--tint)}.testimonial-layout{display:grid;grid-template-columns:1fr 1.15fr;gap:55px;align-items:center;margin-top:32px}.testimonial-layout>img{height:320px}.quote-panel{padding:5px 5px 5px 0}.quote-mark{font:6rem/.8 var(--serif);color:#b393ac;display:block}.quote-panel blockquote{font:400 1.75rem/1.4 var(--serif);color:var(--plum)}#quote-name{margin-top:20px;color:var(--plum);font-size:.8rem;text-transform:uppercase;letter-spacing:.14em}.dots{display:flex;gap:8px;margin-top:24px}.dots button{border:0;background:#dfd6e4;width:8px;height:8px;border-radius:50%;padding:0;position:relative}.dots button:before{content:'';position:absolute;inset:-8px}.dots button[aria-current=true]{background:var(--plum)}.review-note{font-size:.75rem;color:var(--muted);margin-top:20px}.process{padding-top:10px;padding-bottom:25px}.steps{display:grid;grid-template-columns:repeat(3,1fr);gap:36px;margin-top:36px}.steps article{display:flex;gap:20px}.steps article>span{font:2.35rem/1 var(--serif);color:var(--plum)}.steps h3{font-size:1.5rem}.steps p{font-size:.88rem;margin-top:10px}.session-grid{display:grid;grid-template-columns:1fr 1fr;gap:34px;margin-top:30px}.session-grid img,.online-image{height:260px}.session-grid h3{margin-top:18px}.session-grid p{font-size:.9rem;margin:9px 0}.online-image{background:#f1eaf0;padding:32px 42px;display:flex;flex-direction:column;justify-content:space-between;color:var(--plum)}.online-word{font:3.8rem/.95 var(--serif);letter-spacing:-.03em}.online-caption{font-size:.75rem;letter-spacing:.025em}.faq{padding-block:68px;display:grid;grid-template-columns:.85fr 1.15fr;gap:70px}.faq details{border-bottom:1px solid var(--line)}summary{list-style:none;cursor:pointer;position:relative;padding:19px 35px 19px 0;font-size:.94rem;color:var(--plum)}summary::-webkit-details-marker{display:none}summary:after{content:'+';position:absolute;right:5px;top:14px;font-size:1.45rem;font-weight:400}details[open] summary:after{content:'−'}details p{padding:0 25px 20px 0;font-size:.9rem;color:var(--muted)}.closing{background:var(--plum);color:white;text-align:center;padding:64px 0}.closing h2{color:white}.closing p{margin:16px 0 25px}.whatsapp{display:block;width:fit-content;margin:17px auto 0;font-size:.8rem;border-bottom:1px solid #998693}.footer{display:flex;align-items:center;justify-content:space-between;gap:30px;padding-block:38px;flex-wrap:wrap}.footer .brand{font-size:2.8rem}.footer>div{display:flex;align-items:center;gap:27px;font-size:.8rem}.footer .text-button{border:0;font-size:.8rem}.footer>p{font-size:.7rem;color:var(--muted);width:100%;margin-top:3px}.skip{position:absolute;top:-80px;left:10px;background:white;padding:12px;z-index:100}.skip:focus{top:10px}dialog{border:0;padding:0;max-height:92dvh;width:min(590px,calc(100% - 32px));color:#383439;overflow-y:auto}dialog::backdrop{background:rgb(23 18 22 / .6);backdrop-filter:blur(3px)}.modal{padding:34px 42px 30px;position:relative}.modal-top{display:flex;justify-content:space-between;align-items:flex-start;margin-bottom:38px}.modal .brand{font-size:3.7rem}.close{background:none;border:0;color:#484248;padding:0;width:32px;height:32px;font-size:2.3rem;line-height:1}.modal h2{font-size:3.6rem}.modal-intro{margin:14px 0 24px;color:#625b62;font-size:.95rem}.modal label{display:block;margin:16px 0 7px;font-size:.9rem;font-weight:500}.optional{color:#777078;font-weight:400}.modal input{width:100%;height:49px;border:1px solid #bbb3bd;padding:12px 14px;border-radius:0;background:white;color:#363036;font-size:16px}.modal input:focus{outline:1px solid var(--plum);border-color:var(--plum)}.modal input::placeholder{color:#928b93}.submit{width:100%;margin-top:27px}.consent{font-size:.72rem;color:#7a737a;margin-top:16px;line-height:1.6}.form-error{color:#a32540;font-size:.85rem;margin-top:12px}.form-error:empty{display:none}.honey{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}#form-success{text-align:center;padding:15px 0 35px}#form-success p{margin:20px 0 30px}.success-symbol{color:var(--plum);font-size:2.5rem;display:block;margin-bottom:20px}.privacy-copy h2{margin-bottom:25px}.privacy-copy>p{margin-bottom:18px;font-size:.9rem}.privacy-copy .close{float:right}.privacy-copy a{text-decoration:underline;overflow-wrap:anywhere}[hidden]{display:none!important}
@media(min-width:1450px){.wrap{width:min(1320px,calc(100% - 140px))}.hero-media{height:490px}}
@media(max-width:900px){.wrap{width:calc(100% - 48px)}.header nav{gap:20px;font-size:.75rem}.hero{gap:24px}.hero-media{height:365px}h1{font-size:3.6rem}.about{gap:35px}.about .portrait{height:385px}.testimonial-layout{gap:30px}.faq{gap:35px}.online-word{font-size:3rem}}
@media(max-width:640px){.wrap{width:calc(100% - 40px)}.header{height:91px}.brand{font-size:2.9rem}.brand span{font-size:.5rem;margin-top:10px}.header nav{display:none;position:absolute;left:0;right:0;top:90px;background:white;z-index:10;padding:24px;box-shadow:0 15px 20px #482b4310;font-size:1rem}.header nav.open{display:flex;flex-direction:column;align-items:stretch}.header nav .button{width:100%}.menu-toggle{display:flex;flex-direction:column;gap:6px;width:42px;height:42px;padding:10px 5px;border:0;background:white;justify-content:center}.menu-toggle span{display:block;height:1.5px;width:28px;background:var(--plum)}.hero{display:flex;flex-direction:column;align-items:stretch;gap:26px;padding-top:17px;padding-bottom:0}.eyebrow{font-size:.61rem;letter-spacing:.19em;margin-bottom:19px}h1{font-size:clamp(2.9rem,10.6vw,4.1rem);line-height:1.04;letter-spacing:-.04em}.hero-description{font-size:.95rem;margin-top:22px}.location{font-size:.82rem;margin-bottom:24px}.hero .button{width:100%;font-size:.8rem;min-height:49px}.hero-media{height:auto;aspect-ratio:1.42}.hero-media img{height:100%}.section{padding-block:49px}h2{font-size:2.45rem;line-height:1.08}.section-intro{font-size:.88rem;margin-top:13px}.audience-grid{grid-template-columns:1fr 1fr;gap:25px 17px;margin-top:25px}.audience-photo{aspect-ratio:1.3}.audience-grid h3{font-size:1.4rem;margin-top:11px}.audience-grid .text-button{font-size:.7rem;gap:8px;margin-top:6px;min-height:30px}.about{display:flex;flex-direction:column;gap:27px;padding-block:30px 39px;align-items:stretch}.portrait{height:340px!important;object-position:center 25%}.about h2{font-size:2.5rem}.about .subtitle{font-size:.92rem;margin:17px 0 20px}.about p:not(.eyebrow){font-size:.9rem}.section-heading{gap:12px}.section-heading h2{font-size:2.25rem}.slider-controls{gap:7px}.slider-controls button{width:34px;height:34px}.testimonial-layout{display:flex;flex-direction:column;gap:28px;margin-top:24px}.testimonial-layout>img{height:240px}.quote-panel{width:100%;padding:22px;background:var(--tint)}.quote-panel blockquote{font-size:1.6rem}.quote-mark{font-size:4.5rem}.review-note{font-size:.68rem}.process{padding-top:5px;padding-bottom:5px}.steps{grid-template-columns:1fr;gap:26px;margin-top:28px}.steps article{gap:20px}.steps h3{font-size:1.5rem}.steps p{margin-top:7px;font-size:.88rem}.session-grid{grid-template-columns:1fr;gap:32px;margin-top:25px}.session-grid img,.online-image{height:225px}.online-word{font-size:3.4rem}.session-grid h3{font-size:1.6rem}.faq{grid-template-columns:1fr;gap:24px;padding-block:40px}.faq h2 br{display:none}.faq h2{max-width:330px}summary{font-size:.84rem;padding-block:18px}.closing{padding:42px 0}.closing h2{font-size:2.5rem}.closing p{font-size:.86rem;margin-block:16px 22px}.closing .button{font-size:.78rem;width:100%}.footer{padding-block:28px;gap:28px 16px}.footer .brand{font-size:2.5rem}.footer>div{gap:15px;font-size:.72rem}.footer>p{font-size:.65rem}.modal{padding:26px 24px}.modal-top{margin-bottom:28px}.modal .brand{font-size:3.15rem}.modal h2{font-size:3.2rem}.modal-intro{font-size:.88rem;margin-bottom:21px}.modal label{font-size:.88rem}.modal input{height:48px}.consent{font-size:.69rem}.submit{font-size:.85rem}.privacy-copy h2{font-size:2.5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*{transition:none!important}}

.space-photo{height:260px;background-image:url(../images/spaces.png);background-size:200% auto;background-repeat:no-repeat}.clinic-space{background-position:left center}.remote-space{background-position:right center}@media(max-width:640px){.space-photo{height:225px}}
/* ========================================================
   Step-by-Step Booking Modal (The White Elephant Style)
   ======================================================== */
.wizard-dialog {
  border: none;
  border-radius: 12px;
  padding: 0;
  max-width: 960px;
  width: 95%;
  background: #ffffff;
  box-shadow: 0 24px 60px rgba(0, 0, 0, 0.28);
  color: #333333;
  overflow: hidden;
}

.wizard-dialog::backdrop {
  background: rgba(43, 58, 51, 0.6);
  backdrop-filter: blur(4px);
}

.wizard-wrapper {
  display: flex;
  position: relative;
  min-height: 540px;
}

.wizard-close {
  position: absolute;
  top: 14px;
  right: 16px;
  width: 36px;
  height: 36px;
  background: #f1f3f4;
  border: none;
  border-radius: 50%;
  font-size: 24px;
  line-height: 1;
  color: #495057;
  cursor: pointer;
  z-index: 10;
  display: flex;
  align-items: center;
  justify-content: center;
}

.wizard-close:hover {
  background: #e2e6ea;
}

/* Left Sidebar */
.wizard-sidebar {
  width: 260px;
  background: #607993;
  color: #ffffff;
  padding: 36px 24px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  flex-shrink: 0;
}

.wizard-brand {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 10px;
  margin-bottom: 24px;
}

.wizard-logo {
  width: 48px;
  height: 48px;
}

.wizard-brand-text {
  font-weight: 700;
  letter-spacing: 0.05em;
  font-size: 0.95rem;
}
.wizard-brand-text span {
  display: block;
  font-size: 0.65rem;
  letter-spacing: 0.15em;
  opacity: 0.85;
}

.wizard-steps-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 18px;
}

.wizard-step-item {
  display: flex;
  align-items: center;
  gap: 12px;
  font-size: 0.9rem;
  color: rgba(255, 255, 255, 0.65);
  font-weight: 500;
}

.wizard-step-item.active {
  color: #2fe06e;
  font-weight: 700;
}

.wizard-step-item.completed {
  color: #ffffff;
}

.step-num {
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: rgba(255, 255, 255, 0.2);
  display: flex;
  align-items: center;
  justify-content: center;
  font-size: 0.8rem;
}

.wizard-step-item.active .step-num {
  background: #2fe06e;
  color: #ffffff;
}

.wizard-step-item.completed .step-num {
  background: #ffffff;
  color: #607993;
}

.wizard-help {
  font-size: 0.82rem;
  opacity: 0.9;
  border-top: 1px solid rgba(255, 255, 255, 0.15);
  padding-top: 16px;
}
.wizard-help p { margin: 0 0 4px; }
.wizard-help a { color: #ffffff; text-decoration: none; font-weight: 600; }

/* Right Content Area */
.wizard-main {
  flex-grow: 1;
  padding: 36px 40px;
  background: #ffffff;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}

.wizard-pane-title {
  font-size: 1.3rem;
  font-weight: 600;
  color: #2b3a33;
  margin-top: 0;
  margin-bottom: 24px;
}

.wizard-pane {
  display: none;
}
.wizard-pane.active {
  display: block;
}

/* Service Options */
.service-selector-list {
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.service-option {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 16px 20px;
  border: 1px solid #e1e6eb;
  border-radius: 8px;
  cursor: pointer;
  transition: all 0.2s ease;
}

.service-option input[type="radio"] { display: none; }
.service-option:hover { border-color: #607993; background: #f8fafc; }
.service-option.selected {
  border-color: #607993;
  background: #f0f4f8;
}

.service-name { font-weight: 600; font-size: 1rem; color: #2b3a33; }
.service-sub { font-size: 0.85rem; color: #6c757d; margin-top: 4px; }
.service-arrow { font-size: 1.5rem; color: #607993; line-height: 1; }

/* Step 2: Date & Time Grid */
.datetime-grid {
  display: grid;
  grid-template-columns: 1.15fr 1fr;
  gap: 24px;
}

.calendar-card {
  border: 1px solid #e9ecef;
  border-radius: 8px;
  padding: 16px;
}

.calendar-nav {
  display: flex;
  justify-content: space-between;
  align-items: center;
  font-weight: 600;
  margin-bottom: 12px;
  font-size: 0.95rem;
}

.cal-arrow {
  background: none;
  border: none;
  font-size: 1.25rem;
  cursor: pointer;
  color: #495057;
  padding: 4px 10px;
}

.cal-weekdays {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  text-align: center;
  font-size: 0.75rem;
  color: #868e96;
  margin-bottom: 8px;
  font-weight: 600;
}

.cal-days-grid {
  display: grid;
  grid-template-columns: repeat(7, 1fr);
  gap: 4px;
}

.cal-day {
  aspect-ratio: 1;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  font-size: 0.85rem;
  cursor: pointer;
  border: 1px solid transparent;
  background: #f8f9fa;
  color: #343a40;
}

.cal-day.disabled {
  opacity: 0.35;
  cursor: not-allowed;
  background: transparent;
}

.cal-day.active-day {
  border-bottom: 2px solid #2fe06e;
}

.cal-day.selected {
  background: #607993;
  color: #ffffff;
  font-weight: 600;
}

/* Time Slots */
.times-card {
  border: 1px solid #e9ecef;
  border-radius: 8px;
  padding: 16px;
}

.selected-date-badge {
  text-align: center;
  font-size: 0.95rem;
  font-weight: 600;
  color: #607993;
  margin-bottom: 14px;
}

.times-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 8px;
  max-height: 240px;
  overflow-y: auto;
}

.time-slot {
  padding: 10px 4px;
  font-size: 0.8rem;
  font-family: inherit;
  border: 1px solid #e9ecef;
  background: #f8f9fa;
  border-radius: 4px;
  cursor: pointer;
  text-align: center;
  color: #495057;
  transition: all 0.15s ease;
}

.time-slot:hover { border-color: #607993; }
.time-slot.selected {
  background: #607993;
  color: #ffffff;
  border-color: #607993;
  font-weight: 600;
}

/* Step 3: Information */
.wizard-inputs {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: 16px;
}

.input-field {
  display: flex;
  flex-direction: column;
  gap: 6px;
}

.input-field label {
  font-size: 0.85rem;
  font-weight: 600;
  color: #495057;
}

.input-field input {
  padding: 11px 14px;
  border: 1px solid #ced4da;
  border-radius: 6px;
  font-family: inherit;
  font-size: 0.92rem;
}

.input-field input:focus {
  border-color: #607993;
  outline: none;
}

/* Step 4: Summary & Payment */
.booking-summary-card {
  background: #f8fafc;
  border: 1px solid #e1e6eb;
  border-radius: 8px;
  padding: 18px 20px;
  margin-bottom: 20px;
  font-size: 0.92rem;
}

.summary-line {
  display: flex;
  justify-content: space-between;
  padding: 6px 0;
  border-bottom: 1px dashed #e9ecef;
}
.summary-line:last-child { border-bottom: none; }
.s-label { color: #6c757d; }
.s-val { font-weight: 600; color: #2b3a33; }

.payment-selection {
  margin-bottom: 20px;
}

.pay-title {
  font-size: 1rem;
  font-weight: 600;
  color: #2b3a33;
  margin: 0 0 10px;
}

.pay-option {
  display: flex;
  gap: 12px;
  padding: 12px 16px;
  border: 1px solid #e1e6eb;
  border-radius: 8px;
  margin-bottom: 10px;
  cursor: pointer;
}

.pay-option input { margin-top: 4px; }
.pay-option.selected { border-color: #607993; background: #f0f4f8; }
.pay-option p { margin: 4px 0 0; font-size: 0.82rem; color: #6c757d; }

/* Buttons */
.wizard-buttons {
  display: flex;
  justify-content: space-between;
  align-items: center;
  margin-top: 32px;
  border-top: 1px solid #f1f3f5;
  padding-top: 18px;
}

.wizard-btn {
  padding: 10px 22px;
  font-family: inherit;
  font-size: 0.9rem;
  font-weight: 600;
  border-radius: 4px;
  cursor: pointer;
  border: none;
  transition: all 0.2s ease;
}

.btn-back {
  background: #f1f3f5;
  color: #495057;
}

.btn-back:hover { background: #e9ecef; }

.btn-next, .btn-confirm {
  background: #607993;
  color: #ffffff;
}

.btn-next:hover, .btn-confirm:hover {
  background: #4f6479;
}

/* Success View */
.wizard-success-pane {
  text-align: center;
  padding: 40px 20px;
}

.success-icon-wrap {
  width: 56px;
  height: 56px;
  background: #2fe06e;
  color: #ffffff;
  border-radius: 50%;
  font-size: 28px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 18px;
}

/* Responsive Modal (Mobile) */
@media (max-width: 768px) {
  .wizard-wrapper {
    flex-direction: column;
  }
  .wizard-sidebar {
    width: 100%;
    padding: 20px;
  }
  .wizard-steps-list {
    flex-direction: row;
    justify-content: space-between;
  }
  .wizard-steps-list .step-label { display: none; }
  .wizard-help { display: none; }
  .wizard-main { padding: 24px 18px; }
  .datetime-grid { grid-template-columns: 1fr; }
  .wizard-inputs { grid-template-columns: 1fr; }
}

/* ========================================================
   Sub-Pages, Layout Enhancements & Navigation Styles
   ======================================================== */
.header nav a.active {
  color: var(--plum);
  font-weight: 600;
  border-bottom: 2px solid var(--plum);
}

.hero-media video {
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  display: block;
}

.page-hero {
  padding: 48px 0 28px;
}

.story-content {
  max-width: 860px;
  margin: 0 auto;
  line-height: 1.85;
  font-size: 1.05rem;
  color: #3b353a;
}
.story-content p {
  margin-bottom: 22px;
}
.story-content h2 {
  margin: 40px 0 16px;
  color: var(--plum);
}
.story-content h3 {
  margin: 28px 0 12px;
  color: var(--plum);
}

/* Feature Grid & Cards */
.feature-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
  gap: 28px;
  margin-top: 36px;
}

.feature-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 32px 28px;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
}
.feature-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(72, 43, 67, 0.08);
  border-color: #c9bfc8;
}
.feature-card h3 {
  font-size: 1.35rem;
  margin-bottom: 12px;
  color: var(--plum);
}
.feature-card p {
  font-size: 0.95rem;
  line-height: 1.65;
  color: #554e54;
}

.benefit-pill-list {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  margin-top: 18px;
}

.benefit-pill {
  background: var(--tint);
  border: 1px solid var(--line);
  color: var(--plum);
  padding: 6px 14px;
  border-radius: 9999px;
  font-size: 0.85rem;
  font-weight: 500;
}

/* Workshop Modules */
.module-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 28px 30px;
  margin-bottom: 24px;
  transition: all 0.2s ease;
}
.module-card:hover {
  border-color: var(--plum);
  box-shadow: 0 8px 24px rgba(72, 43, 67, 0.06);
}
.module-num {
  font-family: var(--serif);
  font-size: 2.2rem;
  line-height: 1;
  color: #607993;
  margin-bottom: 8px;
}
.module-title {
  font-size: 1.4rem;
  color: var(--plum);
  margin-bottom: 12px;
  font-family: var(--serif);
}
.module-list {
  margin: 12px 0 0 20px;
  line-height: 1.8;
  color: #4f474d;
  font-size: 0.95rem;
}
.workshop-badge {
  display: inline-block;
  background: #efe8ee;
  color: var(--plum);
  font-size: 0.75rem;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.12em;
  padding: 4px 12px;
  border-radius: 4px;
  margin-bottom: 14px;
}

/* Blog Cards */
.blog-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(320px, 1fr));
  gap: 32px;
  margin-top: 36px;
}
.blog-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 32px 28px;
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  transition: transform 0.2s ease, box-shadow 0.2s ease, border-color 0.2s ease;
}
.blog-card:hover {
  transform: translateY(-3px);
  box-shadow: 0 12px 30px rgba(72, 43, 67, 0.08);
  border-color: #c9bfc8;
}
.blog-category {
  font-size: 0.72rem;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: #607993;
  margin-bottom: 12px;
  display: block;
}
.blog-card h2, .blog-card h3 {
  font-size: 1.45rem;
  line-height: 1.25;
  color: var(--plum);
  margin-bottom: 14px;
}
.blog-excerpt {
  font-size: 0.95rem;
  line-height: 1.7;
  color: #554e54;
  margin-bottom: 20px;
}
.blog-meta {
  font-size: 0.8rem;
  color: var(--muted);
  display: flex;
  justify-content: space-between;
  align-items: center;
  border-top: 1px solid #f0eaf0;
  padding-top: 14px;
  margin-top: auto;
}

/* FAQ directory */
.faq-list {
  max-width: 860px;
  margin: 36px auto 60px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}
.faq-item {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 22px 26px;
  transition: border-color 0.2s ease, box-shadow 0.2s ease;
}
.faq-item[open] {
  border-color: #bfaab9;
  box-shadow: 0 4px 18px rgba(72, 43, 67, 0.05);
}
.faq-item summary {
  font-size: 1.15rem;
  font-family: var(--serif);
  font-weight: 500;
  color: var(--plum);
  padding: 0 30px 0 0;
  cursor: pointer;
}
.faq-item p {
  margin-top: 14px;
  line-height: 1.75;
  color: #554e54;
  font-size: 0.95rem;
}

/* Contact Grid */
.contact-grid {
  display: grid;
  grid-template-columns: 1fr 1.25fr;
  gap: 40px;
  margin: 36px 0 64px;
}
@media (max-width: 860px) {
  .contact-grid {
    grid-template-columns: 1fr;
  }
}
.contact-info-card {
  background: var(--tint);
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 36px;
}
.contact-form-card {
  background: #ffffff;
  border: 1px solid var(--line);
  border-radius: 8px;
  padding: 36px;
  box-shadow: 0 4px 20px rgba(72, 43, 67, 0.04);
}
.contact-item {
  margin-bottom: 24px;
}
.contact-item:last-child {
  margin-bottom: 0;
}
.contact-label {
  display: block;
  font-size: 0.75rem;
  text-transform: uppercase;
  letter-spacing: 0.15em;
  color: #607993;
  font-weight: 600;
  margin-bottom: 6px;
}
.contact-val {
  font-size: 1.05rem;
  color: var(--plum);
  margin: 0;
  line-height: 1.5;
}

/* General Page Form Elements */
.site-form .form-group {
  margin-bottom: 18px;
}
.site-form label {
  display: block;
  font-size: 0.88rem;
  font-weight: 500;
  color: var(--plum);
  margin-bottom: 6px;
}
.site-form input,
.site-form textarea,
.site-form select {
  width: 100%;
  padding: 12px 14px;
  border: 1px solid #bbb3bd;
  border-radius: 4px;
  background: #ffffff;
  color: #363036;
  font-family: inherit;
  font-size: 0.95rem;
}
.site-form input:focus,
.site-form textarea:focus,
.site-form select:focus {
  outline: none;
  border-color: var(--plum);
  box-shadow: 0 0 0 2px rgba(72, 43, 67, 0.12);
}
.site-form textarea {
  min-height: 110px;
  resize: vertical;
}

/* Floating / Fixed Action Buttons */
.floating-actions {
  position: fixed;
  right: 24px;
  bottom: 28px;
  z-index: 99999;
  display: flex;
  flex-direction: column;
  gap: 12px;
  align-items: flex-end;
}
.floating-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  padding: 13px 24px;
  border-radius: 9999px;
  text-decoration: none;
  font-family: inherit;
  font-size: 0.95rem;
  font-weight: 600;
  border: none;
  cursor: pointer;
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.22);
  transition: transform 0.25s cubic-bezier(0.34, 1.56, 0.64, 1), box-shadow 0.25s ease;
  white-space: nowrap;
  -webkit-tap-highlight-color: transparent;
}
.floating-btn:hover {
  transform: translateY(-3px) scale(1.03);
  box-shadow: 0 12px 30px rgba(0, 0, 0, 0.3);
}
.floating-icon {
  width: 20px;
  height: 20px;
  flex-shrink: 0;
}
.floating-whatsapp {
  background: linear-gradient(135deg, #2fe06e 0%, #1ebb59 100%);
  color: #ffffff;
}
.floating-enquire {
  background: linear-gradient(135deg, #482b43 0%, #301a2c 100%);
  color: #ffffff;
}

@media (max-width: 768px) {
  body {
    padding-bottom: 74px;
  }
  .floating-actions {
    left: 0;
    right: 0;
    bottom: 0;
    width: 100%;
    flex-direction: row;
    gap: 0;
    background: transparent;
    box-shadow: 0 -4px 18px rgba(0, 0, 0, 0.15);
    padding-bottom: env(safe-area-inset-bottom, 0px);
  }
  .floating-btn {
    flex: 1 1 50%;
    width: 50%;
    padding: 16px 10px;
    border-radius: 0;
    font-size: 0.95rem;
    box-shadow: none;
    transform: none !important;
  }
  .floating-whatsapp {
    border-right: 1px solid rgba(255, 255, 255, 0.2);
  }
}