
:root{
  --green:#314f2b;
  --green-dark:#223c1f;
  --sage:#7c8a66;
  --gold:#a39162;
  --cream:#fbf9f2;
  --sand:#f0eadf;
  --ink:#22231e;
  --muted:#66685f;
  --line:#e4ded2;
  --white:#fff;
  --shadow:0 18px 50px rgba(38,43,32,.12);
  --serif: Georgia, 'Times New Roman', serif;
  --sans: Arial, Helvetica, sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:var(--sans);line-height:1.65;font-size:16px}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
.container{width:min(1320px, calc(100% - 48px));margin:0 auto}
.topbar{height:72px;background:#fff;display:flex;align-items:center;border-bottom:1px solid rgba(0,0,0,.06);position:sticky;top:0;z-index:20;box-shadow:0 2px 16px rgba(25,30,20,.04)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:22px;width:min(1440px, calc(100% - 56px));margin:0 auto}
.logo{display:flex;align-items:center;gap:15px;color:var(--green);min-width:260px}
.logo-mark{width:48px;height:48px;display:inline-block;background:url('/favicon.svg') center/contain no-repeat}
.logo-text{font-family:var(--serif);font-size:26px;line-height:.86;letter-spacing:.08em;text-transform:uppercase;color:#324f2b}
.logo-text small{display:block;font-family:var(--sans);font-size:10px;letter-spacing:.22em;margin-top:7px;color:#67755c}
.nav{display:flex;gap:34px;align-items:center;justify-content:center;flex:1;font-size:13px;font-weight:800;letter-spacing:.04em;text-transform:uppercase;color:#141811}
.nav a{position:relative;padding:28px 0}
.nav a:nth-child(1)::after,.nav a:nth-child(2)::after{content:'⌄';font-size:13px;margin-left:7px;color:#2e4729}
.nav a:before{content:'';position:absolute;left:0;right:0;bottom:22px;height:2px;background:var(--green);transform:scaleX(0);transition:.25s;transform-origin:left}
.nav a:hover:before{transform:scaleX(1)}
.btn{display:inline-flex;align-items:center;justify-content:center;gap:8px;border-radius:2px;background:var(--green);color:#fff;padding:15px 25px;border:1px solid var(--green);font-weight:800;letter-spacing:.11em;text-transform:uppercase;font-size:13px;transition:.2s;box-shadow:0 10px 30px rgba(31,67,32,.18)}
.btn:hover{background:#223c1f;transform:translateY(-1px)}
.btn-outline{background:transparent;border-color:#fff;color:#fff;box-shadow:none}
.btn-outline:hover{background:#fff;color:var(--green)}
.btn-cream{background:#fff;color:var(--green);border-color:#fff;box-shadow:none}
.mobile-toggle{display:none;background:none;border:0;color:var(--green);font-size:31px;line-height:1}
.hero{min-height:530px;position:relative;display:flex;align-items:center;background:linear-gradient(90deg, rgba(0,0,0,.64) 0%, rgba(0,0,0,.38) 37%, rgba(0,0,0,.05) 100%), url('/assets/images/hero-retreats-bali.webp') center/cover no-repeat;color:#fff;overflow:hidden}
.hero:after{content:'';position:absolute;inset:auto 0 0;height:160px;background:linear-gradient(0deg, rgba(0,0,0,.18), transparent)}
.hero .container{position:relative;z-index:2}
.hero-copy{max-width:560px;padding:56px 0 72px}
.eyebrow{color:var(--gold);font-weight:900;text-transform:uppercase;letter-spacing:.13em;font-size:13px;margin-bottom:12px}
.hero h1{font-family:var(--serif);font-size:clamp(42px,5.6vw,70px);font-weight:500;line-height:.96;margin:0 0 22px;letter-spacing:-.035em;text-shadow:0 4px 18px rgba(0,0,0,.18)}
.hero p{font-size:20px;line-height:1.55;margin:0 0 32px;color:#f6f2e9;max-width:540px;font-weight:500}
.hero-actions{display:flex;gap:16px;flex-wrap:wrap}
.trust-strip{background:#fff;padding:28px 0;border-bottom:1px solid var(--line)}
.trust-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:36px}
.trust-item{display:grid;grid-template-columns:56px 1fr;gap:18px;align-items:center}
.icon{width:52px;height:52px;color:var(--gold);display:grid;place-items:center}
.icon svg{width:52px;height:52px;stroke:currentColor;fill:none;stroke-width:1.5}
.trust-item h3{margin:0 0 3px;font-size:17px;line-height:1.2}
.trust-item p{margin:0;color:#555a50;line-height:1.45;font-size:15px}
section{padding:80px 0}
.section-head{text-align:center;max-width:760px;margin:0 auto 42px}
.section-head h2{font-family:var(--serif);font-weight:500;font-size:clamp(34px,4vw,52px);letter-spacing:-.035em;line-height:1.06;margin:8px 0 16px}.section-head p{color:var(--muted);margin:0;font-size:18px}
.card-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:22px}.retreat-card{background:#fff;box-shadow:0 8px 28px rgba(35,37,30,.09);border:1px solid rgba(0,0,0,.06);overflow:hidden;transition:.25s}.retreat-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}.retreat-card img{height:194px;width:100%;object-fit:cover}.retreat-card-body{padding:22px 22px 24px}.retreat-card h3{font-family:var(--serif);font-size:23px;font-weight:600;line-height:1.1;margin:0 0 8px}.retreat-card p{color:#50544b;margin:0 0 18px;line-height:1.55}.text-link{font-weight:900;letter-spacing:.12em;text-transform:uppercase;font-size:13px;color:var(--green)}
.split{display:grid;grid-template-columns:1.05fr .95fr;gap:64px;align-items:center}.split-image{border-radius:0;overflow:hidden;box-shadow:var(--shadow);position:relative}.split-image img{height:580px;width:100%;object-fit:cover}.split-content h2{font-family:var(--serif);font-size:clamp(36px,4vw,56px);font-weight:500;line-height:1.05;margin:0 0 20px;letter-spacing:-.035em}.split-content p{color:var(--muted);font-size:18px}.list-check{list-style:none;padding:0;margin:24px 0;display:grid;gap:13px}.list-check li{position:relative;padding-left:34px}.list-check li:before{content:'✓';position:absolute;left:0;top:0;color:var(--green);font-weight:900}.muted-bg{background:#f4efe6}.journal-grid{display:grid;grid-template-columns:1.2fr .8fr;gap:24px}.feature-post{min-height:420px;background:linear-gradient(0deg,rgba(0,0,0,.55),rgba(0,0,0,.10)),url('/assets/images/ocean-meditation-bali.webp') center/cover no-repeat;display:flex;align-items:flex-end;color:#fff;padding:36px}.feature-post h3{font-family:var(--serif);font-size:36px;font-weight:500;line-height:1.08;margin:0 0 12px}.post-list{display:grid;gap:18px}.post-mini{background:#fff;padding:24px;border:1px solid var(--line)}.post-mini h3{font-family:var(--serif);font-size:25px;margin:0 0 8px}.post-mini p{color:var(--muted);margin:0}.cta{background:linear-gradient(90deg, rgba(34,60,31,.93), rgba(34,60,31,.80)),url('/assets/images/hero-retreats-bali-wide.webp') center/cover no-repeat;color:#fff;text-align:center;padding:92px 0}.cta h2{font-family:var(--serif);font-size:clamp(38px,4.8vw,64px);font-weight:500;line-height:1.05;margin:0 auto 18px;max-width:850px}.cta p{max-width:720px;margin:0 auto 28px;color:#f4efe6;font-size:18px}.footer{background:#182514;color:#e9eadf;padding:60px 0 28px}.footer-grid{display:grid;grid-template-columns:1.2fr .8fr .8fr 1fr;gap:40px}.footer h3{font-family:var(--serif);font-weight:500;font-size:26px;margin:0 0 14px}.footer h4{text-transform:uppercase;letter-spacing:.14em;font-size:13px;color:#b6c6a6;margin:0 0 16px}.footer a,.footer p{color:#d5d8ca;margin:0 0 10px}.footer-bottom{border-top:1px solid rgba(255,255,255,.15);margin-top:38px;padding-top:20px;color:#aeb5a7;font-size:14px;display:flex;justify-content:space-between;gap:20px;flex-wrap:wrap}.breadcrumb{background:#f4efe6;border-bottom:1px solid var(--line);padding:18px 0;color:#68705f;font-size:14px}.page-hero{padding:88px 0 76px;background:linear-gradient(90deg, rgba(34,60,31,.88), rgba(34,60,31,.68)),url('/assets/images/hero-retreats-bali-wide.webp') center/cover no-repeat;color:#fff}.page-hero h1{font-family:var(--serif);font-size:clamp(42px,5vw,68px);line-height:1;margin:0 0 16px;font-weight:500;letter-spacing:-.035em}.page-hero p{max-width:740px;font-size:20px;color:#f5efe5}.content-wrap{display:grid;grid-template-columns:minmax(0,1fr) 340px;gap:56px}.article{background:#fff;padding:44px;border:1px solid var(--line);box-shadow:0 12px 35px rgba(36,40,32,.06)}.article h2{font-family:var(--serif);font-size:34px;line-height:1.14;margin:36px 0 12px}.article h2:first-child{margin-top:0}.article p,.article li{color:#555950}.sidebar{position:sticky;top:104px;align-self:start;display:grid;gap:18px}.side-card{background:#fff;border:1px solid var(--line);padding:24px;box-shadow:0 8px 24px rgba(36,40,32,.06)}.side-card h3{margin:0 0 12px;font-family:var(--serif);font-size:25px}.side-card p{color:#555950}.faq{display:grid;gap:14px}.faq details{background:#fff;border:1px solid var(--line);padding:18px 20px}.faq summary{font-weight:800;cursor:pointer}.faq p{color:#555950}.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:28px}.form{background:#fff;padding:32px;border:1px solid var(--line);box-shadow:0 12px 35px rgba(36,40,32,.06)}.form label{display:block;font-weight:800;margin-bottom:7px}.form input,.form textarea,.form select{width:100%;padding:14px 13px;border:1px solid #d7d0c4;background:#fff;margin-bottom:16px;font:inherit}.form textarea{min-height:150px}.notice{background:#eef2e8;border-left:4px solid var(--green);padding:18px 20px;color:#46523e;margin:24px 0}
@media (max-width:1100px){.nav{gap:16px;font-size:12px}.card-grid{grid-template-columns:repeat(2,1fr)}.trust-grid{grid-template-columns:repeat(2,1fr)}.split,.journal-grid,.content-wrap{grid-template-columns:1fr}.split-image img{height:430px}.sidebar{position:static}.footer-grid{grid-template-columns:repeat(2,1fr)}}
@media (max-width:780px){.header-inner{width:min(100% - 32px, 1440px)}.topbar{height:auto;min-height:72px}.nav{display:none;position:absolute;left:0;right:0;top:72px;background:#fff;flex-direction:column;align-items:flex-start;padding:12px 24px 22px;border-bottom:1px solid var(--line);box-shadow:var(--shadow)}.nav.open{display:flex}.nav a{padding:12px 0}.nav a:before{display:none}.mobile-toggle{display:block}.header-inner>.btn{display:none}.logo{min-width:auto}.logo-text{font-size:21px}.hero{min-height:560px;background-image:linear-gradient(90deg, rgba(0,0,0,.68), rgba(0,0,0,.34)),url('/assets/images/hero-retreats-bali-wide.webp')}.hero p{font-size:18px}.trust-grid,.card-grid,.footer-grid,.contact-grid{grid-template-columns:1fr}.trust-item{grid-template-columns:46px 1fr}.container{width:min(100% - 30px, 1320px)}section{padding:58px 0}.article{padding:28px}.hero-actions{flex-direction:column;align-items:flex-start}.btn{width:auto}.footer-bottom{display:block}}
