/* 宮崎航大 ファゴットレッスン — 共通スタイル
   色は写真から：背景の黒、ファゴットの赤茶、キーの銀、スーツの紺 */
:root{
  --black:#000;
  --ink:#17191e;
  --paper:#fff;
  --mist:#eff1f3;
  --line:#d5d9de;
  --muted:#59616b;
  --maroon:#8a2430;
  --maroon-deep:#6a1722;
  --maroon-bright:#a62c3a;
  --navy:#172238;
  --silver:#b4bac1;
  --serif:"Shippori Mincho","Hiragino Mincho ProN","Yu Mincho","Noto Serif CJK JP","Noto Serif JP",serif;
  --sans:"Hiragino Kaku Gothic ProN","Hiragino Sans","Yu Gothic","Noto Sans CJK JP","Noto Sans JP",sans-serif;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:84px;-webkit-text-size-adjust:100%}
body{margin:0;color:var(--ink);background:var(--paper);font-family:var(--sans);font-size:16px;line-height:1.9;font-feature-settings:"palt"}
img{max-width:100%;display:block}
a{color:inherit;text-underline-offset:5px}
button{font:inherit}
strong{font-weight:700}
h1,h2,h3,h4,p,ul,ol,dl,figure{margin:0}
.wrap{max-width:1120px;margin:0 auto;padding:0 40px}
.skip{position:absolute;left:-9999px}
.skip:focus{left:16px;top:16px;z-index:50;background:#fff;padding:10px 16px}
a:focus-visible,button:focus-visible,summary:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible{outline:3px solid #e0a13a;outline-offset:3px}

/* ヘッダー */
.site-header{position:sticky;top:0;z-index:20;background:rgba(255,255,255,.94);border-bottom:1px solid var(--line);backdrop-filter:blur(10px)}
.site-header .wrap{display:flex;align-items:center;justify-content:space-between;gap:24px;min-height:72px}
.brand{text-decoration:none;font-family:var(--serif);font-size:20px;font-weight:500;letter-spacing:.14em;line-height:1.3;white-space:nowrap}
.brand small{display:block;font-family:var(--sans);font-size:11px;font-weight:500;letter-spacing:.06em;color:var(--muted)}
.site-nav{display:flex;align-items:center;gap:26px}
.site-nav a{font-size:14px;font-weight:500;text-decoration:none;white-space:nowrap}
.site-nav a:hover{text-decoration:underline}
.site-nav .button{min-height:42px;padding:6px 18px;font-size:14px}
.site-nav .button:hover{text-decoration:none}

/* ボタン */
.button{display:inline-flex;align-items:center;justify-content:center;min-height:52px;padding:12px 28px;background:var(--maroon);color:#fff;border:0;border-radius:3px;font-weight:700;font-size:16px;line-height:1.4;text-decoration:none;cursor:pointer}
.button:hover{background:var(--maroon-deep)}
.text-link{font-weight:500}

/* ヒーロー：黒は写真の背景と同じ色 */
.hero{background:var(--black);color:#fff;overflow:hidden}
.hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) auto 470px;align-items:end;min-height:700px;position:relative}
.hero-copy{padding:0 0 72px;max-width:470px;position:relative;z-index:2}
.hero h1{font-family:var(--sans);font-size:15px;font-weight:500;letter-spacing:.08em;line-height:1.8;color:#d4d8dd}
.hero-name{font-family:var(--serif);font-size:44px;font-weight:500;letter-spacing:.18em;line-height:1.4;margin:10px 0 0}
.hero-name span{display:block;font-size:14px;letter-spacing:.14em;color:var(--silver);margin-top:6px}
.hero-lead{margin-top:20px;font-family:var(--serif);font-size:21px;font-weight:500;line-height:1.9;letter-spacing:.03em}
.hero-sub{margin-top:16px;font-size:15px;line-height:1.9;color:#cfd4da}
.hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:30px}
.hero .button{background:var(--maroon-bright)}
.hero .button:hover{background:var(--maroon)}
.hero-actions .text-link{font-size:14px;color:#d4d8dd}
.hero-tagline{writing-mode:vertical-rl;font-family:var(--serif);font-weight:500;font-size:clamp(68px,7.4vw,96px);line-height:1.3;letter-spacing:.2em;align-self:start;margin:84px -96px 0 0;position:relative;z-index:2;white-space:nowrap;font-feature-settings:normal}
.hero-role{display:block;font-size:17px;letter-spacing:.3em;line-height:1.5;color:var(--silver);margin-left:14px}
.hero-role span{font-size:13px;letter-spacing:.12em;margin-top:22px;display:inline-block}
.hero-photo{align-self:stretch;position:relative;z-index:1}
.hero-photo picture{display:block;height:100%}
.hero-photo img{width:100%;height:100%;min-height:700px;object-fit:cover;object-position:60% top}

/* 経歴の要点 */
.proof{background:var(--navy);color:#fff}
.proof dl{display:grid;grid-template-columns:repeat(4,minmax(0,1fr))}
.proof dl>div{padding:30px 26px 32px 0;margin-right:26px;border-right:1px solid rgba(255,255,255,.18)}
.proof dl>div:last-child{border-right:0;margin-right:0;padding-right:0}
.proof dt{font-size:12px;font-weight:500;color:var(--silver);letter-spacing:.06em}
.proof dd{margin:8px 0 0;font-family:var(--serif);font-size:18px;font-weight:500;line-height:1.65}
.proof dd small{display:block;font-family:var(--sans);font-size:12px;font-weight:400;color:#c9cfd6;line-height:1.7;margin-top:6px}

/* セクション共通 */
.section{padding:92px 0}
.section.tint{background:var(--mist)}
.section.dark{background:var(--navy);color:#eef1f4}
.split{display:grid;grid-template-columns:270px minmax(0,1fr);gap:64px}
h2{font-family:var(--serif);font-size:31px;font-weight:500;line-height:1.6;letter-spacing:.06em}
.split>div:first-child p{font-size:14px;color:var(--muted);margin-top:14px;line-height:1.8}
.dark .split>div:first-child p{color:#c3cad2}
h3{font-size:19px;font-weight:700;line-height:1.6}
.lead{font-family:var(--serif);font-size:25px;font-weight:500;line-height:1.85;letter-spacing:.03em}
.body{max-width:680px}
.body p+p{margin-top:16px}
.note{font-size:14px;color:var(--muted);line-height:1.8}
.block{margin-top:56px}

/* 悩みのリスト */
.worries{list-style:none;padding:0;display:grid;grid-template-columns:1fr 1fr;gap:0 40px;margin-top:30px;border-top:1px solid var(--line)}
.worries li{padding:16px 0;border-bottom:1px solid var(--line);position:relative;font-size:16px;font-weight:500;line-height:1.7}
.after-list{margin-top:30px}

/* 初回レッスンの流れ（実際に順番がある） */
.flow{list-style:none;padding:0;counter-reset:step;margin-top:28px}
.flow li{counter-increment:step;display:grid;grid-template-columns:54px minmax(0,1fr);padding:24px 0;border-top:1px solid var(--line)}
.flow li:last-child{border-bottom:1px solid var(--line)}
.flow li::before{content:counter(step);font-family:var(--serif);font-size:34px;line-height:1.1;color:var(--maroon)}
.flow strong{display:block;font-size:18px;line-height:1.6}
.flow span{display:block;font-size:15px;margin-top:6px;color:#353b44}

/* 対象 */
.audience{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}
.audience article{border-top:3px solid var(--maroon);padding-top:18px}
.audience h3{font-size:17px}
.audience p{font-size:15px;line-height:1.85;margin-top:8px}

/* 料金 */
.courses{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
.course{background:#fff;padding:26px 22px 24px;border-radius:3px}
.course h3{font-family:var(--serif);font-size:20px;font-weight:500}
.course-price{font-family:var(--serif);font-size:36px;line-height:1.4;margin-top:10px;font-feature-settings:normal}
.course-price span{font-family:var(--sans);font-size:14px;margin-left:4px}
.course-unit{font-size:13px;color:var(--muted)}
.course-for{font-size:14px;line-height:1.8;margin-top:14px;padding-top:14px;border-top:1px solid var(--line)}
.totals{margin-top:16px;background:#fff;border-radius:3px;padding:24px 22px}
.totals h3{font-size:16px}
.totals dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 20px;align-items:baseline;padding:14px 0;border-bottom:1px solid var(--line)}
.totals dt{font-weight:700;font-size:15px}
.totals .nw{display:inline-block}
.totals dd{margin:0;display:contents}
.totals dd strong{grid-column:2;grid-row:1;text-align:right;white-space:nowrap;font-family:var(--serif);font-size:24px;font-weight:500;font-feature-settings:normal}
.totals dd span{grid-column:1/-1;display:block;text-align:right;font-size:12px;color:var(--muted);line-height:1.6}
.totals .note{margin-top:12px;font-size:13px}
.first-offer{margin-top:22px;padding:16px 20px;background:#fff;border-left:3px solid var(--maroon);font-size:15px}
.first-offer strong{color:var(--maroon)}
.facts{margin-top:34px;border-top:1px solid var(--line)}
.facts div{display:grid;grid-template-columns:130px minmax(0,1fr);gap:20px;padding:18px 0;border-bottom:1px solid var(--line)}
.facts dt{font-size:14px;font-weight:700}
.facts dd{margin:0;font-size:15px}
.area-links{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:30px}
.area-links a{display:block;background:#fff;padding:20px 22px;border-radius:3px;text-decoration:none;border:1px solid transparent}
.area-links a:hover{border-color:var(--maroon)}
.area-links strong{display:block;font-family:var(--serif);font-size:19px;font-weight:500;text-decoration:underline;text-underline-offset:6px;text-decoration-thickness:1px}
.area-links span{display:block;font-size:13px;color:var(--muted);margin-top:6px;line-height:1.7}
.cta-row{display:flex;align-items:center;gap:20px;flex-wrap:wrap;margin-top:34px}
.cta-row span{font-size:13px;color:var(--muted)}

/* プロフィール */
.profile-photo img{width:100%;height:auto;border-radius:3px}
.profile-photo figcaption{font-size:12px;color:var(--muted);margin-top:10px}
.split>div:first-child .profile-photo{margin-top:28px}
.career{list-style:none;padding:0;margin-top:26px;border-top:1px solid var(--line)}
.career li{padding:16px 0;border-bottom:1px solid var(--line)}
.career strong{display:block;font-size:17px;line-height:1.6}
.career span{display:block;font-size:14px;color:var(--muted);margin-top:3px}
details{border-bottom:1px solid var(--line)}
summary{cursor:pointer;padding:18px 34px 18px 0;font-weight:700;font-size:16px;line-height:1.7;list-style:none;position:relative}
summary::-webkit-details-marker{display:none}
summary::after{content:"";position:absolute;right:8px;top:26px;width:9px;height:9px;border-right:2px solid var(--maroon);border-bottom:2px solid var(--maroon);transform:rotate(45deg);transition:transform .2s}
details[open] summary::after{transform:rotate(-135deg);top:31px}
details>div,details>p{padding:0 0 22px;font-size:15px}
details>div p+p{margin-top:14px}
.bio{margin-top:26px;font-size:15px;line-height:1.95}
.bio p+p{margin-top:14px}
.awards{list-style:none;padding:0;margin-top:8px}
.awards li{margin-top:14px;font-size:15px;line-height:1.75}
.awards li span{font-family:var(--serif);color:var(--maroon);margin-right:10px}
.awards small{display:block;color:var(--muted);font-size:13px}
.bio h3{font-size:16px;margin-top:26px}

/* 動画 */
.video-frame{width:100%;aspect-ratio:16/9;display:block;border:0;background:#05090f;margin-top:24px}
.video-facade{position:relative;aspect-ratio:16/9}
.video-facade button{display:block;width:100%;height:100%;padding:0;border:0;background:#05090f;cursor:pointer;position:relative}
.video-facade img{width:100%;height:100%;object-fit:cover}
.video-facade .play{position:absolute;left:50%;top:50%;width:76px;height:76px;margin:-38px 0 0 -38px;border-radius:50%;background:rgba(0,0,0,.62);border:2px solid #fff}
.video-facade .play::after{content:"";position:absolute;left:29px;top:21px;border-left:24px solid #fff;border-top:15px solid transparent;border-bottom:15px solid transparent}
.video-facade button:hover .play{background:var(--maroon-bright)}
.video-source{font-size:12px;line-height:1.8;color:#b9c2cc;margin-top:14px}
.dark .text-link{color:#fff}
.dark .cta-row span{color:#c3cad2}

/* 学校 */
.ask-list{list-style:none;padding:0;display:flex;flex-wrap:wrap;gap:8px 10px;margin:20px 0 28px}
.ask-list li{font-size:14px;font-weight:500;padding:5px 14px;border:1px solid #aab2bb;border-radius:999px;line-height:1.7}

/* お問い合わせ */
.contact-ways{display:grid;grid-template-columns:1fr 1fr;gap:16px;margin-top:26px}
.contact-way{border:1px solid var(--line);border-radius:3px;padding:24px 22px}
.contact-way h3{font-size:18px}
.contact-way p{font-size:15px;line-height:1.8;margin-top:8px}
.contact-way .button{margin-top:16px;width:100%}
.contact-way .text-link{display:inline-block;margin-top:16px}
.contact-way .note{font-size:13px;margin-top:8px}
.button-line{background:#06803a}
.button-line:hover{background:#05652e}
.form-title{margin-top:48px;padding-top:36px;border-top:1px solid var(--line)}
.contact-help{background:var(--mist);padding:18px 22px;margin-top:22px;font-size:14px;border-left:3px solid var(--maroon)}
.form-grid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:30px}
.form-grid label{display:block;font-size:14px;font-weight:700}
.form-grid .full{grid-column:1/-1}
.form-grid input,.form-grid select,.form-grid textarea{display:block;width:100%;margin-top:8px;border:1px solid #97a1ab;border-radius:3px;padding:12px;background:#fff;color:var(--ink);font:inherit;font-size:16px;font-weight:400;line-height:1.6}
.form-grid textarea{resize:vertical}
.required,.optional{font-size:12px;font-weight:500;margin-left:8px}
.required{color:var(--maroon)}
.optional{color:var(--muted)}
form .button{margin-top:26px}
form .note{margin-top:16px}

/* フッター */
.site-footer{background:var(--black);color:#c9cfd6;padding:44px 0 40px;font-size:13px}
.site-footer .wrap{display:flex;justify-content:space-between;align-items:flex-end;gap:24px;flex-wrap:wrap}
.site-footer strong{display:block;font-family:var(--serif);font-size:19px;font-weight:500;letter-spacing:.14em;color:#fff}
.footer-links{display:flex;gap:22px;flex-wrap:wrap}

/* 地域ページ */
.area-hero{background:var(--black);color:#fff}
.area-hero .wrap{display:grid;grid-template-columns:minmax(0,1fr) 380px;gap:48px;align-items:center}
.area-hero-copy{padding:64px 0}
.breadcrumbs{font-size:13px;color:#c3cad2}
.area-hero h1{font-family:var(--serif);font-weight:500;font-size:clamp(34px,4.2vw,50px);line-height:1.5;letter-spacing:.08em;margin:18px 0 22px}
.area-hero .lead{font-size:21px}
.area-hero p+p{margin-top:14px;color:#e3e6ea;max-width:600px}
.area-hero .button{background:var(--maroon-bright);margin-top:28px}
.area-hero img{width:100%;height:100%;max-height:440px;object-fit:cover;object-position:center 20%}
.link-list{list-style:none;padding:0;margin-top:24px}
.link-list li{margin-top:8px}
.footer-nav{display:flex;gap:24px;flex-wrap:wrap;margin-top:30px}

/* 送信完了 */
.thanks{min-height:100vh;display:grid;place-items:center;background:var(--mist);padding:24px}
.thanks main{max-width:560px;background:#fff;padding:44px 34px;border-top:4px solid var(--maroon)}
.thanks h1{font-family:var(--serif);font-size:27px;font-weight:500;line-height:1.6;margin:14px 0 18px}
.thanks .button{margin-top:26px}

@media(max-width:1000px){
  .site-nav a:not(.button){display:none}
  .hero .wrap{grid-template-columns:minmax(0,1fr) auto 400px}
  .hero-tagline{margin-right:-84px}
  .proof dl{grid-template-columns:1fr 1fr}
  .proof dl>div{border-right:0;margin-right:0;padding:24px 20px 24px 0;border-bottom:1px solid rgba(255,255,255,.18)}
  .proof dl>div:nth-last-child(-n+2){border-bottom:0}
  .split{grid-template-columns:1fr;gap:28px}
  .split>div:first-child .profile-photo{max-width:300px}
}
@media(max-width:760px){
  html{scroll-padding-top:70px}
  .wrap{padding:0 22px}
  .site-header .wrap{min-height:60px}
  .brand{font-size:17px}
  .brand small{font-size:10px}
  .site-nav .button{min-height:40px;padding:6px 16px;font-size:13px}
  .brand-extra{display:none}
  .hero .wrap{display:flex;flex-direction:column;min-height:0;padding:0}
  .hero-photo{order:-1}
  .hero-photo{height:min(122vw,560px)}
  .hero-photo img{min-height:0;object-position:62% top}
  .hero-photo::after{content:"";position:absolute;inset:auto 0 0 0;height:36%;background:linear-gradient(0deg,#000,transparent)}
  .hero-tagline{position:absolute;top:30px;left:22px;margin:0;font-size:min(13.5vw,56px);text-shadow:0 0 14px #000,0 0 4px #000}
  .hero-role{font-size:13px;margin-left:10px}
  .hero-role span{font-size:11px;margin-top:14px}
  .hero-lead{font-size:17px;letter-spacing:0}
  .hero-copy{padding:0 22px 44px;margin-top:-34px;max-width:none}
    .hero-actions{gap:18px}
  .hero .button{width:100%}
  .proof dl{grid-template-columns:1fr}
  .proof dl>div,.proof dl>div:nth-last-child(-n+2){padding:18px 0;border-bottom:1px solid rgba(255,255,255,.18)}
  .proof dl>div:last-child{border-bottom:0}
  .proof dd{font-size:17px}
  .section{padding:60px 0}
  .split{grid-template-columns:1fr;gap:26px}
  h2{font-size:26px}
  .lead{font-size:21px}
  .block{margin-top:44px}
  .worries{grid-template-columns:1fr}
  .audience{grid-template-columns:1fr;gap:26px}
  .courses{grid-template-columns:1fr}
  .course-price{font-size:32px}
  .facts div{grid-template-columns:86px minmax(0,1fr);gap:14px}
  .area-links{grid-template-columns:1fr}
  .split>div:first-child .profile-photo{max-width:300px;margin-top:22px}
  .contact-ways{grid-template-columns:1fr}
  .form-grid{grid-template-columns:1fr}
  form .button{width:100%}
  .site-footer .wrap{flex-direction:column;align-items:flex-start}
  .area-hero .wrap{grid-template-columns:1fr;gap:0}
  .area-hero-copy{padding:40px 0 44px}
  .area-hero img{display:none}
  .area-hero .button{width:100%}
}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}summary::after{transition:none}}
