:root {
  --ink: #19342d;
  --muted: #61736c;
  --cream: #f7f6ef;
  --white: #fffefa;
  --lime: #d7f277;
  --sage: #dfe9d8;
  --orange: #ed8d59;
  --line: #d9e0d7;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body { margin: 0; color: var(--ink); background: var(--cream); background-image: radial-gradient(circle at 4% 18%, #d7f27733 0%, transparent 32%), radial-gradient(circle at 97% 12%, #ed8d5926 0%, transparent 30%), radial-gradient(circle at 3% 78%, #dfe9d866 0%, transparent 34%), radial-gradient(circle at 98% 82%, #d7f27729 0%, transparent 32%); background-attachment: fixed; font-family: "DM Sans", sans-serif; }
button, input, select { font: inherit; }
button, a { -webkit-tap-highlight-color: transparent; }
a { color: inherit; text-decoration: none; }
.site-header { align-items: center; display: flex; justify-content: space-between; max-width: 1240px; margin: auto; padding: 27px 32px; }
.logo { align-items: center; color: #0f5859; display: flex; font-size: 20px; font-weight: 700; gap: 9px; letter-spacing: -0.04em; }
.logo-mark { display: none; }
.nav-links { display: flex; gap: 35px; margin-left: 100px; }
.nav-links a { color: var(--muted); font-size: 13px; font-weight: 500; }
.button { border: 0; border-radius: 30px; cursor: pointer; display: inline-flex; font-size: 13px; font-weight: 700; gap: 22px; justify-content: center; padding: 16px 22px; transition: transform .2s, box-shadow .2s; }
.button:hover { box-shadow: 0 8px 18px #19342d20; transform: translateY(-2px); }
.button-small { padding: 11px 16px; }
.button-dark { background: var(--ink); color: white; }
.button-primary { background: var(--lime); color: var(--ink); }
.button-light { background: var(--white); color: var(--ink); }
.hero { display: grid; grid-template-columns: 48% 52%; margin: 26px auto 65px; max-width: 1240px; min-height: 540px; padding: 35px 32px 0; }
.hero-copy { align-self: center; padding-bottom: 45px; }
.eyebrow { align-items: center; color: var(--orange); display: flex; font-size: 11px; font-weight: 700; gap: 8px; letter-spacing: .09em; text-transform: uppercase; }
.eyebrow-dot { background: currentColor; border-radius: 50%; height: 7px; width: 7px; }
h1, h2 { font-family: "Playfair Display", Georgia, serif; font-weight: 600; letter-spacing: -.055em; line-height: .97; }
h1 { font-size: clamp(56px, 6.4vw, 86px); margin: 27px 0 24px; }
h1 em, h2 em { color: var(--orange); font-style: italic; }
.hero-text { color: var(--muted); font-size: 16px; line-height: 1.6; max-width: 390px; }
.hero-actions { align-items: center; display: flex; gap: 27px; margin-top: 33px; }
.text-link { border-bottom: 1px solid var(--ink); font-size: 13px; font-weight: 700; padding-bottom: 4px; }
.text-link span { margin-left: 13px; }
.trusted { align-items: center; display: flex; gap: 13px; margin-top: 55px; }
.trusted p { color: var(--muted); font-size: 11px; line-height: 1.5; max-width: 170px; }
.trusted strong { color: var(--ink); }
.avatar-stack { display: flex; }
.avatar-stack span { align-items: center; background: var(--orange); border: 2px solid var(--cream); border-radius: 50%; color: white; display: flex; font-size: 8px; font-weight: 700; height: 32px; justify-content: center; margin-left: -7px; width: 32px; }
.avatar-stack span:first-child { margin-left: 0; background: #b5c979; }.avatar-stack span:nth-child(2) { background: #b4a795; }.avatar-stack span:nth-child(3) { background: #d69a80; }.avatar-stack span:last-child { background: var(--ink); }
.hero-art { min-height: 525px; position: relative; }
.sun-shape { background: #f3d8a9; border-radius: 50%; height: 365px; position: absolute; right: 12%; top: 48px; width: 365px; }
.hero-photo { background: linear-gradient(145deg, #8a9c81, #d7bf94 48%, #b77d5a); border-radius: 180px 180px 12px 12px; bottom: 0; height: 425px; overflow: hidden; position: absolute; right: 17%; width: 300px; }
.hero-photo:before { background: linear-gradient(140deg, transparent 24%, #e7d0a3 25% 40%, transparent 41%), linear-gradient(60deg, #7a8c70 10%, transparent 11% 65%, #d9b181 66%); content: ""; inset: 0; opacity: .75; position: absolute; }
.photo-overlay { background: linear-gradient(transparent 50%, #19342dba); inset: 0; position: absolute; }
.photo-copy { bottom: 28px; color: white; display: flex; flex-direction: column; left: 25px; position: absolute; }.photo-copy span { font-size: 10px; letter-spacing: .1em; text-transform: uppercase; }.photo-copy strong { font-family: "Playfair Display", serif; font-size: 21px; margin-top: 6px; }
.hero-card { background: var(--white); border-radius: 10px; box-shadow: 0 15px 35px #19342d1c; position: absolute; z-index: 1; }.card-calendar { left: 0; padding: 17px; top: 102px; width: 215px; }.mini-label { color: var(--muted); font-size: 9px; margin-bottom: 14px; }.booking-row { align-items: center; display: flex; gap: 9px; }.booking-icon { align-items: center; background: var(--lime); border-radius: 7px; display: flex; height: 33px; justify-content: center; width: 33px; }.booking-row div:nth-child(2) { display: flex; flex: 1; flex-direction: column; }.booking-row strong { font-size: 11px; }.booking-row span:not(.status-dot) { color: var(--muted); font-size: 9px; margin-top: 3px; }.status-dot { background: #71ba7d; border-radius: 50%; height: 7px; width: 7px; }.card-rating { bottom: 40px; padding: 13px 19px; right: 0; }.card-rating strong { font-size: 25px; }.stars { color: var(--orange); font-size: 11px; margin-left: 6px; }.card-rating small { color: var(--muted); display: block; font-size: 9px; margin-top: 3px; }.leaf { background: var(--ink); border-radius: 100% 0 100% 0; height: 80px; position: absolute; transform: rotate(24deg); width: 35px; }.leaf-one { bottom: 80px; left: 8%; }.leaf-two { height: 45px; right: 5%; top: 15px; transform: rotate(115deg); width: 22px; }
.logo-strip { border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); margin: 0 auto; max-width: 1176px; padding: 24px 0; }.logo-strip > span { color: var(--muted); display: block; font-size: 10px; letter-spacing: .07em; margin-bottom: 20px; text-transform: uppercase; }.logo-strip > div { align-items: center; display: flex; justify-content: space-between; }.logo-strip a { color: inherit; transition: opacity .2s; }.logo-strip a:hover { opacity: .6; }.logo-strip b { font-size: 17px; letter-spacing: -.05em; }.logo-strip a:nth-child(2) b { letter-spacing: .2em; font-size: 13px; }.logo-strip .serif { font-family: Georgia, serif; font-weight: 400; }.logo-strip a:nth-child(4) b { font-size: 11px; line-height: .85; text-transform: uppercase; }
.section { margin: 0 auto; max-width: 1176px; }.split-section { display: grid; gap: 120px; grid-template-columns: 40% 1fr; padding: 145px 0; }.split-section h2 { font-size: 53px; margin: 22px 0; }.section-intro { color: var(--muted); font-size: 14px; line-height: 1.65; margin-bottom: 31px; max-width: 310px; }.feature-item { align-items: center; border-bottom: 1px solid var(--line); display: grid; gap: 20px; grid-template-columns: 42px 1fr 20px; padding: 25px 0; }.feature-item:first-child { border-top: 1px solid var(--line); }.feature-number { color: var(--orange); font-size: 11px; font-weight: 700; }.feature-item h3 { font-size: 16px; margin: 0 0 7px; }.feature-item p { color: var(--muted); font-size: 12px; margin: 0; }.feature-arrow { font-size: 20px; }.testimonial-section { background: var(--sage); padding: 90px 20px; text-align: center; }.testimonial-quote { font-family: "Playfair Display", serif; font-size: clamp(26px, 3vw, 40px); letter-spacing: -.04em; line-height: 1.15; margin: auto; max-width: 730px; }.testimonial-meta { align-items: center; display: flex; gap: 12px; justify-content: center; margin-top: 30px; text-align: left; }.testimonial-avatar { align-items: center; background: var(--orange); border-radius: 50%; color: white; display: flex; font-size: 11px; height: 38px; justify-content: center; width: 38px; }.testimonial-meta strong, .testimonial-meta span { display: block; font-size: 11px; }.testimonial-meta span { color: var(--muted); margin-top: 3px; }.testimonial-link { display: inline-flex; margin-top: 34px; }.story-grid { display: grid; gap: 22px; grid-template-columns: repeat(3, 1fr); margin: 0 auto 70px; max-width: 1176px; padding: 0 32px; }.story-card { background: var(--white); border-radius: 16px; padding: 32px 26px; }.story-quote { font-size: 18px; margin: 0; max-width: none; text-align: left; }.story-card .testimonial-meta { justify-content: flex-start; margin-top: 22px; }.review-form-section { margin: 0 auto 60px; max-width: 700px; padding: 0 32px; text-align: center; }.review-form-section h2 { font-size: 40px; margin: 20px 0 30px; }.review-form { background: var(--white); border-radius: 18px; display: grid; gap: 14px; padding: 32px; text-align: left; }.review-form label { color: var(--ink); display: grid; font-size: 11px; font-weight: 700; gap: 6px; }.review-form input, .review-form select, .review-form textarea { background: var(--cream); border: 1px solid var(--line); border-radius: 7px; color: var(--ink); font: inherit; padding: 12px; resize: vertical; }.review-form .button { margin-top: 4px; }.cta-section { background: var(--ink); color: white; overflow: hidden; padding: 110px 20px 115px; position: relative; text-align: center; }.cta-section h2 { font-size: clamp(53px, 6vw, 78px); margin: 22px 0; position: relative; }.cta-section p { color: #b4c3bb; font-size: 14px; margin-bottom: 30px; position: relative; }.light { color: var(--lime); justify-content: center; position: relative; }.cta-leaf { border: 1px solid #38574b; border-radius: 100% 0 100% 0; height: 370px; left: 8%; position: absolute; top: 40px; transform: rotate(35deg); width: 130px; }.partner-section { background: var(--white); border-radius: 26px; display: grid; gap: 70px; grid-template-columns: 1fr 1fr; margin: 0 auto 40px; max-width: 1176px; padding: 90px 60px; }.partner-copy h2 { font-size: 48px; margin: 20px 0; }.partner-points { display: grid; gap: 12px; list-style: none; margin: 30px 0 0; padding: 0; }.partner-points li { align-items: center; color: var(--ink); display: flex; font-size: 13px; font-weight: 600; gap: 10px; }.partner-check { align-items: center; background: var(--lime); border-radius: 50%; display: inline-flex; font-size: 11px; height: 20px; justify-content: center; width: 20px; }.partner-direct { color: var(--muted); font-size: 13px; line-height: 1.6; margin-top: 24px; }.partner-direct a { color: var(--ink); font-weight: 600; }.partner-form { align-self: start; background: var(--cream); border-radius: 18px; display: grid; gap: 14px; padding: 32px; }.partner-form label { color: var(--ink); display: grid; font-size: 11px; font-weight: 700; gap: 6px; }.partner-form input, .partner-form select, .partner-form textarea { background: white; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); font: inherit; padding: 12px; resize: vertical; }.partner-form .button { margin-top: 4px; }.site-footer { align-items: center; color: var(--muted); display: flex; font-size: 10px; gap: 25px; justify-content: space-between; margin: auto; max-width: 1176px; padding: 30px 0; }.site-footer .logo { color: var(--ink); }.modal-backdrop { align-items: center; background: #19342d99; display: none; inset: 0; justify-content: center; padding: 20px; position: fixed; z-index: 10; }.modal-backdrop.is-open { display: flex; }.modal { background: var(--cream); border-radius: 18px; max-width: 470px; padding: 40px; position: relative; width: 100%; }.modal h2 { font-size: 44px; margin: 18px 0 10px; }.modal > p { color: var(--muted); font-size: 13px; line-height: 1.5; }.modal-close { background: transparent; border: 0; cursor: pointer; font-size: 28px; position: absolute; right: 18px; top: 12px; }.modal form { display: grid; gap: 14px; margin-top: 25px; }.modal label { color: var(--ink); display: grid; font-size: 11px; font-weight: 700; gap: 6px; }.modal input, .modal select { background: white; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); padding: 12px; }.modal form .button { margin-top: 8px; }.consent-label { align-items: flex-start; display: flex !important; flex-direction: row !important; font-size: 11px !important; font-weight: 400 !important; gap: 9px; }.consent-label input { flex-shrink: 0; margin-top: 2px; }.consent-label span { color: var(--muted); line-height: 1.4; }.form-success { background: var(--sage); border-radius: 7px; color: var(--ink) !important; padding: 13px; }
.feature-link { border-bottom: 1px solid transparent; transition: border-color .2s; }.feature-link:hover { border-color: var(--ink); }.feature-link span { color: var(--orange); font-size: 15px; margin-left: 6px; }
.categories-section { background: var(--white); padding: 110px max(20px, calc((100% - 1176px) / 2)); }.categories-section h2 { font-size: clamp(45px, 5vw, 64px); margin: 20px 0 42px; }.category-grid { display: grid; gap: 14px; grid-template-columns: repeat(3, 1fr); }.category-card { border-radius: 12px; color: white; display: flex; flex-direction: column; height: 190px; justify-content: space-between; overflow: hidden; padding: 20px; position: relative; transition: transform .2s, box-shadow .2s; }.category-card:hover { box-shadow: 0 12px 25px #19342d22; transform: translateY(-4px); }.category-card:after { background: linear-gradient(145deg, transparent 35%, #19342d55); content: ""; inset: 0; position: absolute; }.category-card > * { position: relative; z-index: 1; }.category-card span { font-size: 10px; opacity: .8; }.category-card strong { font-family: "Playfair Display", serif; font-size: 24px; letter-spacing: -.04em; line-height: .98; }.category-card b { align-self: flex-end; font-size: 21px; font-weight: 400; }.category-yoga { background: linear-gradient(135deg, #76937e, #d3b66f); }.category-food { background: linear-gradient(135deg, #cb7950, #e7bd75); }.category-creative { background: linear-gradient(135deg, #9c7292, #d9a582); }.category-photo { background: linear-gradient(135deg, #647f8b, #b9c6a2); }.category-movement { background: linear-gradient(135deg, #77729c, #bd7b6b); }.category-nature { background: linear-gradient(135deg, #648d76, #b8a36b); }
.steps-section { display: grid; gap: 20px; grid-template-columns: repeat(4, 1fr); margin: 0 auto 100px; max-width: 1176px; }.step-card { background: var(--white); border-radius: 13px; box-shadow: 0 6px 20px #19342d0a; padding: 26px 22px; }.step-number { color: var(--orange); font-family: "Playfair Display", serif; font-size: 26px; margin-bottom: 14px; }.step-card h2 { font-family: "DM Sans", sans-serif; font-size: 16px; letter-spacing: -.03em; margin: 0 0 8px; }.step-card p { color: var(--muted); font-size: 12px; line-height: 1.55; margin: 0; }
.booking-preview-section { background: var(--sage); display: grid; gap: 60px; grid-template-columns: 1fr 380px; margin: 0 auto 0; max-width: 1176px; padding: 100px 20px; }.booking-preview-copy { align-self: center; }.booking-preview-copy h2 { font-size: clamp(40px, 4.5vw, 58px); margin: 20px 0 18px; }.booking-preview-copy > p { color: var(--muted); font-size: 14px; margin-bottom: 24px; max-width: 360px; }.booking-facts { display: grid; gap: 10px; font-size: 12px; list-style: none; margin: 0; padding: 0; }.booking-preview-card { align-self: center; background: var(--white); border-radius: 16px; box-shadow: 0 15px 35px #19342d1c; padding: 28px; }.booking-preview-card h3 { font-family: "Playfair Display", serif; font-size: 24px; margin: 10px 0 4px; }.course-price-inline { color: var(--muted); display: block; font-size: 12px; margin-bottom: 18px; }.mini-form { display: grid; gap: 12px; }.mini-form label { color: var(--ink); display: grid; font-size: 11px; font-weight: 700; gap: 6px; }.mini-form input, .mini-form select { background: #f2f1e9; border: 1px solid var(--line); border-radius: 7px; color: var(--ink); padding: 12px; }.mini-form input { color: var(--muted); }.mini-form .button { margin-top: 6px; }.spots-badge { background: var(--sage); border-radius: 20px; color: #3f6b48; font-size: 10px; font-weight: 700; justify-self: start; padding: 6px 12px; }
.courses-page { background: var(--cream); }.courses-heading { margin: 65px auto 55px; max-width: 1176px; padding: 0 0; }.courses-heading h1 { font-size: clamp(56px, 6vw, 78px); margin: 22px 0 18px; }.courses-heading > p { color: var(--muted); font-size: 15px; line-height: 1.6; max-width: 420px; }.course-filters { display: flex; flex-wrap: wrap; gap: 9px; margin-top: 16px; }.courses-heading .course-filters:first-of-type { margin-top: 35px; }.filter-group-label { color: var(--muted); font-size: 10px; font-weight: 700; letter-spacing: .08em; margin-top: 26px; text-transform: uppercase; }.filter { background: transparent; border: 1px solid var(--line); border-radius: 30px; color: var(--muted); cursor: pointer; font-size: 11px; padding: 10px 15px; }.filter:hover, .filter.active { background: var(--ink); border-color: var(--ink); color: white; }.course-grid { display: grid; gap: 25px; grid-template-columns: repeat(3, 1fr); margin: 0 auto 110px; max-width: 1176px; }.course-card { background: var(--white); border-radius: 13px; box-shadow: 0 6px 20px #19342d0a; overflow: hidden; }.course-image { background-position: center; background-size: cover; height: 190px; padding: 15px; position: relative; }.course-image:after { background: linear-gradient(transparent 40%, #19342d66); content: ""; inset: 0; position: absolute; }.course-image-clay { background: linear-gradient(140deg, #c8996c, #ead4b4 50%, #9d6e52); }.course-image-yoga { background: linear-gradient(140deg, #8caa8e, #e9cf99 55%, #c58062); }.course-image-pasta { background: linear-gradient(140deg, #d27b50, #f0c88a 55%, #a75d3e); }.course-image-photo { background: linear-gradient(140deg, #81929b, #d6b38a 55%, #5b6d73); }.course-image-bouquet { background: linear-gradient(140deg, #d79a9b, #e6c98e 55%, #8a9f78); }.course-image-dance { background: linear-gradient(140deg, #8e7aa9, #d9a372 55%, #4b536d); }.course-category, .course-date { color: white; font-size: 10px; position: relative; z-index: 1; }.course-category { background: #19342dcc; border-radius: 20px; padding: 7px 10px; }.course-date { bottom: 15px; left: 15px; position: absolute; }.course-card-body { padding: 21px; }.course-card h2 { font-family: "DM Sans", sans-serif; font-size: 20px; letter-spacing: -.04em; margin: 0 0 8px; }.course-card p { color: var(--muted); font-size: 12px; line-height: 1.5; margin: 0 0 17px; min-height: 36px; }.course-details { align-items: center; border-bottom: 1px solid var(--line); border-top: 1px solid var(--line); display: flex; font-size: 10px; justify-content: space-between; padding: 12px 0; }.course-details strong { color: #5f9d6a; }.course-bottom { align-items: center; display: flex; justify-content: space-between; padding-top: 16px; }.course-price { font-size: 14px; font-weight: 700; }.course-book { background: var(--lime); border: 0; border-radius: 20px; color: var(--ink); cursor: pointer; font-size: 10px; font-weight: 700; padding: 10px 12px; }
@media (max-width: 760px) { .site-header { padding: 20px; }.nav-links { display: none; }.hero { display: block; padding: 30px 20px 0; }.hero-copy { padding-bottom: 0; }.hero-art { margin-top: 30px; min-height: 460px; transform: scale(.9); transform-origin: top center; }.logo-strip { margin: 0 20px; }.logo-strip > div { flex-wrap: wrap; gap: 18px; }.split-section { display: block; padding: 90px 20px; }.split-section h2 { font-size: 45px; }.feature-list { margin-top: 60px; }.categories-section { padding: 80px 20px; }.category-grid { grid-template-columns: repeat(2, 1fr); }.category-card { height: 160px; padding: 15px; }.category-card strong { font-size: 19px; }.site-footer { align-items: flex-start; flex-direction: column; padding: 25px 20px; }.site-footer > span:nth-child(2) { max-width: 250px; }.modal { padding: 30px 24px; }.courses-heading { margin: 40px 20px; }.course-grid { grid-template-columns: 1fr; margin: 0 20px 70px; }.courses-page .site-header .text-link { display: none; }.steps-section { grid-template-columns: 1fr 1fr; margin: 0 20px 70px; }.booking-preview-section { grid-template-columns: 1fr; margin: 0; padding: 60px 20px; }.partner-section { grid-template-columns: 1fr; margin: 0 20px 40px; padding: 50px 24px; }.partner-copy h2 { font-size: 36px; }.story-grid { grid-template-columns: 1fr; padding: 0 20px; } }
.logo {
  display: flex;
  align-items: center;
  gap: 10px;
}

.logo img {
  height: 35px;
  width: auto;
  display: block;
}

.logo span {
  font-size: 25px;
  font-weight: 700;
  color: #0f5859;
}
