:root{--blue: #5a8a52;--blue-deep: #2f5a3d;--blue-soft: #8ab17d;--blue-pale: #dde9d3;--blue-wash: #eff5e9;--accent: #6ba4b8;--accent-soft: #b9d4dc;--cream: #f4f0e4;--cream-soft: #faf7ec;--white: #ffffff;--ink: #2c3a2e;--ink-soft: #5e6e60;--line: #e4ddc9;--line-blue: #d8e3cf;--radius-l: 12px;--radius-m: 10px;--radius-s: 8px}*{margin:0;padding:0;box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:Noto Sans JP,Hiragino Kaku Gothic ProN,sans-serif;font-weight:400;font-size:16px;line-height:2;color:var(--ink);background:var(--white);letter-spacing:.04em}img{max-width:100%;display:block}a{color:var(--blue-deep)}h1,h2,h3,h4{font-family:Zen Old Mincho,Hiragino Mincho ProN,serif;font-weight:600;line-height:1.7;letter-spacing:.04em}.site-header{position:sticky;top:0;z-index:100;background:#fffffff2;border-bottom:1px solid var(--line-blue);backdrop-filter:blur(8px)}.header-inner{max-width:1280px;margin:0 auto;padding:14px 30px;display:flex;align-items:center;gap:20px}.brand{text-decoration:none;display:flex;align-items:center;gap:12px;margin-right:auto}.brand-mark{width:40px;height:40px;flex:0 0 40px;display:block}.brand-text{display:flex;flex-direction:column;line-height:1.4}.brand-main{font-family:Zen Old Mincho,serif;font-weight:600;font-size:18px;color:var(--blue-deep);letter-spacing:.04em;white-space:nowrap}.brand-sub{font-family:Sacramento,cursive;font-size:15px;color:var(--blue-soft);letter-spacing:.04em;line-height:1;margin-top:2px}.global-nav ul{list-style:none;display:flex;flex-wrap:wrap;gap:2px}.global-nav a{display:block;padding:9px 13px;text-decoration:none;color:var(--ink);font-size:14.5px;font-weight:500;border-radius:var(--radius-s);position:relative;transition:color .25s}.global-nav a:after{content:"";position:absolute;left:13px;right:13px;bottom:4px;height:1.5px;background:var(--blue);transform:scaleX(0);transform-origin:left;transition:transform .28s}.global-nav a:hover{color:var(--blue-deep)}.global-nav a:hover:after{transform:scaleX(1)}.header-actions{display:flex;align-items:center;gap:16px}.header-tel{text-decoration:none;display:flex;flex-direction:column;align-items:flex-end;line-height:1.2}.header-tel-label{font-size:10.5px;color:var(--ink-soft);letter-spacing:.12em}.header-tel-num{font-family:Zen Old Mincho,serif;font-size:19px;font-weight:600;color:var(--blue-deep);letter-spacing:.02em}.header-cta{display:inline-block;background:var(--blue);color:#fff;font-size:14px;font-weight:500;text-decoration:none;padding:11px 24px;border-radius:999px;letter-spacing:.06em;transition:background .25s,transform .25s;white-space:nowrap}.header-cta:hover{background:var(--blue-deep);transform:translateY(-2px)}.nav-toggle{display:none}@media(max-width:1140px){.header-tel{display:none}}@media(max-width:1000px){.nav-toggle{display:flex;flex-direction:column;justify-content:center;gap:6px;width:50px;height:50px;padding:12px;order:3;background:var(--blue-wash);border:none;border-radius:var(--radius-s);cursor:pointer}.nav-toggle span{display:block;height:2px;border-radius:2px;background:var(--blue-deep);transition:transform .25s,opacity .25s}.nav-toggle.is-open span:nth-child(1){transform:translateY(8px) rotate(45deg)}.nav-toggle.is-open span:nth-child(2){opacity:0}.nav-toggle.is-open span:nth-child(3){transform:translateY(-8px) rotate(-45deg)}.header-actions .header-cta{display:none}.global-nav{position:absolute;top:100%;left:0;right:0;background:var(--white);border-bottom:1px solid var(--line-blue);display:none;padding:14px 24px 24px;box-shadow:0 16px 30px #2b4a6b14}.global-nav.is-open{display:block}.global-nav ul{flex-direction:column;gap:2px}.global-nav a{font-size:16px;padding:13px 14px}.global-nav a:after{display:none}}.side-tabs{position:fixed;right:0;top:50%;transform:translateY(-50%);z-index:90;display:flex;flex-direction:column;gap:10px}.side-tab{display:flex;flex-direction:column;align-items:center;gap:8px;padding:16px 9px;background:var(--white);color:var(--blue-deep);text-decoration:none;border:1px solid var(--line-blue);border-right:none;border-radius:14px 0 0 14px;box-shadow:-4px 4px 16px #2b4a6b1a;transition:background .25s,color .25s,padding-right .25s}.side-tab span{writing-mode:vertical-rl;font-size:13px;font-weight:600;letter-spacing:.16em;font-family:Zen Old Mincho,serif}.side-tab svg{color:var(--blue);transition:color .25s}.side-tab:hover{background:var(--blue);color:#fff;padding-right:13px}.side-tab:hover svg{color:#fff}.side-tab-alt{background:var(--cream-soft)}@media(max-width:900px){.side-tabs{display:none}}.wave-divider{line-height:0}.wave-divider svg{display:block;width:100%;height:80px}.wave-divider--footer svg{height:100px}@media(max-width:640px){.wave-divider svg{height:50px}.wave-divider--footer svg{height:64px}}.section{padding:104px 30px;position:relative}.section-inner{max-width:1140px;margin:0 auto}.bg-white{background:var(--white)}.bg-cream{background:var(--cream-soft)}.bg-wash{background:var(--blue-wash)}.bg-pale{background:var(--blue-pale)}.bg-blue{background:var(--blue);color:#fff}.outline-en{font-family:Zen Old Mincho,serif;font-weight:700;font-size:clamp(17px,2.9vw,34px);line-height:1.3;letter-spacing:.04em;color:var(--blue-soft);opacity:.5;user-select:none;pointer-events:none}.eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:12px;letter-spacing:.26em;color:var(--blue);font-weight:700;margin-bottom:16px;font-family:Zen Old Mincho,serif}.eyebrow:before{content:"";width:26px;height:1.5px;background:var(--blue-soft);display:inline-block}.eyebrow.on-blue{color:#fff}.eyebrow.on-blue:before{background:#ffffffb3}.heading{font-size:clamp(25px,3.4vw,37px);color:var(--ink);margin-bottom:28px;font-weight:600;line-height:1.55}.heading-deco{display:flex;align-items:center;gap:20px}.heading-deco:after{content:"";flex:1;height:1px;background:var(--line-blue)}.heading.on-blue{color:#fff}.lead{font-size:16px;line-height:2.35;color:var(--ink-soft);font-weight:400}.lead.on-blue{color:#ffffffe6}.sec-num{font-family:Zen Old Mincho,serif;font-weight:700;line-height:1;font-size:clamp(54px,8vw,104px);color:var(--cream)}.sec-num small{font-size:.42em;vertical-align:.3em;letter-spacing:.04em}.page-hero{position:relative;background:var(--blue-wash);overflow:hidden;padding:70px 30px 92px}.page-hero .hero-waves-top{position:absolute;top:0;left:0;right:0;height:200px;line-height:0;z-index:0}.page-hero .hero-waves-top svg{width:100%;height:100%}.page-hero .outline-en{position:absolute;top:28px;right:40px;left:auto;max-width:min(60%,560px);white-space:normal;text-align:right;z-index:1}.page-hero-grid{position:relative;z-index:2;max-width:1140px;margin:0 auto;display:grid;grid-template-columns:1.15fr .85fr;gap:48px;align-items:center}.page-hero-inner{position:relative;z-index:2}.page-hero h1{font-size:clamp(28px,4.2vw,44px);color:var(--blue-deep)}.page-hero .script{font-family:Sacramento,cursive;font-size:clamp(22px,3vw,30px);color:var(--blue-soft);display:block;margin-bottom:4px;line-height:1}.page-hero p.page-hero-lead{margin-top:14px;font-size:15px;color:var(--ink-soft);line-height:2.15;max-width:540px}.page-hero-photo{position:relative}.page-hero-photo .photo-frame{aspect-ratio:4 / 3.1;border-radius:16px 16px 90px}.page-hero-photo .ph-ring{position:absolute;right:-18px;top:-18px;width:96px;height:96px;border-radius:50%;border:2px solid var(--blue-soft);opacity:.5;z-index:-1}.page-hero .wave-bottom{position:absolute;left:0;right:0;bottom:-1px;line-height:0;z-index:3}.page-hero .wave-bottom svg{width:100%;height:56px;display:block}.breadcrumb{font-size:12px;color:var(--ink-soft);letter-spacing:.06em;margin-bottom:16px}.breadcrumb a{color:var(--ink-soft);text-decoration:none}.breadcrumb a:hover{color:var(--blue)}@media(max-width:820px){.page-hero-grid{grid-template-columns:1fr;gap:30px}.page-hero-photo{max-width:460px}.page-hero .outline-en{display:none}}.photo-frame{border-radius:var(--radius-l);overflow:hidden;box-shadow:0 20px 50px #2b4a6b24}.photo-frame img{width:100%;height:100%;object-fit:cover}.photo-soft{border-radius:var(--radius-l);overflow:hidden}.photo-soft img{width:100%;height:100%;object-fit:cover}.card{background:var(--white);border:1px solid var(--line-blue);border-radius:var(--radius-m);padding:34px 32px;box-shadow:0 10px 26px #2b4a6b0d}.btn{display:inline-block;background:var(--blue);color:#fff;font-size:16px;font-weight:500;text-decoration:none;font-family:Noto Sans JP,sans-serif;padding:16px 46px;border-radius:999px;letter-spacing:.08em;transition:background .25s,transform .25s,box-shadow .25s;box-shadow:0 8px 20px #3f669038}.btn:hover{background:var(--blue-deep);transform:translateY(-2px);box-shadow:0 12px 26px #2b4a6b47}.btn-ghost{display:inline-block;background:transparent;color:var(--blue-deep);border:1.5px solid var(--blue);font-size:15px;font-weight:500;text-decoration:none;padding:13px 38px;border-radius:999px;letter-spacing:.08em;transition:background .25s,color .25s}.btn-ghost:hover{background:var(--blue);color:#fff}.fade{opacity:0;transform:translateY(18px);transition:opacity .8s ease,transform .8s ease}.fade.is-visible{opacity:1;transform:none}@media(prefers-reduced-motion:reduce){.fade{opacity:1;transform:none;transition:none}html{scroll-behavior:auto}}table.info-table{width:100%;border-collapse:collapse;background:var(--white);border-radius:var(--radius-m);overflow:hidden;border:1px solid var(--line-blue)}table.info-table th,table.info-table td{border-bottom:1px solid var(--line-blue);padding:16px 22px;font-size:15px;text-align:left;line-height:1.95}table.info-table tr:last-child th,table.info-table tr:last-child td{border-bottom:none}table.info-table th{background:var(--blue-wash);color:var(--blue-deep);font-weight:700;white-space:nowrap;width:26%}.table-scroll{overflow-x:auto}.quote-card{position:relative}.quote-card .quote-mark{font-family:Zen Old Mincho,serif;font-size:64px;line-height:.7;color:var(--blue-pale);display:block;height:30px}.site-footer{background:var(--blue-deep);color:#d7e3ef;padding:28px 30px 30px}.footer-inner{max-width:1140px;margin:0 auto;display:flex;flex-wrap:wrap;gap:44px 60px;padding-top:24px}.footer-brand-row{display:flex;align-items:center;gap:12px}.footer-mark{display:block;width:36px;height:36px}.footer-brand{font-family:Zen Old Mincho,serif;font-weight:600;font-size:20px;color:#fff;letter-spacing:.06em}.footer-script{font-family:Sacramento,cursive;font-size:22px;color:var(--blue-soft);margin:4px 0 16px 48px;line-height:1}.footer-addr{font-size:14px;color:#b9cbdc;line-height:2.2}.footer-about{max-width:360px}.footer-nav-wrap{display:flex;gap:48px;flex-wrap:wrap}.footer-nav-head{font-size:13px;font-weight:700;color:#8ab17d;margin-bottom:14px;letter-spacing:.12em;font-family:Zen Old Mincho,serif}.footer-nav ul{list-style:none}.footer-nav li{margin-bottom:9px}.footer-nav a{color:#c3d3e2;text-decoration:none;font-size:14px}.footer-nav a:hover{color:#fff;text-decoration:underline}.copyright{text-align:center;margin-top:50px;font-size:12.5px;color:#7e98b3;letter-spacing:.08em}.fade,.reveal,[data-mo]{opacity:0;transform:translateY(24px);filter:blur(8px);transition:opacity 1.28s cubic-bezier(.19,1,.22,1),transform 1.28s cubic-bezier(.19,1,.22,1),filter 1.28s cubic-bezier(.19,1,.22,1);will-change:opacity,transform,filter}[data-mo=left]{transform:translate(-56px)}[data-mo=right]{transform:translate(56px)}.fade.is-in,.fade.is-visible,.reveal.is-in,.reveal.is-visible,[data-mo].is-in{opacity:1!important;transform:none!important;filter:none!important}.mo-im{opacity:0;transform:translateY(24px);filter:blur(8px);transition:opacity 1.28s cubic-bezier(.19,1,.22,1),transform 1.28s cubic-bezier(.19,1,.22,1),filter 1.28s cubic-bezier(.19,1,.22,1);will-change:opacity,transform,filter}.mo-im.is-in{opacity:1!important;transform:none!important;filter:none!important}@keyframes mo-hero-kb{0%{scale:1.16;translate:0% 0%}to{scale:1.36;translate:1.8% -1.6%}}.mo-hero-img{clip-path:inset(0 100% 0 0);transform:translate(-7%) scale(1.12);scale:1.16;animation:mo-hero-kb 19s ease-in-out infinite alternate;transition:clip-path 1.4s cubic-bezier(.65,0,.35,1),transform 1.5s cubic-bezier(.16,1,.3,1),opacity .8s ease,filter 1s ease}.mo-hero-go .mo-hero-img{clip-path:inset(0 0 0 0);transform:none}@keyframes mo-hero-text{0%{opacity:0;transform:translateY(42px)}to{opacity:1;transform:none}}.mo-hi{animation:mo-hero-text 1s both cubic-bezier(.16,1,.3,1)}.mo-tilt{transition:transform .4s cubic-bezier(.22,1,.36,1);will-change:transform}.mo-prog{position:fixed;top:0;left:0;height:3px;width:0;background:#5a8a52;z-index:99998}@media(prefers-reduced-motion:reduce){.fade,.reveal,[data-mo],.mo-im,.mo-hero-img{opacity:1!important;transform:none!important;filter:none!important;clip-path:none!important;transition:none!important;animation:none!important;scale:none!important;translate:none!important}[class*=hero] *{animation:none!important}.mo-prog{display:none!important}}
