:root{--ink:#253c33;--paper:#faf7f0;--green:#304c3e;--line:#cbd1c4}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.6 "Segoe UI",Arial,sans-serif}a{color:inherit;text-underline-offset:5px}header,.base{display:flex;align-items:center;justify-content:space-between;padding:18px 6%;gap:16px}header{border-bottom:1px solid var(--line)}.brand{display:flex;align-items:center;gap:12px;text-decoration:none;font:24px Georgia,serif}.brand i{font:italic 32px Georgia;letter-spacing:-8px;padding-right:9px;border-right:1px solid #a8ae9e}.brand small,small,.tag{font:600 10px/1.5 "Segoe UI",sans-serif;letter-spacing:2px}.brand small,figcaption small{display:block;margin-top:4px}nav{display:flex;gap:26px}nav a,.more{font-size:14px;text-decoration:none}a:hover{text-decoration:underline}.btn{border:0;border-radius:30px;background:var(--green);color:white;display:inline-flex;align-items:center;gap:24px;padding:15px 24px;text-decoration:none;font:600 14px "Segoe UI",sans-serif;cursor:pointer}.btn b{font-size:19px}.mini{padding:10px 20px}.hero{display:grid;grid-template-columns:1.14fr 1fr;align-items:stretch;background:#eceee4}.heroCopy{align-self:center;padding:75px 6vw}.tag{display:flex;align-items:center;gap:10px;color:#536651}.tag span{height:1px;width:35px;background:currentColor}h1,h2,h3,figcaption,blockquote{font-family:Georgia,serif;font-weight:400}h1,h2{letter-spacing:-.055em;line-height:1.04}h1{font-size:clamp(48px,5.4vw,92px);margin:26px 0}h2{font-size:clamp(42px,4.6vw,68px);margin:18px 0 34px}em{color:#5e735b}h3{font-size:26px;line-height:1.2;margin:12px 0}p{max-width:52ch;color:#48564d}.heroCopy p{margin-bottom:31px}.more{display:inline-block;margin:15px}figure{margin:0;position:relative;min-height:540px;background:#bcc8bc;overflow:hidden}figure img{position:absolute;height:100%;width:100%;object-fit:cover;object-position:center 30%}figcaption{position:absolute;bottom:0;left:0;right:0;color:white;font-size:24px;padding:50px 30px 20px;background:linear-gradient(transparent,#172a21c9)}.wrap{max-width:1350px;margin:auto;padding:75px 6%}.services,.posts,.split{display:grid;gap:36px}.services{grid-template-columns:repeat(3,1fr)}.services article,details,.ruled{border-top:1px solid var(--line)}.services article{padding:16px 0}.band{background:#e5e9de}.split,.posts{grid-template-columns:1fr 1fr}.split{gap:8%}blockquote{font-size:clamp(23px,2.2vw,35px);line-height:1.36;margin:0;align-self:center}blockquote span{display:block;font-size:60px;height:55px;color:#77896c}blockquote footer{font:14px "Segoe UI",sans-serif;margin-top:16px}.posts a{background:#f0efe7;display:flex;align-items:center;text-decoration:none;overflow:hidden}.posts img{width:38%;height:215px;object-fit:cover}.posts a div{padding:18px}.posts span{font-size:13px;text-decoration:underline}summary{cursor:pointer;padding:16px 0;font-weight:600}form,label{display:grid;gap:7px}form{gap:14px}input,select,textarea{width:100%;font:inherit;border:1px solid #9aa598;background:var(--paper);border-radius:5px;padding:10px;color:var(--ink)}form .btn{justify-self:start}form small{font:13px "Segoe UI";letter-spacing:0}.base{background:var(--green);color:white;font-size:13px}.reader{max-width:780px;text-align:center}.reader img{display:block;max-width:100%;max-height:75vh;margin:22px auto}.reader button:disabled{opacity:.4}.reader output{margin:0 12px}@media(max-width:800px){header{flex-wrap:wrap}nav{order:3;width:100%;justify-content:space-between;gap:8px}.hero,.split{grid-template-columns:1fr}.heroCopy{padding:45px 6%}.hero figure{min-height:390px}.services{grid-template-columns:1fr;gap:8px}.posts{grid-template-columns:1fr}.split{gap:28px}.wrap{padding:48px 6%}.brand{font-size:19px}.mini{font-size:12px;padding:10px;gap:8px}.posts img{height:170px}.base{flex-wrap:wrap}}@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* The portrait dissolves into the same sage used behind the opening text. */
.hero{background:#eceee4;position:relative}.hero figure{background:transparent}.hero figure img{mask-image:linear-gradient(90deg,transparent,#000 28%)}.hero figcaption{left:25%;background:none;text-shadow:0 1px 8px #172a21}.heroCopy{position:relative;z-index:1}.typed{display:inline-block;white-space:nowrap}
@media(prefers-reduced-motion:no-preference){.typed{animation:type-reveal 1.3s steps(10,end) both}.heroCopy p,.heroCopy .btn{animation:arrive .9s ease-out both}.heroCopy p{animation-delay:.2s}.heroCopy .btn{animation-delay:.35s}.hero figure{animation:arrive 1.1s ease-out both}@keyframes type-reveal{from{clip-path:inset(0 100% 0 0)}to{clip-path:inset(0 -5% 0 0)}}@keyframes arrive{from{opacity:0;transform:translateY(10px)}to{opacity:1;transform:translateY(0)}}}
.services{grid-template-columns:repeat(4,1fr);gap:16px}.services article,.aboutnote,.quotes blockquote,.reading aside{background:#edf0e6;border:1px solid #cdd3c4;border-radius:18px;padding:26px}.services svg{color:#586d51;margin-bottom:16px}.services article:nth-child(even){background:#f3ede1}.services article p{font-size:15px}.band{background:linear-gradient(var(--paper),#e6e9df 13%,#e6e9df 88%,var(--paper))}.aboutnote{align-self:center;background:#f8f6ec}.quotes{display:grid;grid-template-columns:1.2fr 1fr;gap:24px}.quotes blockquote{align-self:stretch;font-size:24px;background:#f4efe4}.social{background:linear-gradient(#faf7f0,#e1e8dc 12%,#e1e8dc 90%,#faf7f0)}.feed{display:grid;grid-template-columns:repeat(4,1fr);gap:15px;margin:26px 0}.feed img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:8px}.feed a:hover img{outline:2px solid var(--green)}.link{display:inline-block;margin-top:22px;font-weight:600}.posts .story{border:1px solid var(--line);border-radius:14px}.posts .illustration{align-self:stretch;display:grid;place-items:center;min-width:24%;background:radial-gradient(ellipse at bottom left,#aabfa7,#e2e8d6);color:#3e5d46}.posts .story:nth-child(even) .illustration{background:linear-gradient(130deg,#f0e6d5,#cdb792)}.journal{margin-top:40px}.reading,.faq{max-width:960px}.reading .tag{margin-top:40px}.reading h1{font-size:clamp(44px,6vw,78px)}.reading h2,.faq h2{font-size:36px;margin:36px 0 12px}.reading p,.faq details p{max-width:70ch}.reading .intro{font-size:21px}.source{border-top:1px solid var(--line);padding-top:24px}.reading aside{margin-top:30px}
@media(max-width:1000px){.services{grid-template-columns:repeat(2,1fr)}nav{gap:14px}}@media(max-width:800px){.hero figure img{mask-image:linear-gradient(transparent,#000 19%)}.hero figcaption{left:0}.feed,.quotes{grid-template-columns:1fr 1fr}.heroCopy{padding-bottom:20px}nav{flex-wrap:wrap}.hero figure{min-height:420px}}@media(max-width:540px){.services,.quotes{grid-template-columns:1fr}.services article{display:grid;grid-template-columns:52px 1fr;gap:0 15px}.services article svg{width:48px;grid-row:span 2}.services article p{margin:0}.services article h3{margin:0 0 6px}.posts{gap:15px}.feed{gap:8px}.heroCopy .more{margin-left:0;display:block}}
.about-photo{display:block;width:100%;height:280px;object-fit:cover;object-position:50% 28%;border-radius:10px;margin-bottom:20px}.benefit-grid,.featured-result,.results-gallery{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}.benefit-grid article{border-top:1px solid var(--line);padding:12px 0}.featured-result{align-items:center}.featured-result img{display:block;width:min(100%,457px);margin:auto}.results-gallery{align-items:start;margin-top:40px}.results-gallery article{padding-bottom:20px}.results-gallery img{display:block;width:auto;max-width:100%;max-height:625px}.results-gallery h2{font-size:30px;margin:18px 0 4px}.results-gallery p{margin:0}.review-window{overflow:hidden}.review-track,.review-group{display:flex;width:max-content}.review-group blockquote{width:clamp(250px,33vw,430px);padding:22px 28px;background:#f2eee3;border-radius:16px;align-self:stretch;font-size:23px;margin-right:18px}.review-track{animation:reviews-loop 55s linear infinite}.review-window:hover .review-track,.review-window.paused .review-track{animation-play-state:paused}.review-toggle{cursor:pointer;border:1px solid var(--line);color:var(--ink);background:transparent;padding:8px 15px;border-radius:20px;margin-top:15px}@keyframes reviews-loop{to{transform:translateX(-50%)}}@media(prefers-reduced-motion:reduce){.review-track{animation:none}.review-window{overflow:auto}.review-group[aria-hidden],.review-toggle{display:none}}@media(min-width:1001px){.services{grid-template-columns:repeat(6,minmax(0,1fr))}.services article{grid-column:span 2}.services article:nth-last-child(-n+2){grid-column:span 3}}@media(max-width:650px){.benefit-grid,.featured-result,.results-gallery{grid-template-columns:1fr}.about-photo{height:auto}}
/* Full-width service rows keep every treatment aligned across breakpoints. */
.services{display:flex;flex-direction:column;gap:10px}
.services article{display:grid;grid-template-columns:64px minmax(170px,.8fr) minmax(220px,1.4fr);gap:0 26px;align-items:center;padding:18px 28px}
.services article svg{grid-row:auto;margin:0;width:50px;height:50px}
.services article h3,.services article p{margin:0}
.services article a{grid-column:3;justify-self:start;font-size:14px}
#sobre .split{align-items:center}
#sobre .about-photo{width:100%;height:auto;margin:0;border-radius:0;mask-image:linear-gradient(90deg,transparent,#000 14%,#000 90%,transparent)}
.review-controls{display:flex;gap:8px;align-items:center;margin-top:18px}
.review-controls button{margin:0;min-height:42px}
.review-step{cursor:pointer;background:transparent;color:var(--ink);border:1px solid var(--line);border-radius:50%;width:42px;font-size:20px}
.site-footer{background:#263f34;color:#f7f5ec;padding:55px 6% 22px}
.footer-columns{display:grid;grid-template-columns:1.2fr .8fr .9fr 1fr;gap:32px}
.footer-columns h2{font:600 16px/1.4 "Segoe UI",sans-serif;letter-spacing:0;margin:0 0 14px}
.footer-columns p,.footer-columns address{font-style:normal;color:#dbe3d9}
.footer-columns a:not(.brand){display:table;margin:7px 0;text-decoration:none}
.footer-columns a:hover{text-decoration:underline}
.footer-end{border-top:1px solid #64776a;margin-top:32px;padding-top:18px;display:flex;justify-content:space-between;gap:16px;font-size:13px}
@media(max-width:760px){.footer-columns{grid-template-columns:1fr 1fr}.services article{grid-template-columns:46px 1fr;gap:6px 14px;padding:19px}.services article svg{grid-row:1/3;width:42px}.services article p,.services article a{grid-column:2}}
@media(max-width:430px){.footer-columns{grid-template-columns:1fr}.site-footer{padding-top:36px}}

/* On compact screens the portrait shares the title row, while the longer
   description and actions retain the full reading width below it. */
@media (max-width:800px) {
  .hero {
    grid-template-columns:53% 47%;
    grid-template-rows:auto auto auto auto auto;
    align-items:center;
    padding:24px 0 26px;
    isolation:isolate;
  }
  .heroCopy, #sobre .split > div {display:contents}
  .heroCopy > .tag, .heroCopy > h1 {position:relative;z-index:1;margin-left:6vw}
  .heroCopy > .tag {grid-area:1/1/2/3;align-self:end;margin-top:16px}
  .heroCopy > h1 {grid-area:2/1/3/2;font-size:clamp(39px,7.5vw,62px);margin-top:12px;margin-bottom:22px}
  .hero figure {grid-area:1/2/3/3;align-self:stretch;min-height:0;overflow:visible}
  .hero figure img {object-position:53% 25%;mask-image:radial-gradient(ellipse 85% 75% at 62% 42%,#000 46%,transparent 86%)}
  .hero figcaption {display:none}
  .heroCopy > p,.heroCopy > a {grid-column:1/-1;margin-left:6vw;margin-right:6vw}
  .heroCopy > p {grid-row:3;margin-top:10px;margin-bottom:18px}
  .heroCopy > .btn {grid-row:4;justify-self:start}
  .heroCopy > .more {grid-row:5;justify-self:start;margin:12px 6vw 0}
  #sobre .split {grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:0 8px}
  #sobre .tag {grid-area:1/1;align-self:end}
  #sobre h2 {grid-area:2/1;align-self:start;font-size:clamp(37px,7vw,58px);margin:12px 0 24px}
  #sobre .about-photo {grid-area:1/2/3/3;height:100%;min-height:145px;max-height:205px;object-position:center 25%;mask-image:radial-gradient(ellipse 76% 80% at 52% 44%,#000 48%,transparent 85%)}
  #sobre .split p,#sobre .split h3,#sobre .split a {grid-column:1/-1}
  #sobre .split p {margin:12px 0}
  .reader .btn {padding:13px 16px}
  .review-controls button,header .mini {min-height:44px}
}
@media (max-width:370px) {
  header {gap:10px;padding-inline:4%}
  header .brand {font-size:17px}
  .heroCopy > h1 {font-size:36px}
}
@media(max-width:800px){
  header:has(.mini){display:grid;grid-template-columns:minmax(0,1fr) auto;gap:12px 6px;padding:12px 4%}
  header .brand{grid-column:1;grid-row:1;gap:7px;font-size:clamp(15px,4.45vw,22px)}
  header .brand small{font-size:8px;letter-spacing:1.4px}
  header .brand i{font-size:26px}
  header .mini{grid-column:2;grid-row:1;justify-self:end;font-size:clamp(10px,2.8vw,13px);gap:4px;padding:8px 10px}
  header nav{grid-column:1/-1;grid-row:2}
}
@media(max-width:800px){
  .review-window{container-type:inline-size}
  .review-group blockquote{width:72cqw;margin-right:12px;padding:14px 16px;font-size:11.5px;line-height:1.5}
  .review-group blockquote span{font-size:30px;height:26px}
  .review-group blockquote footer{font-size:11px;margin-top:10px}
  .review-track{animation-timing-function:steps(5,end);animation-duration:30s}
}
