:root{
  --cream:#f8f4ef;
  --warm-white:#fffdf9;
  --sand:#e8ddd1;
  --taupe:#c8b6a6;
  --rose:#caa78e;
  --terracotta:#ad755d;
  --ink:#3d3733;
  --muted:#756d67;
  --line:rgba(61,55,51,.16);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:'DM Sans',Arial,sans-serif;line-height:1.6}
img,video{display:block;max-width:100%}
.grain{position:fixed;inset:0;pointer-events:none;z-index:100;opacity:.16;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.07'/%3E%3C/svg%3E")}
.topbar{height:82px;padding:0 5.5vw;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:30px;position:absolute;inset:0 0 auto;z-index:20;color:#fff}
.logo{font-family:'Playfair Display',serif;font-size:24px;font-weight:700;letter-spacing:-1px;text-decoration:none;color:inherit;white-space:nowrap}.logo span{font-style:italic;color:#e8cbb5}
.nav{display:flex;justify-content:center;gap:26px;align-items:center}.nav a{color:inherit;text-decoration:none;font-size:12px;font-weight:700;letter-spacing:.2px}.nav-cta{border:1px solid rgba(255,255,255,.6);padding:10px 16px;border-radius:999px}
.language-switch{display:flex;align-items:center;gap:7px;font-size:11px;font-weight:700}.lang-btn{border:0;background:transparent;color:rgba(255,255,255,.62);padding:4px;cursor:pointer;font:inherit}.lang-btn.active{color:#fff}.menu-button{display:none}
.hero{height:min(820px,100vh);min-height:660px;position:relative;display:grid;align-items:end;padding:0 5.5vw 82px;color:#fff;overflow:hidden}.hero-image,.hero-overlay{position:absolute;inset:0}.hero-image img{height:100%;width:100%;object-fit:cover;object-position:center 35%}.hero-overlay{background:linear-gradient(90deg,rgba(45,36,32,.72),rgba(45,36,32,.28) 58%,rgba(45,36,32,.08)),linear-gradient(0deg,rgba(35,28,25,.45),transparent 54%)}
.hero-content,.hero-note{position:relative;z-index:2}.eyebrow,.label{font-size:11px;letter-spacing:1.8px;text-transform:uppercase;font-weight:800;color:var(--rose)}
h1,h2,h3{font-family:'Playfair Display',Georgia,serif;font-weight:600;line-height:1;letter-spacing:-2px}.hero h1{font-size:clamp(58px,7.8vw,108px);margin:15px 0 19px;max-width:900px}.hero h1 em,h2 em,.quote em{color:#e7c6ae}.hero-lead{font-size:18px;max-width:560px;color:#f3eee9}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:28px}.button{display:inline-flex;align-items:center;gap:14px;padding:14px 20px;border-radius:999px;font-size:13px;font-weight:800;text-decoration:none;transition:transform .2s,background .2s}.button:hover{transform:translateY(-2px)}.primary{background:#e8cbb5;color:var(--ink)}.secondary{border:1px solid rgba(255,255,255,.56);color:#fff}.hero-note{position:absolute;right:5.5vw;bottom:89px;text-align:right;font-size:14px;font-weight:700}.hero-note small{font-size:12px;font-weight:400;color:#ddd4cf}
.section{padding:110px 5.5vw}.section-heading{display:grid;grid-template-columns:1.25fr .75fr;gap:70px;align-items:end;margin-bottom:42px}.section-heading.compact{margin-bottom:38px}.section-heading h2,.about h2,.gallery h2,.contact h2{font-size:clamp(44px,5.2vw,77px);margin:14px 0 0}.section-heading>p{font-size:17px;color:var(--muted);max-width:430px;margin:0 0 7px}
.services{background:var(--warm-white)}.service-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--line)}.service-grid article{padding:25px 28px 25px 0;border-right:1px solid var(--line);min-height:300px}.service-grid article+article{padding-left:28px}.service-grid article:last-child{border-right:0}.number{font-size:11px;color:var(--terracotta);font-weight:800;letter-spacing:1px}.service-grid h3{font-size:31px;margin:45px 0 16px}.service-grid p{font-size:14px;color:var(--muted);max-width:240px}
.events{background:var(--sand)}.events-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.event-card{background:var(--warm-white);overflow:hidden;display:flex;flex-direction:column;min-height:480px}.event-image{height:245px;overflow:hidden}.event-image img{width:100%;height:100%;object-fit:cover;transition:transform .45s}.event-card:hover .event-image img{transform:scale(1.03)}.event-body{padding:26px;display:flex;flex-direction:column;flex:1}.event-meta{display:flex;justify-content:space-between;gap:15px;font-size:11px;text-transform:uppercase;letter-spacing:1.1px;font-weight:800;color:var(--terracotta)}.event-card h3{font-size:31px;margin:17px 0 12px;letter-spacing:-1px}.event-card p{color:var(--muted);font-size:14px}.event-footer{display:flex;justify-content:space-between;align-items:center;gap:15px;margin-top:auto;padding-top:20px;border-top:1px solid var(--line)}.event-price{font-weight:800}.events-empty{display:none;color:var(--muted);font-style:italic}
.visual-split{display:grid;grid-template-columns:1.12fr .88fr}.video-wrap{position:relative;min-height:560px;background:#6e625b}.video-wrap video{height:100%;width:100%;object-fit:cover;position:absolute;inset:0}.video-caption{position:absolute;left:32px;bottom:30px;color:#fff;font-size:13px;font-weight:700;background:rgba(61,55,51,.54);padding:10px 15px;backdrop-filter:blur(7px)}.quote{background:var(--rose);display:flex;align-items:center;padding:10vw 7vw}.quote p{font-family:'Playfair Display',serif;font-size:clamp(31px,4vw,57px);line-height:1.08;letter-spacing:-1.6px}.quote em{color:#6e493a}
.about{background:var(--cream)}.about-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:8vw;align-items:center}.about-image img{width:100%;height:670px;object-fit:cover}.about-copy p{font-size:17px;color:var(--muted);max-width:600px}.text-link{display:inline-flex;gap:10px;align-items:center;text-decoration:none;color:inherit;font-size:13px;font-weight:800;border-bottom:1px solid currentColor;padding-bottom:4px;margin-top:16px}
.gallery{background:var(--warm-white)}.gallery-top{display:flex;justify-content:space-between;align-items:end;gap:25px}.masonry{margin-top:43px;display:grid;grid-template-columns:repeat(3,1fr);gap:13px}.masonry img{width:100%;height:290px;object-fit:cover}.masonry img.large{grid-row:span 2;height:593px}
.testimonials{background:#eee4da}.testimonial-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:16px}.testimonial-grid article{background:rgba(255,255,255,.55);padding:34px;min-height:280px;display:flex;flex-direction:column}.stars{letter-spacing:3px;color:var(--terracotta)}.testimonial-grid p{font-family:'Playfair Display',serif;font-size:23px;line-height:1.35;letter-spacing:-.6px}.testimonial-grid span{margin-top:auto;font-size:12px;text-transform:uppercase;letter-spacing:1px;font-weight:800;color:var(--muted)}.content-note{display:block;margin-top:20px;color:var(--muted)}
.contact{background:var(--rose);padding:120px 5.5vw}.contact-content{max-width:900px}.dark{color:#6f493a}.contact h2{margin:16px 0}.contact h2 em{color:#6c4739}.contact-content>p:not(.eyebrow){font-size:18px;max-width:600px}.dark-btn{background:var(--ink);color:#fff}.outline-dark{border:1px solid var(--ink);color:var(--ink)}.contact small{display:block;margin-top:22px;color:#694f45}
footer{padding:30px 5.5vw;background:var(--ink);color:#fff;display:flex;justify-content:space-between;gap:20px;align-items:center;font-size:11px}footer p{margin:0;color:#d6cfca}
@media(max-width:980px){.nav{gap:16px}.nav a{font-size:11px}.section-heading{grid-template-columns:1fr;gap:18px}.events-grid{grid-template-columns:1fr 1fr}.service-grid{grid-template-columns:1fr 1fr}.service-grid article:nth-child(2){border-right:0}.service-grid article{border-bottom:1px solid var(--line)}.service-grid article:nth-child(3),.service-grid article:nth-child(4){border-bottom:0}.about-grid{grid-template-columns:1fr 1fr;gap:5vw}.about-image img{height:560px}}
@media(max-width:820px){.topbar{height:70px;grid-template-columns:1fr auto auto;padding:0 6vw}.nav{display:none;position:fixed;top:70px;left:0;right:0;padding:26px 6vw 32px;background:var(--ink);flex-direction:column;align-items:flex-start;gap:18px}.nav.open{display:flex}.menu-button{display:block;width:34px;border:0;background:transparent;padding:0}.menu-button span{display:block;height:1px;background:#fff;margin:6px 0}.language-switch{margin-left:8px}.hero{min-height:700px;padding:0 6vw 58px}.hero-note{display:none}.section{padding:78px 6vw}.events-grid{grid-template-columns:1fr}.service-grid{grid-template-columns:1fr 1fr}.service-grid article,.service-grid article+article{padding:22px 16px;min-height:245px}.visual-split{grid-template-columns:1fr}.video-wrap{min-height:420px}.quote{padding:75px 6vw}.about-grid{grid-template-columns:1fr}.about-image img{height:500px}.masonry{grid-template-columns:1fr 1fr;gap:9px}.masonry img{height:210px}.masonry img.large{height:429px}.testimonial-grid{grid-template-columns:1fr}.gallery-top{align-items:flex-start;flex-direction:column}footer{flex-direction:column;align-items:flex-start}.hero h1{letter-spacing:-2px}}
@media(max-width:540px){.service-grid{grid-template-columns:1fr}.service-grid article,.service-grid article+article{padding:25px 0;border-right:0;border-bottom:1px solid var(--line);min-height:auto}.service-grid article:nth-child(3){border-bottom:1px solid var(--line)}.masonry{grid-template-columns:1fr}.masonry img,.masonry img.large{height:320px}.language-switch span{display:none}.hero h1{font-size:52px}.button{width:100%;justify-content:center}.contact{padding:90px 6vw}}


/* ===== Breathing Section ===== */

.breathing-section{
    padding:100px 20px;
    background:#f8f6f3;
}

.breathing-container{
    max-width:800px;
    margin:0 auto;
    text-align:center;
}

.breathing-label{
    text-transform:uppercase;
    letter-spacing:2px;
    color:#9b8b72;
    font-size:13px;
    margin-bottom:15px;
}

.breathing-section h2{
    font-size:48px;
    margin-bottom:20px;
}

.breathing-intro{
    max-width:600px;
    margin:0 auto 50px;
    color:#666;
    line-height:1.7;
}

.breathing-circle{
    position:relative;

    width:220px;
    height:220px;
    margin:0 auto;

    border-radius:50%;
    background:linear-gradient(135deg,#d9c7b5,#b89d83);

    display:flex;
    align-items:center;
    justify-content:center;

    color:white;
    font-size:24px;
    font-weight:600;

    transition:transform 4s linear;
    animation:breathingGlow 8s ease-in-out infinite;

    box-shadow:0 20px 50px rgba(0,0,0,.15);

    overflow:visible;
}
.breathing-circle::before{

    content:"";

    position:absolute;

    inset:0;

    border-radius:50%;

    border:1.5px solid rgba(255,255,255,.25);

    animation:ripple 8s ease-in-out infinite;

    pointer-events:none;

}
.breathing-countdown{
    font-size:40px;
    margin:30px 0;
    color:#7c6651;
    min-height:50px;
}

.breathing-button{
    padding:16px 36px;
    border:none;
    border-radius:999px;
    background:#8f7158;
    color:white;
    font-size:18px;
    cursor:pointer;
    transition:.3s;
}

.breathing-button:hover{
    transform:translateY(-2px);
    background:#7a604c;
}

.breathing-progress{
    min-height:24px;
    margin:-18px 0 25px;
    color:#9b8b72;
    font-size:14px;
    font-weight:600;
    letter-spacing:.4px;
}

@keyframes breathingGlow {

    0%{
        box-shadow:0 15px 35px rgba(184,157,131,.25);
    }

    50%{
        box-shadow:
            0 25px 70px rgba(184,157,131,.55),
            0 0 45px rgba(255,255,255,.35);
    }

    100%{
        box-shadow:0 15px 35px rgba(184,157,131,.25);
    }

}


/* ===== Booking Form ===== */

.booking-section{
  padding:120px 5.5vw;
}

.booking-layout{
  max-width:1250px;
  margin:0 auto;
  display:grid;
  grid-template-columns:.82fr 1.18fr;
  gap:7vw;
  align-items:start;
}

.booking-copy{
  position:sticky;
  top:35px;
}

.booking-copy h2{
  font-size:clamp(44px,5.2vw,77px);
  margin:16px 0 24px;
}

.booking-copy>p:not(.eyebrow){
  max-width:520px;
  font-size:17px;
}

.booking-benefits{
  margin:38px 0 26px;
  display:grid;
  gap:18px;
}

.booking-benefits div{
  padding:18px 0;
  border-top:1px solid rgba(61,55,51,.24);
}

.booking-benefits strong,
.booking-benefits span{
  display:block;
}

.booking-benefits strong{
  font-family:'Playfair Display',serif;
  font-size:22px;
  line-height:1.2;
}

.booking-benefits span{
  margin-top:6px;
  color:#694f45;
  font-size:14px;
}

.booking-instagram{
  margin-top:10px;
}

.booking-form{
  background:rgba(255,253,249,.72);
  border:1px solid rgba(61,55,51,.14);
  padding:38px;
  box-shadow:0 24px 70px rgba(88,59,46,.12);
  backdrop-filter:blur(8px);
}

.form-grid{
  display:grid;
  grid-template-columns:1fr 1fr;
  gap:20px;
}

.form-field{
  min-width:0;
}

.form-field-wide{
  grid-column:1 / -1;
}

.form-field label{
  display:block;
  margin-bottom:8px;
  font-size:11px;
  font-weight:800;
  letter-spacing:1px;
  text-transform:uppercase;
}

.form-field input,
.form-field select,
.form-field textarea{
  width:100%;
  border:1px solid rgba(61,55,51,.24);
  border-radius:0;
  background:rgba(255,255,255,.72);
  color:var(--ink);
  font:inherit;
  padding:14px 15px;
  outline:none;
  transition:border-color .2s,box-shadow .2s,background .2s;
}

.form-field textarea{
  min-height:130px;
  resize:vertical;
}

.form-field input:focus,
.form-field select:focus,
.form-field textarea:focus{
  border-color:var(--terracotta);
  background:#fff;
  box-shadow:0 0 0 3px rgba(173,117,93,.12);
}

.consent{
  display:flex;
  align-items:flex-start;
  gap:11px;
  color:#694f45;
  font-size:13px;
  line-height:1.5;
  cursor:pointer;
}

.consent input{
  width:18px;
  height:18px;
  margin:2px 0 0;
  accent-color:var(--ink);
  flex:0 0 auto;
}

.booking-submit{
  margin-top:26px;
  border:0;
  background:var(--ink);
  color:#fff;
  cursor:pointer;
}

.booking-submit:disabled{
  cursor:wait;
  opacity:.65;
  transform:none;
}

.booking-status{
  display:none;
  margin:20px 0 0;
  padding:14px 16px;
  font-size:14px;
  font-weight:700;
}

.booking-status.success{
  display:block;
  background:rgba(67,122,89,.13);
  border:1px solid rgba(67,122,89,.32);
  color:#315d43;
}

.booking-status.error{
  display:block;
  background:rgba(151,70,57,.12);
  border:1px solid rgba(151,70,57,.3);
  color:#813e34;
}

.booking-note{
  display:block;
  margin-top:15px;
  color:#694f45;
}

@media(max-width:900px){
  .booking-layout{
    grid-template-columns:1fr;
    gap:45px;
  }

  .booking-copy{
    position:static;
  }
}

@media(max-width:620px){
  .booking-section{
    padding:82px 6vw;
  }

  .booking-form{
    padding:24px 18px;
  }

  .form-grid{
    grid-template-columns:1fr;
  }

  .form-field-wide{
    grid-column:auto;
  }

  .booking-submit{
    width:100%;
    justify-content:center;
  }
}
