:root {
  color-scheme: light;
  --navy: #13233f; --blue: #1e3a63; --slate: #3f5f8a; --gold: #b7a46a;
  --muted: #536174; --line: #d4dce5;
  --body: "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --serif: "Yu Mincho", "Hiragino Mincho ProN", serif;
}
* { box-sizing: border-box; }
html { scroll-behavior: smooth; scroll-padding-top: 30px; }
body { margin: 0; color: var(--navy); background: #fff; font: 16px/1.9 var(--body); -webkit-font-smoothing: antialiased; }
h1,h2,h3,p,figure { margin: 0; }
a { color: inherit; text-decoration: none; text-underline-offset: 6px; }
a:hover { text-decoration: underline; }
a:focus-visible,summary:focus-visible { outline: 2px solid var(--slate); outline-offset: 6px; }
img,svg { display: block; max-width: 100%; }
.page-width { width: min(100% - 112px, 1400px); margin-inline: auto; }
.skip-link { position: fixed; top: -100px; left: 20px; z-index: 30; background: var(--navy); color: #fff; padding: 10px 20px; }
.skip-link:focus { top: 12px; }
.header { min-height: 106px; display: flex; align-items: center; justify-content: space-between; gap: 30px; border-bottom: 1px solid var(--navy); }
.logo { display: flex; align-items: center; gap: 12px; flex-shrink: 0; }
.logo:hover { text-decoration: none; }
.logo svg { width: 37px; height: 37px; }
.logo>span { font: 400 32px/1 Optima, "Segoe UI", sans-serif; letter-spacing: -.025em; }
.amp { color: var(--slate); }
.header nav { display: flex; align-items: center; gap: 34px; font-size: 14px; }
.nav-contact { padding-block: 8px; border-bottom: 1px solid var(--gold); }
.nav-link { position: relative; }
.nav-link::after { content: ""; position: absolute; inset: auto 0 -6px; height: 1px; background: var(--slate); transform: scaleX(0); transform-origin: left; transition: transform .3s ease; }
.nav-link:hover { text-decoration: none; }
.nav-link:hover::after,.nav-link:focus-visible::after { transform: scaleX(1); }
.hero { padding-top: 29px; }
.hero-kicker { font-size: 14px; font-weight: 500; }
.hero-grid { display: grid; grid-template-columns: minmax(0, .92fr) minmax(0, 1fr); gap: 3vw; padding: 48px 0 52px; align-items: center; }
.hero-main { min-width: 0; position: relative; z-index: 2; padding-bottom: 35px; }
h1 { font: 500 clamp(38px, 4.65vw, 75px)/1.5 var(--serif); letter-spacing: .01em; }
.title-line { display: block; overflow: clip; padding-bottom: .08em; }
.title-line>span { display: block; }
.last-line { margin-left: .7em; color: var(--slate); }
.hero-summary { display: flex; align-items: flex-start; gap: 20px; margin-top: 24px; }
.summary-rule { width: 24px; height: 1px; flex-shrink: 0; background: var(--gold); margin-top: 15px; }
.hero-summary p { font-size: 16px; line-height: 2; }
.desktop-break { display: none; }
.hero-contact { display: inline-flex; gap: 58px; align-items: center; margin-top: 28px; border-bottom: 1px solid var(--navy); padding: 9px 0; font-size: 16px; }
.hero-contact>span { font: 24px/1 "Segoe UI",sans-serif; transition: transform .3s; }
.hero-contact:hover { text-decoration: none; color: var(--slate); }
.hero-contact:hover>span { transform: translate(4px,-4px); }
.consult-meta { font-size: 12px; margin-top: 9px; color: var(--muted); }
.hero-photo { min-width: 0; margin-top: 80px; position: relative; }
.photo-window { overflow: hidden; aspect-ratio: 1.18; background: #e7edf3; }
.photo-window img { width: 100%; height: 100%; object-fit: cover; object-position: 48% center; transform: translateY(var(--photo-y,0px)) scale(var(--photo-scale,1)); }
.hero-photo figcaption { font-size: 12px; color: var(--muted); margin-top: 10px; text-align: right; }
.hero-services { display: grid; grid-template-columns: repeat(5,minmax(0,1fr)); border-top: 1px solid var(--line); padding-bottom: 26px; }
.hero-services a { display: flex; align-items: baseline; gap: 14px; padding: 21px 12px; border-bottom: 1px solid transparent; font-size: 14px; transition: color .25s,background .25s,border-color .25s; }
.hero-services a:first-child { padding-left: 0; }
.hero-services a:hover,.hero-services a:focus-visible { color: var(--blue); border-color: var(--slate); background: #f4f6f9; text-decoration: none; }
.hero-services span { color: var(--slate); font: 14px/1.5 Georgia,serif; }
.approach { background: var(--navy); color: #fff; margin-top: 16px; padding: 94px 0; }
.approach-inner { display: grid; grid-template-columns: minmax(0,1.2fr) minmax(0,.8fr); gap: clamp(65px,12vw,160px); align-items: start; }
.section-label { font-size: 14px; font-weight: 500; }
.approach .section-label { color: #c2cfdf; margin-bottom: 25px; font-size: 14px; }
.approach h2 { font: 500 clamp(30px,3.2vw,49px)/1.65 var(--serif); margin-bottom: 32px; }
.approach-copy p { color: #d8e1ec; font-size: 16px; line-height: 2; max-width: 620px; }
.approach-copy p+p { margin-top: 20px; }
.opening-note { padding-left: 32px; border-left: 1px solid #ffffff35; margin-top: 4px; }
.note-label { font-size: 13px; color: #cebf9b; margin-bottom: 15px; }
.opening-note h2 { font: 500 26px/1.7 var(--serif); margin-bottom: 0; }
.opening-note ul { list-style: none; padding: 0; margin: 24px 0 20px; }
.opening-note li { font-size: 16px; line-height: 1.9; margin-top: 12px; padding-left: 12px; position: relative; }
.opening-note li::before { content: "・"; position: absolute; left: -3px; color: #cebf9b; }
.note-body { font-size: 16px; color: #c5d2e2; }
.consult-link { display: flex; justify-content: space-between; gap: 18px; padding: 12px 0; border-bottom: 1px solid #abbace; font-size: 14px; margin-top: 22px; transition: border-color .25s; }
.consult-link>span { font-family: "Segoe UI",sans-serif; font-size: 19px; transition: transform .25s; }
.consult-link:hover { border-color: var(--gold); text-decoration: none; }
.consult-link:hover>span { transform: translate(3px,-3px); }
.opening-note .consult-meta { color: #bfccdd; }
.services { display: grid; grid-template-columns: minmax(0,.38fr) minmax(0,1fr); gap: 0 clamp(35px,6vw,95px); align-items: start; padding-top: 115px; padding-bottom: 95px; }
.services-intro { position: sticky; top: 40px; }
.services .section-label { color: var(--slate); margin-bottom: 17px; }
.services-intro h2 { font: 500 clamp(34px,3.2vw,48px)/1.5 var(--serif); }
.services-intro>p { font-size: 16px; color: var(--muted); margin-top: 28px; }
.services-intro .service-instruction { margin-top: 26px; font-size: 13px; }
.service-list { min-width: 0; border-top: 1px solid var(--navy); }
.service-row { border-bottom: 1px solid var(--line); scroll-margin-top: 40px; }
.service-row summary { display: grid; grid-template-columns: 35px minmax(0,1fr) 26px; gap: 24px; align-items: center; padding: 32px 0; list-style: none; cursor: pointer; transition: padding .3s ease,background .3s ease; }
.service-row summary::-webkit-details-marker { display: none; }
.service-row summary:hover { padding-inline: 8px; background: #f4f6f9; }
.service-number { color: var(--slate); font: 18px/1.7 Georgia,serif; }
.service-title { font: 500 clamp(23px,2.3vw,34px)/1.65 var(--serif); }
.service-toggle { position: relative; width: 24px; height: 24px; }
.service-toggle::before,.service-toggle::after { content: ""; position: absolute; background: var(--slate); }
.service-toggle::before { top: 11px; left: 4px; width: 16px; height: 1px; }
.service-toggle::after { top: 4px; left: 11px; width: 1px; height: 16px; transition: transform .3s; }
.service-row[open] .service-toggle::after { transform: rotate(90deg); }
.service-row[open] summary { color: var(--blue); }
.service-body { padding: 0 0 33px 59px; overflow: hidden; }
.service-subtitle { font-size: 18px; margin-bottom: 17px; color: var(--blue); }
.service-description>p { font-size: 16px; line-height: 1.95; max-width: 620px; }
.service-description .service-examples { font-size: 13px; color: var(--muted); margin-top: 18px; }
.service-contact { display: inline-flex; gap: 25px; margin-top: 24px; padding-bottom: 5px; border-bottom: 1px solid var(--line); font-size: 14px; }
.service-contact>span { transition: transform .3s; }
.service-contact:hover>span { transform: translate(3px,-3px); }
.service-note { grid-column: 2; display: flex; justify-content: space-between; align-items: baseline; gap: 25px; margin-top: 27px; font-size: 14px; color: var(--muted); }
.service-note a { white-space: nowrap; color: var(--navy); text-decoration: underline; }
.reading-progress { position: fixed; top: 0; left: 0; width: 100%; height: 3px; z-index: 25; background: var(--gold); transform: scaleX(0); transform-origin: left; pointer-events: none; }
@media(min-width:1600px) { .hero-grid { padding-top: 66px; } h1 { font-size: 77px; } }
@media(max-width:1100px) {
  .page-width { width: calc(100% - 72px); }
  .hero-grid { gap: 26px; }
  h1 { font-size: clamp(33px,4.4vw,49px); }
  .photo-window { aspect-ratio: 1; }
  .hero-photo { margin-top: 45px; }
  .hero-services a { gap: 8px; font-size: 13px; padding-inline: 8px; }
  .approach-inner { gap: 55px; }
  .services { grid-template-columns: minmax(0,.4fr) minmax(0,1fr); gap: 0 35px; }
  .service-row summary { gap: 15px; grid-template-columns: 26px minmax(0,1fr) 24px; }
  .service-body { padding-left: 41px; }
}
@media(max-width:760px) {
  .page-width { width: calc(100% - 44px); }
      .header { min-height: 82px; gap: 20px; }
  .logo>span { font-size: 27px; }
  .logo svg { width: 29px; height: 29px; }
  .logo { gap: 9px; }
  .header nav { gap: 0; }
  .nav-link { display: none; }
  .nav-contact { max-width: 9em; text-align: right; font-size: 13px; }
  .hero { padding-top: 24px; }
  .hero-kicker { font-size: 13px; }
  .hero-grid { grid-template-columns: 1fr; gap: 27px; padding: 30px 0 27px; }
  .hero-main { padding-bottom: 0; }
  h1 { font-size: clamp(31px,8vw,55px); line-height: 1.56; }
  .hero-summary { gap: 14px; margin-top: 18px; }
  .summary-rule { width: 14px; }
  .hero-contact { margin-top: 23px; }
  .hero-photo { margin-top: 0; }
  .photo-window { aspect-ratio: 1.5; }
  .hero-services { display: flex; overflow-x: auto; scroll-snap-type: x proximity; gap: 0; padding-bottom: 14px; }
  .hero-services a { flex: 0 0 auto; font-size: 14px; padding: 15px; scroll-snap-align: start; }
  .hero-services a:first-child { padding-left: 0; }
  .approach { padding: 45px 0; margin-top: 6px; }
  .approach-inner { grid-template-columns: 1fr; gap: 37px; }
  .approach h2 { font-size: 30px; }
  .opening-note { border-left: 0; border-top: 1px solid #ffffff35; padding: 28px 0 0; }
  .opening-note h2 { font-size: 26px; }
  .opening-note h2 br { display: none; }
  .consult-link { max-width: 350px; font-size: 16px; }
  .services { grid-template-columns: 1fr; gap: 30px; padding-top: 52px; padding-bottom: 48px; }
  .services-intro { position: static; }
  .services-intro>p { margin-top: 17px; }
  .services-intro .service-instruction { margin-top: 12px; }
  .service-row summary { gap: 10px; padding-block: 23px; grid-template-columns: 21px minmax(0,1fr) 20px; }
  .service-number { font-size: 16px; }
  .service-title { font-size: clamp(21px,5.6vw,29px); }
  .service-body { padding-left: 31px; }
  .service-subtitle { font-size: 16px; }
  .service-toggle { width: 20px; }
  .service-note { grid-column: 1; display: block; margin-top: 0; }
  .service-note a { display: inline-block; margin-top: 15px; }
  }
@media(prefers-reduced-motion:reduce) {
  html { scroll-behavior: auto; }
  *,*::before,*::after { transition: none!important; }
  .photo-window img { transform: none; }
}
/* Full-page sections follow the approved editorial rhythm. */
[hidden] { display: none !important; }
button,input,textarea,select { font: inherit; }
button { cursor: pointer; }
button:focus-visible,input:focus-visible,textarea:focus-visible { outline: 2px solid var(--slate); outline-offset: 4px; }
section[id] { scroll-margin-top: 30px; }
.anchor-alias { display: block; scroll-margin-top: 30px; }
.header { position: relative; z-index: 10; }
.header nav { gap: clamp(18px,2.3vw,34px); }
.mobile-menu { display: none; }
.section-layout { display: grid; grid-template-columns: minmax(0,.75fr) minmax(0,1.25fr); gap: clamp(50px,8vw,130px); }
.section-heading .section-label { color: var(--slate); margin-bottom: 20px; }
.section-heading h2 { font: 500 clamp(30px,3.05vw,46px)/1.65 var(--serif); }
.section-heading>p:last-child:not(.section-label) { margin-top: 25px; color: var(--muted); }
.process-section { padding: 90px 0; background: #eef2f6; }
.process-list { margin: 0; padding: 0; list-style: none; }
.process-list li { display: grid; grid-template-columns: 40px minmax(0,1fr); gap: 25px; padding: 30px 0; border-top: 1px solid var(--line); }
.process-list li:first-child { padding-top: 0; border-top: 0; }
.process-list li:last-child { padding-bottom: 0; }
.step-number { color: var(--slate); font: 26px/1.6 Georgia,serif; }
.process-list h3 { margin-bottom: 10px; font-size: 20px; font-weight: 500; }
.process-list p { color: var(--muted); max-width: 610px; }
.profile-section { padding-block: 115px; }
.profile-content { min-width: 0; }
.profile-identity { padding-bottom: 30px; border-bottom: 1px solid var(--navy); display: flex; align-items: baseline; flex-wrap: wrap; gap: 15px 26px; }
.profile-identity>p { font-size: 14px; flex-basis: 100%; color: var(--muted); }
.profile-identity h3 { font: 500 54px/1.5 var(--serif); letter-spacing: .14em; }
.profile-identity>span { font-size: 14px; color: var(--muted); }
.profile-copy { padding-top: 30px; }
.profile-copy .profile-message { color: var(--navy); font: 500 clamp(23px,2vw,29px)/1.8 var(--serif); margin-bottom: 25px; }
.profile-copy>p { color: var(--muted); }
.profile-copy>p+p { margin-top: 18px; }
.profile-list { margin: 32px 0 0; }
.profile-list>div { display: grid; grid-template-columns: 125px minmax(0,1fr); gap: 20px; padding-block: 13px; border-top: 1px solid var(--line); font-size: 14px; }
.profile-list dt { color: var(--muted); }
.profile-list dd { margin: 0; }
.diagnosis-section { background: var(--navy); color: white; padding-block: 85px; }
.diagnosis-heading { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,.8fr); gap: 10%; align-items: end; margin-bottom: 45px; }
.diagnosis-section .section-label { color: #c2cfdf; }
.diagnosis-intro { color: #d8e1ec; }
.diagnosis-meta { font-size: 14px; margin-top: 22px; }
.diagnosis-disclosure>summary { display: flex; justify-content: space-between; align-items: center; gap: 30px; padding: 26px 0; border-top: 1px solid #ffffff55; border-bottom: 1px solid #ffffff55; font-size: 20px; cursor: pointer; list-style: none; }
.diagnosis-disclosure>summary::-webkit-details-marker,.faq summary::-webkit-details-marker,.mobile-menu summary::-webkit-details-marker { display: none; }
.diagnosis-open-label { display: none; }
.diagnosis-disclosure[open] .diagnosis-start-label { display: none; }
.diagnosis-disclosure[open] .diagnosis-open-label { display: block; }
.disclosure-mark { position: relative; width: 24px; height: 24px; flex-shrink: 0; }
.disclosure-mark::before,.disclosure-mark::after { content: ""; position: absolute; background: currentColor; }
.disclosure-mark::before { top: 11px; left: 3px; width: 18px; height: 1px; }
.disclosure-mark::after { top: 3px; left: 11px; width: 1px; height: 18px; transition: transform .3s; }
details[open]>summary .disclosure-mark::after { transform: rotate(90deg); }
.diagnosis-content { margin-top: 30px; padding: clamp(22px,4vw,56px); background: #fff; color: var(--navy); }
.diagnosis-content .section-label { color: var(--slate); }
.diagnosis-guidance { margin-bottom: 25px; color: var(--muted); }
.progress-card { position: sticky; top: 0; z-index: 4; background: #fff; padding: 16px 0 20px; border-bottom: 1px solid var(--line); }
.progress-label { display: flex; justify-content: space-between; font-size: 14px; margin-bottom: 10px; }
.progress-track,.category-track { height: 4px; background: #e5eaf0; overflow: hidden; }
.progress-track>span,.category-track>span { display: block; height: 100%; background: var(--slate); width: 0; transition: width .35s ease; }
.question-grid { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 32px 45px; margin-block: 34px; }
.question-card { min-width: 0; margin: 0; padding: 0; border: 0; }
.question-card legend { width: 100%; padding: 0 0 15px; font-weight: 500; }
.question-number { display: block; color: var(--slate); font: 17px/1.8 Georgia,serif; margin-bottom: 6px; }
.question-card label { display: flex; align-items: baseline; gap: 12px; border-top: 1px solid var(--line); padding: 10px 12px; font-size: 14px; cursor: pointer; }
.question-card label:last-child { border-bottom: 1px solid var(--line); }
.question-card label:hover { background: #f4f6f9; }
.question-card label:has(input:checked) { background: #eaf0f7; color: var(--blue); }
.question-card input { flex-shrink: 0; accent-color: var(--blue); width: 16px; height: 16px; margin: 0; }
.btn { display: inline-flex; justify-content: center; align-items: center; gap: 25px; padding: 15px 26px; border: 1px solid var(--navy); border-radius: 0; font-size: 16px; line-height: 1.7; transition: background .25s,color .25s; }
.btn:hover { text-decoration: none; }
.btn-primary { color: #fff; background: var(--navy); }
.btn-primary:hover { background: var(--blue); }
.btn-ghost { color: var(--navy); background: transparent; border-color: var(--line); }
.btn-ghost:hover { background: #eef2f6; }
.btn:disabled { opacity: .65; cursor: wait; }
.diagnosis-actions { display: flex; flex-wrap: wrap; gap: 15px; padding-top: 10px; }
.result-panel { margin-top: 45px; padding-top: 35px; border-top: 1px solid var(--navy); scroll-margin-top: 25px; }
.result-head { display: grid; grid-template-columns: 1fr auto; gap: 35px; align-items: start; }
.result-head h2 { font: 500 clamp(23px,2.4vw,34px)/1.6 var(--serif); margin-block: 15px 20px; }
.result-head .lead { color: var(--muted); }
.score-ring { min-width: 106px; border-top: 2px solid var(--gold); padding-top: 12px; text-align: right; }
.score-ring>span { font: 62px/1.1 Georgia,serif; }
.score-ring small { display: block; font-size: 14px; color: var(--muted); margin-top: 10px; }
.result-grid { display: grid; grid-template-columns: 1.2fr 1fr; gap: 45px; margin-top: 35px; }
.result-panel h3 { font-size: 18px; font-weight: 500; margin-bottom: 15px; }
.result-main>p { margin-bottom: 25px; }
.action-list { padding-left: 1.4em; margin: 0; }
.action-list li+li { margin-top: 12px; }
.category-row { margin-bottom: 18px; }
.category-meta { display: flex; justify-content: space-between; gap: 15px; font-size: 14px; margin-bottom: 8px; }
.result-cta { display: flex; align-items: center; justify-content: space-between; gap: 30px; padding: 30px 0 0; margin-top: 32px; border-top: 1px solid var(--line); }
.result-cta h3 { margin-bottom: 8px; }
.result-cta p { color: var(--muted); font-size: 14px; }
.result-cta .btn { flex-shrink: 0; }
.no-script { color: var(--blue); margin-bottom: 25px; }
.faq-section { padding-block: 105px; }
.faq { min-width: 0; border-top: 1px solid var(--navy); }
.faq details { border-bottom: 1px solid var(--line); }
.faq summary { list-style: none; display: flex; justify-content: space-between; align-items: center; gap: 28px; padding-block: 25px; cursor: pointer; font-size: 18px; }
.faq summary:hover { color: var(--slate); }
.faq .answer { padding: 0 42px 27px 0; color: var(--muted); }
.faq .answer a { text-decoration: underline; }
.contact-section { background: #eef2f6; padding-block: 100px; }
.contact-grid { display: grid; grid-template-columns: minmax(0,1fr) minmax(0,1fr); gap: clamp(60px,9vw,135px); align-items: start; }
.contact-intro .section-label { color: var(--slate); margin-bottom: 28px; }
.contact-intro h2 { font: 500 clamp(31px,3.3vw,49px)/1.7 var(--serif); margin-bottom: 30px; }
.contact-intro>p { color: var(--muted); }
.contact-facts { margin: 38px 0 20px; max-width: 380px; }
.contact-facts>div { display: grid; grid-template-columns: 120px minmax(0,1fr); gap: 20px; padding-block: 13px; border-top: 1px solid #c8d2df; font-size: 14px; }
.contact-facts dt { color: var(--muted); }
.contact-facts dd { margin: 0; }
.contact-intro .contact-small { font-size: 14px; }
.form-wrap { min-width: 0; }
.field { margin-bottom: 24px; }
.field>label { display: flex; justify-content: space-between; align-items: baseline; gap: 15px; margin-bottom: 10px; font-size: 16px; }
.req { font-size: 12px; color: var(--muted); font-weight: 400; }
.field input,.field textarea { display: block; width: 100%; padding: 13px 15px; background: #fff; color: var(--navy); border: 1px solid #bac6d5; border-radius: 0; line-height: 1.7; }
.field textarea { min-height: 165px; resize: vertical; }
.field textarea::placeholder { color: #657084; }
.hp { position: absolute; left: -10000px; top: auto; width: 1px; height: 1px; overflow: hidden; }
.form-consent { font-size: 14px; margin-block: 28px; color: var(--muted); }
.form-consent a { text-decoration: underline; color: var(--navy); }
.form-wrap>.btn { width: 100%; padding-block: 19px; }
.form-status { margin-top: 18px; font-size: 14px; }
.form-status:empty { display: none; }
.form-status.ok { color: #28523d; }
.form-status.ng { color: #943a32; }
.site-footer { padding-block: 45px 28px; }
.footer-top { display: flex; align-items: center; justify-content: space-between; gap: 30px; }
.back-top { font-size: 14px; }
.footer-nav { display: flex; flex-wrap: wrap; gap: 16px 32px; font-size: 14px; margin-top: 32px; }
.footer-bottom { display: flex; flex-wrap: wrap; gap: 12px 30px; padding-top: 24px; margin-top: 32px; border-top: 1px solid var(--line); color: var(--muted); font-size: 13px; }
.footer-bottom>span:last-child { margin-left: auto; }
.legal-page { max-width: 860px; padding-block: 70px 85px; }
.legal-content h1 { font: 500 clamp(27px,4vw,43px)/1.7 var(--serif); margin-bottom: 32px; overflow-wrap: anywhere; }
.legal-content h2 { font-size: 20px; font-weight: 500; margin: 32px 0 15px; }
.legal-content p { color: var(--muted); overflow-wrap: anywhere; }
.legal-content p+p { margin-top: 15px; }
@media(max-width:1100px) {
  .header .desktop-nav { gap: 18px; font-size: 13px; }
  .section-layout { gap: 45px; grid-template-columns: minmax(0,.7fr) minmax(0,1.3fr); }
  .contact-grid { gap: 45px; }
  .process-list li { grid-template-columns: 30px minmax(0,1fr); gap: 18px; }
  .diagnosis-heading { gap: 6%; }
}
@media(max-width:960px) {
  .header .desktop-nav { display: none; }
  .mobile-menu { display: block; }
  .mobile-menu>summary { display: flex; gap: 20px; align-items: center; list-style: none; cursor: pointer; padding: 12px 0 12px 12px; font-size: 14px; }
  .mobile-menu>summary>span { font-size: 22px; transition: transform .25s; }
  .mobile-menu[open]>summary>span { transform: rotate(45deg); }
  .mobile-menu nav { display: flex; flex-direction: column; align-items: stretch; gap: 0; position: absolute; left: 0; right: 0; top: 100%; background: #fff; padding: 15px 25px 25px; border: 1px solid var(--line); border-top: 0; box-shadow: 0 18px 30px #13233f12; }
  .mobile-menu nav a { padding: 12px 0; border-bottom: 1px solid var(--line); font-size: 16px; }
  .result-grid { gap: 30px; }
}
@media(max-width:760px) {
  .section-layout,.contact-grid,.diagnosis-heading { grid-template-columns: 1fr; gap: 35px; }
  .section-heading h2 { font-size: 30px; }
  .section-heading .section-label { margin-bottom: 16px; }
  .process-section { padding-block: 48px; }
  .process-list h3 { font-size: 18px; }
  .process-list li { gap: 15px; }
  .profile-section { padding-block: 55px; }
  .profile-identity h3 { font-size: 43px; }
  .profile-list>div { grid-template-columns: 100px minmax(0,1fr); gap: 12px; }
  .diagnosis-section { padding-block: 48px; }
  .diagnosis-heading { gap: 25px; margin-bottom: 30px; }
  .diagnosis-disclosure>summary { font-size: 18px; padding-block: 22px; gap: 20px; }
  .diagnosis-content { padding: 22px 18px; margin-inline: -6px; }
  .question-grid { grid-template-columns: 1fr; gap: 30px; }
  .question-card label { padding-block: 12px; font-size: 16px; }
  .diagnosis-actions { flex-direction: column; }
  .result-head { gap: 20px; grid-template-columns: 1fr; }
  .score-ring { grid-row: 1; justify-self: start; display: flex; align-items: baseline; gap: 15px; padding-top: 10px; }
  .score-ring>span { font-size: 48px; }
  .result-grid { grid-template-columns: 1fr; }
  .result-cta { align-items: stretch; flex-direction: column; }
  .faq-section { padding-block: 55px; }
  .faq summary { font-size: 16px; gap: 18px; }
  .faq .answer { padding-right: 0; }
  .contact-section { padding-block: 52px; }
  .contact-intro h2 { font-size: 32px; }
  .contact-facts { margin-top: 28px; }
  .contact-intro>p br { display: none; }
  .footer-top { align-items: start; }
  .footer-top .back-top { max-width: 8em; text-align: right; }
  .footer-nav { gap: 12px 24px; }
  .footer-bottom { display: block; line-height: 2.2; }
  .footer-bottom>* { display: block; }
  .footer-bottom>span:last-child { margin-top: 12px; }
  .legal-page { padding-block: 40px 55px; }
}
@media(prefers-reduced-motion:reduce) {
  .progress-track>span,.category-track>span,.disclosure-mark::after { transition: none; }
}

:root{--ease-out:cubic-bezier(.23,1,.32,1);--ease-in-out:cubic-bezier(.77,0,.175,1);--paper:#f7f8fa}
html{scroll-behavior:auto}body{background:var(--paper)}
.page-width{width:min(100% - 112px,1400px)}
.header{color:#fff;background:var(--navy);width:100%;padding:0 56px;min-height:100px;border-bottom:1px solid #ffffff24}.header .amp{color:#b9c9df}.header .nav-contact{border:1px solid #ffffff55;padding:10px 20px;border-radius:3px}.header .logo>span{font-size:29px}.header .logo svg{width:30px}
.hero{width:100%;margin:0;padding:28px 56px 0;background:var(--navy);color:#fff;position:relative;overflow:hidden;isolation:isolate}
.hero-caption{display:flex;justify-content:space-between;gap:20px;position:relative;z-index:2}.hero-caption>span{font:10px/2 Arial,sans-serif;letter-spacing:.18em;color:#afc0d8}.hero-kicker{font-size:13px;letter-spacing:.08em}
.hero-grid{grid-template-columns:1.1fr .9fr;gap:5%;padding:70px 0 54px;align-items:end;position:relative;z-index:1}.hero-main{padding:0}.hero h1{font:500 clamp(48px,6.1vw,94px)/1.3 var(--serif);letter-spacing:-.035em}.title-line{padding-bottom:.08em}.last-line{margin-left:0;color:#b3c5dd}.hero-summary{margin-top:28px}.summary-rule{display:none}.hero-summary p{font-size:14px;line-height:2;color:#c7d3e4}.hero-contact{background:#fff;color:var(--navy);padding:15px 24px;border-radius:3px;border:0;font-size:14px;margin-top:30px;gap:58px;transition:transform 160ms var(--ease-out),background 160ms ease}.hero .consult-meta{color:#bccae0;margin:12px 0 0;font-size:11px}
.hero-photo{margin:0 0 4px;align-self:end}.photo-window{aspect-ratio:1.4;background:var(--blue);border-radius:180px 180px 2px 2px}.photo-window img{object-position:47% center;transform:none}.hero-photo figcaption{margin-top:20px;text-align:left;display:flex;flex-direction:column;gap:9px;font-family:var(--serif);font-size:17px;color:#eff2f7}.hero-photo small{font:10px/1.7 var(--body);color:#a9bbd3}
.arch-lines{position:absolute;width:58%;height:900px;right:-15%;top:40px;z-index:-1;pointer-events:none;transform:rotate(21deg)}.arch-lines i{position:absolute;inset:0;border:1px solid #ffffff13;border-radius:50% 50% 0 0}.arch-lines i:nth-child(2){inset:35px}.arch-lines i:nth-child(3){inset:70px;border-color:#b7a46a33}
.hero-services{position:relative;z-index:1;border-color:#ffffff30;padding:0;gap:0}.hero-services a{padding:23px 12px!important;font-size:12px;display:block;border-left:1px solid #ffffff20}.hero-services a:first-child{border-left:0;padding-left:0!important}.hero-services span{display:block;color:#b9c8dc;font:11px/1.5 Arial;margin-bottom:8px}.hero-services a:hover,.hero-services a:focus-visible{background:#ffffff0a;color:white;border-bottom-color:var(--gold)}
.approach{margin:0;background:var(--paper);color:var(--navy);padding:115px 0}.approach-inner{grid-template-columns:1.2fr .8fr;gap:12%}.approach .section-label{color:var(--slate)}.approach h2{font-size:clamp(32px,3.6vw,55px);line-height:1.6}.approach-copy p{color:var(--muted);font-size:15px;line-height:2.1}.section-label,.note-label{letter-spacing:.09em}.section-label::before{content:"";display:inline-block;width:6px;height:6px;background:var(--gold);margin:0 10px 2px 0}.opening-note{border:0;border-top:1px solid var(--navy);padding:26px 0 0;margin-top:8px}.note-label{color:var(--slate)}.opening-note h2{font-size:24px}.opening-note li{font-size:14px}.note-body{color:var(--muted);font-size:14px}.opening-note .consult-meta{color:var(--muted)}
.services{padding-top:70px;padding-bottom:100px;border-top:1px solid #bcc9d8;grid-template-columns:.6fr 1.4fr;gap:0 7%}.services-intro h2{font-size:clamp(28px,2.8vw,42px);line-height:1.65}.services-intro>p{font-size:14px}.service-row summary,.service-row summary:hover{padding:30px 0;background:none;transition:color 180ms ease}.service-title{font:500 clamp(21px,2.1vw,30px)/1.6 var(--body);letter-spacing:-.045em}.service-number{font:12px/1 Arial;color:var(--slate)}.service-toggle{border:1px solid #bcc8d7;border-radius:50%;height:30px;width:30px}.service-toggle::before{left:6px;top:14px}.service-toggle::after{left:13px;top:7px;transition:transform 200ms var(--ease-out)}.service-row[open]{background:#eaf0f6}.service-body{padding-bottom:25px}.service-description>p{font-size:14px}.service-subtitle{font-size:17px}.service-note{font-size:12px}
.process-section{background:#e7edf4;padding:80px 0}.process-section .section-layout{display:block}.process-section .section-heading{display:grid;grid-template-columns:1fr 1fr;gap:0 60px}.process-section .section-label{grid-column:1/-1}.process-section .section-heading>p:last-child{margin:0;align-self:center;font-size:14px}.process-list{display:grid;grid-template-columns:repeat(3,1fr);gap:40px;margin-top:55px}.process-list li,.process-list li:first-child{display:block;padding:22px 0 0;border-top:1px solid #aebdd0}.step-number{font:13px/1.6 Arial;display:block;margin-bottom:22px}.process-list h3{font-size:17px}.process-list p{font-size:14px;line-height:2}
.profile-section{padding-block:100px}.profile-identity{border-color:#b4c3d4}.profile-identity h3{font-size:48px}.profile-copy>p{font-size:14px}.diagnosis-section{background:var(--blue)}.diagnosis-heading h2{font-size:34px}.diagnosis-intro{font-size:14px}.faq-section{padding-block:90px}.faq summary{font-size:16px;min-height:80px}.faq .answer{font-size:14px}.contact-section{background:#e7edf4}.contact-intro h2{font-size:42px}.field input,.field textarea{border-radius:3px;border-color:#c3cedc}.btn{border-radius:3px;transition:transform 160ms var(--ease-out),background 160ms ease,color 160ms ease}.btn:active,.hero-contact:active{transform:scale(.97)}.field>label{font-size:14px}.site-footer{background:var(--navy);color:#fff;width:100%;padding:50px 56px 30px}.site-footer .amp{color:#b9c9df}.footer-bottom{color:#b9c9df;border-color:#ffffff25}.footer-nav{font-size:12px}.footer-bottom{font-size:11px}
.hero-contact:hover>span,.consult-link:hover>span,.service-contact:hover>span{transform:none}.nav-link::after{transition:none}.progress-track>span,.category-track>span{transition:none}.disclosure-mark::after{transition:transform 200ms var(--ease-out)}
@media(hover:hover) and (pointer:fine){.hero-contact:hover{background:#e4ebf3;color:var(--navy)}.hero-contact:hover>span,.consult-link:hover>span,.service-contact:hover>span{transform:translate(2px,-2px)}.hero-contact>span,.consult-link>span,.service-contact>span{transition:transform 160ms var(--ease-out)}.service-row summary:hover{color:var(--slate)}.nav-link::after{transition:transform 160ms var(--ease-out)}}
html[data-keyboard] *,html[data-keyboard] *::before,html[data-keyboard] *::after{transition:none!important;scroll-behavior:auto!important}
@media(min-width:1700px){.hero,.header,.site-footer{padding-inline:max(56px,calc((100vw - 1400px)/2))}}
@media(max-width:960px){.page-width{width:calc(100% - 56px)}.header,.hero,.site-footer{width:100%;padding-inline:28px}.hero-grid{gap:30px}.hero h1{font-size:clamp(42px,6.4vw,64px)}.hero-services a{font-size:11px}.hero-photo figcaption{font-size:14px}.hero-summary p{font-size:13px}.mobile-menu nav{background:var(--navy);color:white}.mobile-menu nav a{border-color:#ffffff25}.approach-inner{gap:7%}.process-list{gap:25px}.services{gap:0 30px;grid-template-columns:.7fr 1.3fr}.service-row summary{gap:12px;grid-template-columns:20px 1fr 30px}}
@media(max-width:760px){.page-width{width:calc(100% - 40px)}.header,.hero,.site-footer{width:100%;padding-inline:20px}.header{min-height:80px}.hero{padding-top:24px}.hero-caption>span{display:none}.hero-grid{grid-template-columns:1fr;padding:40px 0 30px;gap:36px}.hero h1{font-size:clamp(42px,10.5vw,68px)}.hero-summary{margin-top:18px}.hero-summary p{font-size:13px}.hero-summary br{display:none}.hero-contact{margin-top:23px;min-height:48px}.hero-photo{width:82%;justify-self:end}.photo-window{aspect-ratio:1.55;border-radius:140px 140px 2px 2px}.hero-photo figcaption{font-size:13px;margin-top:14px}.hero-services{grid-template-columns:1fr;padding-bottom:8px}.hero-services a,.hero-services a:first-child{display:flex;gap:20px;padding:12px 0!important;border-left:0;border-bottom:1px solid #ffffff20;align-items:center;font-size:12px;min-height:44px}.hero-services span{margin:0}.arch-lines{width:100%;right:-42%;height:760px;top:90px}.approach{padding:60px 0}.approach-inner{grid-template-columns:1fr;gap:40px}.approach h2{font-size:32px}.opening-note h2{font-size:23px}.services{display:block;padding:50px 0 60px}.services-intro{position:static;margin-bottom:30px}.services-intro h2{font-size:32px}.services-intro>p{margin-top:18px}.services-intro .service-instruction{margin-top:12px}.service-title{font-size:19px;letter-spacing:-.04em}.service-row summary,.service-row summary:hover{padding:24px 0;gap:12px;grid-template-columns:20px 1fr 30px}.service-body{padding-left:32px}.service-note{margin-top:20px}.process-section{padding:50px 0}.process-section .section-heading{display:block}.process-section .section-heading>p:last-child{margin-top:20px}.process-list{grid-template-columns:1fr;gap:28px;margin-top:32px}.process-list li,.process-list li:first-child{display:grid;grid-template-columns:28px 1fr;gap:18px}.step-number{margin:0;padding-top:5px}.profile-section{padding-block:60px}.diagnosis-heading h2{font-size:29px}.faq-section{padding-block:55px}.contact-intro h2{font-size:32px}.contact-section{padding-block:55px}.site-footer{padding-block:40px 25px}}
@media(prefers-reduced-motion:reduce){.hero-contact:active,.btn:active{transform:none}.hero-contact,.btn{transition:background 160ms ease,color 160ms ease!important}.photo-window img{transform:none!important}}
