:root{
  --green:#17483b;
  --green-2:#255f50;
  --green-soft:#edf5ef;
  --cream:#fbf8ef;
  --cream-2:#f5efe0;
  --gold:#b78b31;
  --gold-soft:#d9bd75;
  --ink:#1c302a;
  --muted:#687871;
  --line:#e4dfcf;
  --white:#fff;
  --shadow:0 20px 60px rgba(42,64,54,.10);
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--cream);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;line-height:1.8}
a{color:inherit}.container{width:min(1160px,calc(100% - 40px));margin:auto}
.site-header{position:sticky;top:0;z-index:50;background:rgba(251,248,239,.93);backdrop-filter:blur(12px);border-bottom:1px solid rgba(183,139,49,.14)}
.header-inner{min-height:78px;display:flex;align-items:center;justify-content:space-between;gap:28px}.brand{display:flex;align-items:center;gap:12px;text-decoration:none}.brand-mark{width:42px;height:42px;border:1px solid rgba(183,139,49,.65);border-radius:50%;display:grid;place-items:center;font-family:Georgia,"Yu Mincho",serif;color:var(--green);font-size:24px;background:#fffdf8}.brand-text{display:flex;flex-direction:column;line-height:1.35}.brand-text strong{font-family:Georgia,"Yu Mincho",serif;font-size:20px;letter-spacing:.04em}.brand-text small{font-size:11px;color:var(--muted);letter-spacing:.05em}.main-nav{display:flex;align-items:center;gap:23px;font-size:13px}.main-nav a{text-decoration:none;color:#3d5149}.nav-contact{padding:9px 15px;border:1px solid var(--green);border-radius:999px}.menu-btn{display:none}
.hero{position:relative;overflow:hidden;min-height:700px;display:flex;align-items:center;background:radial-gradient(circle at 70% 10%,rgba(255,250,226,.98),transparent 33%),linear-gradient(135deg,#fffdf8 0%,#f9f4e6 58%,#eef4e9 100%)}
.hero:before,.hero:after{content:"";position:absolute;border-radius:50%;filter:blur(2px);pointer-events:none}.hero:before{width:480px;height:480px;right:-160px;top:-140px;background:radial-gradient(circle,rgba(123,157,104,.26),rgba(123,157,104,0) 70%)}.hero:after{width:340px;height:340px;left:-120px;bottom:-140px;background:radial-gradient(circle,rgba(183,139,49,.18),rgba(183,139,49,0) 70%)}
.leaf{position:absolute;width:160px;height:260px;opacity:.12;background:linear-gradient(145deg,var(--green),transparent);clip-path:polygon(49% 0,61% 18%,80% 40%,94% 69%,68% 61%,78% 87%,52% 72%,49% 100%,45% 71%,20% 89%,32% 61%,5% 69%,20% 40%,40% 17%)}.leaf-a{right:5%;top:7%;transform:rotate(24deg)}.leaf-b{left:2%;bottom:5%;transform:rotate(-28deg)}
.hero-grid{position:relative;z-index:2;display:grid;grid-template-columns:1.2fr .8fr;gap:72px;align-items:center;padding:100px 0}.kicker,.section-kicker{font-size:12px;letter-spacing:.19em;color:var(--gold);font-weight:800}.hero h1{font-family:Georgia,"Yu Mincho",serif;font-size:clamp(44px,5.5vw,76px);line-height:1.32;letter-spacing:.02em;margin:18px 0 26px;color:var(--green)}.hero h1 span{position:relative}.hero h1 span:after{content:"";position:absolute;height:1px;background:var(--gold);left:0;right:0;bottom:-9px}.hero-lead{max-width:720px;font-size:18px;color:#4d6159}.hero-actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:34px}.btn{display:inline-block;text-decoration:none;border-radius:999px;padding:13px 21px;font-weight:700;font-size:14px}.btn-primary{background:var(--green);color:#fff;border:1px solid var(--green)}.btn-outline{border:1px solid var(--green);color:var(--green);background:rgba(255,255,255,.7)}
.hero-panel{background:rgba(255,255,255,.78);border:1px solid rgba(183,139,49,.26);box-shadow:var(--shadow);border-radius:28px;padding:34px}.panel-label{font-family:Georgia,"Yu Mincho",serif;color:var(--green);font-size:20px;margin:0 0 18px}.values-mini{list-style:none;margin:0;padding:0}.values-mini li{padding:15px 0;border-bottom:1px solid #eee5cd;font-weight:700}.values-mini li span{color:var(--gold);font-family:Georgia,serif;font-size:24px;margin-right:14px}.panel-note{text-align:center;color:var(--green);font-family:Georgia,"Yu Mincho",serif;margin:24px 0 0;font-size:18px}
.section{padding:100px 0}.section-heading{max-width:850px;margin-bottom:44px}.section-heading.centered{text-align:center;margin-left:auto;margin-right:auto}.section-heading h2,.two-col h2,.business-grid h2{font-family:Georgia,"Yu Mincho",serif;color:var(--green);font-size:clamp(34px,4vw,52px);line-height:1.35;margin:10px 0 18px}.section-heading p{font-size:16px;color:var(--muted)}
.philosophy-section{background:#fffdf8}.philosophy-layout{display:grid;grid-template-columns:.78fr 1.22fr;gap:56px;align-items:start}.philosophy-image{margin:0;position:sticky;top:110px}.philosophy-image img{display:block;width:100%;height:auto;border-radius:22px;box-shadow:var(--shadow);border:1px solid rgba(183,139,49,.18)}.philosophy-copy blockquote{font-family:Georgia,"Yu Mincho",serif;font-size:28px;line-height:1.7;color:var(--green);margin:0 0 24px;padding-left:22px;border-left:2px solid var(--gold)}.philosophy-copy>p{color:var(--muted);font-size:16px}.value-grid{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:28px}.value-grid article{background:var(--cream);border:1px solid var(--line);border-radius:18px;padding:22px}.value-grid b{color:var(--gold);font-family:Georgia,serif;font-size:26px}.value-grid h3{margin:6px 0 8px;font-family:Georgia,"Yu Mincho",serif;color:var(--green);font-size:20px}.value-grid p{margin:0;color:var(--muted);font-size:14px}
.alcyon-section{background:var(--green-soft)}.two-col{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:start}.large-copy{font-family:Georgia,"Yu Mincho",serif;color:var(--green);font-size:24px;line-height:1.7}.check-list{list-style:none;padding:0;margin:28px 0 0}.check-list li{position:relative;padding:10px 0 10px 30px;border-bottom:1px solid rgba(23,72,59,.12)}.check-list li:before{content:"✓";position:absolute;left:0;color:var(--gold);font-weight:900}.info-card{background:#fff;border-radius:24px;border:1px solid rgba(23,72,59,.14);box-shadow:var(--shadow);overflow:hidden}.info-card-head{background:var(--green);color:#fff;padding:18px 24px;font-family:Georgia,"Yu Mincho",serif;font-size:20px}.info-card dl{margin:0;padding:6px 24px}.info-card dl div{display:grid;grid-template-columns:110px 1fr;gap:14px;padding:14px 0;border-bottom:1px solid #edf0ea}.info-card dt{color:var(--muted);font-size:13px}.info-card dd{margin:0}.text-link{display:block;padding:20px 24px;color:var(--green);font-weight:700;text-decoration:none}
.work-section{background:#fffdf8}.work-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px}.work-card{background:#fff;border:1px solid var(--line);border-radius:20px;padding:26px;min-height:240px}.work-icon{font-family:Georgia,serif;color:var(--gold);font-size:32px}.work-card h3{font-family:Georgia,"Yu Mincho",serif;color:var(--green);font-size:23px;margin:12px 0}.work-card p{color:var(--muted);font-size:14px}.web-card{background:linear-gradient(150deg,#fff,#f0f6f3);border-color:#c9ddd5}
.business-section{background:linear-gradient(135deg,#f8f0dc,#fffaf0)}.business-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:70px;align-items:center}.business-list{background:#fff;border-radius:24px;border:1px solid var(--line);box-shadow:var(--shadow);padding:16px 26px}.business-list div{display:grid;grid-template-columns:58px 1fr;gap:12px 0;padding:19px 0;border-bottom:1px solid #ece4d1}.business-list div:last-child{border-bottom:0}.business-list span{grid-row:1/3;color:var(--gold);font-family:Georgia,serif;font-size:27px}.business-list b{font-size:18px;color:var(--green)}.business-list small{color:var(--muted)}
.digital-section{background:#f2f6f3}.digital-grid{align-items:center}.digital-flow{display:grid;gap:12px}.digital-flow div{background:#fff;border:1px solid #d9e4de;border-radius:18px;padding:19px 22px}.digital-flow b{display:block;color:var(--green);margin-bottom:3px}.digital-flow span{font-size:14px;color:var(--muted)}
.company-section{background:#fffdf8}.company-box{background:#fff;border:1px solid var(--line);border-radius:22px;padding:12px 30px}.company-box dl{margin:0}.company-box dl div{display:grid;grid-template-columns:160px 1fr;padding:17px 0;border-bottom:1px solid #eee8d9}.company-box dl div:last-child{border-bottom:0}.company-box dt{color:var(--muted)}.company-box dd{margin:0}.policy-note{margin-top:22px;padding:24px 26px;border:1px solid #d9ddd5;background:#f5f8f5;border-radius:20px;display:flex;align-items:center;justify-content:space-between;gap:30px}.policy-note h3{margin:0 0 5px;color:var(--green)}.policy-note p{margin:0;color:var(--muted);font-size:14px;max-width:750px}
.site-footer{background:var(--green);color:#f7f1df;padding:50px 0 22px}.footer-grid{display:grid;grid-template-columns:1.1fr .7fr 1fr;gap:40px}.footer-grid strong{font-family:Georgia,"Yu Mincho",serif;font-size:23px}.footer-grid p{color:#dbe5df}.footer-links{display:flex;flex-direction:column;gap:6px}.footer-links a,.site-footer a{color:#fff4d5;text-decoration:none}.copyright{padding-top:26px;margin-top:28px;border-top:1px solid rgba(255,255,255,.16);font-size:12px;color:#c8d6d0}
.js .reveal{opacity:0;transform:translateY(16px);transition:opacity .7s ease,transform .7s ease}.js .reveal.visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.js .reveal{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}.delay-1{transition-delay:.12s}.delay-2{transition-delay:.22s}
@media(max-width:920px){.main-nav{display:none;position:absolute;top:78px;left:0;right:0;background:#fffdf8;padding:20px;flex-direction:column;border-bottom:1px solid var(--line)}.main-nav.open{display:flex}.menu-btn{display:block;border:1px solid var(--green);background:transparent;border-radius:999px;padding:8px 14px;color:var(--green)}.hero{min-height:auto}.hero-grid,.philosophy-layout,.two-col,.business-grid,.footer-grid{grid-template-columns:1fr}.hero-grid{padding:70px 0}.hero-panel{max-width:650px}.philosophy-image{position:static;max-width:560px;margin:auto}.work-grid{grid-template-columns:1fr 1fr}.value-grid{grid-template-columns:1fr}.policy-note{align-items:flex-start;flex-direction:column}.footer-grid{gap:20px}}
@media(max-width:600px){.container{width:min(100% - 28px,1160px)}.brand-text small{display:none}.section{padding:72px 0}.hero h1{font-size:42px}.hero-lead{font-size:16px}.work-grid{grid-template-columns:1fr}.company-box{padding:8px 18px}.company-box dl div,.info-card dl div{grid-template-columns:1fr;gap:4px}.footer-grid{grid-template-columns:1fr}}

/* ---- v2 additions ---- */
.leaf{display:none}
.hero-leaf{position:absolute;pointer-events:none;mix-blend-mode:multiply;z-index:1}
.hero-leaf-a{right:0;top:0;width:min(360px,34vw);aspect-ratio:568/600;background:url(/assets/leaf-tr.webp) center/cover;-webkit-mask-image:radial-gradient(circle at 100% 0,#000 35%,transparent 72%);mask-image:radial-gradient(circle at 100% 0,#000 35%,transparent 72%)}
.hero-leaf-b{left:0;bottom:0;width:min(300px,30vw);aspect-ratio:600/561;background:url(/assets/leaf-bl.webp) center/cover;-webkit-mask-image:radial-gradient(circle at 0 100%,#000 30%,transparent 70%);mask-image:radial-gradient(circle at 0 100%,#000 30%,transparent 70%);opacity:.9}
.nav-contact{white-space:nowrap}
.main-nav{gap:18px}
.brand-mark{font-size:22px}
.hero-lead b{color:var(--green)}
.flow{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;counter-reset:s;list-style:none;padding:0;margin:0}
.flow li{background:#fff;border:1px solid var(--line);border-radius:20px;padding:24px 22px;position:relative}
.flow li b{font-family:Georgia,serif;color:var(--gold);font-size:30px;display:block}
.flow li h3{margin:4px 0 8px;font-family:Georgia,"Yu Mincho",serif;color:var(--green);font-size:20px}
.flow li p{margin:0;color:var(--muted);font-size:14px}
.flow-note{margin-top:18px;color:var(--muted);font-size:14px}
.flow-section{background:var(--cream)}
.work-card.wide{grid-column:span 2;background:linear-gradient(135deg,#f8f0dc,#fffaf0);display:flex;flex-direction:column;justify-content:center}
.work-card .more{display:inline-block;margin-top:6px;color:var(--green);font-weight:700;text-decoration:none;font-size:14px}
.work-tag{display:inline-block;font-size:11px;color:var(--green);background:var(--green-soft);border-radius:999px;padding:2px 10px;margin:0 6px 4px 0}
.svc-band{background:#f2f6f3}
.svc-box{background:#fff;border:1px solid #d9e4de;border-radius:24px;padding:34px 38px;display:grid;grid-template-columns:1.3fr .7fr;gap:40px;align-items:center}
.svc-box h2{font-family:Georgia,"Yu Mincho",serif;color:var(--green);font-size:clamp(26px,3vw,36px);margin:8px 0 12px;line-height:1.4}
.svc-box p{color:var(--muted);margin:0 0 12px}
.svc-box .btns{display:flex;flex-direction:column;gap:12px;align-items:flex-start}
.contact-section{background:var(--green-soft)}
.contact-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px}
.contact-card{background:#fff;border:1px solid rgba(23,72,59,.14);border-radius:22px;padding:28px}
.contact-card h3{font-family:Georgia,"Yu Mincho",serif;color:var(--green);font-size:21px;margin:0 0 10px}
.contact-card p{margin:0 0 6px;color:var(--muted)}
.contact-card .big{font-size:24px;color:var(--green);font-weight:700;letter-spacing:.03em;text-decoration:none}
.contact-card .btn{margin-top:12px}
/* sub pages */
.page-hero{background:radial-gradient(circle at 80% 0,rgba(255,250,226,.98),transparent 40%),linear-gradient(135deg,#fffdf8,#f4eedc 70%,#eef4e9);padding:76px 0 56px;border-bottom:1px solid var(--line);position:relative;overflow:hidden}
.page-hero h1{font-family:Georgia,"Yu Mincho",serif;color:var(--green);font-size:clamp(34px,4.4vw,54px);line-height:1.35;margin:10px 0 16px}
.page-hero p{max-width:760px;color:#4d6159;font-size:17px;margin:0}
.crumbs{font-size:13px;color:var(--muted)}.crumbs a{color:var(--muted)}
.doc{padding:64px 0 100px}
.doc-inner{width:min(920px,calc(100% - 40px));margin:auto}
.doc section{background:#fff;border:1px solid var(--line);border-radius:18px;padding:26px 30px;margin:16px 0}
.doc h2{font-family:Georgia,"Yu Mincho",serif;color:var(--green);font-size:22px;margin:0 0 12px}
.doc h3{color:var(--green);font-size:16px;margin:20px 0 6px}
.doc p,.doc li{color:#4f6159}
.doc ul,.doc ol{padding-left:22px}
.doc table{width:100%;border-collapse:collapse;font-size:14px;margin:8px 0}
.doc th,.doc td{border:1px solid var(--line);padding:10px 12px;text-align:left;vertical-align:top}
.doc th{background:var(--green-soft);color:var(--green);white-space:nowrap}
.doc .table-wrap{overflow-x:auto}
.doc .callout{background:#f8f0dc;border:1px solid #e6d5a5;border-radius:14px;padding:16px 20px;color:#4a4130;margin:14px 0}
.doc .callout p{color:#4a4130;margin:0}
.doc .en{font-size:14px;color:#4f6159;border-left:3px solid var(--gold);padding-left:14px;margin:12px 0}
.toc{background:#fffdf8;border:1px solid var(--line);border-radius:18px;padding:20px 26px;margin:0 0 8px}
.toc b{color:var(--green)}.toc ol{columns:2;margin:8px 0 0}.toc a{color:var(--green)}
.steps{list-style:none;padding:0;margin:0;display:grid;gap:12px}
.steps li{display:grid;grid-template-columns:44px 1fr;gap:14px;align-items:start;padding:14px 0;border-bottom:1px solid #eee8d9}
.steps li:last-child{border-bottom:0}
.steps li>span{font-family:Georgia,serif;color:var(--gold);font-size:28px;line-height:1.2}
.steps li b{color:var(--green)}
.doc :target{scroll-margin-top:100px}
.site-footer .footer-links a{font-size:14px}
@media(max-width:920px){.flow{grid-template-columns:1fr 1fr}.svc-box,.contact-grid{grid-template-columns:1fr}.toc ol{columns:1}.hero-leaf-a{width:220px;opacity:.7}.hero-leaf-b{width:170px;opacity:.6}.work-card.wide{grid-column:span 2}}
@media(max-width:600px){.flow{grid-template-columns:1fr}.work-card.wide{grid-column:auto}.doc section{padding:20px 18px}.svc-box{padding:24px 20px}.page-hero{padding:54px 0 40px}.contact-card .big{font-size:21px}}
.hero h1{font-size:clamp(38px,4.5vw,64px)}
.hero h1 span{white-space:nowrap}
.hero-leaf-b{width:min(220px,22vw);opacity:.55}
@media(max-width:600px){.hero h1{font-size:34px}.hero h1 span{white-space:normal}}
@media(max-width:600px){.hero-leaf-a{width:150px;opacity:.4}.hero-leaf-b{display:none}.kicker{line-height:1.7}}
