/* Hotel location and parking — separate Main / Beach Side Villa; Google Maps loads on visitor action. */
.ph-access{background:#fff}
.ph-access__heading{display:flex;align-items:end;justify-content:space-between;gap:35px;margin-bottom:43px}
.ph-access__heading h2,.ph-access-page h1,.ph-access-page__travel h2,.ph-access-page__parking h2{font-family:var(--ph-font-serif);font-weight:700}
.ph-access__heading h2{font-size:clamp(25px,3.1vw,40px);line-height:1.65;margin:12px 0}
.ph-access__heading>div>p:last-child,.ph-access-page__lead{font-size:14px;color:var(--ph-muted);line-height:2}
.ph-access__more{white-space:nowrap;text-decoration:none;font-size:13px;font-weight:700;border-bottom:1px solid var(--ph-primary);padding-bottom:7px;color:var(--ph-primary)}
.ph-access__grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:clamp(15px,3vw,35px)}
.ph-access-facility{display:grid;grid-template-rows:auto 1fr auto;background:var(--ph-pale);min-width:0;overflow:hidden;border:1px solid #e1e8de}
.ph-access-facility__photo{position:relative;aspect-ratio:16/9;overflow:hidden;background:var(--ph-primary)}
.ph-access-facility__photo img{display:block;width:100%;height:100%;object-fit:cover}
.ph-access-facility__photo-fallback{width:100%;height:100%;display:flex;align-items:center;justify-content:center;background:linear-gradient(125deg,#567b59,#153b22);font-size:clamp(16px,2.5vw,28px);line-height:1.6;text-align:center;color:#ecf5e9;letter-spacing:.15em;font-family:var(--ph-font-serif)}
.ph-access-facility--villa .ph-access-facility__photo-fallback{background:linear-gradient(125deg,#a6b9a4,#345a45)}
.ph-access-facility__number{position:absolute;left:24px;bottom:8px;color:#ffffffa8;font-size:68px;font-weight:700;line-height:1}
.ph-access-facility__body{padding:clamp(22px,2.8vw,35px)}
.ph-access-facility__kind{font-size:10px;letter-spacing:.16em;color:var(--ph-mid);margin:0 0 8px;font-weight:700}
.ph-access-facility__body h3{font-size:clamp(17px,1.7vw,23px);line-height:1.65;margin:0 0 17px;font-family:var(--ph-font-serif)}
.ph-access-facility__body dl{margin:0}
.ph-access-facility__body dl>div{display:grid;grid-template-columns:65px 1fr;gap:12px;margin:10px 0}
.ph-access-facility__body dt{font-size:12px;font-weight:700;color:var(--ph-primary)}
.ph-access-facility__body dd{margin:0;font-size:13px;line-height:1.85;overflow-wrap:anywhere}
.ph-access-facility__note{font-size:12px;line-height:1.8;color:var(--ph-muted);margin:22px 0 0}
.ph-access-facility__actions{margin-top:22px}
.ph-access-facility__map{height:clamp(200px,19vw,275px);background:#e1e9dd}
.ph-access-facility__map-prompt{height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;padding:20px;background:repeating-linear-gradient(45deg,#e2ede0 0px,#e2ede0 20px,#d8e4d6 20px,#d8e4d6 21px)}
.ph-access-facility__map-icon{font-size:39px;color:#426448;line-height:1}
.ph-access-facility__map-prompt p{font-size:12px;margin:0;text-align:center;color:var(--ph-muted)}
.ph-access-facility__map-open{border:1px solid var(--ph-primary);background:#fff;color:var(--ph-primary);padding:10px 23px;font-weight:700;font-family:inherit;font-size:13px;cursor:pointer}
.ph-access-facility__map-open:hover{background:var(--ph-primary);color:#fff}
.ph-access-facility__map iframe{display:block;border:0;width:100%;height:100%}
.ph-access__warning{color:var(--ph-muted);font-size:12px;line-height:1.7;margin:23px 0 0}
.ph-access-page h1{font-size:clamp(30px,4vw,49px);margin:12px 0}
.ph-access-page__lead{margin:0 0 40px}
.ph-access__grid--detail{margin:35px 0 0}
.ph-access-page__travel{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:35px;margin-top:75px}
.ph-access-page__travel section{padding:30px;background:var(--ph-pale)}
.ph-access-page__travel h2{font-size:clamp(21px,2.4vw,30px)}
.ph-access-page__travel p:last-child{font-size:14px;line-height:2;color:var(--ph-muted)}
.ph-access-page__parking{margin-top:35px;border-left:4px solid var(--ph-primary);background:#f2f6f1;padding:25px 30px}
.ph-access-page__parking h2{font-size:clamp(20px,2.3vw,27px)}
.ph-access-page__parking p{font-size:14px;line-height:2;color:var(--ph-muted)}
.ph-access-page__actions{display:flex;gap:14px;flex-wrap:wrap;margin-top:50px}
@media(max-width:767px){.ph-access__heading{display:block}.ph-access__more{display:inline-block;margin-top:10px}.ph-access__grid{grid-template-columns:1fr;gap:25px}.ph-access-facility__photo{aspect-ratio:4/3}.ph-access-facility__map{height:230px}.ph-access-page__travel{grid-template-columns:1fr;gap:17px;margin-top:45px}.ph-access-page__travel section{padding:22px}.ph-access-page__parking{padding:20px}}
