/* Extends the original site's quiet research-media visual language. */
html{scroll-padding-top:32px}
body{overflow-wrap:anywhere}
section[id]{scroll-margin-top:32px}
.header{gap:24px}
.brand{flex-shrink:0}
.hero{grid-template-columns:minmax(0,1.08fr) minmax(0,.92fr);gap:clamp(32px,4.5vw,68px);padding-top:62px;padding-bottom:86px}
.hero-copy{min-width:0}
.hero h1{font-size:clamp(36px,3.7vw,52px);line-height:1.48;margin-bottom:24px;letter-spacing:-.055em}
.hero .lead{font-size:18px;line-height:1.8;font-weight:500}
.hero .intro{max-width:38em}
.hero-actions,.contact-actions{display:flex;align-items:stretch;flex-wrap:wrap;gap:12px}
.hero-actions .button,.hero-actions .button-outline{gap:18px}
.button-outline{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;min-height:56px;border:1px solid #7c9185;border-radius:3px;padding:12px 20px;color:var(--ink);font-size:15px;font-weight:500;line-height:1.6;transition:background .2s,border-color .2s}
.button-outline:hover{background:#edf3e9;border-color:var(--ink)}
.button-outline:focus-visible,.button:focus-visible{outline:3px solid #ad762c;outline-offset:4px}
.hero-meta{margin-top:21px}
.hero-meta span+span:before{content:'／';margin-right:16px;color:#8b9a90}
.hero-visual{min-height:530px}
.questions .question-layout p:not(.eyebrow){max-width:52em}
.question-layout ul{max-width:54em}
.six-lenses{list-style:none;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:0 30px;margin:42px 0 0;padding:0;border-bottom:1px solid var(--line)}
.six-lenses li{display:grid;grid-template-columns:45px 1fr;align-content:start;column-gap:8px;padding:20px 4px 25px 0;border-top:1px solid var(--line)}
.six-lenses span{grid-row:span 2;font-family:Georgia,serif;font-size:21px;color:#738669;font-style:italic;line-height:1.5}
.six-lenses strong{font-size:18px;font-weight:600}
.six-lenses p{margin:7px 0 0;color:var(--muted);font-size:14px;line-height:1.8}
.section-aside{color:var(--muted);font-size:14px;margin:20px 0 0}
.research{background:#edf0e8}
.research-layout{grid-template-columns:minmax(0,430px) minmax(0,1fr);gap:clamp(36px,5vw,80px)}
.research .cover{transform:rotate(-2deg)}
.research .cover:hover{transform:rotate(0)}
.research h2{margin-bottom:20px}
.research p{max-width:52em}
.report-points{list-style:none;padding:0;margin:26px 0 24px;border-top:1px solid #cad5c9}
.report-points li{padding:10px 0 10px 22px;border-bottom:1px solid #cad5c9;position:relative;line-height:1.75}
.report-points li:before{content:'・';position:absolute;left:0;color:#59735c}
.research .small{margin:6px 0 0}
.report-contact{font-size:14px;color:var(--muted);margin:12px 0 0}
.report-contact a{text-decoration:underline;text-underline-offset:3px;color:var(--ink)}
#diagnosis .section-head{max-width:780px}
.deliver-grid{grid-template-columns:minmax(0,1.35fr) minmax(290px,.9fr);gap:clamp(30px,5vw,70px);align-items:start}
.deliver-list h3{font-size:20px;font-weight:600;margin:0 0 14px}
.deliver-list ol{margin:0;padding:0;list-style:none;border-bottom:1px solid var(--line)}
.deliver-list li{display:flex;gap:18px;padding:20px 0;border-top:1px solid var(--line)}
.deliver-list li>span{flex:0 0 34px;font-family:Georgia,serif;color:#71856a;font-size:22px;line-height:1.4}
.deliver-list strong{display:block;font-size:17px;line-height:1.6}
.deliver-list p{font-size:15px;margin:7px 0 0;color:var(--muted)}
.price .button{gap:14px}
.price .small{color:#d0dbd5}
.sample{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:50px;margin-top:70px;padding:35px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line)}
.sample h3{font-size:22px;line-height:1.65;font-weight:500;margin:0 0 15px}
.sample p{font-size:14px;color:var(--muted)}
.sample-body{border-left:3px solid #b7885b;padding-left:26px}
.sample-body p{margin:0;padding:9px 0;color:var(--ink);font-size:15px}
.sample-body p+p{border-top:1px solid var(--line)}
.sample-body strong{color:#365744}
.boundary-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:46px;margin-top:38px}
.boundary-grid>div{padding-top:21px;border-top:2px solid #a5b6a2}
.boundary-grid>div+div{border-top-color:#b7885b}
.boundary-grid h3{font-size:20px;font-weight:500}
.boundary-grid ul{margin:0;padding-left:1.3em;color:var(--muted)}
.boundary-grid li{padding:5px 0}
.about-section{background:#e6ece2;padding:80px 0}
.about-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:clamp(38px,7vw,100px)}
.about-grid h2{margin-bottom:25px}
.about-grid p{max-width:42em}
.operator{padding-top:20px;border-top:1px solid #bdcbb9;margin-top:34px;color:var(--muted);font-size:14px}
.operator strong{color:var(--ink);font-size:16px}
.operator a{text-decoration:underline;text-underline-offset:4px}
.method-list article{display:flex;gap:20px;border-top:1px solid #bdcbb9;padding:19px 0}
.method-list article:last-child{border-bottom:1px solid #bdcbb9}
.method-list span{font-family:Georgia,serif;color:#708568;font-size:22px;line-height:1.5}
.method-list h3{font-size:18px;margin:0 0 8px}
.method-list p{color:var(--muted);font-size:15px;margin:0}
.survey-section{padding:67px 0;border-bottom:1px solid var(--line)}
.survey-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:70px;align-items:start}
.survey-grid h2{font-size:30px;margin:0}
.survey-grid p{margin-bottom:16px}
.survey-grid .small{color:var(--muted);margin:0}
.faq .faq-items p{line-height:1.85}
.contact-actions{justify-content:center;margin:28px 0 20px}
.contact .light-outline{border-color:#bed1c3;color:#fff}
.contact .light-outline:hover{background:#ffffff15;border-color:#fff}
.contact .small{max-width:50em;margin:0 auto}
footer>div:last-child{max-width:560px}
footer a{text-decoration:underline;text-underline-offset:3px}
@media(max-width:1060px){
  .hero{gap:30px}
  .hero h1{font-size:clamp(34px,3.8vw,42px)}
  .hero-actions .button,.hero-actions .button-outline{width:100%}
}
@media(max-width:900px){
  .hero{grid-template-columns:minmax(0,1fr);gap:32px;padding-top:45px}
  .hero-copy{max-width:760px}
  .hero-visual{width:100%;max-width:640px;min-height:0;margin:0 auto;border-radius:clamp(120px,18vw,170px) clamp(120px,18vw,170px) 5px 5px}
  .hero-copy>.eyebrow,.hero-visual .tiny{word-break:normal;overflow-wrap:normal}
  .six-lenses{grid-template-columns:repeat(2,minmax(0,1fr))}
  .deliver-grid{gap:28px}
  .about-grid,.survey-grid{gap:34px}
}
@media(max-width:640px){
  .header{gap:8px}
  .nav-cta{white-space:nowrap}
  .hero{padding-top:35px;padding-bottom:58px;gap:35px}
  .hero h1{font-size:clamp(30px,7.8vw,38px);line-height:1.5}
  .hero .lead{font-size:16px}
  .hero .intro{font-size:15px}
  .hero-actions{display:grid;grid-template-columns:1fr;gap:10px}
  .hero-actions .button,.hero-actions .button-outline{width:100%;justify-content:space-between}
  .hero-meta{font-size:12px;gap:3px 8px}
  .hero-meta span+span:before{margin-right:8px}
  .hero-visual{min-height:0;padding:20px 22px 26px;border-radius:105px 105px 5px 5px}
  .visual-top{margin-top:22px;margin-bottom:18px}
  .hero-visual .tiny{font-size:10px;letter-spacing:.1em;text-align:center}
  .hero-visual h2{font-size:25px;line-height:1.55;margin-bottom:24px}
  .journey>div{gap:12px;padding:14px 14px}
  .journey p{min-width:0}
  .journey small{line-height:1.55}
  .six-lenses{grid-template-columns:1fr;margin-top:24px}
  .six-lenses li{padding:16px 0}
  .research-layout{grid-template-columns:1fr;gap:35px}
  .research .cover{width:100%;max-width:420px;margin:0 auto}
  .deliver-grid{grid-template-columns:1fr}
  .deliver-list li{padding:17px 0}
  .sample{grid-template-columns:1fr;gap:14px;margin-top:42px;padding:28px 0}
  .sample-body{padding-left:18px}
  .boundary-grid,.about-grid,.survey-grid{grid-template-columns:1fr;gap:26px}
  .about-section{padding:55px 0}
  .survey-section{padding:52px 0}
  .survey-grid h2{font-size:27px}
  .contact-actions{display:grid;max-width:420px;margin:25px auto 20px}
  .contact-actions .button,.contact-actions .button-outline{width:100%;min-width:0}
  footer>div:last-child{max-width:none}
}
@media(prefers-reduced-motion:reduce){.button-outline{transition:none}}
