@font-face{font-family:ZenMaru;src:url("../fonts/zen-maru-gothic-japanese-500-normal.woff2") format("woff2");font-display:swap;font-weight:500}
@font-face{font-family:ZenMaru;src:url("../fonts/zen-maru-gothic-japanese-700-normal.woff2") format("woff2");font-display:swap;font-weight:700}
.header-search input{width:190px;border:0;outline:0;background:transparent;font:inherit}.flash-message{max-width:1180px;margin:16px auto;padding:14px 18px;border-radius:12px;background:#e8f4ee;color:#174838}.flash-message.error{background:#fff0ed;color:#9b3025}.flash-message.warning{background:#fff6d8;color:#765900}.breadcrumbs a{color:inherit}.empty-state{padding:50px 20px;border:1px solid var(--line);border-radius:20px;background:#fff;text-align:center}.favorite-button.is-saved{background:#b93222!important;color:#fff!important}.pagination a{color:inherit;text-decoration:none}.pagination .disabled{opacity:.35}.pagination .current{background:var(--blue-dark);color:#fff}

/* Golf-specific cards */
.course-card-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}.course-card-grid.compact,.recent-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.course-list{display:grid;gap:18px}.course-card{display:flex;min-width:0;overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-soft);transition:transform .2s ease,box-shadow .2s ease}.course-card:hover{transform:translateY(-3px);box-shadow:var(--shadow)}.course-card-image{position:relative;display:block;width:40%;min-height:205px;overflow:hidden;background:linear-gradient(145deg,#dcebdc,#eef5e8)}.course-card-image img{width:100%;height:100%;object-fit:cover}.course-image-placeholder{position:absolute;inset:0;display:grid;place-content:center;gap:12px;background:linear-gradient(155deg,#d6ebd8,#f4f0dd);color:#54755e;text-align:center}.course-image-placeholder i{display:block;width:54px;height:54px;margin:auto;border:4px solid #fff;border-radius:50%;background:repeating-radial-gradient(circle,#fff 0 2px,#dbe8dc 3px 5px);box-shadow:0 8px 22px #47684c2e}.course-image-placeholder b{font-size:11px;letter-spacing:.16em}.course-card-body{display:flex;min-width:0;flex:1;flex-direction:column;padding:22px}.course-card-kicker{display:flex;min-height:26px;align-items:center;justify-content:space-between;gap:8px}.course-type{padding:5px 9px;border-radius:99px;background:var(--blue-pale);color:var(--blue-dark);font-size:11px;font-weight:800}.course-rating{color:#8a5b0b;font-size:12px}.course-card h2{margin:10px 0 7px;font-size:20px;line-height:1.45}.course-card h2 a{color:var(--ink)}.course-card .address{margin:0;color:var(--muted);font-size:13px;line-height:1.75}.course-card-meta{display:flex;flex-wrap:wrap;gap:7px;margin:12px 0}.course-card-meta span{padding:5px 8px;border-radius:8px;background:#f6f3f1;color:#74645f;font-size:11px}.course-card-actions{display:flex;align-items:center;justify-content:space-between;gap:10px;margin-top:auto}.course-card-actions .btn{min-height:40px;padding:0 14px;font-size:12px}.save-button{display:grid;width:42px;height:42px;flex:0 0 auto;place-items:center;border:1px solid #e1c8c2;border-radius:50%;background:#fff;color:var(--blue);cursor:pointer;font-size:21px}.course-card-grid>.course-card{display:block}.course-card-grid>.course-card .course-card-image{width:100%;height:185px;min-height:0}.course-card-grid>.course-card .course-card-body{min-height:235px}

/* Areas and general pages */
.simple-page{padding:50px 0 90px;background:#faf8f6}.simple-card{max-width:850px;margin:0 auto;padding:38px;border:1px solid var(--line);border-radius:22px;background:#fff;box-shadow:var(--shadow-soft);line-height:1.9}.simple-card-actions{margin:32px 0 0}.subsection-heading{margin-top:34px}.area-page,.journal-page{padding-bottom:80px}.area-section{margin:0 0 45px;padding:30px;border:1px solid var(--line);border-radius:20px;background:#fff}.area-section>h2,.rail-prefecture h2{margin:0 0 18px}.area-link-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:10px}.area-link-grid.compact{grid-template-columns:repeat(3,minmax(0,1fr))}.area-link-grid a{display:flex;min-height:48px;align-items:center;justify-content:space-between;gap:10px;padding:10px 14px;border:1px solid var(--line);border-radius:11px;background:#fcfbfa;color:var(--body);font-size:13px;font-weight:700}.area-link-grid a:hover{border-color:#d59a8f;background:var(--blue-pale);color:var(--blue-dark)}.rail-prefecture{padding:28px 30px;border:1px solid var(--line);border-radius:18px;background:#fff}.rail-prefecture+.rail-prefecture{margin-top:18px}.nearby-links{display:flex;flex-wrap:wrap;gap:8px}.nearby-links a{padding:8px 13px;border:1px solid var(--line);border-radius:10px;background:#fff;color:var(--body);font-size:12px;font-weight:700}

/* Train line and station directories */
.rail-prefecture-nav,.rail-line-links,.station-directory{display:flex;flex-wrap:wrap;gap:8px}
.rail-prefecture-nav{max-width:1020px;margin:0 auto 52px}
.rail-prefecture-nav a,.rail-line-links a,.station-directory a{display:inline-flex;min-height:40px;align-items:center;padding:8px 13px;border:1px solid var(--line);border-radius:9px;background:#fff;color:var(--body);font-size:12px;font-weight:700;line-height:1.45;transition:border-color .18s ease,background-color .18s ease,color .18s ease}
.rail-prefecture-nav a:hover,.rail-line-links a:hover,.station-directory a:hover{border-color:#d59a8f;background:var(--blue-pale);color:var(--blue-dark)}
.rail-directory{max-width:1020px;margin:0 auto}
.rail-prefecture{scroll-margin-top:100px;padding:0 0 30px;border:0;border-radius:0;background:transparent}
.rail-prefecture+.rail-prefecture{margin-top:30px;padding-top:30px;border-top:1px solid var(--line)}
.rail-prefecture h2{margin:0 0 14px;font-size:24px}
.rail-prefecture h2 a{color:var(--ink)}
.rail-line-links{align-items:stretch}
.rail-line-links a{min-height:38px;padding:7px 12px}
.station-directory{max-width:780px;margin:0 auto 45px}
.station-directory a{min-height:42px;padding:9px 14px;font-size:13px}

@media(max-width:700px){.rail-prefecture-nav{margin-bottom:40px}.rail-prefecture-nav,.rail-line-links,.station-directory{gap:7px}.rail-prefecture-nav a,.rail-line-links a,.station-directory a{min-height:38px;padding:7px 11px;font-size:11px}.rail-prefecture{padding-bottom:24px}.rail-prefecture+.rail-prefecture{margin-top:24px;padding-top:24px}.rail-prefecture h2{font-size:21px}.station-directory{margin-bottom:30px}}

/* Detail page additions */
.golf-detail-hero{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(360px,.95fr);gap:35px}.golf-gallery{position:relative;display:grid;min-height:390px;grid-template-columns:2fr 1fr;grid-template-rows:1fr 1fr;gap:7px;overflow:hidden;border-radius:22px;background:#e9f1e6}.golf-gallery.is-empty{display:block}.golf-gallery img{width:100%;height:100%;object-fit:cover}.golf-gallery .gallery-image-1{grid-row:1/3}.golf-gallery .course-image-placeholder{position:absolute}.detail-rating{display:inline-flex;padding:6px 10px;border-radius:99px;background:#fff5d9;color:#8a5b0b;font-size:13px;font-weight:900}.detail-rating small{font-size:10px}.detail-lead{max-width:700px;line-height:1.9}.primary-actions{display:flex;flex-wrap:wrap;gap:10px;margin-top:25px}.facility-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px}.facility{display:grid;gap:7px;padding:17px;border-radius:14px;background:#f8f5f3}.facility b{color:var(--ink)}.facility span{font-size:13px;line-height:1.7}.google-map iframe,.google-map{width:100%;min-height:390px;border:0;border-radius:18px}.map-fallback{display:grid;min-height:390px;place-content:center;justify-items:center;gap:10px;background:#eef3eb;text-align:center}.map-fallback-icon{display:grid;width:70px;height:70px;place-items:center;border-radius:50%;background:#fff;color:var(--blue-dark);font-weight:800}.nearby-course{display:grid;gap:5px;padding:14px 0;border-bottom:1px solid var(--line);color:var(--body)}.nearby-course:last-child{border-bottom:0}.nearby-course b{color:var(--ink);font-size:13px}.nearby-course span{color:var(--muted);font-size:11px;line-height:1.6}

/* Guides and legal */
.journal-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px}.journal-card{display:grid;grid-template-columns:190px minmax(0,1fr);overflow:hidden;border:1px solid var(--line);border-radius:20px;background:#fff;box-shadow:var(--shadow-soft)}.journal-card>div:last-child{padding:24px}.journal-card h2{margin:5px 0 10px;font-size:21px;line-height:1.55}.journal-card h2 a{color:var(--ink)}.journal-card p:not(.article-meta){color:var(--muted);font-size:13px;line-height:1.8}.journal-visual,.golf-article-visual{position:relative;min-height:230px;overflow:hidden;background:linear-gradient(150deg,#dcebd9 0 52%,#bdd4b2 53%)}.journal-visual:before,.golf-article-visual:before{position:absolute;right:23%;bottom:0;width:4px;height:72%;background:#776b5a;content:""}.journal-visual span,.article-flag{position:absolute!important;right:calc(23% - 1px);bottom:54%;width:55px;height:35px;background:var(--blue);clip-path:polygon(0 0,100% 18%,78% 100%,0 82%)}.journal-visual:after,.golf-article-visual:after{position:absolute;right:12%;bottom:8%;width:52px;height:52px;border:3px solid #fff;border-radius:50%;background:repeating-radial-gradient(circle,#fff 0 2px,#e6e7df 3px 5px);content:""}.article-meta{margin:0;color:var(--blue-dark);font-size:11px;font-weight:800;letter-spacing:.07em}.journal-article-wrap{max-width:960px}.journal-article{overflow:hidden;border:1px solid var(--line);border-radius:24px;background:#fff;box-shadow:var(--shadow-soft)}.journal-article>header{padding:50px 70px 38px;background:linear-gradient(140deg,#fff,#f9eee9)}.journal-article h1{margin:12px 0 16px;font-size:38px;line-height:1.45}.journal-lead{color:var(--muted);font-size:16px;line-height:1.9}.journal-article time{color:var(--muted);font-size:12px}.journal-body{padding:48px 70px;font-size:16px;line-height:2}.journal-body h2{margin:2.3em 0 .7em;padding-bottom:10px;border-bottom:2px solid var(--blue-pale);font-size:25px}.journal-body h3{margin:2em 0 .6em;font-size:20px}.journal-body ul,.journal-body ol{padding-left:1.4em}.journal-body .note{padding:18px 20px;border-left:4px solid var(--blue);border-radius:8px;background:var(--blue-pale)}.related-guides{margin-top:35px}.legal-card h1{margin-top:8px}.legal-card h2{margin:2em 0 .55em;padding-bottom:8px;border-bottom:1px solid var(--line);font-size:21px}.legal-date{color:var(--muted);font-size:12px}

/* Information pages */
.information-page{background:linear-gradient(180deg,#fbefec 0,#faf8f6 420px)}
.information-card{max-width:920px;padding:clamp(30px,5vw,62px);border:1px solid var(--line);box-shadow:0 22px 60px #4b282114}
.information-card section+section{margin-top:42px}
.information-card section h2{position:relative;margin-bottom:18px;padding:0 0 0 18px;border-bottom:0;font-size:24px}
.information-card section h2:before{position:absolute;top:.32em;bottom:.32em;left:0;width:5px;border-radius:99px;background:var(--blue);content:""}
.information-card section p:last-child{margin-bottom:0}
.information-card a:not(.btn){color:var(--blue-dark);text-decoration:underline;text-underline-offset:3px}
.information-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:14px}
.information-grid div{display:grid;gap:7px;padding:22px;border:1px solid var(--line);border-radius:16px;background:#fcfaf8}
.information-grid strong{color:var(--ink);font-size:17px}
.information-grid span{color:var(--muted);font-size:13px}
.information-table{margin:0;border-top:1px solid var(--line)}
.information-table div{display:grid;grid-template-columns:170px minmax(0,1fr);border-bottom:1px solid var(--line)}
.information-table dt,.information-table dd{margin:0;padding:15px 18px}
.information-table dt{background:#faf5f3;color:var(--ink);font-weight:800}
.information-note{margin-top:18px;padding:15px 17px;border-radius:12px;background:#faf5f3;color:var(--muted);font-size:13px}
.information-cta{margin-top:50px;padding:30px;border-radius:20px;background:linear-gradient(135deg,#fbefec,#eef5e9);text-align:center}
.information-cta h2{margin-bottom:8px;padding:0}
.information-cta h2:before{display:none}
.information-cta p{margin-bottom:22px;color:var(--muted)}
.policy-card ul{margin:0;padding-left:1.4em}
.policy-card li+li{margin-top:6px}

@media(max-width:700px){.information-card{padding:26px 20px;border-radius:16px}.information-grid{grid-template-columns:1fr}.information-table div{grid-template-columns:1fr}.information-table dt{padding-bottom:6px}.information-table dd{padding-top:6px}.information-cta{padding:25px 18px}}

/* Forms and favorites */
.form-grid{display:grid;gap:17px}.form-grid label{display:grid;gap:7px;font-weight:700}.form-grid input,.form-grid textarea,.form-grid select{width:100%;padding:13px;border:1px solid #d6c9c5;border-radius:10px;background:#fff;font:inherit}.form-grid input:focus,.form-grid textarea:focus,.form-grid select:focus{outline:3px solid #f3d2cc;border-color:var(--blue)}.form-error{margin:5px 0 0;color:#a3291d;font-size:12px}.required{color:var(--blue)}.honeypot{position:absolute!important;left:-9999px!important}.contact-confirm-list>div{display:grid;grid-template-columns:170px 1fr;padding:16px 0;border-bottom:1px solid var(--line)}.contact-confirm-list dt{font-weight:800}.contact-confirm-list dd{margin:0;white-space:pre-wrap}.favorite-results{margin:25px 0}.favorite-list{display:grid;gap:8px}.favorite-list>div{display:flex;align-items:center;justify-content:space-between;gap:15px;padding:13px 15px;border:1px solid var(--line);border-radius:10px}.favorite-list a{color:var(--ink);font-weight:700}.favorite-remove{border:0;background:transparent;color:var(--blue-dark);cursor:pointer;text-decoration:underline}

.contact-page{background:linear-gradient(180deg,#fbefec 0,#faf8f6 420px)}.contact-card{max-width:920px;padding:clamp(30px,5vw,62px);border:1px solid var(--line);box-shadow:0 22px 60px #4b282114}.information-hero{margin-bottom:46px;padding-bottom:34px;border-bottom:1px solid var(--line)}.information-hero h1{margin-bottom:15px;font-size:clamp(34px,5vw,52px)}.information-lead{max-width:720px;margin-bottom:0;color:var(--muted);font-size:18px;line-height:1.9}.contact-form-section h2,.contact-before h2{position:relative;margin-bottom:18px;padding-left:18px;font-size:24px}.contact-form-section h2:before,.contact-before h2:before{position:absolute;top:.32em;bottom:.32em;left:0;width:5px;border-radius:99px;background:var(--blue);content:""}.contact-card a:not(.btn){color:var(--blue-dark);text-decoration:underline;text-underline-offset:3px}.contact-guide{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:14px;margin-bottom:34px}.contact-guide div{padding:20px;border:1px solid var(--line);border-radius:16px;background:#fcfaf8}.contact-guide span{display:block;color:var(--blue);font-size:12px;font-weight:800;letter-spacing:.1em}.contact-guide strong{display:block;margin:5px 0 8px;color:var(--ink);font-size:16px}.contact-guide p{margin:0;color:var(--muted);font-size:12px;line-height:1.7}.contact-before{margin-bottom:48px;padding:24px 26px;border-radius:16px;background:var(--blue-pale)}.contact-before h2{margin-bottom:8px;font-size:19px}.contact-before p{margin:0;color:#715a55;font-size:14px}.contact-form-section>h2{margin-bottom:8px}.contact-required-note{margin-bottom:28px;color:var(--muted);font-size:13px}.contact-required-note span,.required-badge,.optional-badge{display:inline-flex;min-height:20px;align-items:center;margin-left:5px;padding:1px 7px;border-radius:99px;background:#fff0ed;color:#a13c30;font-size:10px;font-weight:800;line-height:1.4;vertical-align:middle}.contact-required-note span{margin:0 5px 0 0}.optional-badge{background:#edf2f5;color:#657785}.contact-form{display:grid;gap:24px}.contact-field{display:grid;gap:8px}.contact-field>label{color:var(--ink);font-weight:800}.contact-field input,.contact-field select,.contact-field textarea{width:100%;padding:13px 15px;border:1px solid #d8c7c2;border-radius:11px;outline:0;background:#fff;color:var(--body);font:inherit;transition:border-color .18s ease,box-shadow .18s ease}.contact-field textarea{min-height:220px;line-height:1.75;resize:vertical}.contact-field input:focus,.contact-field select:focus,.contact-field textarea:focus{border-color:var(--blue);box-shadow:0 0 0 4px #b932221c}.contact-field [aria-invalid=true]{border-color:#cc6659;background:#fffafa}.contact-field small{color:var(--muted);font-size:12px}.field-error{margin:0;color:#a3382d;font-size:13px;font-weight:700}.contact-honeypot{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}.contact-consent{padding:18px;border:1px solid var(--line);border-radius:13px;background:#fcfaf8}.contact-consent label{display:flex;align-items:flex-start;gap:10px;cursor:pointer}.contact-consent input{width:19px;height:19px;flex:0 0 auto;margin-top:5px;accent-color:var(--blue)}.contact-sales-note{margin:-7px 0 0;padding:12px 14px;border-radius:10px;background:#fff8e7;color:#745d25;font-size:12px}.contact-actions{text-align:center}.contact-actions .btn{min-width:260px;border:0;cursor:pointer}.contact-confirm-list{margin:0;border-top:1px solid var(--line)}.contact-confirm-list>div{display:grid;grid-template-columns:190px minmax(0,1fr);padding:0;border-bottom:1px solid var(--line)}.contact-confirm-list dt,.contact-confirm-list dd{margin:0;padding:17px 20px}.contact-confirm-list dt{background:#faf5f3;color:var(--ink);font-weight:800}.contact-message-preview{overflow-wrap:anywhere}.muted-value{color:var(--muted)}.contact-confirm-actions{display:flex;align-items:center;justify-content:center;gap:14px;margin-top:34px}.contact-confirm-actions form{margin:0}.contact-confirm-actions button{cursor:pointer}.contact-complete-card{max-width:760px;text-align:center}.contact-complete-card .eyebrow{justify-content:center}.contact-complete-mark{display:grid;width:64px;height:64px;place-items:center;margin:0 auto 22px;border-radius:50%;background:var(--sage-pale);color:#2d7756;font-size:30px;font-weight:800}.contact-complete-card h1{margin-bottom:22px;font-size:clamp(30px,5vw,44px)}.contact-complete-card p{max-width:620px;margin-right:auto;margin-left:auto}.contact-complete-card .btn{margin-top:16px}.error-card{text-align:center}.error-code{display:block;color:var(--blue);font-size:72px;font-weight:900;line-height:1}.error-actions{display:flex;justify-content:center;gap:12px;margin-top:28px}

/* Mobile navigation and responsiveness */
@media(max-width:980px){.global-nav.is-open{position:absolute;top:72px;right:20px;display:grid;width:min(300px,calc(100vw - 40px));gap:0;padding:10px;border:1px solid var(--line);border-radius:14px;background:#fff;box-shadow:var(--shadow)}.global-nav.is-open a{padding:12px}.course-card-grid,.course-card-grid.compact,.recent-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.area-link-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.golf-detail-hero{grid-template-columns:1fr}.journal-grid{grid-template-columns:1fr}.journal-card{grid-template-columns:200px minmax(0,1fr)}}
@media(max-width:700px){.course-card,.course-card-grid>.course-card{display:block}.course-list .course-card-image,.course-card-grid>.course-card .course-card-image{width:100%;height:180px;min-height:0}.course-card-grid,.course-card-grid.compact,.recent-grid{grid-template-columns:1fr}.course-card-grid>.course-card .course-card-body{min-height:auto}.area-section{padding:22px 18px}.area-link-grid,.area-link-grid.compact{grid-template-columns:repeat(2,minmax(0,1fr))}.golf-gallery{min-height:300px;grid-template-columns:1fr}.golf-gallery .gallery-image-1{grid-row:auto}.golf-gallery .gallery-image-2,.golf-gallery .gallery-image-3{display:none}.facility-grid{grid-template-columns:1fr}.journal-card{grid-template-columns:1fr}.journal-visual{min-height:180px}.journal-article>header,.journal-body{padding:30px 23px}.journal-article h1{font-size:29px}.simple-card{padding:27px 21px}.contact-card{padding:26px 20px;border-radius:16px}.information-hero{margin-bottom:32px;padding-bottom:26px}.information-lead{font-size:15px}.contact-guide{grid-template-columns:1fr}.contact-confirm-list>div{grid-template-columns:1fr;gap:0}.contact-confirm-list dt{padding-bottom:6px}.contact-confirm-list dd{padding-top:6px}.contact-confirm-actions{align-items:stretch;flex-direction:column-reverse}.contact-confirm-actions .btn,.contact-confirm-actions form,.contact-actions .btn{width:100%}.area-link-grid a{font-size:12px}.error-actions{align-items:stretch;flex-direction:column}}

/* Category eyecatches for Golf Journal */
.guide-eyecatch-link{display:block;overflow:hidden;background:#edf2e8}.guide-list-eyecatch{min-height:230px}.guide-eyecatch-image{width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .28s ease}.article-card:hover .guide-eyecatch-image,.journal-card:hover .guide-eyecatch-image{transform:scale(1.025)}.guide-detail-eyecatch{width:100%;max-height:520px;aspect-ratio:3/2;margin:0;overflow:hidden;background:#edf2e8}.guide-detail-eyecatch .guide-eyecatch-image{display:block}.guide-eyecatch-link:focus-visible{outline:4px solid var(--blue);outline-offset:-4px}@media(max-width:700px){.guide-list-eyecatch{min-height:180px}.guide-detail-eyecatch{aspect-ratio:4/3}}
