*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:#f5f3ef;color:#19242a;font-family:system-ui,-apple-system,"Noto Sans JP",sans-serif;line-height:1.85}a{color:inherit}header{background:#11191f;color:white;position:sticky;top:0;z-index:10;box-shadow:0 2px 8px #0003}.wrap{max-width:1120px;margin:auto;padding:0 20px}.top{display:flex;align-items:center;justify-content:space-between;gap:20px;min-height:76px}.brand{font-size:1.45rem;font-weight:900;text-decoration:none;letter-spacing:.09em}.brand small{display:block;color:#c7c7c7;font-size:.65rem;letter-spacing:.16em}.nav{display:flex;flex-wrap:wrap;gap:4px}.nav a{font-size:.8rem;text-decoration:none;padding:9px 11px;border-radius:5px}.nav a:hover,.nav a.active{background:#ad3034}.hero{background:linear-gradient(130deg,#10191f,#34414a);color:white;padding:85px 0 76px}.eyebrow{color:#e8a4a6;font-size:.8rem;letter-spacing:.2em;font-weight:700}.hero h1{font-size:clamp(2.3rem,6vw,4.6rem);line-height:1.3;margin:12px 0}.hero p{max-width:690px}.btn{display:inline-block;padding:12px 22px;background:#ac2b30;color:#fff;text-decoration:none;border-radius:4px;font-weight:700;margin:10px 10px 0 0}.btn.secondary{background:transparent;border:1px solid #d6d6d6}main{min-height:65vh}.section{padding:55px 0}.section h2{font-size:1.9rem;margin:0 0 22px;padding-left:16px;border-left:5px solid #b32d32}.lead{font-size:1.12rem;max-width:800px}.grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.card{background:white;padding:25px;border:1px solid #e3e0dc;border-radius:7px;box-shadow:0 2px 8px #00000008}.card h3{margin-top:0}.card a{color:#9c2026;font-weight:700}.muted{color:#626a6e}.notice{background:#fff6e9;border-left:4px solid #bb7a25;padding:16px 20px;margin:22px 0}.tag{display:inline-block;background:#f1e5e5;color:#8c252a;padding:3px 9px;font-size:.8rem;border-radius:3px}.tablewrap{overflow-x:auto}table{border-collapse:collapse;width:100%;background:white}th,td{padding:12px 14px;text-align:left;border-bottom:1px solid #e0e0e0}th{background:#28363e;color:white}footer{background:#11191f;color:#d4d7d8;padding:30px 0;margin-top:30px}footer a{color:#fff}.subhero{background:#26343c;color:white;padding:46px 0}.subhero h1{font-size:2.3rem;margin:0}.subhero p{margin:6px 0 0}.placeholder{background:#e5e4e1;color:#686868;border:2px dashed #c5c4c1;border-radius:6px;min-height:155px;display:grid;place-items:center;text-align:center;padding:18px;font-size:.85rem}@media(max-width:900px){.top{display:block;padding:14px 0}.nav{padding-top:10px}.nav a{font-size:.75rem;padding:7px}.grid{grid-template-columns:1fr}.hero{padding:60px 0}.section{padding:38px 0}}
/* visual-first concept */
:root{--red:#c82b32;--ink:#111315}body{background:#f7f6f3;color:#17191b}header{background:#101113}.top{max-width:1350px}.brand{font-size:1.35rem}.nav a{font-weight:650}.hero{position:relative;min-height:540px;display:flex;align-items:center;background:linear-gradient(90deg,rgba(8,10,12,.96) 0%,rgba(8,10,12,.84) 46%,rgba(8,10,12,.25) 100%),url('https://images.unsplash.com/photo-1517836357463-d25dfeac3438?w=1800&q=85') center/cover;color:white}.hero .wrap{width:100%}.hero h1{font-size:clamp(3.4rem,8vw,7.5rem);letter-spacing:.07em;line-height:1.1}.hero .lead{font-size:clamp(1.05rem,2vw,1.4rem);max-width:620px}.eyebrow{color:#ff7478}.btn{background:var(--red);border-radius:0;padding:14px 26px}.section{padding-top:72px;padding-bottom:72px}.section h2{font-size:clamp(1.8rem,4vw,2.6rem);letter-spacing:.04em}.grid{gap:24px}.card{overflow:hidden;border-radius:3px;box-shadow:0 12px 35px #00000012;background:white}.card h3,.card p,.card>a{margin-left:22px;margin-right:22px}.card>a{display:inline-block;margin-bottom:22px;color:#aa1e27;font-weight:800}.photo{height:235px;position:relative;background-size:cover;background-position:center}.photo::after{content:'写真はレイアウト確認用の仮画像';position:absolute;bottom:0;left:0;right:0;background:#0009;color:white;padding:4px 10px;font-size:11px}.placeholder{display:none}.visual-banner{position:relative;min-height:300px;background:linear-gradient(90deg,#0a0b0de6,#0a0b0d44),url('https://images.unsplash.com/photo-1540539234-c14a20fb7c7b?w=1600&q=85') center/cover;display:flex;align-items:center;color:white}.visual-banner .wrap{width:100%}.visual-banner h1{font-size:clamp(2.5rem,5vw,4rem)}.sample-note{background:#fff4e6;color:#5c3c15;padding:10px 20px;font-size:.82rem;border-bottom:1px solid #e9d6bb}.section:nth-of-type(even){background:#efefeb}@media(max-width:780px){.hero{min-height:490px;background-position:60% center}.top{align-items:flex-start;padding-top:12px;padding-bottom:12px}.nav{max-height:100px;overflow:auto}.nav a{font-size:.72rem;padding:6px 8px}.photo{height:210px}.section{padding-top:45px;padding-bottom:45px}}

/* locally bundled visual edition */
.hero{min-height:560px;display:flex;align-items:center;background:linear-gradient(90deg,rgba(4,7,12,.68),rgba(4,7,12,.1)),url('assets/hero.svg') center/cover no-repeat!important;color:#fff}
.hero h1{font-size:clamp(46px,7vw,86px);line-height:1.1;text-shadow:0 4px 20px #0009}.hero .lead{color:#fff!important}.hero .eyebrow{color:#e8b4b5!important;letter-spacing:.18em}
.photo{background-size:cover!important;background-position:center!important;min-height:210px!important;border-radius:8px 8px 0 0}
.card{overflow:hidden;box-shadow:0 14px 35px #00000016;transition:transform .2s}.card:hover{transform:translateY(-4px)}
.section:nth-of-type(even){background:#f5f5f4}.sample-note{background:#841c25!important;color:white!important;font-size:12px!important;text-align:center;padding:8px}
nav a:hover{color:#bd2530}.brand{font-weight:900!important}.btn{background:#ae202c!important;color:white!important}.btn.secondary{background:transparent!important;border:1px solid white!important}
@media(max-width:700px){.hero{min-height:470px;background-position:58% center}.hero h1{font-size:48px}.photo{min-height:230px!important}}

/* 公式サイト写真参照版：筆文字は使わずゴシックで統一 */
.hero,.subhero{background-size:cover;background-position:center;background-repeat:no-repeat}.hero{padding:125px 0 115px;min-height:470px}.subhero{min-height:230px;display:flex;align-items:center}.hero h1,.subhero h1,.brand,.section h2{font-family:Arial,"Noto Sans JP","Yu Gothic",Meiryo,sans-serif;font-weight:900;letter-spacing:.015em}.hero h1{text-shadow:0 3px 15px #0008}.photo{height:190px;background-size:cover;background-position:center;border-radius:5px;margin:-10px -10px 16px}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:12px}.photo-grid img{width:100%;height:230px;object-fit:cover;border-radius:4px;background:#222}.sample-note{font-size:12px}.brand{letter-spacing:0}.gallery-section{background:#fff}@media(max-width:700px){.photo-grid{grid-template-columns:repeat(2,1fr)}.photo-grid img{height:145px}.hero{min-height:370px;padding:75px 0}}

/* 2026-10-27 正式ロゴ反映 */
.brand{display:inline-flex;align-items:center;gap:12px;flex-shrink:0;line-height:1.25}.brand-logo{width:54px;height:54px;object-fit:contain;display:block;background:#fff;border-radius:50%;padding:2px}.brand span{display:block}.brand small{margin-top:4px}.organization-logo{display:inline-block;margin:8px 0 16px}.organization-logo img{display:block;width:155px;max-width:100%;height:155px;object-fit:contain}.organization-logo:hover{opacity:.85}.card .organization-logo{margin-left:22px;margin-right:22px}.photo::after{display:none}
/* 実写真の背景指定を有効にする */
.hero{background-image:linear-gradient(90deg,rgba(4,7,12,.8),rgba(4,7,12,.18)),url("https://www.daidojuku.net/wp-content/uploads/2022/01/slide-mito-pc001.jpg")!important}
@media(max-width:900px){.brand-logo{width:44px;height:44px}.brand{font-size:1.1rem}.top{gap:10px}}

/* 公式横長バナー：元画像の比率を保持 */
.brand-banner{display:flex;align-items:center;flex:0 1 390px;min-width:230px;max-width:390px;line-height:1}.brand-banner img{display:block;width:100%;height:auto;object-fit:contain;background:#fff}.top{gap:12px}.nav{justify-content:flex-end}@media(max-width:900px){.brand-banner{width:min(100%,390px);max-width:390px}.top{padding-left:20px;padding-right:20px}}

/* KUDO full content */
.narrow{max-width:990px}.history-list{border-top:1px solid #ccc}.history-item{display:grid;grid-template-columns:130px 1fr;gap:20px;padding:17px 5px;border-bottom:1px solid #ccc}.history-item b{color:#ac222a;font-size:1.18rem}.kudo-stat-grid,.kudo-people{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}.kudo-stat,.kudo-people article{padding:28px;background:white;border:1px solid #ddd}.kudo-stat strong{font-size:1.5rem;color:#aa232b}.kudo-photo{margin:28px 0}.kudo-photo img{width:100%;max-height:410px;object-fit:cover}.kudo-comp h3{margin:24px 0 6px;padding-left:14px;border-left:4px solid #a92630}.kudo-comp p{margin-top:0}@media(max-width:650px){.history-item{grid-template-columns:88px 1fr;gap:12px}.kudo-stat-grid,.kudo-people{grid-template-columns:1fr}}

/* Official Kudo founder and successor portraits */
.kudo-people article {text-align:center;}
.kudo-people .leader-portrait {display:block;width:210px;height:210px;max-width:100%;object-fit:cover;object-position:center top;margin:0 auto 18px;border-radius:4px;}

/* Watermark is a BODY background, behind all content (not an overlay). */
body {
  background-color: #f5f3ef;
  background-image: url("assets/kudo_calligraphy_watermark.png");
  background-position: left 20px center;
  background-size: auto min(76vh, 820px);
  background-repeat: no-repeat;
  background-attachment: fixed;
}
@media (max-width: 700px) {
  body { background-size: 74vw auto; background-position: left -12vw center; }
}

/* Official Instagram panel: homepage only */
.instagram-section{position:relative}
.instagram-panel{display:flex;align-items:center;gap:28px;background:#15181d;color:#fff;padding:36px 42px;border-left:5px solid #b82935;border-radius:5px;box-shadow:0 8px 25px rgba(0,0,0,.08)}
.instagram-panel h2{color:#fff;margin:5px 0 12px;border:0;padding:0}
.instagram-panel p{color:#e4e4e4;margin-bottom:20px}
.instagram-mark{display:flex;align-items:center;justify-content:center;flex:none;width:94px;height:94px;border:4px solid #fff;border-radius:25px;font-size:76px;line-height:1;font-weight:bold}
.instagram-btn{display:inline-block}
@media(max-width:650px){.instagram-panel{padding:24px 20px;gap:15px;align-items:flex-start}.instagram-mark{width:55px;height:55px;border-width:3px;border-radius:15px;font-size:43px}.instagram-panel h2{font-size:1.35rem}}

/* Instagram branding update: light card with signature gradient */
.instagram-panel{background:#fff;color:#202124;border:1px solid #ebebef;border-left:0;border-radius:16px;box-shadow:0 12px 34px rgba(24,28,38,.08)}
.instagram-panel h2{color:#202124}
.instagram-panel p{color:#4e5360}
.instagram-panel .eyebrow{color:#a12a88}
.instagram-mark{color:#fff;border:0;background:linear-gradient(135deg,#833ab4 0%,#c13584 35%,#e1306c 60%,#f77737 85%,#fcaf45 100%);font-family:Arial,sans-serif}
.instagram-btn{background:linear-gradient(105deg,#833ab4,#c13584,#e1306c,#f77737);color:#fff;border:0;border-radius:9px;box-shadow:0 4px 12px rgba(193,53,132,.2)}
.instagram-btn:hover{filter:brightness(1.07);color:#fff}

/* Instagram feed mockup - separate from Instagram account link panel */
.instagram-gallery-intro{margin:0 0 18px}
.instagram-feed-preview{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:7px;max-width:860px;margin:0 auto}
.instagram-feed-preview a{display:block;aspect-ratio:1/1;overflow:hidden;background:#eee;border-radius:3px}
.instagram-feed-preview img{width:100%;height:100%;object-fit:cover;display:block;transition:transform .2s}
.instagram-feed-preview a:hover img{transform:scale(1.04)}
.instagram-preview-note{font-size:12px;color:#777;margin-top:15px}
@media(max-width:600px){.instagram-feed-preview{gap:3px}}


/* 2026-10-27 homepage restructure */
.home-recruit{padding-top:35px}.recruit-photo{display:block;width:100%;max-height:490px;object-fit:cover;border-radius:4px}.recruit-copy{text-align:center;padding:24px 10px 0}.recruit-label{font-weight:900;color:#b3242e;font-size:clamp(1.2rem,3vw,1.8rem);margin:0}.recruit-copy h1{font-size:clamp(1.7rem,4vw,3rem);margin:8px 0 16px}.recruit-copy p{font-size:1.08rem}.line-guide{display:block;width:min(100%,825px);height:auto;margin:0 auto 25px}.line-actions{display:flex;align-items:center;justify-content:center;gap:35px}.line-qr{width:240px;max-width:40%;height:auto}.line-add{width:232px;max-width:100%;height:auto}.line-note{font-size:12px;max-width:390px}.home-guide-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.home-guide{display:block;overflow:hidden;background:#fff;text-decoration:none;box-shadow:0 8px 22px #0001}.home-guide img{width:100%;height:210px;object-fit:cover;display:block}.home-guide span{display:flex;justify-content:space-between;align-items:center;font-size:1.25rem;font-weight:900;padding:15px 18px}.home-guide b{color:#b3242e}.kfit-home-banner{width:100%;display:block;height:auto}.profile-link{display:flex;align-items:center;gap:32px;background:#fff;padding:25px;text-decoration:none;border:1px solid #ddd}.profile-link img{width:210px;max-width:35%;height:auto;object-fit:contain}.profile-link h3{font-size:1.6rem;margin:0 0 12px}.profile-link small{font-size:.75rem;display:block;color:#777}.profile-more{color:#b3242e;font-weight:800}.related-links{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.related-links a{background:white;padding:20px 16px;text-decoration:none;font-weight:800;border-left:4px solid #b3242e}.sponsor-logo{display:flex;align-items:center;flex-direction:column;gap:12px;background:#fff;padding:28px;text-decoration:none;max-width:750px;margin:auto}.sponsor-logo img{width:100%;height:auto;max-height:240px;object-fit:contain}.sponsor-logo span{font-weight:700;color:#234478}@media(max-width:700px){.home-guide-grid,.related-links{grid-template-columns:1fr}.home-guide img{height:185px}.line-actions{gap:15px;flex-direction:column}.line-qr{max-width:75%;width:220px}.profile-link{align-items:flex-start;gap:18px;padding:15px}.profile-link img{max-width:38%}.profile-link h3{font-size:1.2rem}.profile-link p{font-size:.86rem}.sponsor-logo{padding:16px}}

/* 2026-10-27: reduce recruitment photo */
.home-recruit .wrap{max-width:950px}
.recruit-photo{width:100%;max-width:780px;max-height:300px;aspect-ratio:16/7;object-fit:cover;object-position:center 46%;margin:0 auto}
@media(max-width:700px){
 .recruit-photo{max-height:230px;aspect-ratio:16/9;object-position:center}
}

/* The official federation/Mito banner is the first visible header. */
.sample-note{display:none!important}
header{top:0}

/* Restore visible official banner as full-width top header, above navigation. */
header .official-banner-row{display:flex;align-items:center;justify-content:center;background:#101113;padding:14px 20px 12px;min-height:105px}
header .official-banner-row .brand-banner{display:block;flex:none;width:min(100%,650px);max-width:650px;min-width:0}
header .official-banner-row .brand-banner img{display:block;width:100%;height:auto;max-height:110px;object-fit:contain;background:#fff}
header .top{justify-content:center;min-height:52px;padding-top:5px;padding-bottom:8px}
header .nav{justify-content:center}
@media(max-width:900px){header .official-banner-row{min-height:70px;padding:10px 15px}header .official-banner-row .brand-banner{width:min(100%,500px)}header .top{padding-top:5px;padding-bottom:7px}}

/* Recruitment introduction: supporting photo left, copy right */
.home-recruit .wrap{max-width:1120px}
.home-recruit .recruit-layout{display:grid;grid-template-columns:minmax(240px,36%) minmax(0,1fr);align-items:center;gap:34px}
.home-recruit .recruit-photo{width:100%;max-width:none;max-height:none;aspect-ratio:4/3;object-fit:cover;object-position:center;margin:0;border-radius:4px}
.home-recruit .recruit-copy{text-align:left;padding:0}
.home-recruit .recruit-copy h1{font-size:clamp(1.55rem,3vw,2.5rem);line-height:1.4}
@media(max-width:700px){.home-recruit .recruit-layout{grid-template-columns:1fr;gap:18px}.home-recruit .recruit-photo{width:100%;max-width:430px;aspect-ratio:4/3;margin:0 auto}.home-recruit .recruit-copy{text-align:left}}

/* Full-width main visual inspired by existing Mito dojo website. */
.home-main-visual{position:relative;width:100%;background:#171717;overflow:hidden}
.home-main-visual>img{display:block;width:100%;height:auto;max-height:720px;object-fit:cover;object-position:center}
.home-main-visual .hero-cta{position:absolute;top:0;right:0;display:inline-flex;align-items:center;gap:8px;padding:13px 25px;background:#f23b17;color:#fff;font-weight:900;text-decoration:none;clip-path:polygon(12px 0,100% 0,100% 100%,0 100%)}
.home-main-visual .hero-cta span{font-size:1.6rem;line-height:0.8}
@media(max-width:700px){.home-main-visual>img{width:100%;height:300px;object-fit:cover;object-position:center}.home-main-visual .hero-cta{padding:10px 13px;font-size:.78rem}}


/* 2026-10-28: responsive layout for smartphones and tablets */
html { -webkit-text-size-adjust:100%; }
body { min-width:320px; overflow-x:clip; }
img,video,svg { max-width:100%; }
.wrap,.grid,.card,.profile-link,.recruit-layout,.line-actions { min-width:0; }
a,button { touch-action:manipulation; }
a:focus-visible,button:focus-visible { outline:3px solid #b98b34;outline-offset:3px; }
.mobile-hero-content { display:none; }
@media (max-width: 980px) {
  header { position:relative; }
  header .top { display:block; max-width:none; padding:0 12px 8px; min-height:0; }
  header .nav { display:flex; flex-wrap:nowrap; justify-content:flex-start; gap:4px; overflow-x:auto; max-height:none; padding:5px 2px 8px; scrollbar-width:thin; -webkit-overflow-scrolling:touch; }
  header .nav a { flex:0 0 auto; white-space:nowrap; font-size:13px; padding:10px 12px; }
  header .official-banner-row { min-height:0; padding:10px 14px; }
  header .official-banner-row .brand-banner { width:min(100%,480px); }
  .section { padding:38px 0; }
  .section h2 { font-size:clamp(1.4rem,5vw,2rem); }
  .wrap { padding-left:18px; padding-right:18px; }
  .home-main-visual .hero-cta { top:auto; bottom:0; right:0; clip-path:none; }
  .recruit-copy h1 { overflow-wrap:anywhere; }
  .home-guide-grid { gap:12px; }
  .home-guide img { height:clamp(125px,19vw,210px); }
  .related-links { grid-template-columns:1fr; }
}
@media (max-width: 700px) {
  body { background-attachment:scroll; background-size:64vw auto; background-position:left -18vw top 360px; }
  header .official-banner-row { padding:10px 12px 8px; }
  header .official-banner-row .brand-banner { width:min(100%,390px); }
  .home-main-visual { min-height:490px; isolation:isolate; background:#090b0d; }
  .home-main-visual>img { display:none; }
  .home-main-visual::before { content:'';position:absolute;inset:0;z-index:-2;background-image:url('assets/homepage_main_visual.jpg');background-size:auto 100%;background-position:48% center;background-repeat:no-repeat;opacity:.82; }
  .home-main-visual::after { content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(180deg,rgba(0,0,0,.48),rgba(0,0,0,.12) 40%,rgba(0,0,0,.82)); }
  .mobile-hero-content { display:flex; flex-direction:column; justify-content:space-between; align-items:flex-start; min-height:490px; padding:22px 22px 72px; color:white; }
  .mobile-hero-kudo { width:clamp(84px,25vw,140px); height:185px; object-fit:contain; object-position:left top; filter:drop-shadow(0 2px 8px #000); }
  .mobile-hero-titles { width:100%; text-shadow:0 2px 10px #000; }
  .mobile-hero-resshi { margin:0 0 10px; font-family:Georgia,serif; color:#d9b765; font-size:13px; letter-spacing:.09em; }
  .mobile-hero-resshi strong { display:block; font-size:clamp(25px,8vw,40px); line-height:1.3; }
  .mobile-hero-titles h1 { margin:0; font-size:clamp(27px,8.4vw,45px); line-height:1.2; font-weight:950; letter-spacing:-.035em; white-space:nowrap; }
  .mobile-hero-titles h1 em { color:#e2c04e; font-style:normal; }
  .mobile-hero-titles>p:last-child { margin:4px 0 0; font-size:clamp(14px,4.2vw,20px); }
  .mobile-hero-titles>p:last-child span { color:#f2cf4e; }
  .home-main-visual .hero-cta { width:100%; justify-content:center; padding:12px 15px; font-size:14px; }
  .home-recruit .recruit-layout { display:grid;grid-template-columns:1fr;gap:18px; }
  .home-recruit .recruit-photo { width:100%; max-width:400px; max-height:250px; }
  .home-recruit .recruit-copy { text-align:left; }
  .home-recruit .recruit-copy h1 { font-size:clamp(22px,6vw,29px); }
  .home-recruit .recruit-label { font-size:clamp(17px,4.8vw,23px); }
  .home-recruit .recruit-copy p { font-size:15px; }
  .home-guide-grid,.related-links,.grid,.photo-grid { grid-template-columns:1fr; }
  .home-guide img { height:190px; }
  .line-actions { flex-direction:column;gap:12px; }
  .line-qr { width:190px;max-width:80%; }
  .line-actions>div { text-align:center; }
  .profile-link { flex-direction:column;gap:16px;padding:18px; }
  .profile-link img { width:160px; max-width:100%; align-self:center; }
  .profile-link h3 { font-size:1.3rem; }
  .profile-link p { font-size:14px; }
  .instagram-panel { padding:22px 18px;gap:14px; }
  .instagram-mark { width:48px;height:48px;min-width:48px;font-size:37px; }
  .instagram-panel h2 { font-size:1.3rem; }
  .instagram-btn { font-size:14px; padding:10px 12px; }
  .sponsor-logo img { max-height:160px; }
  .history-item { grid-template-columns:75px minmax(0,1fr); }
  .subhero h1 { font-size:clamp(25px,7vw,36px); }
  th,td { padding:9px 10px; font-size:13px; }
  footer { margin-top:0; }
  footer .wrap { font-size:13px; }
}
@media (max-width: 360px) {
  .wrap { padding-left:14px; padding-right:14px; }
  .mobile-hero-content { padding-left:16px; padding-right:16px; }
  .mobile-hero-titles h1 { font-size:26px; }
  header .nav a { font-size:12px; }
}

/* 2026-10-28 hero repair: visible training photo, white calligraphy, gold hollyhock crest */
@media(max-width:700px){
 .home-main-visual{min-height:490px;background:#101215}
 .home-main-visual::before{background-image:url('assets/hero_user_selected.png');background-size:cover;background-position:50% 28%;opacity:1}
 .home-main-visual::after{background:linear-gradient(180deg,rgba(0,0,0,.18) 0%,rgba(0,0,0,.10) 30%,rgba(0,0,0,.67) 67%,rgba(0,0,0,.84) 100%)}
 .mobile-hero-content{position:relative;min-height:490px;padding-top:18px;padding-bottom:76px;justify-content:space-between}
 .mobile-hero-kudo{width:112px;height:190px;object-fit:contain;object-position:left top;filter:drop-shadow(0 2px 4px #000)}
 .hero-crest-group{position:relative;display:flex;align-items:center;justify-content:flex-start;min-height:93px;margin-bottom:8px}
 .hero-crest{width:92px;height:92px;object-fit:cover;border-radius:50%;mix-blend-mode:screen;flex-shrink:0;filter:contrast(1.15) saturate(1.1)}
 .mobile-hero-resshi{margin:0 0 0 10px;color:#e4c477;text-shadow:0 2px 6px #000}
 .mobile-hero-resshi strong{font-size:clamp(23px,7vw,33px)}
 .mobile-hero-titles h1{font-size:clamp(27px,7.2vw,39px)}
}
@media(min-width:701px){.hero-crest-group{display:none}}

/* Original crest and lettering are independent of the background photo */
.home-main-visual{height:clamp(420px,38vw,670px);min-height:0;isolation:isolate;background:#101215}
.home-main-visual::before{content:'';position:absolute;inset:0;z-index:-2;background:url('assets/hero_user_selected.png') center 38%/cover no-repeat;opacity:1}
.home-main-visual::after{content:'';position:absolute;inset:0;z-index:-1;background:linear-gradient(90deg,rgba(0,0,0,.35),transparent 45%,rgba(0,0,0,.42)),linear-gradient(0deg,rgba(0,0,0,.65),transparent 65%)}
.home-main-visual .mobile-hero-content{display:flex;position:relative;min-height:0;height:100%;padding:30px clamp(22px,5vw,85px) 58px;flex-direction:row;align-items:flex-start;justify-content:space-between;color:#fff}
.home-main-visual .mobile-hero-kudo{display:block;width:clamp(105px,17vw,260px);height:72%;object-fit:contain;object-position:left top;filter:drop-shadow(0 2px 5px #000)}
.home-main-visual .mobile-hero-titles{width:min(50%,650px);align-self:flex-end;text-align:center;text-shadow:0 2px 9px #000}
.home-main-visual .hero-crest-group{display:flex;min-height:0;margin:0 auto 12px;align-items:center;justify-content:center}
.home-main-visual .hero-resshi-original{display:block;width:min(100%,500px);height:auto;max-height:230px;object-fit:contain}
.home-main-visual .mobile-hero-titles h1{font-size:clamp(30px,4vw,64px);line-height:1.1;white-space:nowrap}
.home-main-visual .mobile-hero-titles>p:last-child{font-size:clamp(14px,1.5vw,23px);margin:6px 0 0}
@media(max-width:700px){
.home-main-visual{height:470px;min-height:0}
.home-main-visual::before{background-position:50% 30%}
.home-main-visual::after{background:linear-gradient(180deg,rgba(0,0,0,.2),rgba(0,0,0,.07) 38%,rgba(0,0,0,.82))}
.home-main-visual .mobile-hero-content{height:100%;min-height:0;padding:18px 14px 64px;flex-direction:column;align-items:flex-start;justify-content:space-between}
.home-main-visual .mobile-hero-kudo{width:112px;height:195px}
.home-main-visual .mobile-hero-titles{width:min(100%,390px);align-self:flex-end;text-align:center}
.home-main-visual .hero-crest-group{margin-bottom:3px}
.home-main-visual .hero-resshi-original{width:min(80vw,320px);max-height:150px}
.home-main-visual .mobile-hero-titles h1{font-size:clamp(25px,7vw,34px)}
.home-main-visual .mobile-hero-titles>p:last-child{font-size:clamp(13px,3.7vw,17px)}
}

/* Use the previously designed gold crest, not the replacement original logo */
.home-main-visual .hero-resshi-original{width:min(44vw,205px);height:auto;max-height:190px;object-fit:contain;border-radius:50%;mix-blend-mode:screen}
@media(max-width:700px){.home-main-visual .hero-resshi-original{width:115px;max-height:115px}}

/* 2026-10-28: keep the full designed gold logo visible on all viewports. */
.home-main-visual .hero-crest-group{width:100%;min-width:0;overflow:visible;flex-shrink:0}
.home-main-visual .hero-resshi-original{display:block;box-sizing:border-box;width:clamp(145px,19vw,235px);max-width:100%;height:auto;max-height:220px;object-fit:contain;object-position:center;border-radius:0;clip-path:none;overflow:visible;mix-blend-mode:normal;margin:auto}
@media(max-width:700px){
 .home-main-visual .mobile-hero-titles{width:100%;min-width:0;overflow:visible}
 .home-main-visual .hero-crest-group{min-height:0;margin:0 auto 4px}
 .home-main-visual .hero-resshi-original{width:clamp(130px,43vw,190px);max-height:185px;border-radius:0;object-fit:contain;clip-path:none}
}

/* Transparent crest: scale to fit without cropping */
.home-main-visual .hero-crest-group{width:100%;overflow:visible;display:flex;justify-content:center;align-items:center}
.home-main-visual .hero-resshi-original{width:min(100%,340px);height:auto;max-height:200px;object-fit:contain;object-position:center;border:0;border-radius:0;clip-path:none;mix-blend-mode:normal}
@media(max-width:700px){.home-main-visual .hero-resshi-original{width:min(75vw,260px);height:auto;max-height:145px;object-fit:contain}}

/* Sponsor logo scaled to match the visual presence of other linked logos */
.organization-logo img.maruoka-link-logo{width:min(100%,360px);height:155px;max-width:100%;object-fit:contain;object-position:center}
@media(max-width:420px){.organization-logo img.maruoka-link-logo{width:min(100%,300px);height:130px}}

/* Contact page */
.contact-main{max-width:720px;margin:24px auto 36px}.contact-main img{display:block;width:100%;height:auto}.contact-info{max-width:720px;margin:0 auto 40px}.contact-info p{line-height:1.9;overflow-wrap:anywhere}.contact-notice{margin-top:18px;padding:16px 20px;background:#f4f2ed;border-left:4px solid #a72b31}

/* LINE button area on the supplied contact image */
.contact-main{position:relative}
.contact-line-button-area{position:absolute;left:17.8%;top:83.9%;width:64.4%;height:12.2%;display:block;cursor:pointer;border-radius:10px}
.contact-line-button-area:focus-visible{outline:4px solid #1169ce;outline-offset:2px}

/* Anti-doping banner and sponsor directory */
.antidoping-banner-link{display:block;max-width:900px;margin:0 auto}.antidoping-banner{display:block;width:100%;height:auto;border-radius:6px}.sponsor-directory-btn{display:table;margin:24px auto 0;text-align:center;max-width:100%;white-space:normal}

/* Trial: speech bubble from the training photograph; preserve existing photo dimensions. */
@media(min-width:701px){
 .home-recruit .recruit-layout{gap:24px}
 .home-recruit .recruit-speech{position:relative;background:#fff;border:3px solid #b3242e;border-radius:28px;padding:28px 30px;text-align:center;box-shadow:0 10px 30px rgba(40,25,20,.12)}
 .home-recruit .recruit-speech:before{content:"";position:absolute;top:43%;left:-24px;border-top:19px solid transparent;border-bottom:19px solid transparent;border-right:24px solid #b3242e}
 .home-recruit .recruit-speech:after{content:"";position:absolute;top:43%;left:-19px;margin-top:3px;border-top:16px solid transparent;border-bottom:16px solid transparent;border-right:21px solid #fff}
 .home-recruit .recruit-speech h1{font-size:clamp(1.75rem,3vw,2.65rem);line-height:1.3;color:#222}
 .home-recruit .recruit-speech p:last-child{display:inline-block;background:#f8efe3;padding:8px 14px;border-radius:8px;margin-bottom:0}
}
@media(max-width:700px){.home-recruit .recruit-speech{background:#fff;border-left:4px solid #b3242e;padding:16px 18px;border-radius:8px;box-shadow:0 4px 15px rgba(0,0,0,.06)}}

/* Position above profile name */
.profile-position{font-size:0.95rem;font-weight:700;letter-spacing:normal;color:#9b2525;margin:0 0 5px}

/* External links: spacious single-column layout on desktop and mobile */
.links-vertical-grid{grid-template-columns:minmax(0,1fr);max-width:900px;margin:28px auto 0;gap:32px}
.links-vertical-grid>.card{padding:34px clamp(20px,5vw,55px);text-align:center}
.links-vertical-grid>.card h2{margin:0 0 24px}
.links-vertical-grid>.card h3{font-size:clamp(1.35rem,2.5vw,1.8rem);margin-top:12px}
.links-vertical-grid>.card .organization-logo{display:block;width:max-content;max-width:100%;margin:18px auto 22px}
.links-vertical-grid>.card .organization-logo img{width:clamp(170px,22vw,240px);height:clamp(170px,22vw,240px);object-fit:contain}
.links-vertical-grid>.card .organization-logo img.maruoka-link-logo{width:min(100%,440px);height:210px}
.links-vertical-grid>.card hr{margin:38px auto;max-width:650px}
@media(max-width:600px){.links-vertical-grid{gap:22px}.links-vertical-grid>.card{padding:26px 14px}.links-vertical-grid>.card .organization-logo img{width:185px;height:185px}.links-vertical-grid>.card .organization-logo img.maruoka-link-logo{width:min(100%,320px);height:155px}}

/* Center sponsor logo and directory button on links page */
.links-vertical-grid>.card .organization-logo:has(.maruoka-link-logo){display:flex;width:100%;max-width:100%;align-items:center;justify-content:center;margin:18px auto 22px}
.links-vertical-grid>.card .organization-logo img.maruoka-link-logo{display:block;width:100%;max-width:440px;height:210px;object-fit:contain;margin:0 auto}
.links-vertical-grid>.card .sponsor-directory-btn{display:table;margin:24px auto 0;text-align:center;white-space:normal;max-width:100%}
@media(max-width:600px){.links-vertical-grid>.card .organization-logo img.maruoka-link-logo{max-width:320px;height:155px}}

/* Homepage hero: three independent layers */
.home-main-visual{position:relative;isolation:isolate;background:#101215}
.home-main-visual::before,.home-main-visual::after{display:none!important;content:none!important}
.home-main-visual .hero-slide-track{position:absolute;inset:0;z-index:0;overflow:hidden;pointer-events:none}
.home-main-visual .hero-slide{position:absolute;inset:0;background-size:cover;background-position:center 38%;background-repeat:no-repeat;opacity:0;transition:opacity 1.1s ease}
.home-main-visual .hero-slide.is-active{opacity:1}
.home-main-visual .hero-photo-overlay{position:absolute;inset:0;z-index:1;background:rgba(0,0,0,.38);pointer-events:none}
.home-main-visual .mobile-hero-content{position:relative;z-index:2;opacity:1;color:white}
.home-main-visual .mobile-hero-content img{opacity:1;mix-blend-mode:normal}
.home-main-visual .hero-resshi-original{mix-blend-mode:normal}
.home-main-visual .hero-cta{z-index:3}
.home-main-visual .hero-slide-arrow{position:absolute;top:50%;transform:translateY(-50%);z-index:4;border:0;border-radius:50%;background:rgba(0,0,0,.36);color:white;font-size:34px;line-height:1;width:42px;height:42px;cursor:pointer}
.home-main-visual .hero-slide-prev{left:12px}
.home-main-visual .hero-slide-next{right:12px}
.home-main-visual .hero-slide-dots{position:absolute;bottom:18px;left:50%;transform:translateX(-50%);display:flex;gap:9px;z-index:4}
.home-main-visual .hero-slide-dots button{width:10px;height:10px;border-radius:50%;border:1px solid white;background:rgba(255,255,255,.35);cursor:pointer;padding:0}
.home-main-visual .hero-slide-dots button[aria-current=true]{background:white}
@media(max-width:700px){.home-main-visual .hero-slide-arrow{width:32px;height:32px;font-size:26px}.home-main-visual .hero-slide-prev{left:5px}.home-main-visual .hero-slide-next{right:5px}.home-main-visual .hero-slide-dots{bottom:48px}}
@media(prefers-reduced-motion:reduce){.home-main-visual .hero-slide{transition:none}}

/* Desktop fifth slide: keep the subject's face in frame */
@media(min-width:701px){.home-main-visual .hero-slide:nth-child(5){background-position:center top}}

/* Shared desktop hero framing across all pages */
@media (min-width:701px){
.home-main-visual .hero-slide:nth-child(1){background-position:center 38%}
.home-main-visual .hero-slide:nth-child(2){background-position:center 45%}
.home-main-visual .hero-slide:nth-child(3){background-position:center 45%}
.home-main-visual .hero-slide:nth-child(4){background-position:center 45%}
.home-main-visual .hero-slide:nth-child(5){background-position:center top}
}

/* Shared hero gold accents: desktop matches mobile */
.home-main-visual .mobile-hero-titles h1 em{color:#e2c04e;font-style:normal}
.home-main-visual .mobile-hero-titles>p:last-child span{color:#f2cf4e}

/* Desktop header navigation: slightly larger */
@media (min-width:901px){
header .nav a{font-size:15px;padding:11px 13px;line-height:1.45}
header .top{padding-top:8px;padding-bottom:11px}
}

/* Mobile hamburger navigation 2026-10-28 */
.mobile-menu-toggle{display:none}
@media(max-width:900px){header .top{display:flex;flex-direction:column;align-items:stretch;justify-content:center;padding:0 14px 8px;min-height:0}header .mobile-menu-toggle{display:flex;align-items:center;justify-content:center;gap:5px;flex-direction:column;position:relative;align-self:center;width:100%;min-height:48px;border:1px solid #ffffff45;border-radius:6px;background:#24282b;color:white;cursor:pointer;padding:8px 14px}header .mobile-menu-toggle>span:not(.mobile-menu-label){display:block;width:27px;height:3px;border-radius:2px;background:#f2cf4e}header .mobile-menu-label{font-size:12px;line-height:1.1;font-weight:700;letter-spacing:.06em}header .nav{display:none;flex-direction:column;align-items:stretch;justify-content:stretch;gap:0;width:100%;max-height:min(65vh,540px);overflow-y:auto;overflow-x:hidden;padding:6px 0 8px}header.mobile-menu-open .nav{display:flex}header .nav a{display:block;flex:none;width:100%;font-size:16px;line-height:1.45;padding:12px 16px;text-align:left;border-radius:3px;border-bottom:1px solid #ffffff20}header .nav a:last-child{border-bottom:0}}

/* Additional instructors spacing */
.home-profile .instructor-extra{margin-top:28px}
