/* Naruto Kaigetsu access page — designed to reuse kaigetsu ryokan variables/buttons. */
.nk-access{width:min(1120px,100%);margin:0 auto;color:var(--nkl-text)}
.nk-access *{box-sizing:border-box}
.nk-access__intro{max-width:820px;margin:0 auto clamp(46px,6vw,78px);text-align:center}
.nk-access__intro h2,.entry-content .nk-access__intro h2{margin:0;color:var(--nkl-ink);font-family:var(--nkl-serif);font-size:clamp(34px,4.2vw,56px);font-weight:500;line-height:1.5;letter-spacing:.045em}
.nk-access__lead{max-width:720px;margin:22px auto 0;color:var(--nkl-muted);font-size:clamp(15px,1.4vw,18px);line-height:2.05}

.nk-access__quick-nav{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;gap:0;margin:0 0 clamp(72px,8vw,110px);padding:14px 0;border-top:1px solid rgba(184,151,85,.32);border-bottom:1px solid rgba(184,151,85,.32)}
.nk-access__quick-nav a{position:relative;display:inline-flex;align-items:center;min-height:44px;padding:8px 20px;color:var(--nkl-ink);font-size:14px;font-weight:500;letter-spacing:.02em;text-decoration:none;transition:color .2s ease}
.nk-access__quick-nav a+a:before{content:"";position:absolute;left:0;top:50%;width:1px;height:18px;background:rgba(7,26,45,.16);transform:translateY(-50%)}
.nk-access__quick-nav a:hover,.nk-access__quick-nav a:focus-visible{color:var(--nkl-gold-dark)}

.nk-access__section,.nk-access__overview{scroll-margin-top:100px;padding:clamp(82px,9vw,124px) 0;border-top:1px solid rgba(7,26,45,.11)}
.nk-access__overview{padding-top:0;border-top:0}
.nk-access__section--compact{padding-top:clamp(68px,7vw,92px);padding-bottom:clamp(68px,7vw,92px)}
.nk-access__section-heading{max-width:820px;margin:0 0 clamp(42px,5vw,66px)}
.nk-access__section-heading--center{margin-left:auto;margin-right:auto;text-align:center}
.nk-access__section-heading h2,.entry-content .nk-access__section-heading h2{margin:0;color:var(--nkl-ink);font-family:var(--nkl-serif);font-size:clamp(32px,4vw,50px);font-weight:500;line-height:1.52;letter-spacing:.035em}
.nk-access__section-heading>p:not(.eyebrow){max-width:700px;margin:18px 0 0;color:var(--nkl-muted);line-height:2}
.nk-access__section-heading--center>p:not(.eyebrow){margin-left:auto;margin-right:auto}

.nk-access__overview-grid{display:grid;grid-template-columns:minmax(300px,.68fr) minmax(0,1.32fr);gap:clamp(24px,4vw,54px);align-items:stretch}
.nk-access__route-map,.nk-access__map-shell,.nk-access__media{margin:0;background:var(--nkl-white);border:1px solid rgba(7,26,45,.09);box-shadow:0 20px 60px rgba(7,26,45,.08)}
.nk-access__route-map{display:grid;place-items:center;min-height:500px;padding:22px;background:linear-gradient(145deg,#f1eee7,#fff)}
.nk-access__route-map img{display:block;width:auto;max-width:100%;max-height:590px;height:auto;object-fit:contain}
.nk-access__map-shell{position:relative;min-height:500px;overflow:hidden;background:#dfe7ea}
.nk-access__map-shell iframe{position:absolute;inset:0;width:100%!important;height:100%!important;margin:0!important;border:0!important}

.nk-access__split{display:grid;grid-template-columns:minmax(0,1fr) minmax(360px,.82fr);gap:clamp(36px,6vw,76px);align-items:start}
.nk-access__split--image-main{grid-template-columns:minmax(340px,.8fr) minmax(0,1.2fr)}
.nk-access__copy{min-width:0;padding-top:4px}
.nk-access__copy>p:first-child{margin-top:0}
.nk-access__copy p{line-height:2}
.nk-access__media{overflow:hidden}
.nk-access__media img{display:block;width:100%;height:100%;object-fit:cover}
.nk-access__media--contain{display:grid;place-items:center;min-height:560px;padding:18px;background:linear-gradient(145deg,#f1eee7,#fff)}
.nk-access__media--contain img{width:auto;max-width:100%;height:auto;max-height:680px;object-fit:contain}
.nk-access__media--landscape{aspect-ratio:3/2}
.nk-access__car-guide{width:min(820px,100%);margin:0 auto clamp(34px,4vw,52px);padding:clamp(12px,1.6vw,18px);background:linear-gradient(145deg,#f1eee7,#fff);border:1px solid rgba(7,26,45,.09);box-shadow:0 20px 60px rgba(7,26,45,.08);text-align:center}
.nk-access__car-guide>a{display:block;line-height:0}
.nk-access__car-guide img{display:block;width:100%;height:auto;margin:0 auto;object-fit:contain}
.nk-access__car-guide figcaption{margin:13px 0 0;font-size:12px;line-height:1.6}
.nk-access__car-guide figcaption a{color:var(--nkl-muted);text-underline-offset:3px}
.nk-access__car-details{width:min(900px,100%);margin:0 auto}
.nk-access__car-details>p{line-height:2}
.nk-access__media figcaption{position:absolute!important;width:1px!important;height:1px!important;padding:0!important;margin:-1px!important;overflow:hidden!important;clip:rect(0,0,0,0)!important;white-space:nowrap!important;border:0!important}

.nk-access__notice{margin:0 0 26px;padding:20px 22px;border-left:3px solid var(--nkl-gold);background:rgba(243,239,230,.68)}
.nk-access__notice--important{border-left-color:var(--nkl-gold);background:linear-gradient(135deg,rgba(243,239,230,.95),rgba(255,255,255,.72))}
.nk-access__notice p{margin:0;color:var(--nkl-text);line-height:1.9}
.nk-access__notice p+p{margin-top:7px}
.nk-access__notice strong{color:var(--nkl-ink)}
.nk-access__note{color:var(--nkl-muted);font-size:14px}
.nk-access__micro{color:var(--nkl-muted);font-size:12px;line-height:1.8}
.nk-access__facts{margin:0 0 28px}
.nk-access__facts>div{grid-template-columns:110px minmax(0,1fr)}

.nk-access__transport-card{display:grid;grid-template-columns:minmax(0,1fr) minmax(390px,.92fr);gap:clamp(34px,5vw,68px);align-items:center;padding:clamp(30px,4vw,52px);background:rgba(255,255,255,.68);border:1px solid rgba(7,26,45,.09);box-shadow:0 18px 55px rgba(7,26,45,.06)}
.nk-access__transport-card+.nk-access__transport-card{margin-top:34px}
.nk-access__transport-card--reverse .nk-access__transport-copy{order:2}
.nk-access__transport-card--reverse .nk-access__media{order:1}
.nk-access__transport-copy h3,.entry-content .nk-access__transport-copy h3{margin:6px 0 20px;color:var(--nkl-ink);font-family:var(--nkl-serif);font-size:clamp(25px,3vw,34px);font-weight:500;line-height:1.55}
.nk-access__transport-copy>p{margin:0 0 18px}
.nk-access__sub-en{margin:0!important;color:var(--nkl-gold);font-size:10px;font-weight:700;letter-spacing:.18em}

.nk-access__link-panel{margin-top:42px;padding:28px 0 0;border-top:1px solid rgba(7,26,45,.12)}
.nk-access__link-panel h3,.entry-content .nk-access__link-panel h3{margin:0 0 15px;color:var(--nkl-ink);font-family:var(--nkl-serif);font-size:23px;font-weight:500}
.nk-access__link-grid{display:flex;flex-wrap:wrap;align-items:center;gap:8px 26px}
.nk-access__link-grid a{display:inline-flex;align-items:center;gap:6px;min-height:36px;color:var(--nkl-ink);font-size:14px;text-decoration:underline;text-decoration-color:rgba(184,151,85,.65);text-underline-offset:5px;text-decoration-thickness:1px}
.nk-access__link-grid a:hover,.nk-access__link-grid a:focus-visible{color:var(--nkl-gold-dark)}
.nk-access__link-grid span{color:var(--nkl-gold);font-size:11px}

.nk-access__two-cards{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(22px,3vw,34px)}
.nk-access__simple-card{position:relative;min-width:0;padding:clamp(28px,4vw,46px);background:rgba(255,255,255,.74);border:1px solid rgba(184,151,85,.26);box-shadow:0 16px 46px rgba(7,26,45,.05)}
.nk-access__simple-card h3,.entry-content .nk-access__simple-card h3{margin:14px 0 18px;color:var(--nkl-ink);font-family:var(--nkl-serif);font-size:clamp(24px,2.6vw,31px);font-weight:500;line-height:1.55}
.nk-access__simple-card>p{margin:0 0 18px}
.nk-access__simple-card>p:last-child{margin-bottom:0}
.nk-access__card-number{color:var(--nkl-gold);font-family:var(--nkl-serif);font-size:18px;letter-spacing:.08em}

.nk-access__feature-panel{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:32px;align-items:center;padding:clamp(30px,4vw,50px);background:linear-gradient(145deg,rgba(255,255,255,.92),rgba(243,239,230,.82));border:1px solid rgba(184,151,85,.28);box-shadow:0 18px 55px rgba(7,26,45,.06)}
.nk-access__feature-panel h3,.entry-content .nk-access__feature-panel h3{margin:5px 0 14px;color:var(--nkl-ink);font-family:var(--nkl-serif);font-size:clamp(24px,3vw,34px);font-weight:500;line-height:1.55}
.nk-access__feature-panel p{margin:0;line-height:2}
.nk-access__feature-panel .button{white-space:nowrap}

.nk-access__direct-bus{max-width:900px;padding:clamp(28px,4vw,46px);background:rgba(255,255,255,.68);border:1px solid rgba(7,26,45,.09)}
.nk-access__direct-bus>p:first-child{margin-top:0}
.nk-access__route-list{margin-top:30px;padding-top:28px;border-top:1px solid var(--nkl-border)}
.nk-access__route-list h3,.entry-content .nk-access__route-list h3{margin:0 0 16px;color:var(--nkl-ink);font-family:var(--nkl-serif);font-size:24px;font-weight:500}
.nk-access__route-list ul{margin:0;padding-left:1.25em}
.nk-access__route-list li{padding:3px 0;line-height:1.85}

.nk-access__hotel-info{margin:clamp(74px,8vw,112px) 0 0;padding:clamp(38px,5vw,62px);background:linear-gradient(145deg,var(--nkl-ink),#0b304c);color:rgba(255,255,255,.82);text-align:center;border:1px solid rgba(216,192,138,.3);box-shadow:var(--nkl-shadow)}
.nk-access__hotel-info h2,.entry-content .nk-access__hotel-info h2{margin:0 0 20px;color:var(--nkl-white);font-family:var(--nkl-serif);font-size:clamp(28px,3.6vw,42px);font-weight:500;line-height:1.5}
.nk-access__hotel-info p{margin:10px auto;max-width:700px;line-height:1.9}
.nk-access__hotel-info a{color:var(--nkl-gold-light)}
.nk-access__phone{font-size:clamp(17px,2vw,22px);font-weight:700}

.nk-access .button{margin-top:4px}

@media(max-width:960px){
  .nk-access__overview-grid,.nk-access__split,.nk-access__split--image-main,.nk-access__transport-card{grid-template-columns:1fr}
  .nk-access__route-map,.nk-access__map-shell{min-height:420px}
  .nk-access__media--contain{min-height:0}
  .nk-access__media--contain img{max-height:600px}
  .nk-access__transport-card--reverse .nk-access__transport-copy,.nk-access__transport-card--reverse .nk-access__media{order:initial}
  .nk-access__feature-panel{grid-template-columns:1fr}
  .nk-access__feature-panel .button{justify-self:start;white-space:normal}
}

@media(max-width:767px){
  .nk-access__intro{text-align:left;margin-bottom:36px}
  .nk-access__intro h2,.entry-content .nk-access__intro h2{font-size:30px;line-height:1.48}
  .nk-access__lead{margin-top:15px;font-size:15px;line-height:1.85}
  .nk-access__quick-nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));margin-bottom:58px;padding:0;border-left:1px solid rgba(184,151,85,.28)}
  .nk-access__quick-nav a{min-height:54px;justify-content:flex-start;padding:11px 13px;border-right:1px solid rgba(184,151,85,.28);border-bottom:1px solid rgba(184,151,85,.28);font-size:13px}
  .nk-access__quick-nav a+a:before{display:none}
  .nk-access__section,.nk-access__overview{padding:58px 0;scroll-margin-top:82px}
  .nk-access__overview{padding-top:0}
  .nk-access__section--compact{padding:52px 0}
  .nk-access__section-heading{margin-bottom:28px}
  .nk-access__section-heading--center{text-align:left}
  .nk-access__section-heading h2,.entry-content .nk-access__section-heading h2{font-size:29px;line-height:1.5}
  .nk-access__section-heading>p:not(.eyebrow){margin-top:12px;line-height:1.85}
  .nk-access__overview-grid{gap:16px}
  .nk-access__route-map{min-height:0;padding:12px}
  .nk-access__route-map img{max-height:none;width:100%}
  .nk-access__map-shell{min-height:0;aspect-ratio:4/3}
  .nk-access__notice{padding:17px 18px;margin-bottom:20px}
  .nk-access__note{font-size:13px}
  .nk-access__transport-card{padding:20px 18px;gap:22px}
  .nk-access__transport-card+.nk-access__transport-card{margin-top:16px}
  .nk-access__transport-copy h3,.entry-content .nk-access__transport-copy h3{font-size:25px;margin-bottom:14px}
  .nk-access__two-cards{grid-template-columns:1fr;gap:16px}
  .nk-access__simple-card{padding:22px 18px}
  .nk-access__simple-card h3,.entry-content .nk-access__simple-card h3{font-size:24px}
  .nk-access__link-panel{margin-top:28px;padding:22px 0 0}
  .nk-access__link-panel h3,.entry-content .nk-access__link-panel h3{font-size:22px}
  .nk-access__link-grid{display:grid;grid-template-columns:1fr;gap:0}
  .nk-access__link-grid a{min-height:48px;padding:8px 0;border-bottom:1px solid rgba(7,26,45,.09);font-size:13px;text-decoration:none}
  .nk-access__car-guide{width:100%;margin-bottom:28px;padding:10px}
  .nk-access__car-guide figcaption{margin-top:10px}
  .nk-access__feature-panel{padding:22px 18px;gap:20px}
  .nk-access__feature-panel h3,.entry-content .nk-access__feature-panel h3{font-size:24px}
  .nk-access__direct-bus{padding:22px 18px}
  .nk-access__route-list h3,.entry-content .nk-access__route-list h3{font-size:22px}
  .nk-access__hotel-info{margin-top:58px;padding:34px 20px;text-align:left}
  .nk-access__hotel-info h2,.entry-content .nk-access__hotel-info h2{font-size:29px}
  .nk-access__hotel-info p{margin-left:0;margin-right:0}
  .nk-access .button{width:100%;text-align:center}
  .nk-access__facts>div{grid-template-columns:88px minmax(0,1fr);gap:14px}
}

/* 0.5.6 — mobile access index: robust 2 x 3 grid even when WordPress inserts <br>. */
@media (max-width: 767px) {
  .entry-content .nk-access .nk-access__quick-nav,
  .nk-access .nk-access__quick-nav {
    display: grid !important;
    grid-template-columns: repeat(2, minmax(0, 1fr)) !important;
    grid-auto-flow: row !important;
    grid-auto-rows: minmax(76px, auto) !important;
    gap: 0 !important;
    width: 100% !important;
    max-width: none !important;
    margin: 0 0 58px !important;
    padding: 0 !important;
    overflow: hidden;
    border: 1px solid rgba(184,151,85,.30) !important;
    background: rgba(255,255,255,.58);
  }

  /* wpautop / Classic Editor can insert line-break nodes between inline anchors.
     They must not become grid items. */
  .entry-content .nk-access .nk-access__quick-nav > br,
  .nk-access .nk-access__quick-nav > br {
    display: none !important;
  }

  .entry-content .nk-access .nk-access__quick-nav > a,
  .nk-access .nk-access__quick-nav > a {
    position: relative !important;
    display: flex !important;
    width: 100% !important;
    min-width: 0 !important;
    max-width: none !important;
    min-height: 76px !important;
    margin: 0 !important;
    padding: 27px 31px 13px 14px !important;
    align-items: center !important;
    justify-content: flex-start !important;
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--nkl-ink) !important;
    font-family: var(--nkl-serif);
    font-size: 13px !important;
    font-weight: 500 !important;
    line-height: 1.45 !important;
    letter-spacing: .02em !important;
    text-align: left !important;
    text-decoration: none !important;
    box-shadow: none !important;
  }

  /* Visual dividers are based on anchor order, not DOM child order, so inserted <br> is harmless. */
  .entry-content .nk-access .nk-access__quick-nav > a:nth-of-type(odd),
  .nk-access .nk-access__quick-nav > a:nth-of-type(odd) {
    border-right: 1px solid rgba(184,151,85,.25) !important;
  }

  .entry-content .nk-access .nk-access__quick-nav > a:nth-of-type(-n+4),
  .nk-access .nk-access__quick-nav > a:nth-of-type(-n+4) {
    border-bottom: 1px solid rgba(184,151,85,.25) !important;
  }

  .entry-content .nk-access .nk-access__quick-nav > a::before,
  .nk-access .nk-access__quick-nav > a::before {
    position: absolute !important;
    top: 10px !important;
    left: 14px !important;
    display: block !important;
    width: auto !important;
    height: auto !important;
    background: none !important;
    transform: none !important;
    color: var(--nkl-gold) !important;
    font-family: var(--nkl-serif);
    font-size: 9px !important;
    font-weight: 600 !important;
    line-height: 1 !important;
    letter-spacing: .14em !important;
  }
  .nk-access .nk-access__quick-nav > a:nth-of-type(1)::before { content: "01" !important; }
  .nk-access .nk-access__quick-nav > a:nth-of-type(2)::before { content: "02" !important; }
  .nk-access .nk-access__quick-nav > a:nth-of-type(3)::before { content: "03" !important; }
  .nk-access .nk-access__quick-nav > a:nth-of-type(4)::before { content: "04" !important; }
  .nk-access .nk-access__quick-nav > a:nth-of-type(5)::before { content: "05" !important; }
  .nk-access .nk-access__quick-nav > a:nth-of-type(6)::before { content: "06" !important; }

  .entry-content .nk-access .nk-access__quick-nav > a::after,
  .nk-access .nk-access__quick-nav > a::after {
    content: "↓";
    position: absolute;
    right: 12px;
    top: 50%;
    color: rgba(184,151,85,.85);
    font-size: 12px;
    line-height: 1;
    transform: translateY(-20%);
  }

  .entry-content .nk-access .nk-access__quick-nav > a:active,
  .entry-content .nk-access .nk-access__quick-nav > a:focus-visible,
  .nk-access .nk-access__quick-nav > a:active,
  .nk-access .nk-access__quick-nav > a:focus-visible {
    background: rgba(243,239,230,.72) !important;
    color: var(--nkl-gold-dark) !important;
  }
}
