/* Shared subpage design — aligned with the TOP page */
.sub-hero{position:relative;height:clamp(340px,43vw,510px);min-height:340px;overflow:hidden;background:var(--forest2);color:#fff}
.sub-hero-image{position:absolute;inset:0;background-image:var(--sub-hero);background-size:cover;background-position:center 50%;filter:saturate(.8) contrast(1.04);transform:scale(1.02)}
.sub-hero-overlay{position:absolute;inset:0;background:linear-gradient(90deg,rgba(7,25,19,.82),rgba(7,25,19,.43) 56%,rgba(7,25,19,.18)),linear-gradient(180deg,rgba(0,0,0,.04),rgba(8,25,19,.46))}
.sub-hero-inner{position:relative;z-index:2;height:100%;display:flex;flex-direction:column;justify-content:center;padding-top:10px}
.sub-hero-inner:before{content:"";width:1px;height:42px;background:var(--gold-soft);margin-bottom:18px}
.sub-eyebrow{font-family:Georgia,serif;font-size:12px;letter-spacing:.31em;color:#ddcfab;margin:0 0 14px}
.sub-hero h1{font-size:clamp(35px,4.4vw,57px);font-weight:500;letter-spacing:.1em;line-height:1.35;margin:0;text-shadow:0 3px 24px rgba(0,0,0,.3)}
.sub-lead{font-size:clamp(14px,1.4vw,18px);letter-spacing:.07em;line-height:1.9;margin:16px 0 0;color:rgba(255,255,255,.91)}
.breadcrumb{display:flex;align-items:center;gap:10px;padding-top:22px;padding-bottom:22px;font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;font-size:12px;color:#748077;letter-spacing:.04em}
.breadcrumb a{text-decoration:none;color:#466152}.breadcrumb a:hover{text-decoration:underline}.breadcrumb span{color:#b5b7ae}.breadcrumb strong{font-weight:500;color:#263c31}
.sub-content{padding-top:34px;padding-bottom:76px}
.legacy-content{width:min(860px,100%);margin:auto;color:#263a31;font-size:16px;line-height:2.05;letter-spacing:.015em}
.legacy-content > div,.legacy-content > section{max-width:100%}
.legacy-content h2,.legacy-content h3,.legacy-content h4{color:#1d382b;font-weight:500}
.legacy-content h3{font-size:clamp(23px,2.5vw,31px);letter-spacing:.07em;line-height:1.55;margin:58px 0 22px;padding:0 0 15px;border-bottom:1px solid rgba(56,75,64,.2);position:relative}
.legacy-content h3:first-child{margin-top:0}
.legacy-content h3:after{content:"";position:absolute;left:0;bottom:-1px;width:58px;height:2px;background:var(--gold)}
.legacy-content h4{font-size:19px;margin:34px 0 10px;letter-spacing:.06em}
.legacy-content p{margin:0 0 28px}
.legacy-content p.large{font-size:17px;line-height:2.05}
.legacy-content a{color:#345f4b;text-decoration-color:rgba(52,95,75,.35);text-underline-offset:4px}
.legacy-content a:hover{color:#8b6f3d}
.legacy-content b a,.legacy-content strong a{font-weight:600}
.legacy-content hr{border:0;border-top:1px solid rgba(53,72,61,.16);margin:48px 0}
.legacy-content ul,.legacy-content ol{padding-left:1.5em;margin:18px 0 32px}
.legacy-content li{margin:.45em 0}
.legacy-content img{display:block;width:auto;max-width:min(100%,760px);height:auto;margin:20px auto 30px;border-radius:2px;box-shadow:0 12px 34px rgba(27,48,38,.13)}
.legacy-content iframe{display:block;width:100%!important;max-width:760px;height:420px;margin:16px auto 26px;border:0;border-radius:2px;box-shadow:0 10px 28px rgba(27,48,38,.12)}
.legacy-content table{width:100%!important;max-width:100%;border-collapse:collapse;display:block;overflow-x:auto}
.legacy-content table img{max-width:100%}
.legacy-content center{text-align:left}
/* Route records often contain one long legacy paragraph. Give it a quiet paper-like reading field. */
.sub-content.route .legacy-content{width:min(820px,100%)}
.sub-content.route .legacy-content #contact,.sub-content.route .legacy-content > #contact{background:#fffdf9}
.sub-content.route .legacy-content p.large{font-size:16px}
.sub-content.route .legacy-content p.large > b:first-child{display:inline-block;color:#876c3c;font-size:20px;letter-spacing:.08em;margin-bottom:7px}
/* Course index: make old route links feel like a modern itinerary. */
.sub-content.course .legacy-content{width:min(900px,100%)}
.sub-content.course .legacy-content h3{margin-top:52px;background:linear-gradient(90deg,#f4efe3,rgba(244,239,227,0));padding:15px 18px;border-bottom:0}
.sub-content.course .legacy-content h3:after{display:none}
.sub-content.course .legacy-content img{margin-left:0;max-width:280px;box-shadow:0 8px 24px rgba(27,48,38,.1)}
.sub-content.course .legacy-content a[style]{color:#2e5a44!important;background:transparent!important;font-size:18px;text-decoration:none;border-bottom:1px solid #b89b62;padding-bottom:2px}
.sub-content.news .legacy-content h3{font-size:24px}
.sub-content.access .legacy-content{text-align:left}
.sub-content.access .legacy-content #access{text-align:left}
.sub-content.access .legacy-content #HPBMAP_20130402182525{width:100%!important;max-width:760px;height:420px!important;margin:10px 0 28px;background:#eee}
.sub-content.privacy .legacy-content{width:min(780px,100%)}
.page-return{padding-bottom:70px;text-align:right}.page-return a{font-family:"Yu Gothic","Hiragino Kaku Gothic ProN",sans-serif;font-size:12px;letter-spacing:.08em;color:#4c6558;text-decoration:none;border-bottom:1px solid #b8a16f;padding-bottom:4px}
@media (max-width:760px){
 .sub-hero{height:390px;min-height:390px}.sub-hero-image{background-position:center center}.sub-hero-overlay{background:linear-gradient(90deg,rgba(7,25,19,.78),rgba(7,25,19,.42)),linear-gradient(180deg,rgba(0,0,0,.05),rgba(8,25,19,.55))}
 .sub-hero-inner:before{height:30px;margin-bottom:14px}.sub-hero h1{font-size:34px}.sub-lead{font-size:14px;max-width:92%}
 .breadcrumb{padding-top:16px;padding-bottom:16px;overflow-x:auto;white-space:nowrap}
 .sub-content{padding-top:18px;padding-bottom:48px}.legacy-content{font-size:15px;line-height:1.95}.legacy-content h3{font-size:23px;margin-top:44px}.legacy-content h4{font-size:18px}
 .legacy-content img{width:auto;max-width:100%;margin:16px auto 24px;box-shadow:0 8px 24px rgba(27,48,38,.11)}.legacy-content iframe{height:330px}
 .sub-content.course .legacy-content img{max-width:58%;margin-left:0}.page-return{padding-bottom:50px}
}
@media (max-width:480px){.sub-hero{height:360px;min-height:360px}.sub-hero h1{font-size:30px;letter-spacing:.07em}.sub-eyebrow{font-size:10px}.legacy-content iframe{height:280px}.sub-content.course .legacy-content img{max-width:72%}}

/* Course guide redesign — text-led layout for legacy 160x120 course photographs */
.course-intro{padding-top:44px;padding-bottom:68px;max-width:1040px}
.course-intro-kicker,.course-section-head>p,.course-closing>div>p{font-family:Georgia,serif;font-size:11px;letter-spacing:.26em;color:#9a7a42;margin:0 0 13px}
.course-intro h2{font-size:clamp(28px,3.2vw,42px);font-weight:500;letter-spacing:.08em;line-height:1.65;color:#183a2b;margin:0 0 26px}
.course-intro>p:not(.course-intro-kicker){max-width:820px;font-size:16px;line-height:2.1;color:#3d5147;margin:0}
.course-guide-points{display:grid;grid-template-columns:repeat(3,1fr);gap:1px;background:#ded8c9;border:1px solid #ded8c9;margin-top:42px}
.course-guide-points>div{background:#fbfaf6;padding:26px 26px 24px;min-height:160px}
.course-guide-points span{display:block;font-family:Georgia,serif;font-size:12px;letter-spacing:.14em;color:#a08047;margin-bottom:13px}
.course-guide-points strong{display:block;font-size:16px;font-weight:600;letter-spacing:.07em;color:#203b2e;margin-bottom:8px}
.course-guide-points p{font-size:13px;line-height:1.85;color:#596a61;margin:0}
.course-list{padding-top:26px;padding-bottom:72px;max-width:1080px}
.course-section-head{display:grid;grid-template-columns:170px 1fr;column-gap:24px;align-items:end;padding-bottom:24px;border-bottom:1px solid #d9d3c5;margin-bottom:30px}
.course-section-head>p{grid-column:1;margin-bottom:5px}.course-section-head h2{grid-column:2;font-size:clamp(27px,3vw,38px);font-weight:500;letter-spacing:.09em;color:#183a2b;margin:0}.course-section-head span{grid-column:2;font-size:12px;color:#778078;margin-top:9px}
.course-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}
.course-card{background:#fff;border:1px solid #e0dbcf;padding:28px 30px 25px;box-shadow:0 8px 28px rgba(30,48,39,.045)}
.course-card-wide{grid-column:1/-1;padding:30px 34px 27px}
.course-card-featured{border-top:3px solid #9b8150}
.course-card-head{display:flex;align-items:flex-start;gap:18px;padding-bottom:18px;border-bottom:1px solid #ece8de;margin-bottom:21px}
.course-no{flex:0 0 auto;font-family:Georgia,serif;font-size:12px;letter-spacing:.12em;color:#a28249;border:1px solid #c9b78e;width:37px;height:37px;display:grid;place-items:center;border-radius:50%}
.course-card-head p{font-family:Georgia,serif;font-size:9px;letter-spacing:.2em;color:#9a8256;margin:1px 0 5px}.course-card-head h3{font-size:clamp(20px,2vw,26px);line-height:1.45;font-weight:500;letter-spacing:.06em;color:#1e382c;margin:0}
.course-main,.course-pair{display:grid;grid-template-columns:160px minmax(0,1fr);gap:24px;align-items:start}
.course-pair+.course-pair{margin-top:24px;padding-top:24px;border-top:1px solid #eeeae1}
.course-thumb{display:block;width:160px;height:120px;overflow:hidden;background:#ece9e0}
.course-thumb img{display:block;width:160px;height:120px;object-fit:cover;margin:0!important;border-radius:0!important;box-shadow:none!important;transition:transform .35s ease,filter .35s ease;filter:saturate(.86)}
.course-thumb:hover img{transform:scale(1.035);filter:saturate(1)}
.course-copy h4{font-size:18px;font-weight:600;letter-spacing:.06em;margin:0 0 9px;line-height:1.5}.course-copy h4 a{color:#24503c;text-decoration:none;border-bottom:1px solid #b9a06c;padding-bottom:2px}.course-copy h4 a:hover{color:#8b6f3d}
.course-copy p{font-size:14px;line-height:1.9;color:#4b5d54;margin:11px 0 0}
.course-tags{display:flex;gap:7px;flex-wrap:wrap}.course-tags span{font-size:10px;letter-spacing:.045em;color:#5a6c62;background:#f2f0e9;border:1px solid #e4dfd3;padding:4px 8px;border-radius:2px}
.course-note{font-size:12px;line-height:1.8;color:#68756d;background:#f8f6ef;margin:22px 0 0;padding:13px 15px;border-left:2px solid #b79b61}.course-note strong{color:#526158;font-weight:600}.course-note small{display:inline-block;margin-left:8px;color:#969a93}
.course-closing{display:grid;grid-template-columns:minmax(250px,.8fr) minmax(0,1.6fr);gap:50px;padding-top:42px;padding-bottom:72px;border-top:1px solid #dcd6c9}
.course-closing h2{font-size:25px;font-weight:500;letter-spacing:.07em;line-height:1.6;color:#1c392b;margin:0}.course-closing>p{font-size:14px;line-height:2;color:#56665d;margin:0}
@media (max-width:820px){
 .course-guide-points{grid-template-columns:1fr}.course-guide-points>div{min-height:auto;padding:22px 24px}
 .course-section-head{grid-template-columns:1fr}.course-section-head>p,.course-section-head h2,.course-section-head span{grid-column:1}.course-section-head>p{margin-bottom:10px}
 .course-grid{grid-template-columns:1fr}.course-card-wide{grid-column:auto}.course-card,.course-card-wide{padding:24px 22px 22px}
 .course-main,.course-pair{grid-template-columns:140px minmax(0,1fr);gap:19px}.course-thumb,.course-thumb img{width:140px;height:105px}
 .course-closing{grid-template-columns:1fr;gap:18px}
}
@media (max-width:560px){
 .course-intro{padding-top:26px;padding-bottom:48px}.course-intro h2{font-size:27px;line-height:1.6}.course-intro>p:not(.course-intro-kicker){font-size:14px;line-height:2}
 .course-list{padding-top:10px}.course-card,.course-card-wide{padding:22px 18px 20px}.course-card-head{gap:13px}.course-card-head h3{font-size:20px}
 .course-main,.course-pair{grid-template-columns:112px minmax(0,1fr);gap:15px}.course-thumb,.course-thumb img{width:112px;height:84px}
 .course-copy h4{font-size:16px}.course-copy p{font-size:13px;line-height:1.85}.course-tags span{font-size:9px;padding:3px 6px}
 .course-note{font-size:11px;padding:11px 12px;margin-top:18px}.course-closing{padding-top:34px;padding-bottom:50px}
}
