/* access.html 専用のスタイル。
   このページからしか読み込まないので、セレクタを限定する必要はない。
   全ページ共通の指定は assets/common.css にある。 */

body{--page-bg:var(--bg); --footer-pad-bottom:96px;}

.a-hero{background:var(--bg-sub);position:relative;overflow:hidden;padding:32px 16px 28px;}
.a-hero::before{content:"";position:absolute;width:240px;height:240px;border-radius:50%;background:radial-gradient(circle at 30% 30%,rgba(239,68,48,0.10),rgba(239,68,48,0) 70%);right:-80px;top:-80px;}
.a-hero .inner{position:relative;max-width:var(--maxw);margin:0 auto;}
.a-hero .eyebrow{font-family:var(--font-en);font-weight:700;font-size:var(--text-xs);letter-spacing:0.22em;color:var(--primary);text-transform:uppercase;display:inline-flex;align-items:center;gap:10px;margin-bottom:12px;}
.a-hero .eyebrow::before{content:"";width:24px;height:2px;background:var(--primary);}
.a-hero h1{font-size:var(--text-xl);font-weight:900;margin:0 0 8px;line-height:1.25;letter-spacing:-0.01em;}
.a-hero p{font-size:var(--text-base);color:var(--text-sub);margin:0;}
.sec{padding:36px 0 8px;}
.sec-label{display:flex;align-items:baseline;gap:10px;margin-bottom:16px;}
.sec-label .en{font-family:var(--font-en);font-weight:700;font-size:var(--text-xs);letter-spacing:0.2em;color:var(--primary);text-transform:uppercase;}
.sec-label .jp{font-size:var(--text-lg);font-weight:800;letter-spacing:-0.005em;}
.gallery{display:grid;grid-template-columns:1fr 1fr;gap:10px;}
.gallery{display:flex;flex-direction:column;gap:10px;}
.gallery-scroll{display:flex;gap:10px;overflow-x:auto;scrollbar-width:none;-webkit-overflow-scrolling:touch;scroll-snap-type:x mandatory;padding-bottom:2px;}
.gallery-scroll::-webkit-scrollbar{display:none;}
.gallery-scroll .pcard{flex:0 0 60%;scroll-snap-align:start;}
.pcard.lead .img{aspect-ratio:16/10;}
.pcard{background:#fff;border:1px solid var(--border);border-radius:14px;overflow:hidden;display:flex;flex-direction:column;}
.pcard .img{position:relative;aspect-ratio:4/3;background:linear-gradient(135deg,#F1ECE4,#E8E4DE);overflow:hidden;}
.pcard .img img{width:100%;height:100%;object-fit:cover;}
.pcard .img .tag{position:absolute;left:10px;top:10px;background:var(--primary);color:#fff;font-size:var(--text-xs);font-weight:700;padding:4px 11px;border-radius:var(--radius-pill);}
.pcard .txt{padding:12px 14px;font-size:var(--text-sm);font-weight:600;color:var(--text);line-height:1.6;}
.gallery-note{margin-top:14px;background:var(--bg-sub);border:1px dashed var(--border-strong);border-radius:12px;padding:13px 16px;font-size:var(--text-sm);color:var(--text-sub);line-height:1.7;}
@media (min-width:760px){
.hs-outer{display:contents;}
.hs-cue{display:none;}
}
.info-card{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;}
.info-row{display:flex;gap:14px;padding:18px 20px;border-bottom:1px solid var(--border);align-items:flex-start;}
.info-row:last-child{border-bottom:none;}
.info-row .ic{flex-shrink:0;width:40px;height:40px;border-radius:11px;background:var(--primary-soft);color:var(--primary);display:flex;align-items:center;justify-content:center;}
.info-row .ic svg{width:20px;height:20px;}
.info-row .body{flex:1;}
.info-row .body .k{font-size:var(--text-xs);font-weight:700;letter-spacing:0.04em;color:var(--text-mute);margin-bottom:4px;}
.info-row .body .v{font-size:var(--text-base);font-weight:600;line-height:1.6;color:var(--text);}
.info-row .body .v a{color:var(--text);text-decoration:none;}
.info-row .body .v .tel{color:var(--primary);font-family:var(--font-en);font-weight:800;font-size:var(--text-lg);letter-spacing:0.01em;}
.info-row .body .v .mail{color:var(--accent-blue);font-weight:700;}
.quick{display:flex;gap:10px;margin-top:14px;}
.quick a{flex:1;display:flex;align-items:center;justify-content:center;gap:8px;min-height:50px;border-radius:14px;text-decoration:none;font-weight:700;font-size:var(--text-sm);}
.quick a svg{width:17px;height:17px;}
.quick .call{background:var(--primary);color:#fff;box-shadow:0 4px 14px rgba(239,68,48,0.25);}
.quick .mailbtn{background:#fff;color:var(--text);border:1.5px solid var(--border-strong);}
.quick .mailbtn svg{color:var(--primary);}
.hours{background:#fff;border:1px solid var(--border);border-radius:18px;overflow:hidden;}
.hours .row{display:flex;align-items:center;justify-content:space-between;padding:13px 20px;border-bottom:1px solid var(--border);}
.hours .row:last-child{border-bottom:none;}
.hours .row .d{display:inline-flex;align-items:center;gap:10px;font-weight:700;font-size:var(--text-base);}
.hours .row .d .dot{width:10px;height:10px;border-radius:50%;flex-shrink:0;background:var(--text);}
.hours .row .d .dot.sat{background:var(--accent-blue);}
.hours .row .d .dot.sun{background:var(--primary);}
.hours .row .t{font-family:var(--font-jp);font-weight:700;font-size:var(--text-base);color:var(--text);letter-spacing:0.01em;}
.closed-note{margin-top:14px;background:var(--bg-sub);border:1px dashed var(--border-strong);border-radius:14px;padding:14px 18px;display:flex;gap:12px;align-items:flex-start;}
.closed-note .ic{flex-shrink:0;width:30px;height:30px;border-radius:8px;background:#fff;color:var(--primary);display:flex;align-items:center;justify-content:center;border:1px solid var(--border);}
.closed-note .ic svg{width:16px;height:16px;}
.closed-note .txt{font-size:var(--text-sm);color:var(--text-sub);line-height:1.7;}
.closed-note .txt strong{color:var(--text);font-weight:700;display:block;margin-bottom:2px;}
.transport{display:grid;grid-template-columns:1fr;gap:10px;}
.trans-card{background:#fff;border:1px solid var(--border);border-radius:14px;padding:16px 18px;display:flex;align-items:center;gap:14px;}
.trans-card .ic{flex-shrink:0;width:44px;height:44px;border-radius:12px;background:var(--bg-sub);display:flex;align-items:center;justify-content:center;color:var(--primary);}
.trans-card:nth-child(2) .ic{color:var(--accent-blue);}
.trans-card .ic svg{width:24px;height:24px;}
.trans-card .body .mode{font-size:var(--text-sm);color:var(--text-sub);font-weight:600;}
.trans-card .body .desc{font-size:var(--text-base);font-weight:700;margin-top:2px;}
.trans-card .body .desc .em{color:var(--primary);}
.map-frame{border-radius:18px;overflow:hidden;border:1px solid var(--border);background:var(--bg-sub);aspect-ratio:4/3;}
.map-frame iframe{width:100%;height:100%;border:0;display:block;}
.map-link{margin-top:12px;display:inline-flex;align-items:center;gap:8px;color:var(--text);font-weight:700;font-size:var(--text-sm);text-decoration:none;border-bottom:1.5px solid var(--text);padding-bottom:3px;}
/* タッチ端末では効かせない。1回目のタップがホバーの発生として扱われ、
   その要素への操作が2回目のタップまで届かなくなるため。 */
@media (hover:hover) and (pointer:fine){
.map-link:hover{color:var(--primary);border-color:var(--primary);}
}
.map-link .arrow{font-family:var(--font-en);}
.a-cta{margin-top:36px;background:var(--bg-sub);padding:40px 16px;}
.a-cta .inner{max-width:var(--maxw);margin:0 auto;text-align:center;}
.a-cta h2{font-size:var(--text-xl);font-weight:900;margin:0 0 8px;line-height:1.3;}
.a-cta h2 .accent{color:var(--primary);}
.a-cta p{font-size:var(--text-sm);color:var(--text-sub);margin:0 0 20px;}
.a-cta .btns{display:flex;flex-direction:column;gap:10px;max-width:420px;margin:0 auto;}
@media (min-width:760px){
.a-hero{padding:48px 24px 40px;}
.a-hero h1{font-size:var(--text-2xl);}
.a-hero p{font-size:var(--text-base);}
.sec{padding:48px 0 8px;}
.sec-label .jp{font-size:var(--text-lg);}
.gallery{grid-template-columns:repeat(4,1fr);gap:14px;}
.gallery{display:grid;}
.gallery-scroll{display:contents;}
.gallery-scroll .pcard{flex:none;}
.pcard.lead{grid-column:1 / 3;grid-row:1 / 3;display:flex;flex-direction:column;}
.pcard.lead .img{aspect-ratio:auto;flex:1;}
.pcard .img{aspect-ratio:1/1;}
.grid-2{display:grid;grid-template-columns:1fr 1fr;gap:48px;align-items:start;max-width:var(--maxw);margin:0 auto;padding:0 24px;}
.grid-2 .col .sec{padding:0;margin-bottom:36px;}
.grid-2 .col .sec:last-child{margin-bottom:0;}
.grid-2 .wrap{padding:0;max-width:none;}
.transport{grid-template-columns:1fr 1fr;}
.map-frame{aspect-ratio:16/11;}
.a-cta{padding:56px 24px;}
.a-cta h2{font-size:var(--text-2xl);}
.a-cta .btns{flex-direction:row;justify-content:center;max-width:none;}
.a-cta .btns .btn--full{width:auto;display:inline-flex;}
}
@media (min-width:1024px){
.a-hero h1{font-size:var(--text-3xl);}
}
@media (hover:hover) and (pointer:fine){
.map-link .arrow{transition:transform .18s ease;}
.map-link:hover .arrow{transform:translateX(3px);}
}
