
:root{
  --bg:#fffaf5;
  --bg-2:#f7efe8;
  --paper:#fff9f3;
  --paper-soft:#fff5ee;
  --sand:#f2e6d7;
  --sand-2:#f8efe3;
  --blush:#efcfc8;
  --blush-soft:#f7dfd8;
  --rose:#d8a29d;
  --sage:#6d8a72;
  --sage-soft:#dde7dd;
  --sage-deep:#315544;
  --palm:#223d31;
  --ink:#1d231f;
  --muted:#647066;
  --line:rgba(38,55,43,.10);
  --line-strong:rgba(38,55,43,.18);
  --accent:#b69060;
  --accent-deep:#96744a;
  --white:#ffffff;
  --shadow:0 22px 54px rgba(53,54,47,.08);
  --shadow-strong:0 28px 72px rgba(53,54,47,.12);
  --radius:30px;
  --radius-sm:18px;
  --container:1160px;
  --narrow:820px;
  --display: Georgia, "Times New Roman", serif;
  --sans: Inter, ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{
  margin:0;
  font-family:var(--sans);
  font-size:13.5px;
  line-height:1.72;
  color:var(--ink);
  background:
    radial-gradient(circle at 9% 12%, rgba(239,207,200,.38), transparent 24%),
    radial-gradient(circle at 88% 18%, rgba(221,231,221,.68), transparent 18%),
    linear-gradient(180deg,#fffaf5 0%,#fbf4ec 42%,#f6eee7 100%);
}
body::before{
  content:"";
  position:fixed;
  inset:0;
  pointer-events:none;
  background:
    linear-gradient(115deg, transparent 0 48%, rgba(255,255,255,.16) 48.5%, transparent 49%),
    linear-gradient(65deg, transparent 0 63%, rgba(255,255,255,.09) 63.5%, transparent 64%);
  opacity:.45;
  z-index:-1;
}
img{display:block;max-width:100%;height:auto}
a{color:inherit;text-decoration:none}
button,input,textarea,select{font:inherit}
input,textarea,select{appearance:none}
.skip-link{
  position:absolute;
  left:1rem;
  top:-3rem;
  background:#111;
  color:#fff;
  padding:.72rem .9rem;
  border-radius:12px;
  z-index:1000;
}
.skip-link:focus{top:1rem}
:focus-visible{outline:3px solid var(--sage-deep);outline-offset:3px}
.container,.shell{width:min(var(--container),calc(100% - 2.25rem));margin:0 auto}
.narrow{width:min(var(--narrow),calc(100% - 2.25rem));margin:0 auto}
.section{padding:4.7rem 0}
.section-sm{padding:3.1rem 0}
.eyebrow{
  display:inline-flex;
  align-items:center;
  gap:.55rem;
  margin:0 0 .9rem;
  color:var(--sage-deep);
  font-size:.64rem;
  text-transform:uppercase;
  letter-spacing:.24em;
}
.eyebrow::before{
  content:"";
  width:28px;
  height:1px;
  background:currentColor;
  opacity:.55;
}
.lead,.muted,.service-copy p,.text-panel p,.story-copy p,.process-card p,.contact-panel p,.footer-copy,.form-panel p,.faq p{
  color:var(--muted);
}
h1,h2,h3,h4{margin:0}
h1,h2,h3,.section-head h2,.service-copy h2,.story-copy h2,.text-panel h2,.contact-panel h2,.process-card h2,.feature h3,.footer-heading{
  font-family:var(--display);
  font-weight:700;
  letter-spacing:-.03em;
}
h1,.page-hero h1{line-height:1.02}
h1{font-size:clamp(2.3rem,4.2vw,3.7rem)}
.page-hero h1{font-size:clamp(1.9rem,3.3vw,2.8rem)}
h2{font-size:clamp(1.55rem,2.6vw,2.35rem);line-height:1.08}
h3{font-size:1.18rem;line-height:1.12}
p{margin:.1rem 0 1rem}
.button,.btn{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:40px;
  padding:.76rem 1.08rem;
  border-radius:999px;
  font-size:.68rem;
  font-weight:600;
  text-transform:uppercase;
  letter-spacing:.18em;
  border:1px solid var(--line-strong);
  background:rgba(255,249,243,.8);
  color:var(--palm);
  transition:transform .18s ease, background .18s ease, border-color .18s ease, color .18s ease, box-shadow .18s ease;
  cursor:pointer;
  box-shadow:0 10px 22px rgba(48,58,45,.04);
}
.button:hover,.btn:hover{transform:translateY(-1px);box-shadow:0 14px 28px rgba(48,58,45,.08)}
.button-primary,.btn.primary{
  background:linear-gradient(180deg,#4b6f5c 0%,var(--sage-deep) 100%);
  border-color:var(--sage-deep);
  color:#fff;
}
.button-primary:hover,.btn.primary:hover{background:linear-gradient(180deg,#436653 0%,#274838 100%)}
.button-secondary,.btn.secondary{background:rgba(239,207,200,.55)}
.button-light{background:rgba(255,255,255,.12);border-color:rgba(255,255,255,.28);color:#fff}
.button-row,.hero-actions,.actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.35rem}
.site-header{
  position:sticky;
  top:0;
  z-index:40;
  background:rgba(255,250,245,.84);
  backdrop-filter:blur(14px);
  border-bottom:1px solid rgba(49,85,68,.09);
}
.header-inner{
  min-height:86px;
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:1rem;
}
.brand{
  display:inline-flex;
  align-items:center;
  gap:.32rem;
  min-width:0;
  padding:.32rem .55rem;
  border-radius:22px;
  background:#020919;
  box-shadow:0 14px 32px rgba(8,13,32,.14);
}
.brand__mark,.brand-mark{height:58px;width:auto;flex:0 0 auto;border-radius:10px;display:block}
.brand__wordmark,.brand-wordmark{height:34px;width:auto;max-width:min(220px,46vw);min-width:0;border-radius:8px;display:block}
.site-nav ul,.site-nav{
  display:flex;
  align-items:center;
  gap:.25rem;
  list-style:none;
  padding:0;
  margin:0;
}
.site-nav a{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-height:36px;
  padding:.55rem .72rem;
  border-radius:999px;
  font-size:.65rem;
  text-transform:uppercase;
  letter-spacing:.16em;
  color:#496050;
}
.site-nav a:hover,.site-nav a[aria-current="page"]{background:rgba(49,85,68,.08);color:var(--palm)}
.site-nav .nav-cta{background:linear-gradient(180deg,#4b6f5c 0%,var(--sage-deep) 100%);color:#fff}
.site-nav .nav-cta:hover{background:linear-gradient(180deg,#436653 0%,#274838 100%);color:#fff}
.nav-toggle,.menu-btn{
  display:none;
  width:42px;
  height:42px;
  border-radius:14px;
  border:1px solid var(--line-strong);
  background:rgba(255,250,245,.8);
  color:var(--palm);
  padding:0;
}
.nav-toggle span{display:block;width:16px;height:1px;background:currentColor;margin:5px auto}
.hero{padding:1.6rem 0 2.35rem}
.hero-grid,.hero-layout,.split,.story-grid,.about-grid,.contact-grid,.service-row,.process-grid,.mini-grid,.footer-grid,.editorial,.section-head,.form-grid{
  display:grid;
  gap:1.05rem;
}
.hero-layout,.hero-grid{grid-template-columns:.92fr 1.08fr;align-items:stretch}
.hero-copy{
  background:linear-gradient(180deg,rgba(255,250,245,.96),rgba(255,245,237,.98));
  border:1px solid rgba(49,85,68,.1);
  border-radius:32px;
  padding:2.15rem;
  box-shadow:var(--shadow);
  display:flex;
  flex-direction:column;
  justify-content:center;
  position:relative;
  overflow:hidden;
}
.hero-copy::before{
  content:"";
  position:absolute;
  inset:0 auto auto 0;
  width:100%;
  height:14px;
  background:repeating-linear-gradient(90deg,var(--sage-deep) 0 18px,#fff 18px 34px);
  opacity:.85;
}
.hero-copy::after{
  content:"";
  position:absolute;
  right:-48px;
  bottom:-56px;
  width:220px;
  height:220px;
  border-radius:50%;
  background:radial-gradient(circle, rgba(239,207,200,.68) 0%, rgba(239,207,200,0) 72%);
}
.hero-copy > *{position:relative;z-index:1}
.hero-copy h1{margin-top:.45rem}
.hero-copy .lead,.hero-copy p{font-size:.96rem;line-height:1.82;max-width:34rem}
.hero-gallery{
  display:grid;
  grid-template-columns:1.02fr .98fr;
  grid-template-rows:1fr auto;
  gap:1rem;
  align-items:stretch;
}
.photo,.image-panel,.media-panel,.wide-image img,.page-hero__media img,.story-image,.feature,.text-panel,.form-panel,.contact-panel,.callout,.mini-card,.point,.card-plain,.process-card,.faq details,.note-strip .note-card,.caption-strip .mini-card{
  border:1px solid rgba(49,85,68,.10);
  box-shadow:var(--shadow);
}
.photo{
  overflow:hidden;
  border-radius:28px;
  background:#eadccf;
}
.photo img{width:100%;height:100%;object-fit:cover;object-position:center center;transform:scale(1.01)}
.photo.tall{grid-row:1 / span 2;aspect-ratio:4/5}
.photo.landscape{aspect-ratio:4/3}
.caption-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:.75rem;
  margin-top:.95rem;
}
.mini-card{
  padding:.9rem 1rem;
  border-radius:18px;
  background:rgba(255,249,243,.9);
  backdrop-filter:blur(4px);
}
.mini-card strong{
  display:block;
  font-size:.66rem;
  letter-spacing:.18em;
  text-transform:uppercase;
  color:var(--accent-deep);
  margin-bottom:.35rem;
}
.note-strip{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  background:rgba(49,85,68,.12);
  margin-top:1.55rem;
  overflow:hidden;
  border-radius:18px;
}
.note-strip>div{
  background:linear-gradient(180deg,rgba(255,250,245,.96),rgba(247,239,232,.96));
  padding:1rem;
  font-size:.87rem;
}
.page-hero{padding:1.8rem 0 2.25rem}
.page-hero__copy{max-width:44rem}
.page-hero__media{margin-top:1.35rem}
.page-hero__media img,.wide-image img{
  width:100%;
  border-radius:28px;
  background:#ddd;
  border:1px solid rgba(49,85,68,.10);
  box-shadow:var(--shadow);
}
.section-head{
  grid-template-columns:.9fr 1.1fr;
  align-items:end;
  margin-bottom:1.5rem;
}
.section-head p{margin:0;font-size:.92rem;line-height:1.82;max-width:38rem}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:1rem}
.feature{
  background:linear-gradient(180deg,rgba(255,249,243,.98),rgba(255,244,236,.96));
  overflow:hidden;
  border-radius:26px;
}
.feature-media{aspect-ratio:4/3;background:#ddd}
.feature-media img{width:100%;height:100%;object-fit:cover;object-position:center center}
.feature-body{padding:1.1rem 1rem 1.2rem}
.feature h3{font-size:1.28rem;margin-bottom:.55rem}
.feature p{font-size:.9rem;line-height:1.75;margin:0}
.editorial{grid-template-columns:1.05fr .95fr;align-items:center}
.editorial-copy p{font-size:.94rem;line-height:1.86;max-width:38rem}
.points{display:grid;gap:.8rem}
.point{
  background:linear-gradient(180deg,rgba(255,250,245,.92),rgba(247,239,232,.9));
  border-radius:18px;
  padding:.95rem 1rem;
  font-size:.9rem;
  color:#33483d;
}
.editorial-media{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.editorial-media .photo{aspect-ratio:4/5}
.editorial-media .photo.wide{grid-column:1/-1;aspect-ratio:16/10}
.section-dark,.process{
  background:
    linear-gradient(180deg,#60806d 0%,#486554 100%);
  color:#eef5ee;
  position:relative;
  overflow:hidden;
}
.section-dark::before,.process::before{
  content:"";
  position:absolute;
  inset:0;
  background:repeating-linear-gradient(90deg, rgba(255,255,255,.08) 0 16px, rgba(255,255,255,0) 16px 32px);
  opacity:.22;
  pointer-events:none;
}
.section-dark > .container,.process > .container{position:relative;z-index:1}
.section-dark .eyebrow,.process .eyebrow,.section-dark p,.process p,.section-dark li,.process li{color:rgba(255,255,255,.84)}
.section-dark h1,.section-dark h2,.section-dark h3,.process h1,.process h2,.process h3{color:#fff}
.process-grid{grid-template-columns:repeat(3,1fr)}
.process-card{
  padding:1.35rem;
  border-radius:24px;
  background:rgba(255,255,255,.09);
  border-color:rgba(255,255,255,.16);
  box-shadow:none;
}
.step-number,.number{
  display:inline-flex;
  align-items:center;
  justify-content:center;
  min-width:44px;
  height:44px;
  border-radius:50%;
  background:rgba(255,255,255,.14);
  color:#fff;
  font-family:var(--display);
  font-size:1.22rem;
  margin-bottom:.8rem;
}
.number{
  min-width:unset;
  height:auto;
  background:none;
  border-radius:0;
  font-size:.66rem;
  letter-spacing:.24em;
  text-transform:uppercase;
  color:#f6deab;
  margin-bottom:.55rem;
}
.split{grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);align-items:center}
.split.reverse{grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr)}
.service-row{
  grid-template-columns:minmax(0,.95fr) minmax(0,1.05fr);
  align-items:center;
  gap:1.6rem;
  padding:1.8rem 0;
  border-top:1px solid rgba(49,85,68,.12);
}
.service-row:first-child{border-top:0;padding-top:0}
.service-row:nth-of-type(even) .service-copy{order:2}
.service-row:nth-of-type(even) .image-panel{order:1}
.service-copy h2{margin-bottom:.6rem}
.service-copy p{font-size:.94rem;max-width:39rem}
.service-list,.check-list,.clean-list,.footer-links{list-style:none;padding:0;margin:0}
.service-list li,.check-list li,.clean-list li{position:relative;padding-left:1rem;margin-top:.48rem}
.service-list li::before,.check-list li::before,.clean-list li::before{
  content:"";
  position:absolute;
  left:0;
  top:.77rem;
  width:5px;
  height:5px;
  border-radius:50%;
  background:var(--accent);
}
.text-panel,.form-panel,.contact-panel,.card-plain{
  background:linear-gradient(180deg,rgba(255,250,246,.94),rgba(247,239,232,.9));
  border-radius:28px;
  padding:1.35rem;
}
.image-panel,.story-image,.media-panel{
  overflow:hidden;
  border-radius:28px;
  background:#ddd;
}
.image-panel img,.story-image img,.media-panel img{width:100%;height:auto}
.media-caption{padding:.85rem 1rem 1rem;font-size:.84rem;color:var(--muted);background:rgba(255,255,255,.82)}
.about-grid,.story-grid{grid-template-columns:1fr 1fr;align-items:start}
.story-copy p,.text-panel p{font-size:.94rem;line-height:1.86}
.callout{
  display:grid;
  grid-template-columns:1fr auto;
  align-items:center;
  gap:1rem;
  padding:1rem 1.15rem;
  border-radius:22px;
  background:linear-gradient(180deg,rgba(239,207,200,.46),rgba(255,249,243,.92));
}
.info-band{
  display:grid;
  grid-template-columns:repeat(3,1fr);
  gap:1px;
  border:1px solid rgba(255,255,255,.16);
  background:rgba(255,255,255,.16);
  border-radius:22px;
  overflow:hidden;
}
.info-band>div{background:rgba(255,255,255,.06);padding:1rem 1.05rem}
.contact-grid{grid-template-columns:minmax(0,.86fr) minmax(300px,.56fr);align-items:start}
.form-grid{grid-template-columns:repeat(2,1fr)}
.field{display:grid;gap:.45rem}
.field--full{grid-column:1 / -1}
label{font-size:.66rem;letter-spacing:.18em;text-transform:uppercase;color:#496050}
input,textarea,select{
  width:100%;
  padding:.85rem .95rem;
  border-radius:16px;
  border:1px solid var(--line-strong);
  background:#fffdfa;
  color:var(--ink);
}
textarea{min-height:170px;resize:vertical}
.help-text,.legal-note{font-size:.82rem}
.contact-panel{
  position:sticky;
  top:95px;
  background:linear-gradient(180deg,#4c6f5d 0%, #314f41 100%);
  color:#fff;
  border-color:rgba(255,255,255,.12);
}
.contact-panel p,.contact-panel li{color:rgba(255,255,255,.86)}
.contact-panel a{color:#fff}
.faq details{
  padding:1rem 0;
  border-width:0 0 1px 0;
  border-style:solid;
  box-shadow:none;
  border-radius:0;
  background:none;
}
.faq details:first-child{border-top:1px solid var(--line)}
.faq summary{cursor:pointer;list-style:none;font-size:.93rem;font-weight:600;color:#31493c}
.faq summary::-webkit-details-marker{display:none}
.gallery{columns:2;column-gap:1rem}
.gallery figure{
  break-inside:avoid;
  margin:0 0 1rem;
  background:rgba(255,255,255,.82);
  border-radius:22px;
  overflow:hidden;
  border:1px solid rgba(49,85,68,.1);
  box-shadow:var(--shadow);
}
.gallery figcaption{padding:.85rem 1rem .95rem;font-size:.84rem;color:var(--muted)}
.site-footer{
  background:linear-gradient(180deg,#315544 0%,#223d31 100%);
  color:rgba(255,255,255,.92);
  padding:3rem 0;
  margin-top:3rem;
}
.footer-grid{grid-template-columns:1.2fr .7fr .7fr;align-items:start}
.footer-brand{display:inline-flex;align-items:center;gap:.32rem;margin-bottom:.9rem;padding:.3rem .5rem;border-radius:20px;background:#020919;box-shadow:0 12px 28px rgba(0,0,0,.18)}
.footer-brand img:first-child{height:56px;width:auto;border-radius:9px}
.footer-brand img:last-child{height:30px;width:auto;border-radius:7px}
.footer-heading{margin:0 0 .8rem;font-size:.68rem;text-transform:uppercase;letter-spacing:.18em;color:rgba(255,255,255,.66)}
.footer-links li+li{margin-top:.45rem}
.footer-links a,.legal,.footer-copy{color:rgba(255,255,255,.76)}
.footer-copy{max-width:26rem}
@media (max-width: 960px){
  .hero-grid,.hero-layout,.split,.split.reverse,.story-grid,.about-grid,.contact-grid,.service-row,.process-grid,.mini-grid,.footer-grid,.section-head,.editorial,.grid-3,.form-grid,.note-strip,.info-band{grid-template-columns:1fr}
  .section{padding:3.8rem 0}
  .site-nav ul{
    position:absolute;
    right:1rem;
    top:66px;
    width:min(290px,calc(100vw - 2rem));
    display:none;
    flex-direction:column;
    align-items:stretch;
    padding:.6rem;
    background:rgba(255,249,243,.98);
    border:1px solid var(--line);
    border-radius:1rem;
    box-shadow:var(--shadow-strong);
  }
  .site-nav ul.is-open{display:flex}
  .site-nav a{width:100%;justify-content:flex-start;padding-inline:.9rem}
  .nav-toggle{display:inline-block}
  .contact-panel{position:static}
  .gallery{columns:1}
}
@media (max-width: 680px){
  .container,.shell,.narrow{width:min(calc(100% - 1rem),var(--container))}
  body{font-size:13px}
  .header-inner{min-height:78px}
  .brand{padding:.22rem .38rem;border-radius:18px}
  .brand__mark,.brand-mark{height:48px;width:auto}
  .brand__wordmark,.brand-wordmark{height:28px;width:auto;max-width:156px;min-width:0}
  .footer-brand img:first-child{height:46px;width:auto}
  .footer-brand img:last-child{height:26px;width:auto}
  .hero-copy,.text-panel,.form-panel,.contact-panel,.card-plain{padding:1.08rem}
  .button,.btn{width:100%}
  .hero-gallery{grid-template-columns:1fr}
  .photo.tall,.photo.landscape,.editorial-media .photo,.editorial-media .photo.wide{aspect-ratio:4/3}
  h1{font-size:clamp(2rem,8.5vw,2.7rem)}
  .page-hero h1{font-size:clamp(1.75rem,7vw,2.4rem)}
}
@media (prefers-reduced-motion: reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation:none!important;transition:none!important}
}
