/* FORGE shared design system — home, services, editorial and contact. */
:root{--site-width:1440px;--reading-width:740px;--section-space:clamp(64px,8vw,120px);--image-space:#e4e4e4;--rule:#d9d9d9}
body.layout-v2{font-family:'Noto Sans JP',sans-serif;font-size:16px;color:var(--ink);background:var(--paper)}
:where(h1,h2,h3,h4,h5,h6){font-weight:600}
:where(a,button,input,select,textarea):focus-visible{outline:2px solid currentColor;outline-offset:5px}
:where(input,select,textarea){font:inherit}
:where(button,a){-webkit-tap-highlight-color:transparent}
.site-header{max-width:var(--site-width);margin-inline:auto}
.lz-section,.interior .inner-hero,.interior .archive-section,.interior .service-index,.interior #contact-options,.related-articles{max-width:var(--site-width);margin-inline:auto}
.lz-section{padding-top:var(--section-space)}
.lz-section-head{gap:48px;margin-bottom:48px}
.lz-section-head>h2{font-size:clamp(32px,3.5vw,52px);line-height:1.18}
.lz-section-head>h2>span{font-size:13px;line-height:1.7;margin-top:13px}
.lz-section-head>p{font-size:18px;line-height:1.9}
.lz-service-card p,.lz-flow-list p,.lz-picture-copy p,.contact-actions p{font-size:16px;line-height:2}
.lz-news{padding-bottom:var(--section-space)}
.interior .service-content>section{padding-block:var(--section-space)}
.interior .service-content .wrap{max-width:calc(var(--site-width) - 2 * var(--gutter));margin-inline:auto}
.contact-heading,.contact-inner,.footer-grid,.footer-bottom{max-width:calc(var(--site-width) - 2 * var(--gutter));margin-inline:auto}
.contact-heading>a{font-size:clamp(72px,13.4vw,184px)}
.text-link,.solid-link{font-size:15px;font-weight:500;min-height:48px}
.solid-link,.forge-button{display:inline-flex;align-items:center;justify-content:space-between;gap:36px;border:1px solid var(--ink);border-radius:var(--radius);background:var(--ink);color:#fff;padding:19px 28px;min-height:60px;font:500 16px 'Noto Sans JP',sans-serif;cursor:pointer}
.solid-link:hover,.forge-button:hover{background:#363636;border-color:#363636;color:#fff}
.image-placement{width:100%;min-width:0;margin:0}
.image-placeholder{position:relative;width:100%;aspect-ratio:4/3;background:var(--image-space);overflow:hidden}
.image-placeholder-label{position:absolute;left:20px;right:20px;bottom:18px;color:#626262;font-size:12px;line-height:1.7}
.image-placement.thumbnail .image-placeholder{aspect-ratio:8/5}
.approach-grid{grid-template-columns:repeat(3,minmax(0,1fr));gap:32px;align-items:start;padding-bottom:48px}
.approach-grid>.lz-picture{padding:0;min-width:0}
.approach-grid>.lz-picture:nth-child(2){margin-top:48px}
.approach-grid>.lz-picture:nth-child(3){margin-top:96px}
.approach-grid img,.approach-grid .image-placeholder{width:100%;aspect-ratio:4/3;height:auto;object-fit:cover}
.approach-grid .lz-picture-copy{padding-top:25px}
.approach-grid h3{font-size:clamp(20px,1.8vw,25px);line-height:1.65;margin:14px 0 16px}
.approach-grid p{font-size:16px}
.lz-journal .journal-card{border:0;padding:0;min-height:0}
.lz-journal .journal-card .image-placement,.archive-grid .image-placement{margin-bottom:22px}
.lz-journal .journal-card .article-meta,.article-meta{font-size:13px;line-height:1.7;gap:22px;margin-bottom:16px}
.lz-journal .journal-card h3,.archive-grid .journal-card h3{font-size:21px;line-height:1.8}
.article-page .inner-hero{padding-bottom:64px}
.article-page .inner-hero h1{font-size:clamp(28px,3.3vw,46px);line-height:1.6}
.article-page .inner-hero .eyebrow{margin-bottom:18px}
.article-page .inner-hero .article-meta{display:flex;flex-wrap:wrap;color:var(--muted);margin-bottom:24px}
.article-page .no-image .interior-hero-copy{display:block;max-width:900px}
.article-layout{display:grid;grid-template-columns:240px minmax(0,740px);gap:clamp(40px,6vw,100px);max-width:calc(1180px + 2 * var(--gutter));margin:0 auto;padding:0 var(--gutter) 64px;align-items:start}
.article-layout.without-toc{display:block;max-width:calc(740px + 2 * var(--gutter))}
.interior .article-layout .article-body{max-width:none;margin:0;padding:0;font-size:16px;line-height:2.1;min-width:0}
.article-body>:first-child{margin-top:0!important}
.article-body h2{scroll-margin-top:40px}
.article-body :is(p,li){overflow-wrap:anywhere}
.article-body a{color:inherit;text-decoration:underline;text-underline-offset:.25em}
.article-body figure{margin:36px 0;max-width:100%}
.article-body figure img{margin:0}
.article-body figcaption{margin-top:12px;color:var(--muted);font-size:13px;line-height:1.8;text-align:left}
.article-body .wp-block-table{overflow-x:auto}
.article-body table{width:100%;border-collapse:collapse;font-size:15px;line-height:1.8}
.article-body :is(th,td){text-align:left;vertical-align:top;padding:18px;border:1px solid var(--rule)}
.article-body th{background:var(--wash);font-weight:500}
.article-body .wp-block-button__link{background:var(--ink);border-radius:var(--radius);color:#fff;padding:18px 28px;text-decoration:none}
.article-body :is(iframe,video){max-width:100%}
.article-toc{position:sticky;top:36px;border-top:1px solid var(--ink);padding-top:23px}
.article-toc>p{font-size:14px;font-weight:600;margin:0 0 18px}
.article-toc ul{list-style:none;margin:0;padding:0}
.article-toc li{border-top:1px solid var(--rule)}
.article-toc a{display:block;font-size:13px;line-height:1.85;padding:16px 0}
.article-toc a:hover{color:var(--accent)}
.article-navigation{max-width:var(--site-width);padding:0 var(--gutter) 80px;margin:auto;display:flex;justify-content:center}
.article-navigation .text-link{min-width:260px;justify-content:space-between}
.related-articles{padding:64px var(--gutter) 96px;border-top:1px solid var(--rule)}
.related-articles .archive-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:32px}
.related-articles .journal-card{border:0;padding:0;min-width:0;min-height:0}
.related-articles .read-article{padding-top:22px;font-size:14px}
.contact-form-section{max-width:var(--site-width);padding:0 var(--gutter) var(--section-space);margin:auto}
.contact-form-layout{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(48px,8vw,130px);align-items:start;border-top:1px solid var(--ink);padding-top:48px}
.contact-form-aside h2{font-family:Arial,sans-serif;font-size:clamp(32px,3vw,44px);line-height:1.2;letter-spacing:-.03em;margin:0 0 18px}
.contact-form-aside>p{font-size:15px;line-height:2;margin-bottom:30px}
.contact-booking{padding:28px;background:var(--wash);margin-top:36px}
.contact-booking h3{font-size:18px;line-height:1.7;margin:0 0 14px}
.contact-booking p{font-size:14px;line-height:1.9;margin:0 0 14px}
.contact-booking .text-link{min-width:0;width:100%;font-size:14px;gap:16px}
.form-preview-note{font-size:13px;line-height:1.9;padding:18px 20px;background:var(--wash);margin:0 0 32px}
.form-preview-note a{text-decoration:underline;text-underline-offset:3px}
.forge-form{min-width:0}
.form-field{border:0;padding:0;margin:0 0 30px;min-width:0}
.form-field>label,.form-field>legend{display:block;font-size:15px;font-weight:500;margin-bottom:12px;line-height:1.8;padding:0}
.field-badge{font-size:11px;font-weight:400;background:#efefef;padding:3px 7px;margin-left:12px;color:#555;white-space:nowrap}
.field-hint{font-size:13px;color:var(--muted);line-height:1.8;margin:10px 0 0}
.forge-form :is(input[type=text],input[type=email],input[type=tel],select,textarea){display:block;box-sizing:border-box;width:100%;min-height:56px;background:#f5f5f5;border:1px solid #c9c9c9;border-radius:var(--radius);box-shadow:none;padding:15px 16px;color:var(--ink);font-size:16px;line-height:1.6}
.forge-form textarea{min-height:220px;resize:vertical}
.forge-form ::placeholder{color:#777;opacity:1}
.form-two-column{display:grid;grid-template-columns:1fr 1fr;gap:24px}
.form-choices,.forge-form .wpcf7-checkbox{display:grid;grid-template-columns:1fr 1fr;gap:14px 24px}
.form-choices label,.forge-form .wpcf7-list-item label{display:flex;gap:10px;align-items:flex-start;font-size:14px;line-height:1.8;cursor:pointer}
.forge-form :is(input[type=checkbox],input[type=radio]){appearance:auto;accent-color:#181818;width:18px;height:18px;flex-shrink:0;margin:4px 0 0}
.forge-form .wpcf7-list-item{margin:0}
.form-privacy{font-size:13px;line-height:1.9;color:var(--muted);margin:8px 0 28px}
.form-submit{border-top:1px solid var(--rule);padding-top:28px}
.form-submit .forge-button{width:100%;max-width:400px}
.form-status,.forge-form .wpcf7-response-output{padding:20px;border:1px solid var(--ink);font-size:14px;line-height:1.9;margin:22px 0 0}
.form-status[hidden]{display:none}
.forge-form .wpcf7-not-valid-tip,.form-error{display:block;color:#a51d22;font-size:13px;line-height:1.8;margin-top:8px}
.contact-after{max-width:var(--site-width);margin:auto;padding:0 var(--gutter) var(--section-space)}
.contact-after h2{font-size:26px;line-height:1.6;margin-bottom:30px}
.contact-after-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}
.contact-after-grid>div{border-top:1px solid var(--ink);padding-top:24px}
.contact-after h3{font-size:19px;line-height:1.7;margin:0 0 15px}
.contact-after p{font-size:15px;line-height:2;margin:0}
@media(max-width:1000px){.approach-grid{gap:24px}.approach-grid>.lz-picture:nth-child(2){margin-top:32px}.approach-grid>.lz-picture:nth-child(3){margin-top:64px}.approach-grid h3{font-size:21px}.article-layout{grid-template-columns:200px minmax(0,1fr);gap:40px}.contact-form-layout{grid-template-columns:1fr 1.6fr;gap:40px}.form-two-column,.form-choices,.forge-form .wpcf7-checkbox{grid-template-columns:1fr}.form-two-column{gap:0}.contact-booking{padding:22px}}
@media(max-width:760px){.lz-section-head{gap:24px;margin-bottom:34px}.lz-section-head>p{font-size:17px}.approach-grid{grid-template-columns:1fr;gap:40px;padding-bottom:0}.approach-grid>.lz-picture:nth-child(n){margin:0}.approach-grid img,.approach-grid .image-placeholder{aspect-ratio:8/5}.approach-grid>.lz-picture:nth-child(2){padding-left:10%}.approach-grid h3{font-size:23px}.article-layout{grid-template-columns:1fr;gap:32px;padding-bottom:40px}.article-toc{position:static}.article-toc ul{columns:2;column-gap:28px}.article-toc li{break-inside:avoid}.article-navigation{padding-bottom:56px}.related-articles{padding-top:48px;padding-bottom:64px}.related-articles .archive-grid{grid-template-columns:1fr;gap:36px}.contact-form-layout{grid-template-columns:1fr;gap:36px;padding-top:32px}.contact-booking{margin-top:24px}.contact-form-aside>p{margin-bottom:0}.contact-after-grid{grid-template-columns:1fr;gap:28px}.contact-after h2{font-size:24px}.form-two-column{grid-template-columns:1fr 1fr;gap:24px}.form-choices,.forge-form .wpcf7-checkbox{grid-template-columns:1fr 1fr}}
@media(max-width:480px){.article-toc ul{columns:1}.form-two-column,.form-choices,.forge-form .wpcf7-checkbox{grid-template-columns:1fr}.form-two-column{gap:0}.approach-grid>.lz-picture:nth-child(2){padding-left:0}.form-submit .forge-button{max-width:none}.contact-heading>a{font-size:18vw}}
@media print{.article-toc,.article-navigation,.related-articles{display:none}.article-layout{display:block}.article-body{max-width:none}}
