/* コトおこし部: reuse the theme palette, fonts and shared page shell. */
.koto-page{overflow-wrap:anywhere}
.koto-page *, .koto-page *::before, .koto-page *::after{box-sizing:border-box}
.koto-page h1,.koto-page h2,.koto-page h3,.koto-page h4,.koto-section-lead,.koto-hero-catch{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900}
.koto-page p{margin:0 0 1.2rem}
.koto-page p:last-child{margin-bottom:0}
.koto-page h2,.koto-page h3,.koto-page h4{margin:0}
.koto-page [id]{scroll-margin-top:130px}
.koto-hero{padding:2rem 0 2.5rem}
.koto-hero-inner{position:relative}
.koto-hero-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,6rem);align-items:center}
.koto-page h1{font-size:clamp(1.25rem,2vw,1.65rem);letter-spacing:.12em;line-height:1.6;margin:1.4rem 0 1.2rem}
.koto-page .koto-hero-catch{font-size:clamp(2.6rem,5.6vw,5.3rem);line-height:1.32;letter-spacing:-.035em;margin:0}
.koto-hero-catch>span{color:var(--cod-green-dark)}
.koto-hero-right{max-width:36rem;font-size:.95rem;color:#43412f}
.koto-page .koto-intro-lead{font-size:clamp(1.08rem,1.6vw,1.22rem);font-weight:700;color:var(--cod-green-dark)}
.koto-motif{position:relative;isolation:isolate;height:210px;max-width:360px;margin:0 auto 1.6rem;display:grid;place-items:center}
.koto-motif-ring{position:absolute;width:160px;height:160px;border:2px solid var(--cod-green);border-radius:50%;top:10px}
.koto-motif-ring--one{left:calc(50% - 135px);background:rgba(255,255,255,.35);transform:rotate(-12deg)}
.koto-motif-ring--two{left:calc(50% - 25px);background:rgba(29,138,114,.10)}
.koto-motif-ring--three{top:50px;left:calc(50% - 80px);border-style:dashed}
.koto-motif-word{font-family:'Yomogi',cursive;font-size:3.8rem;position:relative;line-height:1;color:var(--cod-green-dark);margin-top:-15px;transform:rotate(-8deg)}
.koto-motif-note{position:absolute;bottom:0;font-size:.64rem;font-weight:700;letter-spacing:.22em;color:var(--cod-green-dark)}
.koto-hero-bottom{display:flex;align-items:center;justify-content:space-between;gap:1.5rem 2.5rem;margin-top:2.7rem;padding-top:1.8rem;border-top:1px solid rgba(18,63,52,.25)}
.koto-button{display:inline-flex;align-items:center;justify-content:center;gap:1.3rem;min-height:56px;max-width:100%;padding:1.1em 1.7em;border-radius:999px;background:var(--cod-green-dark);color:#fff;font-weight:700;font-size:.95rem;text-align:center;transition:background .2s,transform .2s}
.koto-button:hover{background:var(--cod-green);color:#fff;transform:translateY(-2px)}
.koto-button>span{font-size:1.35rem;line-height:1;flex:none}
.koto-index{display:flex;gap:.65rem 1.3rem;flex-wrap:wrap;font-size:.8rem;font-weight:700}
.koto-index a{color:var(--cod-green-dark);text-decoration:underline;text-underline-offset:.3em}
.koto-page a:focus-visible{outline:3px solid var(--cod-green);outline-offset:5px}
.koto-section{padding:clamp(3.5rem,7vw,6.5rem) 0}
.koto-split{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:clamp(2rem,7vw,7rem)}
.koto-heading{margin-bottom:2.5rem}
.koto-heading h2{display:flex;flex-direction:column;align-items:flex-start;gap:.65rem;font-size:1rem;line-height:1.6}
.koto-section-label{font-size:.85rem;font-weight:700;color:var(--cod-muted)}
.koto-page .koto-section-lead{font-size:clamp(1.65rem,3vw,2.6rem);line-height:1.5;letter-spacing:-.02em;margin:1.4rem 0 0;color:var(--cod-text)}
.koto-copy{color:var(--cod-muted);max-width:43em}
.koto-copy p:nth-last-child(2){font-weight:700;color:var(--cod-green-dark)}
.koto-services{background:#f2f5df;border-block:1px solid var(--cod-line)}
.koto-service-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1.4rem}
.koto-service-card{display:flex;flex-direction:column;padding:clamp(1.5rem,3vw,2.7rem);border:1.5px solid var(--cod-line);border-radius:28px;background:var(--cod-white)}
.koto-number{font-family:'Zen Kaku Gothic New',sans-serif;font-weight:900;font-size:3.4rem;line-height:1;color:var(--cod-green);margin-bottom:1.2rem}
.koto-service-card h3{font-size:clamp(1.2rem,1.9vw,1.65rem);line-height:1.6;margin-bottom:1.2rem}
.koto-service-card p{color:var(--cod-muted);font-size:.95rem}
.koto-scope{margin-top:auto;padding-top:1.3rem}
.koto-scope h4{border-top:1px solid var(--cod-line);padding-top:1.2rem;font-size:.78rem;letter-spacing:.1em;color:var(--cod-green-dark)}
.koto-scope ul{list-style:none;padding:0;margin:.8rem 0 0;display:flex;flex-wrap:wrap;gap:.55rem}
.koto-scope li{padding:.3em .8em;border-radius:999px;background:#f2f5df;color:var(--cod-green-dark);font-size:.77rem;font-weight:500;max-width:100%}
.koto-strengths{background:var(--cod-green-dark);color:#fff}
.koto-strengths .cod-kicker{color:var(--cod-lime)}
.koto-strengths .cod-kicker::before{background:var(--cod-lime)}
.koto-strengths .koto-section-label{color:#d3ece5}
.koto-strengths .koto-section-lead{color:#fff}
.koto-strength-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(1.5rem,3vw,3rem)}
.koto-strength-card{border-top:1px solid rgba(255,255,255,.3);padding-top:1.8rem}
.koto-strength-number{display:block;font-family:'Zen Kaku Gothic New',sans-serif;font-size:2.2rem;color:var(--cod-lime);font-weight:900;line-height:1;margin-bottom:1.4rem}
.koto-strength-card h3{font-size:1.2rem;line-height:1.7;margin-bottom:1.1rem}
.koto-strength-card p{font-size:.92rem;color:#d3ece5}
.koto-flow{list-style:none;padding:0;margin:0}
.koto-flow li{display:grid;grid-template-columns:4.5rem minmax(0,1fr);gap:1.5rem;padding:1.8rem 0;border-top:1px solid var(--cod-line)}
.koto-flow li:first-child{padding-top:0;border-top:0}
.koto-flow li:last-child{padding-bottom:0}
.koto-step{font-size:.68rem;font-weight:700;letter-spacing:.12em;color:var(--cod-green);line-height:1.5}
.koto-step strong{display:block;font-family:'Zen Kaku Gothic New',sans-serif;font-size:2.7rem;line-height:1.2;letter-spacing:0}
.koto-flow h3{font-size:1.15rem;line-height:1.65;margin-bottom:.7rem}
.koto-flow p{font-size:.95rem;color:var(--cod-muted)}
.koto-contact{background:var(--cod-lime);position:relative}
.koto-contact-inner{max-width:850px;text-align:center}
.koto-contact .koto-heading h2{align-items:center}
.koto-contact .koto-heading{margin-bottom:2rem}
.koto-contact .koto-section-lead{font-size:clamp(1.7rem,3.5vw,3rem)}
.koto-contact-inner>p{color:#43412f;max-width:43em;margin-inline:auto}
.koto-page .koto-contact-catch{margin-top:2rem;color:var(--cod-green-dark)}
.koto-page .koto-signature{font-size:.85rem;margin-bottom:1.7rem}
@media(min-width:1440px){.koto-hero-grid{gap:7rem}}
@media(max-width:1000px){.koto-hero-bottom{align-items:flex-start;flex-direction:column}.koto-strength-grid{gap:1.5rem}.koto-strength-card h3{font-size:1.08rem}.koto-split{gap:2.5rem}}
@media(max-width:760px){.koto-hero-grid,.koto-split{grid-template-columns:1fr}.koto-hero-grid{gap:2rem}.koto-page .koto-hero-catch{font-size:clamp(2.6rem,8.5vw,4rem)}.koto-hero-right{max-width:none}.koto-motif{height:180px;float:right;width:210px;margin:.2rem 0 1rem 1rem}.koto-motif-ring{width:125px;height:125px}.koto-motif-ring--one{left:calc(50% - 100px)}.koto-motif-ring--two{left:calc(50% - 25px)}.koto-motif-ring--three{left:calc(50% - 62px);top:40px}.koto-motif-word{font-size:3rem}.koto-motif-note{font-size:.48rem}.koto-hero-right::after{content:'';display:table;clear:both}.koto-hero-bottom{margin-top:2rem}.koto-strength-grid{grid-template-columns:1fr}.koto-strength-card{display:grid;grid-template-columns:3rem minmax(0,1fr);gap:0 1.3rem}.koto-strength-card h3{font-size:1.2rem}.koto-strength-number{grid-row:span 2;margin:0}.koto-strength-card p{grid-column:2}.koto-heading{margin-bottom:2rem}.koto-split>.koto-heading{margin-bottom:0}.koto-service-grid{gap:1rem}.koto-service-card h3{font-size:1.15rem}}
@media(max-width:580px){.koto-page .cod-container{width:calc(100% - 2.5rem)}.koto-page .cod-kicker{font-size:.66rem;letter-spacing:.18em}.koto-hero{padding-top:1.5rem}.koto-motif{float:none;width:100%;max-width:280px;height:190px;margin:0 auto 1.6rem}.koto-motif-ring{width:140px;height:140px}.koto-motif-ring--one{left:calc(50% - 115px)}.koto-motif-ring--three{left:calc(50% - 70px)}.koto-hero-right{font-size:.93rem}.koto-service-grid{grid-template-columns:1fr}.koto-index{gap:.9rem 1.2rem}.koto-button{width:100%;font-size:.88rem;gap:.7rem;padding:1.15em 1.1em}.koto-flow li{grid-template-columns:3.3rem minmax(0,1fr);gap:1rem}.koto-flow h3{font-size:1.08rem}.koto-contact-inner{text-align:left}.koto-contact .koto-heading h2{align-items:flex-start}.koto-section-label{font-size:.8rem}.koto-section-lead br{display:none}.koto-contact .koto-section-lead br{display:none}}
@media(prefers-reduced-motion:reduce){.koto-button{transition:none}.koto-button:hover{transform:none}}
