@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;600;700;800&display=swap');
:root{--navy:#102642;--gold:#d9bd82;--ink:#25354a;--muted:#667589;--bg:#f5f7f9}*{box-sizing:border-box}body{margin:0;color:var(--ink);font-family:'Noto Sans JP',system-ui,sans-serif;line-height:1.9}a{color:inherit}header{background:white;border-bottom:1px solid #e4e8ee;position:sticky;top:0;z-index:20}.wrap{max-width:1100px;margin:auto;padding:0 24px}.nav{display:flex;align-items:center;justify-content:space-between;min-height:84px;gap:20px}.brand{font-weight:800;text-decoration:none;line-height:1.5;color:var(--navy)}.brand small{display:block;font-size:11px;font-weight:500;letter-spacing:.08em}.links{display:flex;gap:17px;flex-wrap:wrap;align-items:center}.links a{font-size:13px;text-decoration:none;font-weight:600}.links a:hover,.footer a:hover{color:#b08c48}.btn{display:inline-block;background:var(--gold);color:var(--navy);padding:13px 22px;border-radius:5px;font-weight:800;text-decoration:none;border:0;cursor:pointer}.btn.secondary{background:white;border:1px solid #cbd4de}.hero{background:linear-gradient(120deg,#102642 0%,#203d5e 100%);color:white;padding:96px 0 90px}.eyebrow{font-size:13px;letter-spacing:.12em;color:var(--gold);font-weight:700}.hero h1{font-size:clamp(34px,5vw,61px);line-height:1.45;margin:18px 0}.hero h2{font-size:clamp(18px,2.4vw,26px);font-weight:600;margin:0 0 24px}.hero p{max-width:720px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin-top:30px}.hero .btn.secondary{background:transparent;color:white;border-color:#92a2b7}.section{padding:78px 0}.section.alt{background:var(--bg)}.section h2{font-size:clamp(25px,3vw,34px);line-height:1.5;color:var(--navy);margin:0 0 26px}.lead{font-size:18px;max-width:850px}.grid{display:grid;grid-template-columns:repeat(3,1fr);gap:20px}.grid.two{grid-template-columns:repeat(2,1fr)}.card{background:white;border:1px solid #e0e6ec;padding:28px;border-radius:8px}.card h3{color:var(--navy);font-size:20px;line-height:1.5;margin:0 0 12px}.card p{margin:0}.number{color:#b28c49;font-weight:800;letter-spacing:.1em;font-size:12px}.steps{counter-reset:step}.step{padding:22px 0;border-bottom:1px solid #dde3e9}.step strong{display:block;color:var(--navy);font-size:20px}.notice{border-left:4px solid var(--gold);background:#fffaf0;padding:18px 24px;margin:25px 0}.cta{background:var(--navy);color:white;padding:55px 0}.cta h2{color:white;margin:0 0 15px}.footer{background:#0b1b30;color:#d8e0e8;padding:40px 0;font-size:13px}.footer a{margin-right:16px}.pagehead{background:var(--navy);color:white;padding:64px 0}.pagehead h1{font-size:clamp(30px,4vw,44px);margin:10px 0}.pagehead p{max-width:780px}.tag{display:inline-block;border:1px solid #d9bd82;color:#a47b31;padding:2px 10px;border-radius:4px;font-size:12px;font-weight:700;margin-bottom:10px}.form{max-width:750px}.form label{display:block;font-weight:700;margin:20px 0 8px}.form input,.form textarea,.form select{display:block;width:100%;padding:13px;font:inherit;border:1px solid #bfcbd8;border-radius:5px}.form textarea{min-height:145px}.form button{margin-top:20px}.fine{font-size:12px;color:var(--muted)}.placeholder{background:#f8e9c7;border:1px dashed #a78c5c;padding:14px;border-radius:6px;color:#5e4b2b;font-size:13px}.menu-toggle{display:none}ul{padding-left:1.4em}li{margin:7px 0}@media(max-width:850px){.nav{min-height:72px;flex-wrap:wrap}.menu-toggle{display:block;background:white;border:1px solid #cbd4de;padding:8px 12px;border-radius:4px;font:inherit}.links{display:none;flex-direction:column;align-items:stretch;width:100%;padding:0 0 16px}.links.open{display:flex}.links a{padding:5px}.grid,.grid.two{grid-template-columns:1fr}.hero{padding:70px 0}.section{padding:55px 0}}
/* 外部メディアへの導線 */
.external-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px;margin-top:24px}
.external-card{border:1px solid #d9e1e9;background:#fff;border-radius:14px;padding:24px;display:flex;flex-direction:column;gap:10px}
.external-card .channel{font-size:12px;letter-spacing:.1em;color:#8a6b31;font-weight:700}
.external-card h3{margin:0}.external-card p{margin:0;flex:1}.external-card .external-action{display:inline-block;color:#102642;font-weight:700;text-decoration:underline;text-underline-offset:4px;margin-top:12px}
.external-card .external-action.external-pending{color:#6d7884;text-decoration:none;cursor:not-allowed}.external-card .link-status{font-size:12px}
.external-notice{background:#f6f4eb;border-left:4px solid #b89b62;padding:14px 18px;margin:22px 0;color:#34465b}
@media(max-width:700px){.external-grid{grid-template-columns:1fr}}

/* STEP4: anonymous case studies */
.case-detail{background:#fff;border:1px solid #e4e9ed;border-radius:14px;padding:30px;margin:28px 0;box-shadow:0 8px 24px rgba(16,38,66,.05)}
.case-detail h3{color:#102642;margin:10px 0 22px}.case-detail h4{color:#102642;margin:0 0 10px;font-size:1.05rem}.case-columns{display:grid;grid-template-columns:1fr 1fr;gap:25px}.case-columns>div{padding:18px;background:#f6f8fa;border-radius:10px}.case-result{margin-top:18px;padding:18px 22px;background:#fbf8f0;border-left:4px solid #d9bd82;border-radius:5px}.case-result p{margin:8px 0 0}.case-disclaimer{font-size:.88rem;color:#65707a;margin-top:22px}@media(max-width:680px){.case-columns{grid-template-columns:1fr}.case-detail{padding:20px}}

/* STEP 6: consultation conversion sections */
.consult-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px;margin:26px 0 30px}
.notice-panel{border-left:4px solid #d9bd82;background:#f5f7fa;padding:20px 24px;margin:22px 0 40px;border-radius:0 10px 10px 0}
.notice-panel p{margin-bottom:0}
.privacy-check{display:flex;align-items:flex-start;gap:10px}
.privacy-check input{width:auto!important;flex:none;margin-top:5px}
#inquiry-form{scroll-margin-top:95px}
.cta .actions{display:flex;justify-content:center;gap:14px;flex-wrap:wrap;margin:22px 0}
.cta .fine{opacity:.85}
@media(max-width:760px){.consult-grid{grid-template-columns:1fr}.notice-panel{padding:18px}.cta .actions{flex-direction:column;align-items:stretch}}

/* STEP 7: representative portrait */
.representative-feature{display:grid;grid-template-columns:minmax(0,1.45fr) minmax(240px,.75fr);align-items:center;gap:48px}
.representative-photo{max-width:330px;justify-self:center;width:100%}
.representative-photo img{display:block;width:100%;height:auto;aspect-ratio:4/5;object-fit:cover;object-position:center 24%;border-radius:12px;box-shadow:0 14px 36px rgba(16,38,66,.14)}
.representative-name{font-weight:700;color:#102642;margin:24px 0}.representative-name small{display:block;font-size:13px;font-weight:500;color:#667589}
.profile-intro{display:grid;grid-template-columns:260px minmax(0,1fr);align-items:center;gap:42px;margin:0 0 48px;padding-bottom:42px;border-bottom:1px solid #e1e6eb}
.profile-intro-photo img{display:block;width:100%;height:auto;border-radius:12px;box-shadow:0 12px 30px rgba(16,38,66,.12)}
.profile-intro-name{font-size:clamp(27px,3vw,36px);font-weight:800;color:#102642;margin:10px 0 0}.profile-intro-text .lead{font-weight:700;color:#102642}
@media(max-width:700px){.representative-feature{grid-template-columns:1fr;gap:26px}.representative-photo{max-width:250px;justify-self:start}.profile-intro{grid-template-columns:1fr;gap:22px}.profile-intro-photo{max-width:245px}}

/* STEP 8: official logo, office and Onomichi imagery */
.brand{display:flex;align-items:center;gap:12px;min-width:0}.brand-logo{width:88px;height:48px;object-fit:contain;flex:none}.brand-copy{display:block;font-size:14px}.brand-copy small{font-size:10px}.office-gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:28px}.office-figure,.onomichi-figure{margin:0}.office-figure img{width:100%;height:290px;object-fit:cover;border-radius:10px;display:block}.office-figure figcaption,.onomichi-figure figcaption{font-size:13px;color:#667589;padding:10px 2px}.onomichi-figure{margin-top:30px}.onomichi-figure img{width:100%;height:340px;object-fit:cover;object-position:center 55%;border-radius:12px;display:block}
@media(max-width:850px){.brand-logo{width:70px;height:42px}.brand-copy{font-size:12px}.brand-copy small{font-size:9px}.office-gallery-grid{grid-template-columns:1fr}.office-figure img{height:auto;max-height:320px}.onomichi-figure img{height:240px}}

/* STEP9: 受賞歴・メディア掲載 */
.cred-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px;margin-top:28px}.cred-card{background:#fff;border:1px solid #e2e7ed;border-radius:15px;overflow:hidden;box-shadow:0 8px 28px rgba(16,38,66,.06)}.cred-card img{width:100%;height:240px;object-fit:cover;object-position:center 25%;display:block;background:#f3f5f8}.cred-card .cred-content{padding:22px}.cred-card h3{margin:8px 0 10px}.cred-card p{line-height:1.8}.cred-meta{font-size:.86rem;font-weight:700;color:#637187}.cred-notice{font-size:.85rem;color:#637187;margin-top:18px;line-height:1.8}.cred-highlight{border-left:4px solid #d9bd82;padding:14px 18px;background:#f8f9fb;margin:24px 0}.cred-link{margin-top:22px}.cred-mini{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px}.cred-mini .card{min-width:0}@media(max-width:700px){.cred-grid,.cred-mini{grid-template-columns:1fr}.cred-card img{height:220px}}

/* STEP 9 微調整：2024年3月1日号の人物を胸元まで見せる */
.cred-card img.keizai-portrait-adjust{object-position:center 66%;}

/* STEP 9: 誌面2点は表紙の題字と胸元が見えるよう、全体を縮小して表示。 */
.cred-card img.media-cover-full {
  display:block; width:100%; height:410px; object-fit:contain;
  object-position:center center; background:#f6f7f9; padding:12px 16px;
}
@media(max-width:700px){.cred-card img.media-cover-full{height:350px;padding:10px}}

/* STEP10: keyboard access, responsive safety and content readability */
:focus-visible{outline:3px solid #b38a42;outline-offset:3px}
img{max-width:100%}body{overflow-wrap:break-word}
html{scroll-behavior:smooth}section[id]{scroll-margin-top:88px}
@media(max-width:700px){.section{overflow-x:clip}.cred-card img.media-cover-full{height:auto;max-height:440px;min-height:0;object-fit:contain}.brand-copy{overflow-wrap:anywhere}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* STEP11: honeypot field */
.bot-field{position:absolute!important;left:-9999px!important;width:1px!important;height:1px!important;overflow:hidden!important}
