.section-anchor{display:block;width:0;height:0;margin:0;padding:0;pointer-events:none;visibility:hidden}
.hero{position:relative;isolation:isolate;min-height:calc(100svh + 46px);padding-top:var(--header-h);background:linear-gradient(180deg,#fff 0%,#FFF8F0 69%,#FFEBD7 100%);overflow:hidden}
.hero-wave{position:absolute;z-index:-1;left:-4%;right:-4%;bottom:22px;height:170px;background:var(--brand);border-radius:50% 50% 0 0/30% 30% 0 0;transform:rotate(-1.2deg)}
.hero-grid{min-height:calc(100svh - var(--header-h) + 8px);display:grid;grid-template-columns:minmax(0,1.05fr) minmax(380px,.95fr);gap:54px;align-items:center;padding:68px 0 104px}
.hero-copy{max-width:650px;padding-top:14px}.hero-brandline{display:inline-flex;align-items:center;gap:8px;color:var(--ink-2);font-size:var(--type-ui);font-weight:var(--weight-ui)}
.hero-mini-mark{width:10px;height:10px;border-radius:50%;background:var(--brand);box-shadow:6px 2px 0 #FFC48C}.hero-kicker{margin-top:16px;color:#9A8778;font-size:var(--type-micro);font-weight:var(--weight-ui);letter-spacing:.23em}
.hero h1{margin-top:10px;font-size:var(--type-hero);line-height:var(--lh-display);letter-spacing:var(--ls-display);font-weight:var(--weight-display)}.hero h1 span{display:block}.hero h1 strong{display:block;color:var(--brand-strong)}
.hero-tag{margin-top:25px;font-size:clamp(19px,2vw,25px);font-weight:var(--weight-display);line-height:1.45}.hero-lead{max-width:620px;margin-top:15px;color:var(--muted);font-size:var(--type-body);line-height:var(--lh-body)}
.hero-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:27px}.hero-proof{display:flex;align-items:center;gap:12px;margin-top:25px;color:#8B7767;font-size:var(--type-meta);font-weight:var(--weight-ui)}.hero-proof i{width:4px;height:4px;border-radius:50%;background:var(--brand)}
.hero-media{position:relative;min-width:0}.hero-image-frame{position:relative;overflow:hidden;border:0;padding:0;border-radius:34px;box-shadow:var(--shadow);background:transparent}.hero-image-frame img{display:block;width:100%;height:auto;aspect-ratio:auto;object-fit:initial}
.hero-orbit{position:absolute;display:inline-flex;align-items:center;justify-content:center;min-height:36px;padding:6px 11px;border:1px solid rgba(243,107,18,.25);border-radius:999px;background:rgba(255,255,255,.94);color:var(--brand-strong);font-size:var(--type-meta);font-weight:var(--weight-ui);box-shadow:0 10px 24px rgba(87,44,10,.08)}
.hero-orbit-a{left:-12px;top:18%}.hero-orbit-b{right:-10px;top:32%}.hero-orbit-c{left:-18px;bottom:21%}.hero-orbit-d{right:18px;bottom:8%}
.hero-band{position:absolute;z-index:2;left:0;right:0;bottom:0;color:#fff}.hero-band-in{min-height:72px;display:flex;align-items:center;justify-content:center;gap:28px;text-align:center}.hero-band strong{font-size:17px;font-weight:var(--weight-heading)}.hero-band span{font-size:var(--type-meta);color:#FFE2CB}
.about-story{display:grid;grid-template-columns:minmax(300px,.85fr) minmax(0,1.15fr);gap:54px;align-items:center}.about-photo{position:relative;overflow:hidden;border-radius:24px;background:#e9e0d5}.about-photo img{width:100%;aspect-ratio:1024 / 531;object-fit:cover;filter:saturate(.9)}
.about-photo span{position:absolute;left:18px;bottom:17px;padding:7px 10px;border-radius:999px;background:rgba(255,255,255,.9);color:var(--brand-strong);font-size:var(--type-micro);font-weight:var(--weight-ui);letter-spacing:.15em}.about-text{display:grid;gap:20px;color:var(--muted);font-size:var(--type-body);line-height:var(--lh-body)}
.module-strip{display:grid;grid-template-columns:repeat(5,1fr);margin-top:34px;border:1px solid var(--line);border-radius:18px;overflow:hidden;background:#fff}.module-strip span{display:flex;align-items:center;justify-content:center;min-height:56px;padding:8px 12px;border-right:1px solid var(--line);font-size:var(--type-ui);font-weight:var(--weight-ui)}.module-strip span:last-child{border-right:0}
.lifecycle{margin-top:28px;padding:28px;border:1px solid #F1DCC8;border-radius:24px;background:#fff}.lifecycle-head{display:flex;align-items:center;justify-content:space-between;gap:18px}.lifecycle-head span{font-size:var(--type-ui);font-weight:var(--weight-ui)}.lifecycle-head b{color:var(--brand-strong);font-size:13px}
.life-flow{display:grid;grid-template-columns:1fr auto 1fr auto 1fr auto 1fr;align-items:center;gap:12px;margin-top:24px}.life-flow>div{display:grid;justify-items:center;gap:4px;text-align:center}.life-flow i{width:50px;height:1px;background:linear-gradient(90deg,#FFD2AF,var(--brand))}
.life-dot{display:grid;place-items:center;width:40px;height:40px;border-radius:50%;background:var(--brand-soft);color:var(--brand-strong);font-size:var(--type-meta);font-weight:var(--weight-ui)}.life-flow b{font-size:var(--type-ui);font-weight:var(--weight-ui)}.life-flow small{color:var(--muted);font-size:var(--type-meta)}
.position-quote{padding:20px 24px;border-left:4px solid var(--brand);border-radius:0 16px 16px 0;background:var(--brand-pale);color:var(--ink-2);font-size:17px;font-weight:var(--weight-heading);line-height:1.75;margin-bottom:28px}
.feature-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px}.feature-card{position:relative;min-height:248px;padding:24px;border:1px solid var(--line);border-radius:22px;background:#fff}.feature-no{position:absolute;right:20px;top:18px;color:#D8C8B9;font-size:var(--type-micro);font-weight:var(--weight-ui)}
.feature-icon{width:38px;height:38px;display:grid;place-items:center;border-radius:12px;background:var(--brand-soft);color:var(--brand-strong);font-weight:var(--weight-ui)}.feature-card h3{margin-top:18px;font-size:20px;line-height:1.35;letter-spacing:var(--ls-heading);font-weight:var(--weight-heading)}.feature-card p{margin-top:10px;color:var(--muted);font-size:var(--type-card);line-height:var(--lh-card)}
.value-feature{padding:30px;border-radius:24px;background:var(--ink);color:#fff}.value-feature .value-tag{display:inline-flex;padding:7px 10px;border-radius:999px;background:var(--brand);font-size:var(--type-micro);font-weight:var(--weight-ui)}.value-feature h3{margin-top:16px;max-width:840px;font-size:30px;line-height:1.25;letter-spacing:var(--ls-heading);font-weight:var(--weight-heading)}.value-feature p{max-width:930px;margin-top:11px;color:#D9CAC0;font-size:var(--type-ui);line-height:var(--lh-card)}
.value-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-top:14px}.value-card{min-height:220px;padding:23px;border:1px solid var(--line);border-radius:20px;background:#fff}.value-icon{display:grid;place-items:center;width:30px;height:30px;border-radius:9px;background:var(--brand-soft);color:var(--brand-strong);font-size:var(--type-micro);font-weight:var(--weight-ui)}.value-card h3{margin-top:15px;font-size:19px;line-height:1.35;font-weight:var(--weight-heading);letter-spacing:var(--ls-heading)}.value-card p{margin-top:9px;color:var(--muted);font-size:13px;line-height:1.8}
.ability-stack{display:grid;gap:10px}.ability-card{display:grid;grid-template-columns:54px minmax(0,1fr);gap:18px;align-items:start;padding:20px 22px;border:1px solid var(--line);border-radius:20px;background:#fff}.ability-mark{display:grid;place-items:center;width:54px;height:54px;border-radius:16px;background:var(--brand-soft);color:var(--brand-strong);font-size:17px;font-weight:var(--weight-heading)}
.ability-card h3{font-size:20px;font-weight:var(--weight-heading);letter-spacing:var(--ls-heading)}.ability-card p{margin-top:6px;color:var(--muted);font-size:var(--type-card);line-height:var(--lh-card)}.ability-card span{display:inline-block;margin-top:8px;color:#8A542B;font-size:var(--type-meta);line-height:var(--lh-meta)}
.service-head{margin-top:38px;display:flex;align-items:baseline;gap:11px}.service-head span{font-size:16px;font-weight:var(--weight-ui)}.service-head strong{color:var(--brand-strong);font-size:18px;font-weight:var(--weight-heading)}.service-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:10px;margin-top:14px}.service-grid article{min-height:140px;padding:18px;border:1px solid #F2E0D0;border-radius:18px;background:var(--brand-pale)}.service-grid b{display:block;font-size:var(--type-ui);line-height:1.45;font-weight:var(--weight-ui)}.service-grid span{display:block;margin-top:8px;color:#78695D;font-size:var(--type-meta);line-height:var(--lh-card)}
.service-foot{display:grid;grid-template-columns:auto 1fr auto 1fr;gap:12px 18px;align-items:center;margin-top:12px;padding:16px 18px;border-top:1px dashed var(--line);border-bottom:1px dashed var(--line)}.service-foot span{color:var(--brand-strong);font-size:var(--type-meta);font-weight:var(--weight-ui)}.service-foot p{color:var(--muted);font-size:var(--type-meta);line-height:var(--lh-meta)}
.eco-board{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));grid-template-rows:auto auto auto;grid-template-areas:"brand center center food" "insurance center center hospital" "park center center salon";gap:12px;align-items:stretch}.eco-center{grid-area:center;width:min(285px,100%);aspect-ratio:1;min-height:0;justify-self:center;align-self:center;display:grid;place-content:center;justify-items:center;gap:4px;border-radius:50%;background:radial-gradient(circle at 50% 46%,#fff 0 36%,#FFEBD8 37% 62%,#fff0 63%);border:1px dashed #F5C49C;color:var(--brand-strong)}
.eco-center span{font-size:17px;font-weight:var(--weight-heading)}.eco-center strong{font-size:27px;letter-spacing:var(--ls-heading);font-weight:var(--weight-heading)}.eco-center small{font-size:var(--type-micro);color:#A96735}.eco-node{min-height:104px;display:grid;align-content:center;gap:5px;padding:17px;border:1px solid var(--line);border-radius:18px;background:#fff}.eco-node b{font-size:var(--type-ui);line-height:1.5;font-weight:var(--weight-ui)}.eco-node span{color:var(--muted);font-size:var(--type-meta)}
.eco-node.e1{grid-area:brand}.eco-node.e2{grid-area:food}.eco-node.e3{grid-area:insurance}.eco-node.e4{grid-area:hospital}.eco-node.e5{grid-area:park}.eco-node.e6{grid-area:salon}
.coop-title{margin-top:42px;font-size:16px;font-weight:var(--weight-ui)}.coop-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:12px;margin-top:13px}.coop-grid article{min-height:145px;padding:18px;border:1px solid var(--line);border-radius:18px;background:#fff}.coop-grid b{display:inline-flex;padding:6px 9px;border-radius:999px;background:var(--brand);color:#fff;font-size:var(--type-meta);font-weight:var(--weight-ui)}.coop-grid span{display:block;margin-top:12px;color:var(--muted);font-size:var(--type-meta);line-height:var(--lh-card)}
.contact{padding:78px 0 calc(78px + var(--safe-bottom));background:var(--brand);color:#fff}.contact-in{display:grid;grid-template-columns:minmax(0,1.25fr) minmax(320px,.75fr);gap:54px;align-items:center}.contact h2{margin-top:8px;font-size:clamp(34px,4vw,58px)}.contact p{max-width:690px;margin-top:14px;color:#201A16;font-size:var(--type-ui);line-height:var(--lh-lead)}.contact-card{padding:23px;border:1px solid rgba(255,255,255,.28);border-radius:20px;background:rgba(255,255,255,.11);display:grid;gap:7px}.contact-card span{font-size:12px;color:#FFE0C6}.contact-card strong{font-size:18px;font-weight:var(--weight-heading)}.contact-card small{font-size:var(--type-meta);color:#FFE0C6}

/* Homepage composition base layer: breakpoint rules live in responsive.css. */
.hero{
  min-height:0;
  padding-top:calc(var(--header-h) + var(--safe-top));
  background:linear-gradient(180deg,#fff 0%,var(--brand-pale) 72%,#FFEBD7 100%);
}
.hero-wave{
  left:-6%;
  right:-6%;
  bottom:0;
  height:92px;
  background:var(--brand);
  border-radius:50% 50% 0 0/52% 52% 0 0;
  transform:none;
}
.hero-grid{
  width:min(var(--site-max),100%);
  min-height:0;
  grid-template-columns:minmax(0,1.02fr) minmax(430px,.98fr);
  gap:72px;
  padding:74px 0 128px;
  align-items:center;
}
.hero-copy{max-width:700px;padding-top:0}
.hero-brandline{font-size:var(--type-ui);color:var(--ink-2)}
.hero-mini-mark{width:9px;height:9px;background:var(--brand)}
.hero-kicker{margin-top:18px;color:#9A8778;font-size:var(--type-micro);letter-spacing:.20em}
.hero h1{
  margin-top:11px;
  font-size:clamp(56px,5.4vw,78px);
  line-height:1.05;
  letter-spacing:-.018em;
}
.hero-tag{max-width:620px;margin-top:22px;font-size:clamp(19px,1.7vw,23px);line-height:1.5}
.hero-lead{max-width:640px;margin-top:14px}
.hero-actions{margin-top:25px}
.hero-proof{margin-top:23px}
.hero-media{display:grid;min-width:0}
.hero-image-frame{
  width:100%;
  grid-column:1 / -1;
  border:0;
  padding:0;
  border-radius:30px;
  box-shadow:0 22px 54px rgba(72,42,18,.12);
  background:transparent;
}
.hero-image-frame img{
  display:block;
  width:100%;
  height:auto;
  aspect-ratio:auto;
  object-fit:initial;
  object-position:center
}
.hero-orbit{
  position:static;
  min-height:54px;
  margin:12px 0 0;
  padding:8px 10px;
  border:1px solid var(--line);
  border-radius:15px;
  background:#fff;
  color:var(--ink-2);
  box-shadow:none;
  display:inline-flex;
  font-size:var(--type-meta);
  font-weight:var(--weight-ui);
}
.hero-media .hero-orbit-a{grid-column:1}
.hero-media .hero-orbit-b{grid-column:2}
.hero-media .hero-orbit-c{grid-column:3}
.hero-media .hero-orbit-d{grid-column:4}
.hero-media{
  grid-template-columns:repeat(4,minmax(0,1fr));
  column-gap:8px;
}
.hero-media .hero-image-frame{grid-column:1 / -1}
.hero-media .hero-orbit{
  justify-content:center;
}
.hero-band-in{
  min-height:72px;
  justify-content:space-between;
  padding-inline:0;
}
.hero-band strong{font-size:16px}
.hero-band span{font-size:var(--type-meta)}
.section{padding-block:96px}
.section.warm{background:var(--brand-pale)}
.section-head{
  width:min(var(--site-max),100%);
  margin-bottom:38px;
}
.section-heading{gap:14px}
.section-index{
  width:44px;
  height:27px;
  border-radius:999px;
  background:var(--brand-soft);
  color:var(--brand-strong);
}
.section-intro{max-width:720px}
.section-intro .lead{color:var(--muted)}
.eyebrow{letter-spacing:.18em;color:#9A8778}
.section h2{font-size:clamp(42px,4.4vw,58px)}
#about>.wrap{
  display:grid;
  grid-template-columns:1fr;
}
#about>.wrap>.section-head{order:1}
#about>.wrap>.lifecycle{order:2}
#about>.wrap>.about-story{order:3}
#about>.wrap>.module-strip{order:4}
.lifecycle{
  margin-top:0;
  margin-bottom:26px;
  padding:26px 30px;
  border:1px solid #F1DCC8;
  border-left:4px solid var(--brand);
  border-radius:22px;
  background:#fff;
}
.lifecycle-head{
  padding-bottom:14px;
  border-bottom:1px solid var(--line);
}
.life-flow{margin-top:20px}
.life-dot{width:38px;height:38px}
.about-story{
  grid-template-columns:minmax(0,1fr) minmax(0,1fr);
  gap:34px;
  align-items:stretch;
}
.about-photo{
  border-radius:24px;
  min-height:100%;
}
.about-photo img{
  aspect-ratio:16/8.7;
  height:100%;
  object-fit:cover;
}
.about-text{
  gap:16px;
  align-content:center;
  padding:6px 0;
}
.module-strip{
  margin-top:22px;
  border-radius:18px;
}
.module-strip span{
  min-height:60px;
  background:#fff;
  transition:background .15s ease;
}
.module-strip span:hover{background:var(--brand-pale)}
#position .position-quote{
  margin-bottom:22px;
  border-left-width:4px;
  background:linear-gradient(90deg,var(--brand-pale),#fff);
}
.feature-grid{
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:12px;
}
.feature-card{
  min-height:258px;
  padding:25px;
  border-radius:22px;
  box-shadow:0 8px 26px rgba(72,42,18,.035);
}
.feature-card:nth-child(3){
  background:var(--brand-pale);
}
.feature-card h3{font-size:19px}
.feature-card p{max-width:39em}
.value-feature{
  padding:32px;
  border-radius:24px;
  background:var(--ink);
}
.value-grid{
  gap:12px;
  margin-top:12px;
}
.value-card{
  min-height:228px;
  padding:24px;
  border-radius:20px;
  box-shadow:0 8px 26px rgba(72,42,18,.03);
}
#ability .ability-stack{
  grid-template-columns:repeat(2,minmax(0,1fr));
  gap:12px;
}
.ability-card{
  min-height:190px;
  padding:22px;
  border-radius:20px;
}
.service-head{margin-top:42px}
.service-grid{gap:10px}
.service-grid article{
  min-height:150px;
  padding:17px;
  border-radius:18px;
}
#eco .eco-board{
  padding:6px;
}
.eco-center{
  width:min(292px,100%);
  border-color:#F2C49A;
  box-shadow:0 12px 34px rgba(87,44,10,.06);
}
.eco-node{
  min-height:112px;
  border-radius:18px;
  box-shadow:0 6px 20px rgba(72,42,18,.025);
}
.coop-grid{gap:10px}
.coop-grid article{
  min-height:140px;
  border-radius:18px;
}
.contact{
  padding-block:82px;
}
.contact-card{
  border-color:rgba(255,255,255,.4);
  background:rgba(32,26,22,.10);
  box-shadow:none;
}
