:root{--green:#28634F;--deep:#163F34;--pale:#EAF2E6;--apricot:#C96C46;--paper:#FCFBF7;--ink:#263A32;--muted:#58685E;--line:#D9E2D8}
*{box-sizing:border-box}html{line-break:strict;scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:'Zen Kaku Gothic New',sans-serif;font-size:17px;line-height:1.9}button,a{-webkit-tap-highlight-color:transparent}a{color:inherit}button{font:inherit}h1,h2,h3,.c-hero__sub,.c-btn{word-break:auto-phrase;text-wrap:pretty}h1,h2,h3{font-family:'Zen Maru Gothic',sans-serif}a:focus-visible,button:focus-visible{outline:3px solid var(--apricot);outline-offset:5px}.c-skip{position:fixed;left:10px;top:-100px;z-index:100;background:#FFF;padding:10px}.c-skip:focus{top:10px}
.c-review{background:#FFF;border-bottom:1px solid var(--line);font-size:13px;padding:8px 32px;display:flex;justify-content:space-between;gap:16px;line-height:1.7}.c-review a{text-underline-offset:4px}.c-review strong{color:var(--green)}
/* header-06: logo + navigation + CTA, adapted to the client's name and verified contact scope */
.c-header{background:rgba(252,251,247,.97);border-bottom:1px solid var(--line);position:relative;z-index:20}.c-header__inner{max-width:1440px;margin:auto;padding:24px 40px;display:flex;align-items:center;justify-content:space-between;gap:26px}.c-header__brand{font-family:'Zen Maru Gothic',sans-serif;text-decoration:none;line-height:1.5;color:var(--green);font-size:22px;font-weight:700;white-space:nowrap}.c-header__brand small{display:block;color:var(--muted);font-size:11px;letter-spacing:.12em;font-family:'Zen Kaku Gothic New',sans-serif;font-weight:500}.c-header__right{display:flex;gap:30px;align-items:center}.c-header__nav{display:flex;gap:23px;align-items:center}.c-header__nav a{text-decoration:none;font-size:13px;font-weight:700;white-space:nowrap}.c-header__nav a:hover{text-decoration:underline;text-underline-offset:7px}.c-header__consult{background:var(--green);color:#FFF;text-decoration:none;padding:12px 22px;white-space:nowrap;font-size:14px;border-radius:4px}.c-header__toggle{display:none;border:1px solid var(--green);padding:8px 14px;color:var(--green);background:transparent;font-size:13px;border-radius:4px}
/* spmenu-01: right drawer and hierarchical accordion; native dialog supplies focus containment */
.c-drawer{position:fixed;inset:0 0 0 auto;margin:0;width:min(86%,380px);max-width:none;max-height:none;height:100dvh;border:0;background:var(--paper);padding:25px 24px;color:var(--ink)}.c-drawer::backdrop{background:rgba(22,63,52,.4)}.c-drawer__close{display:block;margin-left:auto;background:transparent;border:1px solid var(--line);padding:7px 14px;border-radius:4px}.c-drawer__nav{margin-top:22px}.c-drawer__nav>a,.c-drawer__nav summary{display:block;padding:14px 0;border-bottom:1px solid var(--line);font-size:16px;font-weight:700;text-decoration:none;cursor:pointer}.c-drawer__nav details a{display:block;font-size:14px;padding:11px 8px;text-decoration:none}.c-drawer__nav details{border-bottom:1px solid var(--line)}
.c-hero{position:relative;isolation:isolate;overflow:hidden;min-height:760px}.c-hero__inner{max-width:1440px;margin:auto;padding:80px 40px 74px;min-height:760px;display:grid;grid-template-columns:1.05fr 1fr;align-items:center;gap:30px;position:relative;z-index:2}.c-hero__copy{position:relative;z-index:2}.c-hero__eyebrow{font-size:14px;color:var(--green);font-weight:700;display:flex;gap:12px;align-items:center;margin:0 0 22px}.c-hero__eyebrow:before{content:'';width:35px;height:1px;background:currentColor}.c-hero h1{font-size:48px;line-height:1.55;margin:0 0 28px;font-weight:700;letter-spacing:-.03em}.c-hero h1 .c-title__line{display:block;white-space:nowrap}.c-hero__sub{font-size:16px;line-height:2;margin:0 0 30px;color:var(--muted);font-weight:500}.c-hero__sub span{display:block}.c-hero__actions{display:flex;align-items:flex-start;gap:20px;flex-direction:column}.c-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:30px;padding:17px 26px;color:#FFF;background:var(--green);text-decoration:none;font-size:16px;font-weight:700;line-height:1.7;border-radius:4px;min-height:60px}.c-btn::after{content:'→';font-size:21px;font-weight:400}.c-hero__story{font-size:13px;text-underline-offset:5px;color:var(--muted)}.c-hero__visual{position:relative;min-width:0;margin:0;padding:0 0 24px 0}.c-hero__visual img{display:block;width:100%;height:530px;object-fit:cover;object-position:53% 50%;border-radius:8px}.c-hero__visual figcaption{position:absolute;bottom:0;right:0;font-size:12px;color:var(--muted);line-height:1.8}.c-hero__signature{font-family:'Zen Maru Gothic',sans-serif;font-size:16px;position:absolute;bottom:45px;left:25px;background:rgba(252,251,247,.93);padding:10px 18px;color:var(--green)}
/* fv-23 Stagger: sequential character reveal; flash, impact shake and recurring letter motion removed */
.c-hero--a .c-hero__visual:before{content:'';position:absolute;inset:32px -20px 48px 36px;border:1px solid #BBCFBA;border-radius:8px;z-index:-1}.c-hero--a .c-title__char{display:inline-block}.c-title__phrase{display:inline-block;white-space:nowrap}.c-hero--a .c-hero__rule{height:2px;width:62px;background:var(--apricot);margin:0 0 26px}
@media(max-width:1300px){.c-header__inner{padding:20px 28px}.c-header__nav{gap:16px}.c-header__brand{font-size:19px}.c-header__right{gap:20px}.c-hero__inner{padding-left:34px;padding-right:34px;grid-template-columns:1.1fr 1fr;gap:20px}.c-hero h1,.c-stack h1{font-size:42px}.c-stack h2{font-size:46px}.c-hero__visual img{height:490px}}
@media(max-width:1080px){.c-header__nav{display:none}.c-header__toggle{display:block}.c-header__right{gap:14px}.c-hero h1,.c-stack h1{font-size:36px}.c-hero__inner{gap:15px}.c-hero__sub{font-size:15px}.c-hero__visual img{height:460px}}
@media(max-width:768px){.c-review{padding:8px 18px;font-size:11px;align-items:center}.c-review span{max-width:68%}.c-header__inner{padding:17px 20px;gap:8px}.c-header__brand{font-size:17px}.c-header__brand small{font-size:9px}.c-header__consult{display:none}.c-header__right{gap:0}.c-header__toggle{font-size:11px;padding:9px 10px}.c-hero{min-height:0}.c-hero__inner{min-height:0;grid-template-columns:1fr!important;padding:43px 24px 44px;gap:35px}.c-hero h1,.c-stack h1{font-size:32px;line-height:1.55;letter-spacing:-.04em;margin-bottom:23px}.c-hero h1 .c-title__line,.c-stack h1>.c-title__line{white-space:normal}.c-hero__eyebrow{font-size:12px;margin-bottom:22px;gap:10px}.c-hero__eyebrow:before{width:26px}.c-hero__sub{font-size:14px;line-height:1.9;margin-bottom:25px}.c-hero__actions{gap:17px}.c-btn{font-size:14px;padding:15px 21px;min-height:55px;gap:25px}.c-hero__story{font-size:12px}.c-hero__visual{max-width:480px;width:100%;margin:0 auto;padding-bottom:26px}.c-hero__visual img{height:auto;aspect-ratio:1.12;object-position:center}.c-hero--a .c-hero__visual:before{inset:20px -9px 42px 20px}.c-hero__signature{left:14px;bottom:41px;font-size:14px;padding:7px 13px}.c-hero__visual figcaption{font-size:11px}.c-hero--b .c-hero__visual img{height:auto;aspect-ratio:1.05}.c-hero--b .c-hero__signature{right:0}.c-hero--c .c-hero__visual{padding-top:10px;padding-bottom:27px}.c-hero--c .c-hero__visual img{height:auto;aspect-ratio:1.08}.c-hero--c .c-hero__signature{bottom:43px}.c-hero--d .c-hero__inner{padding-top:43px;padding-bottom:44px}.c-hero--d .c-hero__visual img{height:auto;aspect-ratio:1.1}.c-stack__panel{position:relative;top:auto;height:auto;min-height:0;padding:45px 24px}.c-stack__panel:not(:last-child){margin-bottom:0}.c-stack__inner{grid-template-columns:1fr;gap:32px}.c-stack__index{font-size:11px;margin-bottom:21px}.c-stack h2{font-size:32px}.c-stack p{font-size:15px}.c-stack__photo{height:auto;aspect-ratio:1.12}.c-stack__steps div{font-size:20px}.c-stack__proof{font-size:76px}.c-stack__aside{padding:0 0 0 22px}.c-stack__proof small{font-size:24px}.c-note{padding:40px 24px}.c-note h2{font-size:22px}.c-note p{font-size:13px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{animation:none!important;transition:none!important}.c-stack__panel{position:relative;top:auto}.c-hero__canvas{display:none}}
.l-wrap{width:min(1180px,calc(100% - 64px));margin-inline:auto}.l-narrow{width:min(820px,calc(100% - 64px));margin-inline:auto}.c-section{padding:110px 0;position:relative}.c-section h2{font-size:38px;line-height:1.55;font-weight:700;margin:15px 0 30px}.c-section h3{font-size:23px;line-height:1.65;margin:0 0 12px}.c-section p{margin:0 0 1.35em;max-width:42em}.c-kicker{display:flex;align-items:center;gap:12px;color:var(--green);font-size:12px;font-weight:700;letter-spacing:.08em}.c-kicker:before{content:'';width:30px;height:1px;background:var(--green)}.c-textlink{display:inline-flex;gap:25px;align-items:center;text-underline-offset:7px;font-size:15px;font-weight:700;color:var(--green)}.c-textlink:after{content:'→'}.c-section--pale{background:var(--pale)}.c-section--white{background:#FFF}.c-prose p{line-height:2.15}.c-prose>p:first-child{font-size:19px}.c-prose li{margin-bottom:10px}.c-prose h2{padding-top:25px}.c-prose h3{font-size:22px;margin:28px 0 15px}.c-prose blockquote{border-left:3px solid var(--green);margin:28px 0;padding:6px 0 6px 25px}.c-prose strong{font-weight:700}.c-prose table{border-collapse:collapse;width:100%;font-size:16px}.c-prose th,.c-prose td{text-align:left;border-bottom:1px solid var(--line);padding:17px 20px;vertical-align:top}.c-prose th{background:var(--pale);min-width:110px}.c-prose a{color:var(--green);text-underline-offset:5px}.c-prose hr{border:0;border-top:1px solid var(--line);margin:40px 0}.c-prose figure{margin:44px 0}.c-prose figure img{width:100%;height:auto;display:block;border:1px solid var(--line);background:#FFF}.c-prose figcaption{font-size:13px;color:var(--muted);padding-top:12px;line-height:1.8}.c-prose mark{background:linear-gradient(transparent 66%,#DCEBCB 66%);color:inherit;padding:0 .08em}.c-prose .blog-box{background:var(--pale);border-left:3px solid var(--green);padding:26px 30px;margin:30px 0}.c-prose .blog-box h4{margin:0 0 15px}.c-prose .blog-box ul{padding-left:22px}.c-prose .toc{background:var(--pale);padding:26px;margin:30px 0}.c-prose .toc a{font-size:14px}
/* sec-intro-04 manifesto, retuned to A */
.c-intro{text-align:center;background:#F2F5ED}.c-intro .c-kicker{justify-content:center}.c-intro .c-pull{font-size:70px;color:var(--green);font-weight:700;line-height:1.5;letter-spacing:-.04em;margin:22px 0 30px}.c-intro h2{font-size:30px;margin-top:0}.c-intro p{margin-inline:auto;max-width:36em}.c-intro:after{content:'';display:block;width:60px;height:2px;background:var(--apricot);margin:36px auto 0}
/* sec-reasons-02 sticky side and numbered rule-line index */
.c-reasons__layout,.c-faq__layout{display:grid;grid-template-columns:.8fr 1.2fr;gap:70px;align-items:start}.c-side{position:sticky;top:40px}.c-side p{color:var(--muted);font-size:16px}.c-reasons__list{border-top:1px solid var(--green)}.c-reasons__item{display:grid;grid-template-columns:65px 1fr;gap:20px;padding:35px 0;border-bottom:1px solid var(--line)}.c-reasons__num{font-family:'Zen Maru Gothic',sans-serif;color:#7D9A78;font-size:40px;line-height:1.5}.c-reasons__item p{font-size:16px;color:var(--muted);line-height:2}
/* sec-services-01: primary tile and two supporting tiles; no repeated three-column cards */
.c-services__grid{display:grid;grid-template-columns:1.2fr 1fr;gap:20px;margin-top:42px}.c-services__tile{background:#FFF;border:1px solid var(--line);padding:32px 35px;text-decoration:none;display:flex;flex-direction:column;align-items:flex-start;transition:transform .35s,background .35s}.c-services__tile:first-child{grid-row:span 2;background:var(--deep);color:#FFF;padding:40px}.c-services__tile small{font-size:12px;color:var(--green);margin-bottom:14px}.c-services__tile:first-child small{color:#C7DAB8}.c-services__tile h3{font-size:27px;margin:0 0 15px}.c-services__tile p{font-size:15px;line-height:2;color:var(--muted)}.c-services__tile:first-child p{color:#E0E9DD}.c-services__tile .c-services__arrow{margin-top:auto;padding-top:18px;font-size:14px;font-weight:700}.c-services__tile:hover{transform:translateY(-3px)}.c-services__illustration{display:flex;gap:9px;align-items:center;flex-wrap:wrap;margin:20px 0 28px}.c-services__illustration span{border:1px solid #739078;padding:12px 17px;border-radius:4px;font-size:16px}.c-services__illustration i{font-style:normal;color:#CADDBD}
/* sec-voice-02: large quote and source label; no invented portrait */
.c-voices__lead{max-width:36em;color:var(--muted)}.c-voice{border-top:1px solid var(--line);padding:36px 0;display:grid;grid-template-columns:180px 1fr;gap:35px}.c-voice__type{font-size:12px;color:var(--green);line-height:1.9}.c-voice blockquote{margin:0;font-family:'Zen Maru Gothic',sans-serif;font-size:23px;line-height:1.9}.c-voice__name{font-size:13px;color:var(--muted);margin-top:19px}.c-voice__name time{display:block}.c-voice__name small{font-size:11px}
/* sec-message-03 magazine spread */
.c-message__layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:80px}.c-message__portrait{margin:0;position:sticky;top:40px;align-self:start}.c-message__portrait img{width:100%;height:560px;object-fit:cover;object-position:center;border-radius:8px}.c-message__portrait figcaption{font-size:20px;margin-top:20px;color:var(--green)}.c-message__copy p{font-size:17px;line-height:2.1}.c-message__copy .c-kicker{border-bottom:1px solid var(--line);padding-bottom:17px}.c-message__copy h2{font-size:34px}.c-message__links{display:flex;gap:20px;flex-wrap:wrap;margin-top:30px}
/* sec-pricing-01 editorial scope; no unconfirmed price */
.c-pricing__layout{display:grid;grid-template-columns:.85fr 1.15fr;gap:70px;align-items:center;padding-top:32px;border-top:2px solid var(--green)}.c-pricing__label{font-family:'Zen Maru Gothic',sans-serif;font-size:40px;line-height:1.6;color:var(--green)}.c-pricing__copy p{font-size:17px;line-height:2}.c-pricing__copy .c-btn{margin-top:12px}
/* sec-faq-03 accessible native details */
.c-faq__items{border-top:1px solid var(--line)}.c-faq__item{border-bottom:1px solid var(--line);padding:0}.c-faq__item summary{list-style:none;cursor:pointer;padding:24px 34px 24px 0;position:relative;font-weight:700;font-size:16px;line-height:1.8}.c-faq__item summary::-webkit-details-marker{display:none}.c-faq__item summary:after{content:'＋';position:absolute;right:0;top:24px;color:var(--green)}.c-faq__item[open] summary:after{content:'−'}.c-faq__item p{font-size:15px;color:var(--muted);padding-right:20px;line-height:2;margin:0 0 25px}.c-faq__item summary:focus-visible{outline:2px solid var(--apricot);outline-offset:2px}
/* sec-process-01 vertical spine */
.c-process__list{position:relative;max-width:880px;margin:45px auto 0}.c-process__list:before{content:'';position:absolute;top:15px;bottom:40px;left:30px;width:1px;background:#B8CCB3}.c-process__step{display:grid;grid-template-columns:61px 1fr;gap:30px;position:relative;padding-bottom:35px}.c-process__num{border:1px solid var(--green);background:var(--paper);border-radius:50%;height:61px;display:grid;place-items:center;color:var(--green);font-size:20px;z-index:1}.c-process__step h3{font-size:23px;margin:7px 0 12px}.c-process__step p{font-size:16px;color:var(--muted)}
/* sec-links-01 large paired editorial links */
.c-community__grid{display:grid;grid-template-columns:1fr 1fr;gap:50px}.c-community__quote{background:var(--deep);color:#FFF;padding:45px 40px;position:relative;align-self:stretch;display:flex;flex-direction:column;justify-content:center}.c-community__quote h3{font-size:34px}.c-community__quote p{font-size:16px;line-height:2;color:#D9E6D4}.c-community__quote a{color:#FFF}.c-community__copy p{font-size:16px;line-height:2}.c-journal__list{border-top:1px solid var(--line);margin-top:40px}.c-journal__row{display:grid;grid-template-columns:140px 1fr 30px;gap:25px;align-items:center;text-decoration:none;border-bottom:1px solid var(--line);padding:28px 0}.c-journal__row small{font-size:12px;color:var(--muted)}.c-journal__row h3{font-size:21px;margin:0}.c-journal__row span{font-size:22px;color:var(--green)}.c-journal__row:hover h3{text-decoration:underline;text-underline-offset:6px}
/* sec-cta-01 full-bleed portrait + dark scrim; copy remains HTML */
.c-final{position:relative;isolation:isolate;min-height:620px;padding:115px 24px;display:flex;align-items:center;text-align:center;overflow:hidden;color:#FFF}.c-final__image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center 43%;z-index:-2}.c-final:before{content:'';position:absolute;inset:0;background:rgba(14,49,36,.88);z-index:-1}.c-final__inner{max-width:810px;margin:auto}.c-final h2{font-size:42px;line-height:1.55;margin:0 0 30px}.c-final p{line-height:2;font-size:17px;margin:0 0 15px}.c-final .c-btn{margin-top:26px;background:var(--pale);color:var(--deep)}.c-final small{display:block;font-size:13px;margin-top:20px;color:#DBE7D5}
/* subpage title band and reading index */
.c-pagehero{padding:65px 0 60px;background:var(--pale);border-bottom:1px solid #D1DECA}.c-pagehero__crumbs{font-size:12px;color:var(--muted);margin-bottom:28px}.c-pagehero__crumbs a{text-underline-offset:4px}.c-pagehero h1{font-size:43px;line-height:1.55;margin:0 0 18px;max-width:24em}.c-pagehero p{font-size:16px;line-height:2;max-width:42em;margin:0;color:var(--muted)}.c-page-layout{display:grid;grid-template-columns:210px 1fr;gap:65px;padding:75px 0 95px}.c-page-index{position:sticky;top:35px;align-self:start;border-top:1px solid var(--line)}.c-page-index b{display:block;font-size:12px;color:var(--green);padding:18px 0}.c-page-index a{display:block;text-decoration:none;border-bottom:1px solid var(--line);font-size:13px;line-height:1.8;padding:12px 0}.c-page-index a:hover{color:var(--green)}.c-page-body{min-width:0}.c-page-body h2{font-size:30px;margin:45px 0 23px;line-height:1.6}.c-page-body h2:first-child{margin-top:0}.c-page-body p{font-size:17px;line-height:2.1;margin:0 0 1.4em}.c-page-body li{font-size:16px;line-height:2}.c-page-body .c-faq__item p{font-size:15px}.c-author{display:grid;grid-template-columns:85px 1fr;gap:22px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:27px 0;margin:45px 0}.c-author img{width:85px;height:100px;object-fit:cover;border-radius:4px}.c-author h2{font-size:19px;margin:0 0 9px}.c-author p{font-size:13px;line-height:1.9;margin:0}.c-author a{font-size:13px}.c-blog-note{font-size:12px!important;color:var(--muted);border-left:2px solid #B8CCB3;padding-left:15px;margin:0 0 30px!important}.c-categories{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0}.c-categories button{border:1px solid var(--line);padding:8px 16px;background:#FFF;font-size:13px;cursor:pointer}.c-categories button[aria-pressed=true]{background:var(--green);color:#FFF;border-color:var(--green)}.c-journal__row[hidden]{display:none}.c-history__summary{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;border-top:1px solid var(--line);border-bottom:1px solid var(--line);padding:24px 0;margin:35px 0}.c-history__summary strong{font-size:34px;color:var(--green);font-family:'Zen Maru Gothic',sans-serif}.c-history__summary span{display:block;font-size:12px;color:var(--muted)}.c-history__links{display:flex;flex-wrap:wrap;gap:15px;margin-top:35px}.c-history__links a{color:var(--green);font-size:14px;text-underline-offset:5px}.c-contact__panel{border:1px solid var(--line);background:var(--pale);padding:35px;margin:32px 0}.c-contact__panel h2{margin-top:0}.c-related{padding-top:35px;margin-top:45px;border-top:1px solid var(--line)}.c-related a{display:block;padding:12px 0;text-underline-offset:5px;color:var(--green);font-size:15px}
/* footer-01: shared sitemap and visible business facts */
.c-footer{background:var(--deep);color:#F3F6EE}.c-footer__top{width:min(1240px,calc(100% - 64px));margin:auto;display:grid;grid-template-columns:1fr 1.5fr;gap:65px;padding:75px 0 55px}.c-footer__brand>a{font-size:25px;font-weight:700;font-family:'Zen Maru Gothic',sans-serif;text-decoration:none;line-height:1.65}.c-footer__brand p{font-size:13px;color:#CEDDCA;line-height:2;margin:22px 0}.c-footer__social{display:flex;gap:15px;flex-wrap:wrap}.c-footer__social a{font-size:12px;text-underline-offset:5px}.c-footer__cols{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.c-footer__cols h2{font-size:13px;color:#D1E3C2;margin:0 0 18px}.c-footer__cols a{font-size:12px;line-height:1.8;display:block;text-decoration:none;padding:7px 0}.c-footer__cols a:hover{text-decoration:underline;text-underline-offset:5px}.c-footer__bottom{border-top:1px solid #4C6F5E;padding:22px 32px;font-size:11px;color:#C5D8C1;text-align:center}.c-review-banner{background:#F0F3E9;border-bottom:1px solid var(--line);font-size:11px;text-align:center;padding:6px 20px;color:#576B58}
input,textarea,select{max-width:100%;box-sizing:border-box}input[type=text],input[type=email],input[type=tel],input[type=url],textarea,select{width:100%;font-size:16px}
@media(max-width:1000px){.c-section{padding:85px 0}.c-reasons__layout,.c-faq__layout{gap:40px}.c-message__layout{gap:45px}.c-message__portrait img{height:470px}.c-section h2{font-size:33px}.c-page-layout{gap:35px;grid-template-columns:170px 1fr}.c-footer__top{gap:35px;grid-template-columns:1fr 1.4fr}.c-footer__cols{gap:15px}}
@media(max-width:768px){.l-wrap,.l-narrow{width:calc(100% - 48px)}.c-section{padding:62px 0}.c-section h2{font-size:28px;margin:15px 0 25px}.c-section h3{font-size:21px}.c-intro .c-pull{font-size:50px;margin-bottom:23px}.c-intro h2{font-size:24px}.c-intro p{font-size:15px;line-height:2}.c-reasons__layout,.c-faq__layout,.c-message__layout,.c-pricing__layout,.c-community__grid{grid-template-columns:1fr;gap:32px}.c-side,.c-message__portrait{position:static}.c-reasons__item{grid-template-columns:45px 1fr;gap:14px;padding:27px 0}.c-reasons__num{font-size:30px}.c-reasons__item p{font-size:15px}.c-services__grid{grid-template-columns:1fr;gap:15px;margin-top:30px}.c-services__tile,.c-services__tile:first-child{padding:27px 25px;grid-row:auto}.c-services__tile h3{font-size:24px}.c-services__illustration{gap:6px}.c-services__illustration span{font-size:13px;padding:9px 11px}.c-voice{grid-template-columns:1fr;gap:15px;padding:29px 0}.c-voice blockquote{font-size:20px;line-height:1.9}.c-voice__name{margin-top:13px}.c-message__portrait{max-width:470px}.c-message__portrait img{height:auto;aspect-ratio:1.15}.c-message__copy h2{font-size:28px}.c-message__copy p{font-size:15px}.c-message__portrait figcaption{font-size:17px;margin-top:12px}.c-pricing__label{font-size:30px}.c-pricing__copy p{font-size:15px}.c-faq__item summary{font-size:15px;padding-block:21px}.c-faq__item p{font-size:14px}.c-process__step{grid-template-columns:45px 1fr;gap:18px;padding-bottom:25px}.c-process__num{height:45px;font-size:15px}.c-process__list:before{left:22px}.c-process__step h3{font-size:20px;margin-top:5px}.c-process__step p{font-size:15px}.c-community__quote{padding:33px 27px}.c-community__quote h3{font-size:27px}.c-community__quote p,.c-community__copy p{font-size:15px}.c-journal__row{grid-template-columns:1fr 24px;gap:8px;padding:24px 0}.c-journal__row small{grid-column:1/-1}.c-journal__row h3{font-size:18px}.c-final{min-height:0;padding:75px 24px}.c-final h2{font-size:29px}.c-final p{font-size:15px}.c-final small{font-size:12px}.c-pagehero{padding:38px 0 41px}.c-pagehero h1{font-size:31px}.c-pagehero p{font-size:14px}.c-pagehero__crumbs{font-size:11px;margin-bottom:23px}.c-page-layout{display:block;padding:42px 0 60px}.c-page-index{position:static;margin:0 0 40px;display:grid;grid-template-columns:1fr 1fr;gap:0 22px}.c-page-index b{grid-column:1/-1}.c-page-index a{font-size:12px}.c-page-body h2{font-size:25px;margin-top:40px}.c-page-body h3{font-size:20px}.c-page-body p,.c-prose>p:first-child{font-size:16px;line-height:2.05}.c-page-body li{font-size:15px}.c-prose table{font-size:14px}.c-prose th,.c-prose td{padding:14px 10px;overflow-wrap:anywhere}.c-prose th{min-width:75px}.c-prose figcaption{font-size:12px}.c-prose figure{margin:30px 0}.c-contact__panel{padding:27px 23px}.c-footer__top{width:calc(100% - 48px);grid-template-columns:1fr;gap:40px;padding:55px 0 40px}.c-footer__brand>a{font-size:22px}.c-footer__cols{grid-template-columns:1fr 1fr;gap:28px 23px}.c-footer__cols h2{margin-bottom:10px}.c-footer__cols a{font-size:12px}.c-history__summary{gap:10px;padding:20px 0}.c-history__summary strong{font-size:28px}.c-history__summary span{font-size:10px}.c-author{grid-template-columns:65px 1fr;gap:17px}.c-author img{width:65px;height:85px}.c-author p{font-size:12px}.c-author h2{font-size:17px}}
.c-prose a.c-btn{color:#FFF}[hidden]{display:none!important}
.c-header{position:sticky;top:0;z-index:20}h2[id],h3[id],section[id]{scroll-margin-top:115px}
.hero{width:100%;max-width:none}.c-hero--a .c-hero__visual:before{mix-blend-mode:multiply}.c-hero__rule{transform-origin:left;animation:wakabaRule .8s ease-out both}@keyframes wakabaRule{from{transform:scaleX(0)}to{transform:scaleX(1)}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.c-hero__rule{animation:none}}

/* Reading refinements verified from the full-page review. */
.c-phrase{display:inline-block;white-space:nowrap}.c-prose th{white-space:nowrap}
.c-page-body .c-services__grid{grid-template-columns:1fr 1fr}.c-page-body .c-services__tile:first-child{grid-column:1/-1;grid-row:auto;min-height:0}
@media(max-width:768px){.c-page-body .c-services__grid{grid-template-columns:1fr}}
:root{--ai:#28634F;--ai2:#163F34;--shu:#B55D3A;--yama:#BBD3AA;--yama2:#EAF2E6;--kami:#FCFBF7;--kami2:#F2F5ED;--body:#263A32}/* blog-shared.css — ブログ（個別/一覧）・サイドバー・page-hero(marquee) の共通CSS断片。
   STEP 7 で各サイトの assets/css/_shared.css の末尾に追記して使う。
   前提トークン: --ai --ai2 --shu --yama --yama2 --kami --kami2 --ink --body --muted --line。
   ベースの .page-hero{...} は _shared.css に既にある前提（ここは marquee 追加と post/sidebar/archive）。 */

/* サイト側のリセット有無に依存しないための保険。padding を持つ箱が幅指定と足し算されて
   スマホで横スクロールを出す事故（375/390px）を防ぐ。 */
.post-wrap,.post-main,.post-side,.widget,.post-toc,.post-author,.post-body .cbox,
.post-body blockquote,.p-card,.p-card__bd{ box-sizing:border-box; }

/* ============ 固定ページ見出しヘッダー：右→左ギャラリー＋カラーオーバーレイ ============ */
.page-hero .wrap{ position:relative; z-index:3; }
.page-hero::before{ z-index:2; }
.page-hero__bg{ position:absolute; inset:0; z-index:0; overflow:hidden; display:flex; align-items:center; }
.page-hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(105deg, rgba(20,59,107,.90) 0%, rgba(31,95,166,.78) 50%, rgba(20,59,107,.90) 100%); }
.page-hero__mq{ display:flex; width:max-content; height:100%; will-change:transform; animation:page-hero-mq 64s linear infinite; }
.page-hero__mq img{ height:100%; width:auto; aspect-ratio:4/3; object-fit:cover; display:block; flex:0 0 auto; }
@keyframes page-hero-mq{ from{ transform:translateX(0); } to{ transform:translateX(-50%); } }
@media (prefers-reduced-motion: reduce){ .page-hero__mq{ animation:none; } }

/* ============ 投稿（single）ページ ============ */
.post-hero{ position:relative; overflow:hidden; color:#F1F4EF; padding:104px 0 70px; }
.post-hero__bg{ position:absolute; inset:0; z-index:0; }
.post-hero__bg img{ width:100%; height:100%; object-fit:cover; display:block; }
.post-hero__bg::after{ content:""; position:absolute; inset:0; background:linear-gradient(160deg, rgba(20,59,107,.74) 0%, rgba(15,40,80,.92) 100%); }
.post-hero::after{ content:""; position:absolute; left:0; right:0; bottom:0; height:5px; background:linear-gradient(90deg,var(--shu),var(--yama)); z-index:2; }
.post-hero .wrap{ position:relative; z-index:1; max-width:860px; }
.post-hero__meta{ display:flex; align-items:center; gap:12px; margin-bottom:18px; }
.post-hero__date{ font-family:'Zen Kaku Gothic New',sans-serif; font-size:13px; letter-spacing:.06em; color:rgba(241,244,239,.82); }
.post-hero__cat{ font-size:11px; font-weight:700; letter-spacing:.08em; padding:4px 12px; border-radius:999px; color:#fff; background:var(--ai); }  /* 既定色（WPでis-*が付かない時用）。is-*が上書き */
.post-hero h1{ font-family:'Zen Maru Gothic',sans-serif; font-weight:800; font-size:clamp(25px,3.8vw,40px); line-height:1.55; letter-spacing:.04em; margin:0; color:#F6F8F4; }
.post-hero .crumb{ font-family:'Zen Kaku Gothic New',sans-serif; font-size:10.5px; letter-spacing:.18em; color:rgba(241,244,239,.6); margin:24px 0 0; }
.post-hero .crumb a{ color:rgba(241,244,239,.82); text-decoration:none; }

/* 投稿レイアウト：本文 + サイドバー */
.post-wrap{ display:grid; grid-template-columns:minmax(0,1fr) 312px; gap:52px; max-width:1140px; margin:0 auto; padding:56px 24px 96px; align-items:start; }
.post-main{ min-width:0; }
.post-figure{ margin:0 0 36px; }
.post-figure img{ width:100%; border-radius:14px; box-shadow:0 24px 50px -28px rgba(20,30,46,.5); display:block; }
/* --- 本文タイポグラフィ（読みやすさの主戦場）---
   ねらい：1段落＝1〜3文で改行多め／強調は黄色マーカー／H2とH3で階層が一目で分かる。
   --mark はマーカーの黄色。サイトのパレットに合わせて調整してよい（淡い黄色を保つこと）。 */
.post-body{ --mark:#FFE9A8; counter-reset:h2c; font-size:16.5px; line-height:2.05; color:var(--body);
  word-break:auto-phrase; text-wrap:pretty; }   /* 助詞が行頭に落ちるのを減らす（Chrome）。他ブラウザでは無視される */
.post-body > *:first-child{ margin-top:0; }
.post-body p{ font-size:inherit; line-height:inherit; color:inherit; margin:0 0 1.85em; }
.post-body .post-lead{ font-size:17.5px; color:var(--ink); line-height:2; font-weight:500; margin:0 0 2.2em; padding:0 0 1.6em; border-bottom:1px solid var(--line); }

/* 見出し：H2＝横線＋番号、H3＝黄色の縦バー。粒度の違いが見た目で分かるようにする */
.post-body h2,.post-body h3{ word-break:auto-phrase; text-wrap:pretty; scroll-margin-top:96px; }
.post-body h2{
  font-family:'Zen Maru Gothic',sans-serif; font-size:clamp(21px,2.9vw,29px); font-weight:700;
  color:var(--ink); line-height:1.62; letter-spacing:.02em;
  margin:3.2em 0 1.1em; padding:0 0 .6em; border-bottom:1px solid var(--line); position:relative;
}
.post-body h2::before{
  counter-increment:h2c; content:counter(h2c,decimal-leading-zero);
  display:block; font-family:'Zen Kaku Gothic New',sans-serif; font-size:12px; font-weight:700;
  letter-spacing:.18em; color:var(--shu); margin:0 0 .5em;
}
.post-body h2::after{ content:""; position:absolute; left:0; bottom:-1px; width:4em; height:3px; background:var(--yama); }
.post-body h3{
  font-family:'Zen Maru Gothic',sans-serif; font-size:clamp(17px,2.1vw,21px); font-weight:700;
  color:var(--ink); line-height:1.65; margin:2.6em 0 .9em; padding-left:14px; border-left:4px solid var(--yama);
}
.post-body h2 + p,.post-body h3 + p{ margin-top:0; }
.post-body h2 + .post-img,.post-body h3 + .post-img{ margin-top:1.2em; }

/* 強調：太字は色を変えない。読ませたい「1文だけ」を黄色マーカー（記事全体で6〜10箇所）。
   マーカーの色はサイトのアクセントに合わせ替えてよい（医療系クライアントで緑を使った実例もある）。 */
.post-body strong{ font-weight:700; color:var(--ink); }
.post-body mark.marker{
  background:linear-gradient(transparent 60%, var(--mark) 60%);
  color:inherit; font-weight:700; padding:0 2px;
}
.post-body mark.marker strong{ font-weight:700; }
/* 短い注意語だけ色文字（「自己判断はせず」等）。1記事1〜2回まで */
.post-body .txt-alert{ color:var(--shu); font-weight:700; }

/* 枠3種：box＝チェック／warning＝注意・警告／remark＝穏やかな補足。役割で使い分け、混用しない */
.post-body .cbox{ margin:0 0 2em; padding:22px 26px 8px; border-radius:12px; border:1px solid var(--line); background:var(--kami2); border-left:4px solid var(--ai); }
.post-body .cbox__ttl{ font-family:'Zen Maru Gothic',sans-serif; font-weight:700; font-size:15.5px; color:var(--ink); margin:0 0 .9em; }
.post-body .cbox > :last-child{ margin-bottom:1em; }
.post-body .cbox p{ font-size:15.5px; line-height:1.95; }
.post-body .cbox li{ margin-bottom:.55em; }
.post-body .cbox--warning{ background:#FDF4F1; border-color:#EFCDC1; border-left-color:var(--shu); }
.post-body .cbox--warning .cbox__ttl{ color:var(--shu); }
.post-body .cbox--remark{ background:#F5F7FA; border-color:#DFE5EC; border-left-color:var(--muted); }

/* リンク・コード */
.post-body a{ color:var(--shu); font-weight:700; text-decoration:underline; text-underline-offset:3px; text-decoration-thickness:1px; }
.post-body a:hover{ text-decoration-thickness:2px; }
.post-body code{ font-family:ui-monospace,Menlo,Consolas,monospace; font-size:.92em; background:var(--kami2); border:1px solid var(--line); border-radius:5px; padding:1px 6px; }

/* リスト：行間を本文よりわずかに詰め、項目の頭を目立たせる */
.post-body ul,.post-body ol{ margin:0 0 1.85em; padding:0; list-style:none; }
.post-body li{ position:relative; padding-left:1.6em; margin:0 0 .7em; line-height:1.95; }
.post-body ul > li::before{ content:""; position:absolute; left:.35em; top:.78em; width:8px; height:8px; border-radius:50%; background:var(--yama); }
.post-body ol{ counter-reset:olc; }
.post-body ol > li{ padding-left:2em; }
.post-body ol > li::before{
  counter-increment:olc; content:counter(olc);
  position:absolute; left:0; top:.28em; width:1.5em; height:1.5em; border-radius:50%;
  background:var(--ai); color:#fff; font-family:'Zen Kaku Gothic New',sans-serif; font-size:12px; font-weight:700;
  display:flex; align-items:center; justify-content:center;
}
.post-body li > ul,.post-body li > ol{ margin:.7em 0 0; }

/* 引用・画像・表 */
/* 引用＝他者の言葉。枠（.cbox）と見た目が被らないよう、背景は敷かず罫線だけで示す */
.post-body blockquote{ margin:.4em 0 2em; padding:2px 0 2px 26px; border-left:3px solid var(--line); }
.post-body blockquote p{ margin:0; font-size:15px; line-height:1.95; color:var(--muted); }
.post-body .post-img{ margin:0 0 2em; }
.post-body .post-img img{ width:100%; height:auto; border-radius:12px; display:block; }
.post-body .post-img figcaption{ margin-top:10px; font-size:12.5px; line-height:1.7; color:var(--muted); text-align:center; }
/* 表：横に広いときだけスクロールさせる。セルの文章は折り返してよい（nowrap にすると必ず横スクロールになる） */
.post-body table{ display:block; max-width:100%; overflow-x:auto; border-collapse:collapse; margin:0 0 1.85em; font-size:14.5px; line-height:1.75; }
.post-body th,.post-body td{ border:1px solid var(--line); padding:10px 14px; text-align:left; vertical-align:top; min-width:6em; }
.post-body th{ background:var(--kami2); font-weight:700; color:var(--ink); white-space:nowrap; }

/* 目次：h2 が2つ以上のときだけ出る（build_blog_pages.py が生成） */
.post-toc{ margin:0 0 40px; border:1px solid var(--line); border-radius:12px; background:var(--kami2); padding:22px 26px 24px; }
.post-toc__ttl{ font-family:'Zen Maru Gothic',sans-serif; font-size:15px; font-weight:700; color:var(--ink); margin:0 0 14px; padding-left:12px; border-left:4px solid var(--yama); }
.post-toc__list{ list-style:none; margin:0; padding:0; counter-reset:tocc; }
.post-toc__list li{ position:relative; padding-left:2em; margin:0 0 .6em; line-height:1.7; }
/* 番号は h2 の行だけに振る（h3 でも増やすと、本文の H2 番号とズレる） */
.post-toc__list li:not(.is-sub)::before{ counter-increment:tocc; content:counter(tocc,decimal-leading-zero); position:absolute; left:0; top:.15em; font-family:'Zen Kaku Gothic New',sans-serif; font-size:11px; font-weight:700; color:var(--shu); }
.post-toc__list li.is-sub{ padding-left:3.2em; font-size:13.5px; }
.post-toc__list li.is-sub::before{ content:"—"; position:absolute; left:1.6em; top:.15em; color:var(--muted); }
.post-toc a{ color:var(--ink); text-decoration:none; font-size:14.5px; font-weight:500; }
.post-toc a:hover{ color:var(--shu); text-decoration:underline; text-underline-offset:3px; }
.post-foot{ margin:44px 0 0; }
.post-foot__bar{ border-top:1px solid var(--line); padding-top:28px; display:flex; gap:16px; align-items:center; justify-content:space-between; flex-wrap:wrap; }
.post-foot__back{ display:inline-flex; align-items:center; gap:8px; text-decoration:none; font-weight:700; font-size:14px; color:var(--ink); }
.post-foot__back:hover{ color:var(--shu); }
.post-foot__cta{ display:inline-block; background:var(--ai); color:var(--kami); font-weight:700; font-size:13.5px; padding:12px 26px; border-radius:999px; text-decoration:none; transition:background .25s; }
.post-foot__cta:hover{ background:var(--shu); }

/* ============ 著者ボックス（この記事を書いた人）============ */
.post-author{ margin:52px 0 0; border:1px solid var(--line); border-radius:14px; background:var(--kami2); padding:26px 28px 28px; position:relative; }
.post-author__label{ position:absolute; top:-11px; left:24px; background:var(--ai); color:#fff; font-size:11px; font-weight:700; letter-spacing:.1em; padding:4px 14px; border-radius:999px; }
.post-author__row{ display:grid; grid-template-columns:88px 1fr; gap:22px; align-items:start; }
.post-author__ph{ width:88px; height:88px; object-fit:cover; border-radius:50%; display:block; border:3px solid #fff; box-shadow:0 10px 24px -14px rgba(20,30,46,.55); }
.post-author__bd{ min-width:0; }
.post-author__name{ font-family:'Zen Maru Gothic',sans-serif; font-weight:700; font-size:17px; color:var(--ink); margin:2px 0 8px; display:flex; align-items:baseline; gap:12px; flex-wrap:wrap; }
.post-author__role{ font-family:'Zen Kaku Gothic New',sans-serif; font-size:12px; font-weight:500; color:var(--muted); letter-spacing:.04em; }
.post-author__bio{ font-size:13.5px; line-height:1.95; color:var(--body); margin:0; }
.post-author__link{ display:inline-block; margin-top:12px; font-size:12.5px; font-weight:700; color:var(--shu); text-decoration:none; }
.post-author__link:hover{ text-decoration:underline; }
@media(max-width:680px){
  .post-author{ padding:24px 20px 22px; }
  .post-author__row{ grid-template-columns:64px 1fr; gap:16px; }
  .post-author__ph{ width:64px; height:64px; }
}

/* ============ サイドバー・ウィジェット ============ */
.post-side{ position:sticky; top:88px; display:flex; flex-direction:column; gap:26px; }
.widget{ background:#fff; border:1px solid var(--line); border-radius:14px; padding:22px 22px 24px; }
.widget__ttl{ font-family:'Zen Maru Gothic',sans-serif; font-size:16px; font-weight:700; color:var(--ink); margin:0 0 16px; padding-left:12px; border-left:4px solid var(--yama); letter-spacing:.04em; }
.w-search{ display:flex; gap:8px; }
.w-search input{ flex:1; min-width:0; border:1px solid var(--line); border-radius:8px; padding:10px 12px; font-size:13.5px; font-family:inherit; background:var(--kami2); }
.w-search button{ border:none; background:var(--ai); color:#fff; border-radius:8px; padding:0 16px; font-weight:700; cursor:pointer; }
.w-recent{ display:flex; flex-direction:column; gap:14px; }
.w-recent a{ display:grid; grid-template-columns:70px 1fr; gap:12px; align-items:center; text-decoration:none; color:inherit; }
.w-recent a.is-noimg{ grid-template-columns:1fr; }        /* サムネ未生成のとき（空欄を作らない） */
.p-card.p-card--noimg{ grid-template-columns:1fr; }       /* 一覧カードも同様（後方の .p-card 定義に負けないよう詳細度を上げる） */
.w-recent img{ width:70px; height:48px; object-fit:cover; border-radius:7px; display:block; }
.w-recent div{ min-width:0; }
.w-recent b{ font-family:'Zen Maru Gothic',sans-serif; font-weight:700; font-size:13px; line-height:1.5; color:var(--ink); display:block; }
.w-recent span{ font-family:'Zen Kaku Gothic New',sans-serif; font-size:10.5px; color:var(--muted); letter-spacing:.06em; }
.w-recent a:hover b{ color:var(--shu); }
.w-list{ list-style:none; margin:0; padding:0; }
.w-list li{ border-bottom:1px dashed var(--line); }
.w-list li:last-child{ border-bottom:none; }
.w-list a{ display:flex; justify-content:space-between; align-items:center; gap:10px; padding:10px 2px; text-decoration:none; color:var(--ink); font-size:13.5px; font-weight:500; }
.w-list a:hover{ color:var(--shu); }
.w-list .n{ font-family:'Zen Kaku Gothic New',sans-serif; font-size:11px; color:var(--muted); background:var(--kami2); border-radius:999px; padding:2px 9px; }
.w-cta{ background:linear-gradient(160deg,#2A6FB5,var(--ai2)); border:none; color:#F1F4EF; }
.w-cta .widget__ttl{ color:#fff; border-color:var(--yama2); }
.w-cta p{ font-size:13px; line-height:1.85; color:rgba(241,244,239,.82); margin:0 0 16px; }
.w-cta a{ display:inline-block; background:var(--yama2); color:var(--ai2); font-weight:700; font-size:13.5px; padding:12px 28px; border-radius:999px; text-decoration:none; }
.w-cta a:hover{ background:#fff; }

/* ============ ブログ/お知らせ 一覧（archive）カード ============ */
.p-news{ max-width:940px; }
.p-newsgrid{ display:grid; gap:28px; }
.p-card{ display:grid; grid-template-columns:320px 1fr; text-decoration:none; color:inherit; border:1px solid var(--line); border-radius:14px; overflow:hidden; background:#fff; transition:box-shadow .25s, transform .25s; }
.p-card:hover{ box-shadow:0 24px 46px -26px rgba(34,48,74,.5); transform:translateY(-3px); }
.p-card__ph{ overflow:hidden; background:var(--ai2); }
.p-card__ph img{ width:100%; height:100%; min-height:188px; object-fit:cover; display:block; transition:transform .5s; }
.p-card:hover .p-card__ph img{ transform:scale(1.05); }
.p-card__bd{ padding:26px 30px; display:flex; flex-direction:column; gap:10px; }
.p-card__meta{ display:flex; align-items:center; gap:12px; }
.p-card__date{ font-family:'Zen Kaku Gothic New',sans-serif; font-size:13px; letter-spacing:.06em; color:var(--muted); }
.p-card__cat{ font-size:11px; font-weight:700; letter-spacing:.08em; padding:4px 12px; border-radius:999px; color:#fff; background:var(--ai); }  /* 既定色。is-*が上書き */
.p-card__ttl{ font-family:'Zen Maru Gothic',sans-serif; font-size:clamp(18px,2.3vw,22px); font-weight:700; line-height:1.55; color:var(--ink); margin:0; }
.p-card__ex{ font-size:13.5px; line-height:1.9; color:var(--body); margin:0; }
.p-card__more{ margin-top:4px; font-family:'Zen Kaku Gothic New',sans-serif; font-size:11px; letter-spacing:.14em; color:var(--shu); font-weight:700; }
.p-newsnote{ font-size:12.5px; color:var(--muted); margin:30px 0 0; }

/* ============ カテゴリ色（post-hero/p-card 共通の .is-*）============ */
.post-hero__cat.is-event,.p-card__cat.is-event{ background:var(--shu); }
.post-hero__cat.is-guide,.p-card__cat.is-guide{ background:var(--ai); }
.post-hero__cat.is-trail,.p-card__cat.is-trail{ background:#5f8a5a; }
.post-hero__cat.is-map,.p-card__cat.is-map{ background:var(--yama); color:var(--ai2); }
.post-hero__cat.is-info,.p-card__cat.is-info{ background:#7c7464; }

/* ============ レスポンシブ（モバイルは1列）============ */
@media(max-width:900px){ .post-wrap{ grid-template-columns:1fr; gap:40px; padding:44px 22px 72px; } .post-side{ position:static; } }
@media(max-width:680px){
  .post-hero{ padding:84px 0 52px; }
  .p-card{ grid-template-columns:1fr; }
  .p-card__ph img{ min-height:0; aspect-ratio:1200/630; }
  .p-card__bd{ padding:22px; }
  /* スマホの読みやすさ：文字はやや小さく、行間は詰めすぎない。見出し前後の余白は圧縮 */
  .post-body{ font-size:16px; line-height:1.98; }
  .post-body .post-lead{ font-size:16.5px; padding-bottom:1.3em; margin-bottom:1.9em; }
  .post-body h2{ margin:2.6em 0 .9em; }
  .post-body h3{ margin:2.1em 0 .8em; }
  .post-body li{ padding-left:1.5em; }
  .post-body blockquote{ padding:16px 18px; }
  .post-body .cbox{ padding:18px 20px 6px; }
  .post-toc{ padding:18px 20px 20px; margin-bottom:32px; }
  .post-toc__list li.is-sub{ padding-left:2.6em; }
  .post-toc__list li.is-sub::before{ left:1.2em; }
}

.post-hero .wrap,.page-hero .wrap{width:min(1180px,calc(100% - 64px));margin:auto}.page-hero{padding:65px 0 60px;background:var(--pale);border-bottom:1px solid var(--line)}.page-hero h1{font-family:'Zen Maru Gothic',sans-serif;font-size:42px;line-height:1.55;margin:12px 0 20px}.page-hero p{max-width:44em;font-size:16px}.sec-eyebrow{font-size:12px;color:var(--green)}.crumb{font-size:12px!important;color:var(--muted)}.post-hero{background:var(--pale);color:var(--ink);padding:65px 0 55px}.post-hero__bg{display:none}.post-hero h1{color:var(--ink);font-size:39px;letter-spacing:0;font-family:'Zen Maru Gothic',sans-serif}.post-hero__date{color:var(--muted)}.post-hero .crumb,.post-hero .crumb a{color:var(--muted)}.post-hero:after{height:2px;background:var(--green)}.post-wrap{padding-top:65px;max-width:1220px;gap:50px}.post-body{--mark:#DDEBD1;font-size:17px;line-height:2.1}.post-body h2{font-size:29px}.post-body h3{font-size:22px}.post-side{top:35px}.w-cta{background:var(--deep)}.post-author{background:var(--pale)}.post-figure img{box-shadow:none;border-radius:5px}.p-news{width:min(1180px,calc(100% - 64px));margin:auto;padding:65px 0 90px;max-width:1180px}.p-card{border-radius:5px;grid-template-columns:360px 1fr}.p-card__ph img{object-fit:contain;background:var(--pale)}.p-card__bd{padding:26px 30px}.p-card__ttl{font-size:23px;line-height:1.7}.p-card__ex{font-size:14px}.widget{border-radius:5px}.post-toc{border-radius:5px}.post-author__photo img{object-fit:cover}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.c-blog-search{max-width:600px;margin:0 0 30px}.c-blog-search input{min-width:0}.post-body .cbox{border-radius:5px}
@media(max-width:768px){.post-hero .wrap,.page-hero .wrap,.p-news{width:calc(100% - 48px)}.page-hero{padding:40px 0}.page-hero h1,.post-hero h1{font-size:30px}.page-hero p{font-size:14px}.post-hero{padding:40px 0}.post-body{font-size:16px;line-height:2.05}.post-body h2{font-size:25px}.post-body h3{font-size:20px}.post-wrap{padding:42px 24px 65px;width:100%!important}.p-news{padding:40px 0 60px}.p-card{grid-template-columns:1fr}.p-card__ph img{aspect-ratio:1200/630}.p-card__bd{padding:23px}.p-card__ttl{font-size:21px}.p-card__date{font-size:11px}.w-cta a{padding:12px 23px}}

.wakaba-nav{display:flex;gap:24px;list-style:none;margin:0;padding:0}.wakaba-nav li{margin:0}.post-side ul{padding-left:18px}

.wakaba-nav>li{position:relative}.wakaba-nav .sub-menu{display:none;position:absolute;top:100%;left:0;min-width:210px;list-style:none;background:var(--paper);padding:15px 20px;box-shadow:0 8px 20px #163f3420;border:1px solid var(--line)}.wakaba-nav li:hover>.sub-menu,.wakaba-nav li:focus-within>.sub-menu{display:block}.wakaba-nav .sub-menu a{display:block;padding:8px 0}.post-body>.wp-block-group{margin-block:0}.post-author h2{font-size:18px;margin:0 0 8px;padding:0;border:0}.post-author h2:before,.post-author h2:after{display:none}

/* Service dropdown: parent links to the overview; children are separate links. */
.c-nav-dropdown{position:relative;padding:8px 0;margin:-8px 0}.c-nav-dropdown>a:after,.wakaba-nav .menu-item-has-children>a:after{content:"⌄";display:inline-block;margin-left:5px;font-size:13px}.c-nav-dropdown__items{display:none;position:absolute;top:100%;left:0;min-width:215px;padding:14px 20px;background:var(--paper);border:1px solid var(--line);box-shadow:0 8px 20px #163f3420}.c-nav-dropdown:hover>.c-nav-dropdown__items,.c-nav-dropdown:focus-within>.c-nav-dropdown__items{display:block}.c-nav-dropdown__items a{display:block;padding:9px 0}

/* WordPress thumbnails carry a fixed height attribute; retain their natural ratio. */
.post-figure img{height:auto}.post-body .post-toc__list>li:before{background:none;width:auto;height:auto;display:block;border-radius:0}.post-foot{display:flex;flex-wrap:wrap;gap:16px 24px;align-items:center}

.post-body .post-legacy{margin-block:0}.post-body .post-legacy img{max-width:100%;height:auto}.post-body .post-legacy figure{margin:30px 0}.post-body .post-archive-note{font-size:13px;line-height:1.8;background:var(--pale);padding:15px 18px;border-left:3px solid var(--line);color:var(--muted);margin:0 0 32px}

.post-body .post-legacy{overflow-wrap:anywhere}.post-body .post-legacy img{display:block;height:auto;max-width:100%;margin:24px auto;border-radius:5px}.post-body .post-legacy a{overflow-wrap:anywhere}

.post-body .post-toc__list{counter-reset:tocc}.post-body .post-toc__list li.is-sub::before{counter-increment:none}

.blog-categories{display:flex;flex-wrap:wrap;gap:10px;margin:0 0 36px}.blog-categories a{padding:8px 14px;border:1px solid var(--line);border-radius:5px;background:var(--paper);color:var(--deep);font-size:13px;line-height:1.6;text-decoration:none}.blog-categories a[aria-current="page"],.blog-categories a:hover{background:var(--deep);color:#fff}.blog-categories a:focus-visible{outline:2px solid var(--green);outline-offset:3px}.p-card__meta{display:flex;flex-wrap:wrap;gap:10px 14px;align-items:center;margin-bottom:12px}

.p-news .p-card__ttl{text-wrap:balance}

/* Blog index: four columns on desktop, two on mobile. */
.c-blog-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px 24px;align-items:stretch}
.c-blog-grid>.p-card{display:flex;flex-direction:column;min-width:0;height:100%;margin:0}
.c-blog-grid .p-card__ph{position:relative;flex:none;width:100%;aspect-ratio:16/10}
.c-blog-grid .p-card__ph img{position:absolute;inset:0;width:100%;height:100%;min-height:0;aspect-ratio:auto;object-fit:contain}
.c-blog-grid .p-card__bd{flex:1;padding:18px;gap:10px;min-width:0}
.c-blog-grid .p-card__meta{flex-direction:column;align-items:flex-start;gap:7px;margin:0}
.c-blog-grid .p-card__date{font-size:11px;letter-spacing:0}
.c-blog-grid .p-card__cat{max-width:100%;font-size:10px;line-height:1.6;letter-spacing:0;padding:4px 8px;white-space:normal}
.c-blog-grid .p-card__ttl{font-size:18px;line-height:1.65;letter-spacing:0;text-wrap:balance}
.c-blog-grid .c-card-phrase{white-space:nowrap}
.c-blog-grid .p-card__ex{font-size:13px;line-height:1.8;display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:3;overflow:hidden}
.c-blog-grid .p-card__ex p{margin:0}
.c-blog-grid .p-card__bd>span:last-child{margin-top:auto;padding-top:8px;font-size:12px;color:var(--deep)}
@media(max-width:768px){.c-blog-grid{grid-template-columns:repeat(2,minmax(0,1fr));gap:24px 20px}}
@media(min-width:769px) and (max-width:1023px){.c-blog-grid{gap:24px 16px}.c-blog-grid .p-card__bd{padding:12px}.c-blog-grid .p-card__ttl{font-size:16px}.c-blog-grid .p-card__ex{font-size:12px}}
@media(max-width:600px){.p-news:has(.c-blog-grid){width:calc(100% - 36px)}.c-blog-grid{gap:20px 12px}.c-blog-grid .p-card__bd{padding:12px;gap:9px}.c-blog-grid .p-card__ttl{font-size:15px}.c-blog-grid .p-card__ex{display:none}}
@media(max-width:360px){.p-news:has(.c-blog-grid){width:calc(100% - 20px)}.c-blog-grid{column-gap:8px}.c-blog-grid .p-card__bd{padding:7px}.c-blog-grid .p-card__ttl{font-size:14px}}
