@font-face {
  font-family: "GlacialIndifference";
  src: url("./assets/fonts/GlacialIndifference-Regular.woff2") format("woff2");
  font-style: normal;
  font-weight: 400;
  font-display: swap;
}

/* ============== VENUE DETAIL PAGE ============== */
.venue-detail-page{--teal:#155d78;--blue:#247f9d;--pale:#e4f0f3;--gold:#c7a46a;--gold-ink:#8b6d3d;--ink:#333;--muted:#5f5f5f;--line:color-mix(in srgb,var(--gold) 52%,white);--sans:GlacialIndifference,Arial,sans-serif;--display:"Playfair Display",Georgia,serif}
.venue-detail-page{margin:0;background:#fff;color:var(--ink);font-family:var(--sans);font-size:16px;line-height:1.65}.venue-detail-page:has(dialog[open]){overflow:hidden}.venue-detail-page .split-venue{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:start}.venue-detail-page .visual-pane{position:sticky;top:0;height:100vh;min-height:680px;overflow:hidden;background:#172527}.venue-detail-page .visual-pane-image{width:100%;height:100%;object-fit:cover;object-position:50% center}.venue-detail-page .visual-pane-shade{position:absolute;inset:0;background:linear-gradient(180deg,transparent 62%,#07181da8 100%)}.venue-detail-page .visual-logo{position:absolute;z-index:2;top:30px;right:30px}.venue-detail-page .visual-logo img{width:104px;filter:drop-shadow(0 2px 8px #0007)}.venue-detail-page .visual-title{position:absolute;z-index:2;left:clamp(30px,4.5vw,72px);right:30px;bottom:74px;color:#fff}.venue-detail-page .visual-title p,.venue-detail-page .eyebrow{margin:0 0 12px;color:var(--gold);font-size:11px;font-weight:600;letter-spacing:.18em;text-transform:uppercase}.venue-detail-page .visual-title h1{margin:0;font-family:var(--display);font-size:clamp(46px,5.2vw,78px);font-weight:500;letter-spacing:-.025em;line-height:.98;text-wrap:balance}.venue-detail-page .info-pane{min-width:0;padding:0 clamp(38px,5vw,82px)}.venue-detail-page .info-header{display:flex;min-height:84px;align-items:center;justify-content:space-between;border-bottom:1px solid var(--line);color:var(--muted);font-size:11px;letter-spacing:.07em;text-transform:uppercase}.venue-detail-page .info-header a{display:inline-flex;min-height:44px;padding:0 16px;align-items:center;border-radius:8px;background:var(--gold);color:#fff;font-weight:600;text-decoration:none}.venue-detail-page .info-section{padding:64px 0;border-bottom:1px solid var(--line)}.venue-detail-page .info-section h2,.venue-detail-page .pane-cta h2,.venue-detail-page .photo-heading h2,.venue-detail-page .closing-cta h2{margin:0;font-family:var(--display);font-size:clamp(34px,3.5vw,52px);font-weight:500;letter-spacing:-.025em;line-height:1.12;text-wrap:balance}.venue-detail-page .about>p:last-child{max-width:650px;margin:24px 0 0;color:var(--muted);text-wrap:pretty}.venue-detail-page .highlights{padding:30px;background:var(--pale);border-bottom:0}.venue-detail-page .highlights h2{color:var(--teal);font-size:29px}.venue-detail-page .highlights ul{display:grid;grid-template-columns:1fr 1fr;gap:0 26px;margin:16px 0 0;padding:0;list-style:none}.venue-detail-page .highlights li{position:relative;padding:10px 0 10px 18px;border-bottom:1px solid #bfd6dd;font-size:13px;line-height:1.45}.venue-detail-page .highlights li::before{content:"◆";position:absolute;left:0;top:12px;color:var(--gold);font-size:7px}.venue-detail-page .facts dl{margin:26px 0 0}.venue-detail-page .facts dl>div{display:grid;grid-template-columns:145px minmax(0,1fr);gap:22px;padding:14px 0;border-bottom:1px solid var(--line)}.venue-detail-page .facts dl>div:last-child{border-bottom:0}.venue-detail-page .facts dt{color:var(--teal);font-size:12px;font-weight:600}.venue-detail-page .facts dd{margin:0;color:var(--muted);font-size:13px;line-height:1.55}.venue-detail-page .facilities ul{display:grid;grid-template-columns:1fr 1fr;margin:25px 0 0;padding:0;border-top:1px solid var(--line);list-style:none}.venue-detail-page .facilities li{position:relative;padding:11px 6px 11px 24px;border-bottom:1px solid var(--line);font-size:12px;line-height:1.4}.venue-detail-page .facility-key{display:flex;gap:18px;margin:14px 0 0;color:var(--muted);font-size:10px}.venue-detail-page .facility-key span:first-child{color:var(--blue)}.venue-detail-page .travel ol{margin:28px 0 0;padding:0;list-style:none}.venue-detail-page .travel li{display:grid;grid-template-columns:40px minmax(0,1fr);gap:15px;padding-bottom:25px;position:relative}.venue-detail-page .travel li:not(:last-child)::before{content:"";position:absolute;left:19px;top:40px;bottom:0;width:1px;background:#aecdd6}.venue-detail-page .travel li>span{display:grid;width:40px;height:40px;place-items:center;border-radius:999px;background:var(--teal);color:#fff;font-size:13px;font-weight:600}.venue-detail-page .travel strong{display:block;padding-top:4px;font-size:13px;line-height:1.45}.venue-detail-page .travel p{margin:4px 0 0;color:var(--muted);font-size:12px}.venue-detail-page .pane-cta{margin:64px 0 84px;padding:34px;background:var(--teal);color:#fff;text-align:center}.venue-detail-page .pane-cta h2{font-size:34px}.venue-detail-page .pane-cta p{margin:15px 0 22px;color:#e4eff2;font-size:13px}.venue-detail-page .pane-cta a,.venue-detail-page .closing-cta a{display:inline-flex;min-height:50px;padding:0 24px;align-items:center;border-radius:8px;background:var(--gold);color:#fff;font-size:13px;font-weight:600;text-decoration:none}.venue-detail-page .pane-cta small{display:block;margin-top:12px;color:#cee0e5;font-size:10px}.venue-detail-page .venue-photo-section{padding:100px max(20px,calc((100vw - 1180px)/2));background:#f7f2f1}.venue-detail-page .photo-heading{display:flex;align-items:end;justify-content:space-between;gap:30px;margin-bottom:38px}.venue-detail-page .photo-heading>p{max-width:350px;margin:0 0 8px;color:var(--muted);font-size:13px}.venue-detail-page .photo-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));grid-auto-rows:320px;gap:12px}.venue-detail-page .photo-tile{position:relative;overflow:hidden;padding:0;border:0;background:#ddd;cursor:zoom-in}.venue-detail-page .photo-wide{grid-column:span 2;height:520px}.venue-detail-page .photo-tile img{width:100%;height:100%;object-fit:cover;transition:transform .45s cubic-bezier(.22,1,.36,1)}.venue-detail-page .photo-tile:hover img{transform:scale(1.02)}.venue-detail-page .photo-tile span{position:absolute;left:15px;bottom:14px;padding:6px 10px;background:#fff;font:600 11px var(--sans);letter-spacing:.05em}.venue-detail-page .closing-cta{padding:100px 20px;background:var(--pale);text-align:center}.venue-detail-page .closing-cta p{margin:18px 0 28px;color:var(--muted)}.venue-detail-page .lightbox{width:100vw;max-width:none;height:100dvh;max-height:none;margin:0;padding:0;border:0;background:#111;color:#fff}.venue-detail-page .lightbox::backdrop{background:#111}.venue-detail-page .lightbox-bar{position:absolute;z-index:2;top:0;left:0;display:flex;width:100%;min-height:70px;padding:14px 20px;align-items:center;justify-content:space-between;background:linear-gradient(#000b,transparent)}.venue-detail-page .lightbox-bar p{margin:0;font-size:12px}.venue-detail-page .lightbox-close,.venue-detail-page .lightbox-arrow{min-width:48px;min-height:48px;border:1px solid #ffffff88;border-radius:999px;background:#111a;color:#fff;font:600 12px var(--sans);cursor:pointer}.venue-detail-page .lightbox-stage{display:grid;height:100%;padding:72px 20px 24px;grid-template-columns:56px minmax(0,1fr) 56px;gap:20px;align-items:center}.venue-detail-page .lightbox-stage img{width:100%;height:calc(100dvh - 96px);object-fit:contain}.venue-detail-page .lightbox-arrow{font-size:21px}.venue-detail-page .photo-tile:focus-visible,.venue-detail-page .lightbox button:focus-visible,.venue-detail-page a:focus-visible{outline:3px solid #58d3e5;outline-offset:3px}
@media(max-width:767px){.venue-detail-page .split-venue{display:block}.venue-detail-page .visual-pane{position:relative;height:76svh;min-height:560px}.venue-detail-page .visual-pane-image{object-position:50% center}.venue-detail-page .visual-logo{top:21px;right:20px}.venue-detail-page .visual-logo img{width:92px}.venue-detail-page .visual-title{left:20px;right:20px;bottom:86px}.venue-detail-page .visual-title h1{font-size:clamp(44px,13vw,60px)}.venue-detail-page .info-pane{padding:0 20px}.venue-detail-page .info-header{min-height:70px}.venue-detail-page .info-header>span{display:none}.venue-detail-page .info-section{padding:50px 0}.venue-detail-page .highlights{padding:24px 22px}.venue-detail-page .highlights ul,.venue-detail-page .facilities ul{grid-template-columns:1fr}.venue-detail-page .facts dl>div{grid-template-columns:116px minmax(0,1fr);gap:15px}.venue-detail-page .pane-cta{margin:50px 0 68px;padding:28px 22px}.venue-detail-page .venue-photo-section{padding:72px 20px}.venue-detail-page .photo-heading{display:block}.venue-detail-page .photo-heading>p{margin-top:16px}.venue-detail-page .photo-grid{grid-template-columns:1fr;grid-auto-rows:auto;gap:8px}.venue-detail-page .photo-tile,.venue-detail-page .photo-wide{grid-column:auto;height:auto;aspect-ratio:4/3}.venue-detail-page .photo-wide:first-child{aspect-ratio:5/4}.venue-detail-page .closing-cta{padding-block:76px}.venue-detail-page .lightbox-stage{padding:72px 0 70px;grid-template-columns:1fr}.venue-detail-page .lightbox-stage img{height:calc(100dvh - 142px)}.venue-detail-page .lightbox-arrow{position:absolute;z-index:2;bottom:14px}.venue-detail-page .lightbox-prev{left:20px}.venue-detail-page .lightbox-next{right:20px}.venue-detail-page .lightbox-bar p{max-width:68%}}
@media(prefers-reduced-motion:reduce){.venue-detail-page .photo-tile img{transition:none}}

.venue-detail-page /* Shared white header,.venue-detail-page revealed after the About section. */
.site-header{position:fixed;z-index:10;top:0;left:0;width:100%;height:74px;background:rgba(255,255,255,.95);border-bottom:1px solid #ece8e1;opacity:0;visibility:hidden;pointer-events:none;transform:translateY(-100%);transition:transform 420ms cubic-bezier(.22,1,.36,1),opacity 280ms ease,visibility 0s linear 420ms}
.venue-detail-page .site-header.is-visible{opacity:1;visibility:visible;pointer-events:auto;transform:translateY(0);transition-delay:0s}
.venue-detail-page .site-header-inner{display:flex;width:100%;height:100%;margin:0;padding:0 clamp(38px,5vw,82px) 0 clamp(30px,4.5vw,72px);align-items:center;justify-content:space-between}
.venue-detail-page .header-back-link{display:inline-flex;min-width:76px;min-height:40px;padding:0 14px;align-items:center;gap:8px;color:var(--ink);font-size:13px;font-weight:600;line-height:1;text-decoration:none}
.venue-detail-page .header-back-link::before{content:"";width:9px;height:9px;flex:0 0 auto;border-bottom:2px solid currentColor;border-left:2px solid currentColor;transform:rotate(45deg)}



.venue-detail-page .visual-pane{height:100vh;min-height:680px}
.venue-detail-page .info-pane>.info-section:first-child{padding-top:64px}

@media(max-width:767px){
  .venue-detail-page .site-header{height:66px}
  .venue-detail-page .site-header-inner{width:calc(100% - 40px);margin:auto;padding:0}

  .venue-detail-page .visual-pane{height:76svh;min-height:560px}
}

.venue-detail-page /* Four-photo Tokihana preview; the lightbox may contain up to ten images. */
.photo-heading,.venue-detail-page .photo-grid{width:min(100%,1140px);margin-inline:auto}.venue-detail-page .photo-grid{position:relative}
.venue-detail-page .photo-grid{grid-template-rows:440px 330px 440px;grid-auto-rows:330px}
.venue-detail-page .photo-wide{height:auto}
.venue-detail-page .photo-view-all{position:absolute;z-index:3;right:18px;bottom:18px;display:inline-flex;min-height:46px;padding:0 17px;align-items:center;gap:10px;border:0;border-radius:999px;background:#fff;color:var(--ink);font:600 12px var(--sans);box-shadow:0 2px 8px #0002;cursor:pointer}.venue-detail-page .photo-view-all span{display:grid;min-width:24px;height:24px;padding:0 5px;place-items:center;border-radius:999px;background:var(--teal);color:#fff;font-size:11px}

@media(min-width:768px){
  .venue-detail-page .photo-grid{grid-template-columns:2fr 1fr 1fr;grid-template-rows:270px 270px;grid-auto-rows:270px}
  .venue-detail-page .photo-grid .photo-tile{grid-column:auto;height:auto}
  .venue-detail-page .photo-grid .photo-tile:nth-child(1){grid-column:1;grid-row:1 / span 2}
  .venue-detail-page .photo-grid .photo-tile:nth-child(2){grid-column:2 / span 2;grid-row:1}
  .venue-detail-page .photo-grid .photo-tile:nth-child(3){grid-column:2;grid-row:2}
  .venue-detail-page .photo-grid .photo-tile:nth-child(4){grid-column:3;grid-row:2}
}

.venue-detail-page .access-section{padding:100px max(20px,calc((100vw - 1140px)/2));background:#fff}
.venue-detail-page .access-heading{margin-bottom:34px}
.venue-detail-page .access-heading h2{margin:0;font-family:var(--display);font-size:clamp(34px,4vw,52px);font-weight:500;letter-spacing:-.025em;line-height:1.12}
.venue-detail-page .access-heading>p:last-child{margin:12px 0 0;color:var(--muted);font-size:13px}
.venue-detail-page .access-grid{display:grid;grid-template-columns:1.08fr .92fr;gap:clamp(48px,8vw,96px);align-items:start}
.venue-detail-page .access-route{margin:0;padding:24px 0 0;list-style:none}
.venue-detail-page .access-route li{display:grid;grid-template-columns:22px minmax(0,1fr);gap:12px;padding:16px 0;border-bottom:1px solid var(--line)}
.venue-detail-page .access-route li:last-child{border-bottom:0}
.venue-detail-page .access-icon{color:#888;font-size:14px;font-weight:600;text-align:center}
.venue-detail-page .access-route strong{display:block;font-size:13px;line-height:1.45}
.venue-detail-page .access-route p{margin:4px 0 0;color:var(--muted);font-size:12px}
.venue-detail-page .venue-map{overflow:hidden;aspect-ratio:1/1;border-radius:10px;background:#eee}
.venue-detail-page .venue-map iframe{width:100%;height:100%;border:0}
.venue-detail-page .facilities-section{padding:100px max(20px,calc((100vw - 1140px)/2));background:#f7f2f1}
.venue-detail-page .facilities-inner{width:min(100%,1140px);margin:auto}
.venue-detail-page .facilities-inner h2{margin:0;font-family:var(--display);font-size:clamp(34px,4vw,52px);font-weight:500;letter-spacing:-.025em;line-height:1.12}
.venue-detail-page .facilities-inner ul{margin-top:34px}

@media(max-width:767px){
  .venue-detail-page .photo-grid{grid-template-columns:1fr 1fr;grid-template-rows:auto auto auto;grid-auto-rows:auto}
  .venue-detail-page .photo-tile{grid-column:auto;height:auto;aspect-ratio:1/1}
  .venue-detail-page .photo-wide,.venue-detail-page .photo-wide:first-child{grid-column:span 2;height:auto;aspect-ratio:16/9}
  .venue-detail-page .photo-view-all{right:12px;bottom:12px;min-height:44px;padding-inline:14px}
  .venue-detail-page .access-section{padding:72px 20px}
  .venue-detail-page .access-grid{grid-template-columns:1fr;gap:36px}
  .venue-detail-page .venue-map{aspect-ratio:4/3}
  .venue-detail-page .facilities-section{padding:72px 20px}
  .venue-detail-page .facilities-inner ul{margin-top:28px}
}

.venue-detail-page /* Facilities availability table. */
.facilities ul{overflow:hidden;border:1px solid var(--line);border-radius:12px;background:#fff}
.venue-detail-page .facilities li{padding:13px 44px 13px 16px}
.venue-detail-page .facilities li:nth-child(odd){border-right:1px solid var(--line)}
.venue-detail-page .facilities li:nth-last-child(-n+2){border-bottom:0}
.venue-detail-page .facilities li::after{position:absolute;right:16px;top:50%;font-size:15px;line-height:1;transform:translateY(-50%)}
.venue-detail-page .facilities .yes::after{content:"";color:var(--blue)}
.venue-detail-page .facilities .no::after{content:"";color:#8d8881}
.venue-detail-page .facility-key{justify-content:flex-end}

@media(max-width:767px){
  .venue-detail-page .facilities ul{grid-template-columns:1fr 1fr}
  .venue-detail-page .facilities li{padding:11px 30px 11px 11px;font-size:11px}
  .venue-detail-page .facilities li:nth-child(odd){border-right:1px solid var(--line)}
  .venue-detail-page .facilities li:nth-last-child(2){border-bottom:0}
  .venue-detail-page .facilities li::after{right:10px;font-size:14px}
  .venue-detail-page .facility-key{justify-content:flex-start}
}

.venue-detail-page /* Final consultation block and shared index footer. */
.closing-cta{padding:92px 20px 100px;background:#fff;color:var(--teal)}
.venue-detail-page .closing-cta-inner{width:min(100%,820px);margin:auto}
.venue-detail-page .closing-cta h2{color:var(--gold-ink)}
.venue-detail-page .closing-cta .closing-cta-lede{font-size:14px}
.venue-detail-page .closing-cta-actions{display:flex;justify-content:center;gap:12px}
.venue-detail-page .closing-cta .cta-button{display:inline-flex;min-height:56px;min-width:250px;padding:0 26px;align-items:center;justify-content:center;gap:10px;border:0;border-radius:12px;background:var(--blue);color:#fff;font-size:16px;font-weight:700;text-decoration:none;transition:filter 240ms ease,transform 240ms ease}
.venue-detail-page .closing-cta .cta-button-primary{background:var(--gold);color:#fff}
.venue-detail-page .closing-cta .cta-button-secondary{background:var(--blue);color:#fff}
.venue-detail-page .closing-cta .cta-button:hover{filter:brightness(1.08)}
.venue-detail-page .cta-button svg,.venue-detail-page .cta-button img{width:24px;height:24px;flex:0 0 24px}
.venue-detail-page .cta-button svg{fill:none;stroke:currentColor;stroke-width:1.8;stroke-linecap:round;stroke-linejoin:round}
.venue-detail-page .closing-cta .closing-cta-note{max-width:660px;margin:30px auto 0;color:var(--muted);font-size:12px;line-height:1.75;text-wrap:pretty}
.venue-detail-page .closing-cta-note strong{color:var(--ink);font-weight:600}
.venue-detail-page .closing-support{display:grid;max-width:760px;margin:36px auto 0;padding-top:24px;border-top:1px solid var(--line);grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;text-align:left}
.venue-detail-page .closing-support-item{display:flex;min-width:0;align-items:center;gap:16px}
.venue-detail-page .closing-support-media{width:96px;height:96px;flex:0 0 96px;border-radius:14px;object-fit:cover}
.venue-detail-page .closing-support-item p{margin:0;color:var(--muted);font-size:13px;line-height:1.65;text-wrap:pretty}
.venue-detail-page .closing-support-item strong{color:var(--ink);font-weight:600}
.venue-detail-page .closing-support-item p>span{display:block;margin-top:4px}
.venue-detail-page .footer{padding-bottom:calc(50px + env(safe-area-inset-bottom))}
.venue-detail-page .visual-pane-picture,
.venue-detail-page .photo-tile picture{display:block;width:100%;height:100%}
.venue-detail-page .lightbox-picture{display:block;width:100%;height:calc(100dvh - 96px)}
.venue-detail-page .lightbox-picture img{width:100%;height:100%;object-fit:contain}
@media(max-width:767px){
  .venue-detail-page .closing-cta{padding:72px 20px}
  .venue-detail-page .closing-cta-actions{flex-direction:column}
  .venue-detail-page .closing-cta .cta-button{width:100%;min-height:54px;padding-inline:18px}
  .venue-detail-page .closing-cta .closing-cta-note{margin-top:24px;font-size:11px}
  .venue-detail-page .closing-support{margin-top:32px;padding-top:20px;grid-template-columns:1fr;gap:18px}
  .venue-detail-page .closing-support-item{gap:14px}
  .venue-detail-page .closing-support-media{width:84px;height:84px;flex-basis:84px}
  .venue-detail-page .closing-support-item p{font-size:12px}
  .venue-detail-page .facility-key{font-size:12px}
  .venue-detail-page .lightbox-picture{height:calc(100dvh - 142px)}

}

@media(prefers-reduced-motion:reduce){
  .venue-detail-page .site-header{transition:none}
  .venue-detail-page .closing-cta .cta-button{transition:none}
}

.venue-detail-page /* Venue hero metadata,.venue-detail-page shared with the venue tags on index.html. */
.visual-meta{display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-top:18px}
.venue-detail-page .visual-location{display:inline-flex;align-items:center;gap:3px;font-size:14px;letter-spacing:.08em}
.venue-detail-page .visual-location::before{content:"";width:15px;height:15px;flex:0 0 auto;background:currentColor;-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a7 7 0 0 0-7 7c0 5.2 7 13 7 13s7-7.8 7-13a7 7 0 0 0-7-7Zm0 9.5A2.5 2.5 0 1 1 12 6a2.5 2.5 0 0 1 0 5.5Z'/%3E%3C/svg%3E") center / contain no-repeat}
.venue-detail-page .visual-venue-tag{margin:0;background:rgba(255,255,255,.9);font-weight:400}

.venue-detail-page .visual-title h1{font-size:clamp(34px,9.6vw,78px);line-height:1.08;letter-spacing:.5px}

@media(min-width:768px) and (max-width:1023px){
  .venue-detail-page .visual-title h1{font-size:clamp(40px,5.5vw,56px)}
}

@media(min-width:1024px){
  .venue-detail-page .visual-title h1{font-size:clamp(56px,4.85vw,70px)}
}

@media(max-width:767px){
  .venue-detail-page .visual-pane{height:min(76svh,133.333vw);min-height:0}
  .venue-detail-page .visual-title{bottom:28px}
  .venue-detail-page .visual-meta{gap:8px;margin-top:14px}
  .venue-detail-page .visual-location{font-size:12px}
}

.venue-detail-page /* Detail-page typography and icon refinements. */
:root{--pale-mist:var(--pale)}
.venue-detail-page .visual-back-button{position:absolute;z-index:3;top:24px;left:clamp(20px,4.5vw,72px);display:inline-flex;width:auto;min-width:76px;height:40px;padding:0 14px;align-items:center;justify-content:center;gap:8px;border:1px solid #fff;border-radius:999px;background:rgba(0,0,0,.1);color:#fff;font-size:13px;font-weight:600;line-height:1;text-decoration:none}
.venue-detail-page .visual-back-button::before{content:"";width:9px;height:9px;flex:0 0 auto;border-bottom:2px solid currentColor;border-left:2px solid currentColor;transform:rotate(45deg)}
.venue-surf-page .visual-pane-image{transform:scale(1.28);transform-origin:center bottom}
.venue-detail-page .info-section h2,.venue-detail-page .pane-cta h2,.venue-detail-page .photo-heading h2,.venue-detail-page .access-heading h2,.venue-detail-page .closing-cta h2{font-size:24px;letter-spacing:.5px}
.venue-detail-page .about{border-bottom:0}
.venue-detail-page .about h2{margin-bottom:24px;color:var(--ink)}
.venue-detail-page .about>p:last-child{margin:0;color:var(--muted);font-size:16px;line-height:1.75}
.venue-detail-page .highlights{background:var(--pale-mist);border-radius:0 18px 0 0}
.venue-detail-page .highlights h2{margin:0 0 10px;color:var(--ink);font-family:var(--sans);font-size:20px;font-weight:600;letter-spacing:0;line-height:1.4}
.venue-detail-page .highlights ul{margin-top:8px}
.venue-detail-page .highlights li{padding:12px 0 12px 26px;font-size:16px;line-height:1.55}
.venue-detail-page .highlights li::before{content:"";top:50%;left:0;width:16px;height:16px;background:var(--gold);transform:translateY(-50%);-webkit-mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-1.4 14.2-4-4 1.4-1.4 2.6 2.6 5.7-5.7 1.4 1.4-7.1 7.1Z'/%3E%3C/svg%3E") center / contain no-repeat;mask:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath d='M12 2a10 10 0 1 0 0 20 10 10 0 0 0 0-20Zm-1.4 14.2-4-4 1.4-1.4 2.6 2.6 5.7-5.7 1.4 1.4-7.1 7.1Z'/%3E%3C/svg%3E") center / contain no-repeat}
.venue-detail-page .fact-list{display:grid;gap:22px;margin:28px 0 0;padding:0;list-style:none}
.venue-detail-page .fact-item{display:grid;grid-template-columns:24px minmax(0,1fr);gap:14px;align-items:start}
.venue-detail-page .fact-item p{margin:0;color:var(--ink);font-size:16px;font-weight:500;line-height:1.55}
.venue-detail-page .fact-item p>span{display:block}
.venue-detail-page .fact-item p>span+span{margin-top:5px}
.venue-detail-page .fact-item .fact-qualifier{display:inline;padding-right:12px;color:#666;font-size:13px;font-weight:400}
.venue-detail-page .fact-icon{display:block;width:24px;height:24px;background:var(--ink);-webkit-mask:center / contain no-repeat;mask:center / contain no-repeat}
.venue-detail-page .fact-venue{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V11a8 8 0 0 1 16 0v10M7 21V11a5 5 0 0 1 10 0v10'/%3E%3Ccircle cx='10' cy='13' r='1.2'/%3E%3Ccircle cx='14' cy='13' r='1.2'/%3E%3Cpath d='M8.5 19c.1-2.6.5-4.1 1.5-4.1s1.4 1.5 1.5 4.1M12.5 19c.1-2.6.5-4.1 1.5-4.1s1.4 1.5 1.5 4.1'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.45' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V11a8 8 0 0 1 16 0v10M7 21V11a5 5 0 0 1 10 0v10'/%3E%3Ccircle cx='10' cy='13' r='1.2'/%3E%3Ccircle cx='14' cy='13' r='1.2'/%3E%3Cpath d='M8.5 19c.1-2.6.5-4.1 1.5-4.1s1.4 1.5 1.5 4.1M12.5 19c.1-2.6.5-4.1 1.5-4.1s1.4 1.5 1.5 4.1'/%3E%3C/svg%3E")}
.venue-detail-page .fact-guests{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.55' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Ccircle cx='16.5' cy='9' r='2.4'/%3E%3Cpath d='M3.5 20v-1.4c0-3 2.4-5.4 5.5-5.4s5.5 2.4 5.5 5.4V20M14.6 14.3c.6-.3 1.2-.4 1.9-.4 2.4 0 4.3 1.9 4.3 4.3V20'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.55' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3'/%3E%3Ccircle cx='16.5' cy='9' r='2.4'/%3E%3Cpath d='M3.5 20v-1.4c0-3 2.4-5.4 5.5-5.4s5.5 2.4 5.5 5.4V20M14.6 14.3c.6-.3 1.2-.4 1.9-.4 2.4 0 4.3 1.9 4.3 4.3V20'/%3E%3C/svg%3E")}
.venue-detail-page .fact-access{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.55' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 9c0 5.2-7 12.5-7 12.5S5 14.2 5 9a7 7 0 1 1 14 0Z'/%3E%3Ccircle cx='12' cy='9' r='2.4'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.55' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M19 9c0 5.2-7 12.5-7 12.5S5 14.2 5 9a7 7 0 1 1 14 0Z'/%3E%3Ccircle cx='12' cy='9' r='2.4'/%3E%3C/svg%3E")}
.venue-detail-page .lightbox-arrow{display:grid;width:40px;height:40px;min-width:40px;min-height:40px;place-items:center;font-size:0}
.venue-detail-page .lightbox-arrow::before{content:"";width:9px;height:9px;border-bottom:2px solid currentColor;border-left:2px solid currentColor}
.venue-detail-page .lightbox-prev::before{margin-left:3px;transform:rotate(45deg)}
.venue-detail-page .lightbox-next::before{margin-right:3px;transform:rotate(225deg)}
.venue-detail-page .lightbox-bar{min-height:64px;padding:12px 20px;justify-content:flex-end;pointer-events:none}
.venue-detail-page .lightbox-close{position:relative;display:grid;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;place-items:center;border:1px solid #ffffff88;border-radius:50%;background:#111a;color:transparent;font-size:0;pointer-events:auto}
.venue-detail-page .lightbox-close::before,.venue-detail-page .lightbox-close::after{content:"";position:absolute;width:16px;height:1.5px;border-radius:999px;background:#fff}
.venue-detail-page .lightbox-close::before{transform:rotate(45deg)}
.venue-detail-page .lightbox-close::after{transform:rotate(-45deg)}
.venue-detail-page .lightbox-stage{display:flex;height:100%;padding:64px 20px 12px;align-items:center;flex-direction:column;gap:8px}
.venue-detail-page .lightbox-viewport{width:100%;min-height:0;flex:1 1 auto;overflow:hidden;cursor:grab;touch-action:pan-y;user-select:none;-webkit-user-select:none}
.venue-detail-page .lightbox-viewport.is-dragging{cursor:grabbing}
.venue-detail-page .lightbox-track{display:flex;width:100%;height:100%;transform:translate3d(calc(-100% + var(--gallery-drag-x,0px)),0,0);will-change:transform}
.venue-detail-page .lightbox-track.is-animating{transition:transform 280ms cubic-bezier(.4,0,.22,1)}
.venue-detail-page .lightbox-track.is-resetting{transition:none!important}
.venue-detail-page .lightbox-slide{display:flex;width:100%;height:100%;min-width:100%;flex:0 0 100%;align-items:center;justify-content:center}
.venue-detail-page .lightbox-slide img{width:100%;height:100%;object-fit:contain;pointer-events:none}
.venue-detail-page .lightbox-controls{display:grid;width:100%;max-width:1280px;min-height:48px;flex:0 0 48px;align-items:center;grid-template-columns:44px minmax(0,1fr) 44px}
.venue-detail-page .lightbox-controls p{min-width:0;margin:0;padding:0 12px;font-size:12px;line-height:1.4;text-align:center}
.venue-detail-page .lightbox-arrow{position:static;display:grid;width:44px;height:44px;min-width:44px;min-height:44px;padding:0;place-items:center;border:0;border-radius:0;background:transparent}
.venue-detail-page .lightbox-prev{justify-self:start}
.venue-detail-page .lightbox-next{justify-self:end}
@media(min-width:768px){
  .venue-detail-page .lightbox-stage{
    display:grid;
    padding:64px 20px 12px;
    grid-template-columns:48px minmax(0,min(1040px,calc(100vw - 184px))) 48px;
    grid-template-rows:minmax(0,1fr) 48px;
    column-gap:24px;
    row-gap:8px;
    align-items:center;
    justify-content:center;
  }
  .venue-detail-page .lightbox-viewport{
    width:100%;
    height:100%;
    min-height:0;
    grid-column:2;
    grid-row:1;
    cursor:default;
    touch-action:auto;
  }
  .venue-detail-page .lightbox-controls{display:contents}
  .venue-detail-page .lightbox-controls p{
    grid-column:2;
    grid-row:2;
    align-self:center;
    justify-self:stretch;
  }
  .venue-detail-page .lightbox-arrow{
    display:flex;
    width:48px;
    height:48px;
    min-width:48px;
    min-height:48px;
    align-items:center;
    justify-content:center;
    border:1px solid #ffffff88;
    border-radius:50%;
    background:#1118;
    line-height:0;
  }
  .venue-detail-page .lightbox-arrow::before{
    width:10px;
    height:16px;
    margin:0;
    border:0;
    background:currentColor;
    transform:none;
    -webkit-mask:center / 10px 16px no-repeat;
    mask:center / 10px 16px no-repeat;
  }
  .venue-detail-page .lightbox-prev::before{
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16'%3E%3Cpath d='m8.5 1-7 7 7 7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16'%3E%3Cpath d='m8.5 1-7 7 7 7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }
  .venue-detail-page .lightbox-next::before{
    -webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16'%3E%3Cpath d='m1.5 1 7 7-7 7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
    mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 10 16'%3E%3Cpath d='m1.5 1 7 7-7 7' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  }
  .venue-detail-page .lightbox-prev{
    grid-column:1;
    grid-row:1;
    justify-self:center;
  }
  .venue-detail-page .lightbox-next{
    grid-column:3;
    grid-row:1;
    justify-self:center;
  }
}
@media(max-width:767px){
  .venue-detail-page .lightbox-stage{padding-inline:0}
  .venue-detail-page .lightbox-controls{position:relative;display:block;height:44px;min-height:44px;padding:0;flex-basis:44px}
  .venue-detail-page .lightbox-controls p{position:absolute;inset:0 64px;display:grid;height:44px;min-height:44px;padding:0;place-items:center;line-height:1;transform:translateY(-9px)}
  .venue-detail-page .lightbox-arrow{position:absolute;top:0;bottom:0;margin-block:auto;align-self:auto}
  .venue-detail-page .lightbox-prev{left:20px}
  .venue-detail-page .lightbox-next{right:20px}
}
@media(prefers-reduced-motion:reduce){
  .venue-detail-page .lightbox-track.is-animating{transition-duration:1ms}
}
.venue-detail-page .access-icon{display:block;width:24px;height:24px;margin-top:1px;background:var(--ink);font-size:0;-webkit-mask:center / contain no-repeat;mask:center / contain no-repeat}
.venue-detail-page .access-icon-plane{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21 16-8-5V5.5a2.5 2.5 0 0 0-5 0V11l-8 5v2l8-2.5V20l-2 1.5V23l4.5-1 4.5 1v-1.5L13 20v-4.5l8 2.5v-2Z'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='m21 16-8-5V5.5a2.5 2.5 0 0 0-5 0V11l-8 5v2l8-2.5V20l-2 1.5V23l4.5-1 4.5 1v-1.5L13 20v-4.5l8 2.5v-2Z'/%3E%3C/svg%3E")}
.venue-detail-page .access-icon-train{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='2.5' width='14' height='17' rx='3'/%3E%3Cpath d='M7.5 6h9M7 11h10M8 16h.01M16 16h.01M8 19.5 6 22M16 19.5l2 2.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='5' y='2.5' width='14' height='17' rx='3'/%3E%3Cpath d='M7.5 6h9M7 11h10M8 16h.01M16 16h.01M8 19.5 6 22M16 19.5l2 2.5'/%3E%3C/svg%3E")}
.venue-detail-page .access-icon-car{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17h14l-1-7H6l-1 7Z'/%3E%3Cpath d='m7 10 2-4h6l2 4M3 14h2M19 14h2'/%3E%3Ccircle cx='7.5' cy='18.5' r='1.5'/%3E%3Ccircle cx='16.5' cy='18.5' r='1.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 17h14l-1-7H6l-1 7Z'/%3E%3Cpath d='m7 10 2-4h6l2 4M3 14h2M19 14h2'/%3E%3Ccircle cx='7.5' cy='18.5' r='1.5'/%3E%3Ccircle cx='16.5' cy='18.5' r='1.5'/%3E%3C/svg%3E")}
.venue-detail-page .access-icon-walk{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='13' cy='3.5' r='2'/%3E%3Cpath d='m10.5 8.5 3 2.7 3.5 1M12 7.5l-1.5 6 3.5 3.5v4.5M10.5 13.5 8 17l-2 4.5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='13' cy='3.5' r='2'/%3E%3Cpath d='m10.5 8.5 3 2.7 3.5 1M12 7.5l-1.5 6 3.5 3.5v4.5M10.5 13.5 8 17l-2 4.5'/%3E%3C/svg%3E")}
.venue-detail-page .access-icon-hotel{-webkit-mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V4h16v17M2.5 21h19M8 7h.01M12 7h.01M16 7h.01M8 11h.01M12 11h.01M16 11h.01M9 21v-5h6v5'/%3E%3C/svg%3E");mask-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M4 21V4h16v17M2.5 21h19M8 7h.01M12 7h.01M16 7h.01M8 11h.01M12 11h.01M16 11h.01M9 21v-5h6v5'/%3E%3C/svg%3E")}
.venue-detail-page .access-route strong{font-size:16px;line-height:1.45}
.venue-detail-page .access-route p{font-size:14px;line-height:1.6}

@media(max-width:767px){
  .venue-detail-page .visual-back-button{top:20px;left:20px}
  .venue-detail-page .info-pane>.about:first-child{padding-top:38px}
  .venue-detail-page .facts{padding-block:38px}
  .venue-detail-page .fact-list{gap:20px;margin-top:22px}
  .venue-detail-page .access-section{padding:40px 20px 72px}
}

.venue-detail-page .venue-photo-section{background:#fff}

@font-face {
  font-family: "GlacialIndifference";
  src: url("./assets/fonts/GlacialIndifference-Medium.woff2") format("woff2");
  font-style: normal;
  font-weight: 500;
  font-display: swap;
}
@font-face {
  font-family: "GlacialIndifference";
  src: url("./assets/fonts/GlacialIndifference-SemiBold.woff2") format("woff2");
  font-style: normal;
  font-weight: 600;
  font-display: swap;
}
@font-face {
  font-family: "GlacialIndifference";
  src: url("./assets/fonts/GlacialIndifference-Bold.woff2") format("woff2");
  font-style: normal;
  font-weight: 700;
  font-display: swap;
}

:root {
  --deep-teal: #247f9d;
  --deep-teal-accessible: #155d78;
  --emerald-mist: #a9ced9;
  --pale-mist: #e4f0f3;
  --warm-cream: #f7f2f1;
  --champagne-gold: #c7a46a;
  --pale-gold: #f3e8d3;
  --gold-ink: #8b6d3d;
  --surface-base: var(--deep-teal-accessible);
  --surface-raised: var(--deep-teal);
  --surface-soft: var(--warm-cream);
  --text-on-dark: #fff;
  --text-primary: #333;
  --text-muted: #5f5f5f;
  --text-accent: #79613b;
  --border-strong: var(--champagne-gold);
  --navy: var(--surface-base);
  --navy-2: var(--surface-raised);
  --ink: var(--text-primary);
  --ink-mute: var(--text-muted);
  --white: var(--text-on-dark);
  --mist: var(--surface-soft);
  --line: color-mix(in srgb, var(--border-strong) 52%, white);
  --display: "Playfair Display", Georgia, serif;
  --lead: "GlacialIndifference", sans-serif;
  --serif: "Noto Serif JP", "Hiragino Mincho ProN", "Yu Mincho", "Iowan Old Style", Baskerville, Georgia, serif;
  --sans: "GlacialIndifference", sans-serif;
}

* { box-sizing: border-box; }
html { scroll-behavior: smooth; }
body {
  margin: 0;
  color: var(--ink);
  background: var(--warm-cream);
  font-family: var(--sans);
  font-size: 16px;
  line-height: 1.75;
  -webkit-font-smoothing: antialiased;
}
img { display: block; max-width: 100%; }
a { color: inherit; }
button, input, select, textarea { font: inherit; }
.fa-regular,
.fa-solid,
.fa-brands {
  display: inline-grid;
  place-items: center;
  width: 1em;
  height: 1em;
  font-style: normal;
  line-height: 1;
}
.fa-image::before { content: "□"; }
.fa-circle-check::before { content: "✓"; }
.fa-torii-gate::before { content: "⛩"; }
.fa-house::before { content: "◆"; }
.fa-hotel::before { content: "▦"; }
.fa-utensils::before { content: "♜"; }
.fa-landmark::before { content: "▥"; }
.fa-church::before { content: "▣"; }
.fa-camera::before { content: "●"; }
.fa-calendar::before { content: "▦"; }
.fa-whatsapp::before { content: "W"; }
.fa-video::before { content: "▶"; }
.fa-xmark::before { content: "×"; }
.fa-compass::before { content: "◇"; }
.fa-handshake::before { content: "◇"; }

.topbar {
  position: absolute;
  z-index: 20;
  top: 0;
  left: 0;
  width: 100%;
  color: var(--white);
}
.topbar-inner {
  height: 74px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
  padding: 0 12px 0 20px;
  max-width: 1200px;
  margin: auto;
}
.topbar-right {
  display: flex;
  align-items: center;
  gap: 7px;
  min-width: 0;
}
.logo {
  flex: 0 0 auto;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
}
.logo img {
  display: block;
  width: clamp(92px, 26vw, 118px);
  height: auto;
  filter: drop-shadow(0 2px 8px rgba(0,0,0,.42));
}
.btn-mini {
  min-height: 44px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 5px;
  padding: 0 10px;
  border: 0;
  border-radius: 10px;
  background: var(--champagne-gold);
  color: #fff;
  text-decoration: none;
  font-size: 12px;
  font-family: var(--sans);
  font-weight: 700;
  letter-spacing: .04em;
  white-space: nowrap;
  transition: filter 240ms ease, transform 240ms ease;
}
.btn-mini:hover { filter: brightness(1.08); }
.hero { background: var(--navy); }
.hero-frame { margin: auto; }
.hero-image {
  position: relative;
  min-height: 670px;
  height: calc(100svh - 180px);
  overflow: hidden;
}
.hero-image::after {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(180deg, rgba(13,105,117,.24), rgba(13,105,117,.04) 42%, rgba(7,58,65,.78));
}
.hero-picture {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
}
.hero-picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.hero-overlay {
  position: absolute;
  z-index: 2;
  left: 20px;
  right: 20px;
  bottom: 74px;
  color: var(--white);
}
.hero-title {
  max-width: 760px;
  margin: 0;
  font-family: var(--display);
  font-weight: 500;
  font-size: clamp(34px, 9.6vw, 78px);
  line-height: 1.08;
  letter-spacing: .5px;
  text-transform: none;
  text-wrap: balance;
}
.hero-title-line {
  display: block;
}
.hero-title-line:first-child {
  white-space: nowrap;
}
.hero-sub {
  display: block;
  margin-top: 16px;
  font-size: 12px;
  font-family: "GlacialIndifference", sans-serif;
  font-weight: 600;
  letter-spacing: .13em;
  text-transform: uppercase;
}
.hero-brand { display: none; }

.section { padding: 84px 0; background: var(--warm-cream); }
.section.surface-white { background: #fff; }
@media (max-width: 767px) {
  body > section.section.surface-white:nth-of-type(4) {
    padding-top: 52px;
  }
}
.section.alt {
  color: var(--text-primary);
  background: var(--pale-mist);
}
.section.alt .lede,
.section.alt .why-card p { color: var(--text-muted); }
.section.alt .why-card,
.section.alt .features,
.section.alt .feature { border-color: var(--line); }
.section.tight { padding: 64px 0; }
.wrap { width: calc(100% - 40px); margin: 0 auto; }
h2 {
  margin: 0 0 28px;
  color: var(--gold-ink);
  font-family: var(--display);
  font-weight: 500;
  font-size: clamp(31px, 8vw, 52px);
  line-height: 1.2;
  letter-spacing: .5px;
  text-wrap: balance;
}
h3 { font-weight: 600; line-height: 1.35; text-wrap: balance; }
.heading-break { display: block; }
.center { text-align: center; }
.lede {
  max-width: 760px;
  margin: 0 auto;
  color: var(--text-muted);
  font-family: var(--lead);
  font-size: 15px;
  line-height: 1.9;
  text-wrap: pretty;
}
.lede.intro-message {
  font-size: 14px;
}
.lede-break {
  display: block;
  margin-top: 1.2em;
}
.intro-message {
  color: var(--ink-mute);
  font-family: var(--lead);
  line-height: 1.85;
}

.features {
  margin-top: 58px;
  border-top: 1px solid var(--line);
}
.feature {
  display: grid;
  grid-template-columns: 96px 1fr;
  gap: 0 14px;
  padding: 24px 0;
  border-bottom: 1px solid var(--line);
}
.feature .icon {
  grid-row: 1 / span 2;
  width: 88px;
  height: 88px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #fff;
  color: var(--deep-teal);
  font-size: 28px;
}
.feature .translation-story,
.feature .estimate-story,
.feature .venue-story {
  width: 88px;
  height: 88px;
  display: grid;
  place-items: center;
  border-radius: 12px;
  background: #fff;
  overflow: hidden;
}
.translation-story img,
.estimate-story img,
.venue-story img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.feature h3 { margin: 2px 0 8px; font-size: 19px; font-weight: 600; }
.feature p { margin: 0; color: var(--ink-mute); font-size: 14px; line-height: 1.7; }

.gallery {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  grid-template-rows: auto auto;
  gap: 8px;
}
.gbox {
  min-width: 0;
  background-position: center;
  background-size: cover;
}
.gbox i { display: none; }
.gbox:nth-child(1) {
  grid-column: 1 / -1;
  aspect-ratio: 16 / 9;
  background-image: url("./assets/img_gbox_1.jpg");
  border-radius: 0 38px 0 0;
}
.gbox:nth-child(2) { aspect-ratio: 4 / 3; background-image: url("./assets/img_gbox_2.jpg"); border-radius: 0 0 0 38px; }
.gbox:nth-child(3) { aspect-ratio: 4 / 3; background-image: url("./assets/img_gbox_3.jpg"); }
.gbox:nth-child(4) { display: none; }

.steps { margin-top: 54px; }
.step {
  position: relative;
  display: grid;
  grid-template-columns: 52px 1fr;
  gap: 0 16px;
  padding: 28px 0;
  border-top: 1px solid var(--line);
}
.step:last-child { border-bottom: 1px solid var(--line); }
.step-num { grid-row: 2 / span 2; color: var(--navy); }
.step-num .label { display: block; font-size: 9px; font-weight: 700; letter-spacing: .12em; text-transform: uppercase; }
.step-num .number { display: block; font-family: var(--serif); font-size: 28px; line-height: 1.2; }
.step-text h3 { margin: 0 0 10px; font-size: 20px; font-weight: 600; }
.step-text p { margin: 0; color: var(--ink-mute); font-size: 15px; line-height: 1.75; }
.step-contact-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  margin-top: 14px;
}
.step-contact-tags span {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 0 12px;
  color: var(--gold-ink);
  background: rgba(199,164,106,.13);
  border-radius: 999px;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .02em;
}
.step-image {
  position: relative;
  grid-column: 1 / -1;
  grid-row: 1;
  display: block;
  width: 100%;
  aspect-ratio: 3 / 2;
  margin-bottom: 22px;
  overflow: hidden;
  border-radius: 14px 14px 0 0;
  background-position: center;
  background-size: cover;
}
.step:nth-child(1) .step-image { background-image: url("./assets/img_point1.jpg"); }
.step:nth-child(2) .step-image { background-image: url("./assets/img_point2.jpg"); }
.step:nth-child(3) .step-image { background-image: url("./assets/img_point3.jpg"); }
.step:nth-child(4) .step-image { background-image: url("./assets/img_point4.jpg"); }
.step-image::before {
  content: "";
  position: absolute;
  inset: 35% 0 0;
  background: linear-gradient(to bottom, transparent, rgba(0,0,0,.20));
}
.step-photo-label {
  position: absolute;
  z-index: 1;
  top: 0;
  right: 12px;
  min-width: 32px;
  padding: 12px 8px;
  color: var(--gold-ink);
  background: #fff;
  font-family: var(--sans);
  font-size: 9px;
  font-weight: 600;
  line-height: 1;
  letter-spacing: .09em;
  text-orientation: mixed;
  writing-mode: vertical-rl;
}
.role-band {
  position: relative;
  margin-top: 40px;
  padding: 38px 24px 30px;
  color: var(--ink);
  background: var(--warm-cream);
  border-radius: 0 0 32px 0;
  overflow: hidden;
}
.role-band-inner {
  position: relative;
  z-index: 1;
}
.role-bestrate {
  width: 72px;
  height: auto;
  margin-left: auto;
}
.role-media {
  margin-top: 24px;
}
.role-media picture,
.final-cta > picture,
.contact-visual > picture {
  display: block;
}
.role-visual {
  display: block;
  width: 100%;
  height: auto;
  border-radius: 18px 18px 0 0;
}
.role-icon { display: none; }
.role-band h3 {
  display: flex;
  align-items: center;
  gap: 14px;
  margin: 0 0 12px;
  color: var(--ink);
  font-family: var(--serif);
  font-size: 21px;
  font-weight: 600;
}
.role-band p { margin: 0; color: var(--ink-mute); font-size: 14px; line-height: 1.88; }
.role-note {
  position: relative;
  margin-top: 0 !important;
  padding: 22px 20px 24px;
  color: var(--ink) !important;
  background: #fff;
  border: 0;
  border-radius: 0 0 18px 4px;
  font-family: var(--serif);
  font-size: 14px !important;
  font-style: italic;
  line-height: 1.45 !important;
  text-wrap: balance;
}
.why-cards {
  display: grid;
  gap: 14px;
  margin-top: 48px;
}
.why-card {
  position: relative;
  display: grid;
  grid-template-columns: 64px minmax(0, 1fr);
  gap: 4px 18px;
  align-items: center;
  padding: 22px 18px;
  background: rgba(255,255,255,.74);
  border: 1px solid rgba(199,164,106,.32);
  border-radius: 12px;
}
.why-card .icon {
  grid-column: 1;
  grid-row: 1 / span 2;
  display: grid;
  place-items: center;
  width: 64px;
  height: 64px;
  color: var(--champagne-gold);
  background: rgba(199,164,106,.12);
  border-radius: 50%;
  font-size: 18px;
}
.why-card .icon svg {
  width: 40px;
  height: 40px;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.1;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.why-card h3 {
  grid-column: 2;
  margin: 0;
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 600;
}
.why-card p {
  grid-column: 2;
  margin: 0;
  color: var(--ink-mute);
  font-size: 15px;
  line-height: 1.65;
}

.section.destinations-section {
  background: #eef7f8;
}
.section.destinations-section h2 {
  font-size: 26px;
}
.dest-grid {
  display: grid;
  gap: 22px;
  margin: 46px 0 0;
}
.dest-card {
  display: grid;
  grid-template-rows: auto auto;
  overflow: hidden;
  background: #fff;
  border-radius: 0 0 26px 0;
}
.dest-image {
  aspect-ratio: 3 / 2;
  background-position: center;
  background-size: cover;
}
/* 式場カードの写真枠。中身は HTML の <img>。CSSは枠の形だけ持つ */
.venue-image {
  aspect-ratio: 3 / 2;
  overflow: hidden;
}
.venue-image picture {
  display: block;
  width: 100%;
  height: 100%;
}
.venue-image > img,
.venue-image picture img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.dest-image {
  position: relative;
  grid-column: 1;
  grid-row: 1;
}
.dest-image::after {
  content: none;
}
.dest-image i { display: none; }
.dest-card:nth-child(1) .dest-image { background-image: url("./assets/img_tokyo.jpg"); }
.dest-card:nth-child(2) .dest-image { background-image: url("./assets/img_kyoto.jpg"); }
.dest-card:nth-child(3) .dest-image { background-image: url("./assets/img_okinawa.jpg"); }
.dest-card:nth-child(4) .dest-image { background-image: url("./assets/img_karuizawa.jpg"); }
.dest-card:nth-child(5) .dest-image { background-image: url("./assets/img_hokkaido.jpg"); }
.dest-body {
  display: grid;
  grid-template-rows: auto auto;
  padding: 18px 18px 22px;
}
.dest-body h3 {
  grid-column: 1;
  grid-row: 1;
  display: flex;
  align-items: center;
  gap: 10px;
  align-self: start;
  justify-self: start;
  z-index: 1;
  margin: 0 0 8px;
  padding: 0;
  color: var(--gold-ink);
  background: transparent;
  border: 0;
  font-family: var(--display);
  font-size: 30px;
  font-weight: 500;
  line-height: 1.15;
  letter-spacing: .5px;
  text-shadow: none;
}
.dest-icon {
  flex: 0 0 auto;
  width: 31px;
  height: 31px;
  color: var(--champagne-gold);
  background: transparent;
  border-radius: 0;
  fill: none;
  stroke: currentColor;
  stroke-width: 2.4;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.dest-body p { margin: 0; color: var(--ink-mute); font-size: 13px; line-height: 1.6; }
.dest-footer {
  max-width: 560px;
  margin: 30px auto 0;
  padding: 0;
  color: var(--deep-teal-accessible);
  background: transparent;
  border: 0;
  border-radius: 0;
  text-align: center;
  font-family: var(--display);
  letter-spacing: .5px;
  font-size: 18px;
  line-height: 1.45;
  text-wrap: balance;
}

.photo-section,
.venues-section { background: #fff; }
.venues-area { margin-top: 52px; }
.venues-area-head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  margin-bottom: 16px;
  border-bottom: 1px solid var(--border-strong);
}
.venues-area-head h3 { margin: 0 0 12px; font-family: var(--display); font-size: 24px; font-weight: 500; letter-spacing: .5px; }
.venues-area-head .count { color: var(--ink-mute); font-size: 11px; }
.venues-grid-1, .venues-grid-2, .venues-grid-3, .venues-grid-4 {
  display: grid;
  grid-template-columns: repeat(2, minmax(0,1fr));
  gap: 22px 10px;
}
.venue-area-3 .venues-grid-1 {
  grid-template-columns: 1fr;
}
/* 式場カード。写真の指定はここには無い（HTMLの <img> に書いてある）。
   カードの順番を入れ替えても写真は式場についてくる。 */
.venue-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  color: inherit;
  text-decoration: none;
  border-radius: 0 0 14px 0;
}
.venue-card .venue-body {
  display: flex;
  flex: 1;
  flex-direction: column;
}
.venue-card .venue-image img {
  transition: transform .45s cubic-bezier(.22, 1, .36, 1), filter .25s ease;
}
/* 詳細ページを持つカードだけ <a>。写真パートナーの2枚は <div> なので、
   指差しカーソルもホバーの拡大も付かない。 */
a.venue-card { cursor: pointer; }
.venue-detail-link {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 6px;
  margin-top: auto;
  padding-top: 7px;
  color: var(--gold-ink);
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 400;
  line-height: 1.4;
  letter-spacing: .01em;
}
.venue-detail-label {
  border-bottom: 1px solid color-mix(in srgb, var(--champagne-gold) 52%, transparent);
}
.venue-detail-arrow {
  color: var(--champagne-gold);
  font-size: 18px;
  font-weight: 400;
  line-height: 1;
  transition: transform .25s cubic-bezier(.22, 1, .36, 1), color .25s ease;
}
a.venue-card:focus-visible {
  outline: 2px solid var(--deep-teal);
  outline-offset: 5px;
}
@media (hover: hover) and (pointer: fine) {
  a.venue-card:hover .venue-image img {
    transform: scale(1.035);
    filter: brightness(1.04);
  }
  a.venue-card:hover .venue-detail-arrow {
    color: var(--gold-ink);
    transform: translateX(2px);
  }
}
@supports (background-image: image-set(url("./assets/img_blank.webp") type("image/webp"))) {
  .gbox:nth-child(1) { background-image: image-set(url("./assets/img_gbox_1.webp") type("image/webp"), url("./assets/img_gbox_1.jpg") type("image/jpeg")); }
  .gbox:nth-child(2) { background-image: image-set(url("./assets/img_gbox_2.webp") type("image/webp"), url("./assets/img_gbox_2.jpg") type("image/jpeg")); }
  .gbox:nth-child(3) { background-image: image-set(url("./assets/img_gbox_3.webp") type("image/webp"), url("./assets/img_gbox_3.jpg") type("image/jpeg")); }
  .step:nth-child(1) .step-image { background-image: image-set(url("./assets/img_point1.webp") type("image/webp"), url("./assets/img_point1.jpg") type("image/jpeg")); }
  .step:nth-child(2) .step-image { background-image: image-set(url("./assets/img_point2.webp") type("image/webp"), url("./assets/img_point2.jpg") type("image/jpeg")); }
  .step:nth-child(3) .step-image { background-image: image-set(url("./assets/img_point3.webp") type("image/webp"), url("./assets/img_point3.jpg") type("image/jpeg")); }
  .step:nth-child(4) .step-image { background-image: image-set(url("./assets/img_point4.webp") type("image/webp"), url("./assets/img_point4.jpg") type("image/jpeg")); }
  .dest-card:nth-child(1) .dest-image { background-image: image-set(url("./assets/img_tokyo.webp") type("image/webp"), url("./assets/img_tokyo.jpg") type("image/jpeg")); }
  .dest-card:nth-child(2) .dest-image { background-image: image-set(url("./assets/img_kyoto.webp") type("image/webp"), url("./assets/img_kyoto.jpg") type("image/jpeg")); }
  .dest-card:nth-child(3) .dest-image { background-image: image-set(url("./assets/img_okinawa.webp") type("image/webp"), url("./assets/img_okinawa.jpg") type("image/jpeg")); }
  .dest-card:nth-child(4) .dest-image { background-image: image-set(url("./assets/img_karuizawa.webp") type("image/webp"), url("./assets/img_karuizawa.jpg") type("image/jpeg")); }
  .dest-card:nth-child(5) .dest-image { background-image: image-set(url("./assets/img_hokkaido.webp") type("image/webp"), url("./assets/img_hokkaido.jpg") type("image/jpeg")); }
}
.venue-body { padding-top: 10px; }
.venue-tag {
  display: inline-flex;
  min-height: 22px;
  align-items: center;
  gap: 5px;
  width: fit-content;
  margin: 0 0 7px;
  padding: 4px 8px;
  color: var(--gold-ink);
  background: rgba(199,164,106,.12);
  border: 0;
  border-radius: 999px;
  box-sizing: border-box;
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  line-height: 14px;
  letter-spacing: 0;
  white-space: nowrap;
}
.venue-tag::before {
  content: "";
  width: 14px;
  height: 14px;
  flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.6 1.8 6.6v1.8h1.1V14h3.7v-3.7h2.8V14h3.7V8.4h1.1V6.6L8 1.6Z'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 1.6 1.8 6.6v1.8h1.1V14h3.7v-3.7h2.8V14h3.7V8.4h1.1V6.6L8 1.6Z'/%3E%3C/svg%3E") center / contain no-repeat;
}
.venue-tag:has(.venue-tag-icon path[d="M2.5 13h11"])::before {
  width: 12px;
  height: 12px;
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 5.4 7 4.6C3.8 2.3 5.6-.7 8 1.5c2.4-2.2 4.2.8 1 3.1l-1 .8ZM2 7.2 8 5l6 2.2v1.5h-1v4h1v1.8H2v-1.8h1v-4H2V7.2Zm3 1.5v4h2v-4H5Zm4 0v4h2v-4H9Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 5.4 7 4.6C3.8 2.3 5.6-.7 8 1.5c2.4-2.2 4.2.8 1 3.1l-1 .8ZM2 7.2 8 5l6 2.2v1.5h-1v4h1v1.8H2v-1.8h1v-4H2V7.2Zm3 1.5v4h2v-4H5Zm4 0v4h2v-4H9Z'/%3E%3C/svg%3E");
}
.venue-tag:has(.venue-tag-icon path[d="M4 13V3h8v10"])::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 2.4h10v11.2H9.7V11H6.3v2.6H3V2.4Zm2.1 2v1.4h1.4V4.4H5.1Zm4.4 0v1.4h1.4V4.4H9.5ZM5.1 7.1v1.4h1.4V7.1H5.1Zm4.4 0v1.4h1.4V7.1H9.5Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M3 2.4h10v11.2H9.7V11H6.3v2.6H3V2.4Zm2.1 2v1.4h1.4V4.4H5.1Zm4.4 0v1.4h1.4V4.4H9.5ZM5.1 7.1v1.4h1.4V7.1H5.1Zm4.4 0v1.4h1.4V7.1H9.5Z'/%3E%3C/svg%3E");
}
.venue-tag:has(.venue-tag-icon path[d="M5 3v4"])::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.2 2.2h1v4.2h.8V2.2h1v4.2h.8V2.2h1v4.7c0 1.2-.8 2.1-1.9 2.4v4.5H5.1V9.3C4 9 3.2 8.1 3.2 6.9V2.2h1Zm7.1 0c1.1.7 1.8 2 1.8 3.6v8h-1.8V9.2H10V5.8c0-1.6.5-2.9 1.3-3.6Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M4.2 2.2h1v4.2h.8V2.2h1v4.2h.8V2.2h1v4.7c0 1.2-.8 2.1-1.9 2.4v4.5H5.1V9.3C4 9 3.2 8.1 3.2 6.9V2.2h1Zm7.1 0c1.1.7 1.8 2 1.8 3.6v8h-1.8V9.2H10V5.8c0-1.6.5-2.9 1.3-3.6Z'/%3E%3C/svg%3E");
}
.venue-tag:has(.venue-tag-icon path[d="M3 4h10"])::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 2h14l-.8 2.2H9.1v1.3h4.2v2H12l.9 6.5h-2.3L9.8 7.5H6.2L5.4 14H3.1L4 7.5H2.7v-2h4.2V4.2H1.8L1 2Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M1 2h14l-.8 2.2H9.1v1.3h4.2v2H12l.9 6.5h-2.3L9.8 7.5H6.2L5.4 14H3.1L4 7.5H2.7v-2h4.2V4.2H1.8L1 2Z'/%3E%3C/svg%3E");
}
.venue-tag:has(.venue-tag-icon path[d="M3 7h10"])::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 2.3 2.2 5.8V7h11.6V5.8L8 2.3ZM3.2 8v4.1H2.4v1.4h11.2v-1.4h-.8V8h-1.7v4.1H9.4V8H6.6v4.1H4.9V8H3.2Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 2.3 2.2 5.8V7h11.6V5.8L8 2.3ZM3.2 8v4.1H2.4v1.4h11.2v-1.4h-.8V8h-1.7v4.1H9.4V8H6.6v4.1H4.9V8H3.2Z'/%3E%3C/svg%3E");
}
.venue-tag:has(.venue-tag-icon path[d="M8 2.5v11"])::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 2.1 2.2 6.3v7.5h11.6V6.3L8 2.1Zm0 2.2 3.9 2.8v4.9H9.4V8.9H6.6V12H4.1V7.1L8 4.3Zm-2.4 3h1.5v1.5H5.6V7.3Zm3.3 0h1.5v1.5H8.9V7.3Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M8 2.1 2.2 6.3v7.5h11.6V6.3L8 2.1Zm0 2.2 3.9 2.8v4.9H9.4V8.9H6.6V12H4.1V7.1L8 4.3Zm-2.4 3h1.5v1.5H5.6V7.3Zm3.3 0h1.5v1.5H8.9V7.3Z'/%3E%3C/svg%3E");
}
.venue-tag:has(.venue-tag-icon path[d="M4 6h8v6H4z"])::before {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5.7 4.2 6.5 3h3l.8 1.2H13c.8 0 1.4.6 1.4 1.4v6.2c0 .8-.6 1.4-1.4 1.4H3c-.8 0-1.4-.6-1.4-1.4V5.6c0-.8.6-1.4 1.4-1.4h2.7ZM8 6.2a2.6 2.6 0 1 0 0 5.2 2.6 2.6 0 0 0 0-5.2Z'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3E%3Cpath d='M5.7 4.2 6.5 3h3l.8 1.2H13c.8 0 1.4.6 1.4 1.4v6.2c0 .8-.6 1.4-1.4 1.4H3c-.8 0-1.4-.6-1.4-1.4V5.6c0-.8.6-1.4 1.4-1.4h2.7ZM8 6.2a2.6 2.6 0 1 0 0 5.2 2.6 2.6 0 0 0 0-5.2Z'/%3E%3C/svg%3E");
}
.venue-tag-icon {
  display: none;
}
.venue-name { font-size: 14px; font-weight: 500; line-height: 1.45; }
.partner-card .venue-name { font-size: 16px; }
.budget-section {
  color: var(--ink);
  background: var(--pale-gold);
}
.budget-section h2 {
  font-family: var(--display);
}
.budget-wrap {
  width: min(calc(100% - 56px), 920px);
  max-width: 920px;
}
.budget-lede {
  max-width: 620px;
  margin-right: auto;
  margin-left: auto;
}
.bm-container {
  display: grid;
  gap: 26px;
  width: min(100%, 440px);
  margin: 42px auto 0;
}
.bm-filters {
  display: grid;
  gap: 18px;
}
.bm-filter label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 7px;
  color: var(--ink);
  font-family: var(--sans);
  font-size: 15px;
  font-weight: 600;
}
.bm-label-icon {
  width: 18px;
  height: 18px;
  flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: center / contain no-repeat;
  mask: center / contain no-repeat;
}
.bm-label-icon-area {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 12-8 12S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 10c0 5-8 12-8 12S4 15 4 10a8 8 0 1 1 16 0Z'/%3E%3Ccircle cx='12' cy='10' r='2.6'/%3E%3C/svg%3E");
}
.bm-label-icon-guests {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20v-1.5A5.5 5.5 0 0 1 8 13h2a5.5 5.5 0 0 1 5.5 5.5V20M16 5a3 3 0 0 1 0 6M17 13.5a5 5 0 0 1 4.5 5V20'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='9' cy='8' r='3.5'/%3E%3Cpath d='M2.5 20v-1.5A5.5 5.5 0 0 1 8 13h2a5.5 5.5 0 0 1 5.5 5.5V20M16 5a3 3 0 0 1 0 6M17 13.5a5 5 0 0 1 4.5 5V20'/%3E%3C/svg%3E");
}
.bm-label-icon-budget {
  -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='m15.2 15.2 5.3 5.3M12.5 6.8c-.6-.5-1.4-.8-2.4-.8-1.4 0-2.4.7-2.4 1.8 0 2.8 5.3 1.2 5.3 4 0 1.2-1.1 2.1-2.8 2.1-1.1 0-2.1-.4-2.8-1M10.2 4.5v11'/%3E%3C/svg%3E");
  mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Ccircle cx='10' cy='10' r='7'/%3E%3Cpath d='m15.2 15.2 5.3 5.3M12.5 6.8c-.6-.5-1.4-.8-2.4-.8-1.4 0-2.4.7-2.4 1.8 0 2.8 5.3 1.2 5.3 4 0 1.2-1.1 2.1-2.8 2.1-1.1 0-2.1-.4-2.8-1M10.2 4.5v11'/%3E%3C/svg%3E");
}
.bm-filter select {
  width: 100%;
  height: 56px;
  min-height: 56px;
  padding: 0 48px 0 15px;
  color: var(--ink);
  background-color: #fff;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1.5 5 5 5-5' fill='none' stroke='%23263838' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 17px center;
  background-size: 12px 8px;
  border: 1px solid color-mix(in srgb, var(--ink-mute) 28%, white);
  border-radius: 8px;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size: 15px;
  font-weight: 500;
  -webkit-appearance: none;
  appearance: none;
}
.bm-result {
  padding: 24px 20px 22px;
  background: #fff;
  border-radius: 14px;
  box-shadow: 0 10px 28px rgba(22, 45, 56, .12);
}
.bm-result-head {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 12px;
  margin-bottom: 20px;
  color: var(--ink-mute);
  font-size: 15px;
}
.bm-guests {
  display: inline-flex;
  align-items: center;
  min-height: 28px;
  padding: 4px 12px;
  color: #155d78;
  background: #eef7f8;
  border-radius: 999px;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size: 12px;
  font-weight: 700;
}
.bm-result-body { border-top: 1px solid var(--line); }
.bm-result-row {
  display: grid;
  grid-template-columns: 90px minmax(0, 1fr);
  gap: 14px;
  align-items: baseline;
  padding: 16px 0;
  border-bottom: 1px solid color-mix(in srgb, var(--ink-mute) 18%, white);
}
.bm-result-body .bm-result-row:last-child {
  border-bottom: 0;
}
.bm-row-label {
  color: var(--ink-mute);
  font-size: 13px;
}
.bm-row-value {
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  text-align: right;
  font-size: 18px;
  font-weight: 700;
  line-height: 1.35;
}
.bm-sgd .bm-row-value { font-size: clamp(19px, 5.6vw, 24px); }
.bm-usd .bm-row-value {
  color: var(--ink-mute);
  font-size: 14px;
  font-weight: 500;
}
.bm-exchange-note {
  margin: 16px 0 0;
  padding-top: 14px;
  color: var(--ink-mute);
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size: 12px;
  line-height: 1.65;
}
.bm-detail-cta {
  width: min(100%, 340px);
  margin: 22px auto 0;
  background: var(--deep-teal);
}
.bm-note {
  max-width: 480px;
  margin: 16px auto 0;
  color: var(--ink-mute);
  text-align: center;
  font-size: 12px;
  line-height: 1.55;
}

.final-cta {
  padding: 92px 20px 100px;
  color: var(--deep-teal-accessible);
  background: #fff;
  text-align: center;
}
.final-cta h2 { max-width: 720px; margin: 0 auto 20px; }
.final-cta h2 { color: var(--gold-ink); }
.final-cta p { margin: 0 0 30px; color: var(--deep-teal-accessible); }
.final-cta-visual {
  width: min(520px, calc(100% - 40px));
  height: auto;
  margin: 0 auto 26px;
  border-radius: 16px 0 16px 0;
}
.btn-primary {
  min-height: 56px;
  display: inline-flex;
  align-items: center;
  gap: 10px;
  min-width: min(290px, 100%);
  justify-content: center;
  padding: 0 34px;
  border-radius: 12px;
  background: var(--deep-teal);
  color: var(--text-on-dark);
  text-decoration: none;
  font-size: 16px;
  font-family: var(--sans);
  font-weight: 700;
  transition: filter 240ms ease, transform 240ms ease;
}
.btn-primary.bm-detail-cta {
  background: var(--deep-teal);
}
.btn-primary:hover { filter: brightness(1.08); }
.final-cta .btn-primary {
  background: var(--champagne-gold);
  color: #fff;
}
.final-cta .btn-primary:hover {
  color: #fff;
  background: var(--champagne-gold);
}
.btn-calendar::before {
  content: "";
  width: 15px;
  height: 15px;
  flex: 0 0 auto;
  background: currentColor;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.2' y='3.3' width='11.6' height='10.2' rx='1.4'/%3E%3Cpath d='M5 1.8v3M11 1.8v3M2.2 6.3h11.6'/%3E%3C/svg%3E") center / contain no-repeat;
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='none' stroke='black' stroke-width='1.35' stroke-linecap='round' stroke-linejoin='round'%3E%3Crect x='2.2' y='3.3' width='11.6' height='10.2' rx='1.4'/%3E%3Cpath d='M5 1.8v3M11 1.8v3M2.2 6.3h11.6'/%3E%3C/svg%3E") center / contain no-repeat;
}
/* 大きいCTAボタン（最終CTA・見積）は、お問い合わせ欄の WhatsApp / カレンダーと同じ 24px に揃える。
   ヘッダーの小さいボタン（.btn-mini）と追従バーは既定サイズのまま。 */
.btn-primary.btn-calendar::before {
  width: 24px;
  height: 24px;
}
.btn-calendar i { display: none; }
.brand-section {
  position: relative;
  overflow: hidden;
  color: #fff;
  background: #102f38;
}
.brand-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 1;
  background: linear-gradient(rgba(10,28,34,.08), rgba(10,28,34,.36));
}
.brand-section .wrap {
  position: relative;
  z-index: 2;
}
.brand-section h2,
.brand-logo,
.brand-block p {
  color: #fff;
  text-shadow: 0 1px 8px rgba(0,0,0,.26);
}
.brand-bg {
  position: absolute;
  inset: 0;
  z-index: 0;
  display: block;
}
.brand-bg img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center;
}
.brand-block { text-align: center; }
.brand-logo { font-family: var(--serif); font-size: 38px; letter-spacing: .04em; }
.brand-logo-img {
  width: min(210px, 62vw);
  height: auto;
  margin: 0 auto;
}
.brand-block p { margin: 8px 0 0; font-size: 12px; letter-spacing: .06em; }
.support-list {
  width: min(100%, 360px);
  margin: 36px auto 0;
  padding: 0;
  list-style: none;
  text-align: left;
}
.support-list li {
  display: flex;
  align-items: center;
  gap: 16px;
  padding: 14px 0;
  border-bottom: 1px solid var(--line);
  font-size: 18px;
}
.support-list i {
  width: 26px;
  height: 26px;
  flex: 0 0 auto;
  display: inline-grid;
  place-items: center;
  margin-right: 0;
  color: var(--champagne-gold);
  background: transparent;
  border: 1.5px solid currentColor;
  border-radius: 50%;
  font-size: 0;
}
.support-list i::before {
  content: "✓";
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 700;
  line-height: 1;
}
.contact-layout {
  margin-top: 34px;
}
.contact-visual {
  position: relative;
  max-width: 520px;
  margin: 0 auto;
}
.contact-photo {
  display: block;
  width: 100%;
  aspect-ratio: 4 / 3;
  object-fit: cover;
  border-radius: 18px 18px 18px 4px;
}
.contact-gif {
  position: absolute;
  left: 14px;
  top: 14px;
  width: clamp(78px, 24vw, 116px);
  height: auto;
  background: #fff;
  border-radius: 14px;
}
.contact-actions .lede {
  margin-top: 22px;
}
.contact-grid { display: grid; gap: 10px; max-width: 520px; margin: 32px auto 0; }
.btn-contact {
  min-height: 54px;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  border: 0;
  border-radius: 12px;
  color: var(--text-on-dark);
  background: var(--deep-teal);
  text-decoration: none;
  font-family: var(--sans);
  font-weight: 700;
  font-size: 16px;
  transition: filter 240ms ease, transform 240ms ease;
}
.btn-contact:hover { filter: brightness(1.08); }
.btn-contact[data-channel]::before {
  content: "";
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  background: center / contain no-repeat;
}
.btn-contact[data-channel="whatsapp"]::before { background-image: url("./assets/ico_whats.png"); }
.btn-contact[data-channel="consultation"]::before { display: none; }
.btn-contact[data-channel] i { display: none; }
.btn-contact svg {
  /* WhatsApp アイコン（::before の 16px）とサイズを揃える */
  width: 16px;
  height: 16px;
  flex: 0 0 auto;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
}
.contact-grid .btn-contact[data-channel]::before,
.contact-grid .btn-contact svg {
  width: 24px;
  height: 24px;
}
.contact-grid .btn-contact[data-channel="consultation"] {
  color: #fff;
  background: var(--champagne-gold);
}
.footer {
  position: relative;
  overflow: hidden;
  padding: 50px 20px 110px;
  color: rgba(255,255,255,.68);
  background:
    linear-gradient(rgba(21,93,120,.88), rgba(21,93,120,.9)),
    url("./assets/img_footer.jpg") center 44% / cover no-repeat;
  border-top: 1px solid var(--border-strong);
  text-align: center;
  font-size: 13px;
}
@supports (background-image: image-set(url("./assets/img_footer.webp") type("image/webp"))) {
  .footer {
    background-image:
      linear-gradient(rgba(21,93,120,.88), rgba(21,93,120,.9)),
      image-set(url("./assets/img_footer.webp") type("image/webp"), url("./assets/img_footer.jpg") type("image/jpeg"));
  }
}
.footer .links { margin-bottom: 16px; }
.footer a { text-decoration: none; }
/* タグラインと著作権表記は分ける。1行に溶接すると、法務の文の事務的な調子が
   タグライン側に流れて、ブランドの言葉が業種名のように読めてしまう。
   thanks.html の .booking-page-footer にも同じ構造があるが、
   あちらは白地・こちらは濃いティール地なので色の指定は別で持つ。 */
.footer .footer-tagline {
  margin: 0 0 8px;
  font-size: 13px;
  letter-spacing: .02em;
}
.footer .footer-copy {
  margin: 0;
  color: rgba(255,255,255,.5);
  font-size: 11px;
  letter-spacing: .04em;
}
.sticky-cta {
  position: fixed;
  z-index: 30;
  bottom: 0;
  left: 0;
  right: 0;
  padding: 10px 12px calc(10px + env(safe-area-inset-bottom));
  background: rgba(255,255,255,.96);
  box-shadow: 0 -2px 8px rgba(14,34,43,.12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(16px);
  transition: opacity 420ms ease, transform 420ms ease, visibility 0s linear 420ms;
}
.sticky-cta.is-visible {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition-delay: 0s;
}
.sticky-cta .row { display: grid; grid-template-columns: 1fr 1fr; gap: 8px; }
.sticky-cta .btn-contact { min-height: 48px; background: var(--navy); color: #fff; border: 0; border-radius: 8px; }
.sticky-cta .btn-contact:first-child { background: var(--deep-teal); }
.sticky-cta .btn-contact:last-child {
  color: #fff;
  background: var(--champagne-gold);
}

.booking-modal {
  position: fixed;
  z-index: 50;
  inset: 0;
  display: none;
  padding: 18px;
  background: rgba(10, 31, 38, .72);
  backdrop-filter: blur(8px);
  overflow-y: auto;
}
.booking-modal.open { display: block; }
.booking-card {
  position: relative;
  max-width: 660px;
  margin: 18px auto;
  padding: 34px 22px 28px;
  background: #fff;
  border-radius: 18px;
  box-shadow: 0 18px 44px rgba(18, 41, 48, .24);
}
.booking-card .close {
  position: absolute;
  top: 12px;
  right: 12px;
  width: 42px;
  height: 42px;
  border: 0;
  border-radius: 999px;
  color: var(--deep-teal-accessible);
  background: var(--pale-mist);
  display: block;
  padding: 0;
}
.booking-card .close i {
  display: none;
}
.booking-card .close::before,
.booking-card .close::after {
  position: absolute;
  top: 50%;
  left: 50%;
  width: 18px;
  height: 2px;
  content: "";
  background: currentColor;
  border-radius: 999px;
  transform-origin: center;
}
.booking-card .close::before {
  transform: translate(-50%, -50%) rotate(45deg);
}
.booking-card .close::after {
  transform: translate(-50%, -50%) rotate(-45deg);
}
.booking-card h3,
.booking-card h1 {
  margin: 0 48px 8px 0;
  color: var(--gold-ink);
  font-family: var(--display);
  letter-spacing: .5px;
  font-size: 28px;
  font-weight: 500;
  line-height: 1.25;
}
.bk-lead {
  max-width: 460px;
  margin: 14px 0 32px;
  color: var(--text-muted);
  font-size: 14px;
  line-height: 1.7;
}
.bk-note {
  max-width: 460px;
  margin: 16px auto 0;
  color: var(--ink-mute);
  text-align: center;
  font-size: 12px;
  line-height: 1.6;
}
.bk-section {
  margin: 28px 0 16px;
  padding-bottom: 8px;
  color: var(--deep-teal-accessible);
  border-bottom: 1px solid var(--line);
  font-size: 15px;
  font-weight: 700;
}
.bk-row { display: grid; gap: 14px; }
.bk-field { margin-bottom: 16px; }
.bk-field label {
  display: flex;
  align-items: center;
  gap: 8px;
  margin-bottom: 7px;
  color: var(--ink);
  font-size: 13px;
  font-weight: 700;
}
.req,
.opt {
  min-height: 20px;
  display: inline-flex;
  align-items: center;
  padding: 2px 8px;
  border-radius: 999px;
  font-size: 10px;
  font-weight: 700;
  line-height: 1;
}
.req {
  color: #fff;
  background: var(--champagne-gold);
}
.opt {
  color: var(--text-accent);
  background: color-mix(in srgb, var(--pale-gold) 62%, white);
}
.bk-input, .bk-select, .bk-textarea {
  width: 100%;
  min-height: 52px;
  border: 1px solid color-mix(in srgb, var(--champagne-gold) 42%, white);
  border-radius: 10px;
  padding: 11px 14px;
  color: var(--ink);
  background: rgba(199, 164, 106, .06);
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  transition: border-color 180ms ease, box-shadow 180ms ease;
}
.bk-input,
.bk-select {
  height: 56px;
  min-height: 56px;
}
.bk-select {
  padding-right: 48px;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath d='m1 1.5 5 5 5-5' fill='none' stroke='%23263838' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 17px center;
  background-size: 12px 8px;
  -webkit-appearance: none;
  appearance: none;
}
.bk-select option {
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
}
.bk-date-control {
  position: relative;
  width: 100%;
  height: 56px;
  overflow: hidden;
  border: 1px solid color-mix(in srgb, var(--champagne-gold) 42%, white);
  border-radius: 10px;
  background: rgba(199, 164, 106, .06);
  transition: border-color 180ms ease, box-shadow 180ms ease, background-color 180ms ease;
}
.bk-date-native {
  position: absolute;
  z-index: 3;
  inset: 0;
  display: block;
  width: 100%;
  min-width: 100%;
  height: 100%;
  min-height: 100%;
  margin: 0;
  padding: 0;
  border: 0;
  border-radius: inherit;
  background: transparent;
  color: transparent;
  -webkit-text-fill-color: transparent;
  caret-color: transparent;
  opacity: 0;
  cursor: pointer;
  -webkit-appearance: none;
  appearance: none;
}
.bk-date-native::-webkit-date-and-time-value {
  color: transparent;
}
.bk-date-native::-webkit-calendar-picker-indicator {
  opacity: 0;
}
.bk-date-display {
  position: absolute;
  z-index: 1;
  top: 50%;
  right: 48px;
  left: 14px;
  overflow: hidden;
  color: var(--ink);
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size: 16px;
  line-height: 1;
  white-space: nowrap;
  text-overflow: ellipsis;
  pointer-events: none;
  transform: translateY(-50%);
}
.bk-date-display.is-placeholder {
  color: var(--ink-mute);
}
/* 飾りのアイコン。クリックは受け取らせず、欄そのものに通す */
.bk-field .bk-date-trigger {
  position: absolute;
  z-index: 2;
  top: 50%;
  right: 2px;
  display: grid;
  place-items: center;
  width: 44px;
  height: 52px;
  padding: 0;
  color: var(--deep-teal-accessible);
  background: transparent;
  border: 0;
  border-radius: 8px;
  pointer-events: none;
  margin: 0;
  transform: translateY(-50%);
}
.bk-date-trigger svg {
  width: 18px;
  height: 18px;
  fill: none;
  stroke: currentColor;
  stroke-width: 1.8;
  stroke-linecap: round;
  stroke-linejoin: round;
  pointer-events: none;
}
.bk-input:focus,
.bk-select:focus,
.bk-textarea:focus {
  background: #fff;
  border-color: var(--champagne-gold);
  box-shadow: 0 0 0 4px rgba(199, 164, 106, .16);
  outline: none;
}
.bk-date-control:focus-within {
  background: #fff;
  border-color: var(--champagne-gold);
  box-shadow: 0 0 0 4px rgba(199, 164, 106, .16);
}
.bk-date-native:focus {
  border: 0;
  background: transparent;
  box-shadow: none;
  outline: none;
}
.bk-error {
  margin: 6px 2px 0;
  color: #b42318;
  font-family: -apple-system, BlinkMacSystemFont, "Helvetica Neue", Arial, sans-serif;
  font-size: 12px;
  font-weight: 600;
  line-height: 1.45;
}
.bk-error:empty { display: none; }
.bk-input.has-error,
.bk-select.has-error,
.bk-textarea.has-error,
.bk-date-control.has-error,
.bk-phone-row.has-error .bk-input,
.bk-phone-row.has-error .bk-select {
  border-color: #b42318;
}
.bk-input.has-error:focus,
.bk-select.has-error:focus,
.bk-textarea.has-error:focus,
.bk-date-control.has-error:focus-within,
.bk-phone-row.has-error:focus-within .bk-input,
.bk-phone-row.has-error:focus-within .bk-select {
  box-shadow: 0 0 0 3px rgba(180, 35, 24, .14);
}
.bk-phone-row {
  display: grid;
  grid-template-columns: 122px minmax(0, 1fr);
  gap: 10px;
}
.bk-country-code {
  padding-right: 8px;
  white-space: nowrap;
}
.bk-textarea { min-height: 110px; resize: vertical; }
/* 規約への同意。チェックボックスは置かず、ボタンを押す行為で成立させる。
   ボタンの直前に置いて、押す直前に目に入るようにする。 */
.bk-consent {
  margin: 20px 0 12px;
  color: var(--text-muted);
  font-size: 12px;
  line-height: 1.6;
  text-align: center;
  text-wrap: balance;
}
.bk-consent a {
  color: var(--deep-teal-accessible);
  font-weight: normal;
  text-decoration: underline;
  text-underline-offset: 2px;
}
.bk-submit {
  width: min(100%, 320px);
  min-height: 56px;
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 26px auto 0;
  border: 0;
  border-radius: 12px;
  color: #fff;
  background: var(--deep-teal);
  font-size: 16px;
  font-weight: 700;
  transition: filter 240ms ease, transform 240ms ease;
}
.bk-submit:hover { filter: brightness(1.08); }
.bk-submit:disabled { filter: none; opacity: .55; cursor: not-allowed; }

/* ---- 単独ページ（thanks.html）の土台。
       送信直後に見る画面なので、白地にして静かに受け止める。
       クリームは注記の面（.thanks-note）にだけ使う。
       index.html のモーダルには影響させない。 ---- */
/* 縦のflexにして、フッターに margin-top:auto を持たせる。
   内容が短ければフッターが画面下に沈み、長ければ押し下げられて被らない。
   position:fixed は使わない（必ず内容に被るため）。
   dvh はモバイルでURLバーの伸縮に追従させるための指定。 */
.booking-page {
  display: flex;
  flex-direction: column;
  min-height: 100vh;
  min-height: 100dvh;
  margin: 0;
  padding: 30px 18px 40px;
  background: #fff;
}
.booking-page-logo {
  display: block;
  width: 118px;
  margin: 0 auto 22px;
}
.booking-page-logo img { display: block; width: 100%; height: auto; }
/* モーダルではないので、カードとして浮かせない。
   背景・影を外してページに溶かし、代わりに入力欄を白にして操作箇所を目立たせる。
   index.html のモーダル側（暗い背景に白カード）には影響させない。 */
.booking-page .booking-card {
  margin: 0 auto;
  padding-left: 0;
  padding-right: 0;
  background: transparent;
  border-radius: 0;
  box-shadow: none;
}
.booking-page .booking-card h1 { margin-right: 0; }
.booking-page .bk-input,
.booking-page .bk-select,
.booking-page .bk-textarea,
.booking-page .bk-date-control { background: #fff; }
/* margin-top:auto で画面下へ。padding-top は内容が長いときの最低間隔。
   auto は余白が無いと 0 に潰れるので、間隔は padding 側で担保する */
.booking-page-footer {
  margin: auto auto 0;
  padding-top: 40px;
  color: var(--text-muted);
  text-align: center;
  font-size: 13px;
}
.booking-page-footer .links { margin-bottom: 16px; }
.booking-page-footer a { color: inherit; text-decoration: none; }
.booking-page-footer a:hover { text-decoration: underline; }
/* タグラインと著作権表記は分ける。1行に溶接すると、法務の文の事務的な調子が
   タグライン側に流れて、ブランドの言葉が業種名のように読めてしまう */
.booking-page-footer .footer-tagline {
  margin: 0 0 8px;
  font-size: 13px;
  letter-spacing: .02em;
}
.booking-page-footer .footer-copy {
  margin: 0;
  color: color-mix(in srgb, var(--text-muted) 70%, white);
  font-size: 11px;
  letter-spacing: .04em;
}
@media (min-width: 768px) {
  .booking-page { padding: 48px 20px 56px; }
}

/* ---- サンクスページ（thanks.html）。formrun の送信後リダイレクト先。 ---- */
/* 送信直後の画面。白地に要素を少なく置くので、余白でゆとりを作る */
.thanks-card { text-align: center; padding-top: 28px; padding-bottom: 36px; }
/* 見出しは h1。h3 を指していたため当たっておらず、共通ルールの 8px が効いていた */
.thanks-card h1 { margin-bottom: 26px; }
.thanks-lead {
  max-width: 480px;
  margin: 0 auto 12px;
  color: var(--text-muted);
  font-size: 15px;
  line-height: 1.9;
  text-wrap: balance;
}
/* 「まだ確定ではない」の注記。本文と同じ大きさだと主文に埋もれるので一段落とす */
.thanks-lead-note {
  max-width: 480px;
  margin: 0 auto 34px;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.7;
  text-wrap: balance;
}
/* 連絡が来ないときの逃げ道。白地から少し沈めて「補足」だと分かるようにする */
.thanks-note {
  max-width: 480px;
  margin: 0 auto 30px;
  padding: 18px 24px;
  background: var(--warm-cream);
  border-radius: 14px;
  color: var(--text-muted);
  font-size: 13px;
  line-height: 1.75;
  text-wrap: pretty;
}
.thanks-note a { color: var(--deep-teal-accessible); font-weight: 700; }
/* 控えめな線のボタン。btn-primary（塗りティール）は使わない。
   送信後なので次の行動を促す必要がなく、「戻れる」ことだけ静かに示す */
.thanks-back {
  display: inline-flex;
  min-height: 48px;
  margin: 0 auto;
  padding: 0 26px;
  align-items: center;
  justify-content: center;
  border: 1px solid var(--line);
  border-radius: 10px;
  background: transparent;
  color: var(--text-muted);
  font-family: var(--sans);
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition: border-color 240ms ease, color 240ms ease;
}
.thanks-back:hover {
  border-color: var(--text-muted);
  color: var(--text-primary);
}
@media (min-width: 768px) {
  .thanks-card { padding-bottom: 48px; }
  /* PCのみ見出しを大きく。SPで36pxにすると2行に割れて窮屈になるため28pxのまま */
  .thanks-card h1 { font-size: 36px; }
}

/* formrun のスパム対策項目。画面にも読み上げにも出さない。 */
.bk-gotcha {
  position: absolute;
  width: 1px;
  height: 1px;
  padding: 0;
  border: 0;
  overflow: hidden;
  clip: rect(0 0 0 0);
  clip-path: inset(50%);
  white-space: nowrap;
}

a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible {
  outline: 3px solid var(--border-strong);
  outline-offset: 3px;
}

button:disabled,
input:disabled,
select:disabled,
textarea:disabled {
  cursor: not-allowed;
  opacity: .48;
}

/* 会場名が長いページ用（FUNATSURU / Chinzanso / Luke）。
   HTML側で <br> を手で入れて1行を短くしたうえで使う。 */
.venue-detail-page .visual-title h1.venue-title-compact {
  font-size: clamp(28px, 4vw, 58px);
  white-space: nowrap;
}

@media (max-width: 767px) {
  .venue-detail-page .visual-title h1.venue-title-compact {
    font-size: clamp(32px, 8.6vw, 38px);
  }
}

@media (min-width: 768px) {
  .wrap { width: calc(100% - 40px); }
  .hero-image {
    min-height: 600px;
    height: calc(100svh - 200px);
    max-height: none;
  }
  .topbar-inner { height: 88px; padding: 0 34px; }
  .logo img { width: 134px; }
  .btn-mini { gap: 8px; padding: 0 18px; }
  .hero-overlay { left: clamp(34px, 8vw, 120px); right: auto; bottom: 92px; }
  /* 横はセンター、縦は下から約10%の位置で見せる */
  .hero-picture img { object-position: 50% 90%; }
  .section { padding: 104px 0; }
  .section.tight { padding: 72px 0; }
  .features { display: grid; grid-template-columns: repeat(3,1fr); gap: 0; }
  .feature { display: block; padding: 32px 30px; border-bottom: 0; border-right: 1px solid var(--line); }
  .feature:last-child { border-right: 0; }
  .feature .icon { margin-bottom: 22px; }
  .gallery {
    grid-template-columns: 1.35fr .9fr;
    grid-template-rows: repeat(2, minmax(0, 210px));
    gap: 14px;
  }
  .gbox:nth-child(1) { grid-column: 1; grid-row: 1 / 3; aspect-ratio: auto; }
  .gbox:nth-child(2),
  .gbox:nth-child(3) { aspect-ratio: auto; }
  .gbox:nth-child(4) { display: none; }
  .steps {
    max-width: 900px;
    display: grid;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 34px 26px;
    margin: 60px auto 0;
  }
  .step { grid-template-columns: 64px 1fr; gap: 0 18px; align-content: start; }
  .step-image { height: auto; }
  .role-band { max-width: 900px; margin: 46px auto 0; padding: 48px 48px 52px; }
  .role-bestrate {
    width: 86px;
  }
  .role-band-inner {
    display: grid;
    grid-template-columns: minmax(0, 1fr) minmax(300px, 1fr);
    gap: 0 44px;
    align-items: start;
  }
  .role-band h3,
  .role-band p:not(.role-note) {
    grid-column: 1;
    max-width: 520px;
  }
  .role-media {
    grid-column: 2;
    grid-row: 1 / span 2;
    align-self: start;
    margin-top: 0;
  }
  .role-note { max-width: none; }
  .why-cards { max-width: 760px; margin: 54px auto 0; }
  .why-card { padding: 22px 22px; }
  .dest-grid { grid-template-columns: repeat(2, minmax(0,1fr)); gap: 24px; margin: 54px 0 0; }
  .dest-card { min-width: 0; }
  .venues-grid-1, .venues-grid-2, .venues-grid-3, .venues-grid-4 { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px 16px; }
  .venue-area-3 .venues-grid-1 {
    grid-template-columns: minmax(280px, 440px);
    justify-content: center;
  }
  .venue-name { font-size: 14px; }
  .bm-container {
    width: min(100%, 760px);
    grid-template-columns: 230px minmax(0, 1fr);
    gap: 28px;
    align-items: stretch;
    max-width: 880px;
    margin-top: 54px;
  }
  .bm-filters { align-content: start; }
  .bm-result {
    display: flex;
    flex-direction: column;
    justify-content: center;
    padding: 30px;
  }
  .bm-row-value { font-size: 20px; }
  .bm-sgd .bm-row-value { white-space: nowrap; }
  .contact-grid { grid-template-columns: 1fr 1fr; }
  .sticky-cta { display: none; }
  .footer { padding-bottom: 50px; }
  .bk-row { grid-template-columns: 1fr 1fr; }
  .booking-card { padding: 48px; }
}

/* PC: 1024px and above */
@media (min-width: 1024px) {
  .wrap { width: min(calc(100% - 40px), 1020px); }
  .contact-grid .btn-contact {
    min-height: 70px;
  }
  .bm-container {
    width: min(100%, 840px);
    grid-template-columns: 250px minmax(0, 1fr);
    gap: 44px;
    max-width: 840px;
  }
  .bm-sgd .bm-row-value {
    font-size: 24px;
    white-space: nowrap;
  }
  .hero-image {
    min-height: 600px;
    height: calc(100svh - 200px);
    max-height: none;
  }
  .section { padding: 96px 0; }
  .section.tight { padding: 76px 0; }
  h2 {
    font-size: 44px;
  }
  body > section.section.surface-white:nth-of-type(4) {
    padding-top: 64px;
    padding-bottom: 84px;
  }
  .topbar-inner {
    max-width: none;
    padding-left: clamp(34px, 8vw, 120px);
    padding-right: clamp(34px, 4vw, 58px);
  }
  .logo img {
    width: 147px;
  }
  .lede.intro-message {
    font-size: 15px !important;
  }
  .hero-title {
    font-size: 70px;
  }
  .lede.intro-message,
  .feature p,
  .step-text p,
  .role-band p,
  .role-note,
  .why-card p,
  .support-list li,
  .btn-primary,
  .btn-contact {
    font-size: 16px !important;
  }
  .lede.intro-message {
    font-size: 15px !important;
  }
  .photo-section .lede {
    font-size: 14px !important;
  }
  .role-band p {
    font-size: 14px !important;
  }
  .dest-body p {
    font-size: 13px !important;
  }
  .step-num .number {
    font-size: 38px;
  }
  .step,
  .step:last-child {
    border-top: 0;
    border-bottom: 0;
  }
  .section.destinations-section h2 {
    font-size: 44px;
  }
  .dest-body h3 {
    font-size: 25px;
  }
  .venues-area-head .count {
    font-size: 13px;
  }
  .feature .translation-story,
  .feature .estimate-story,
  .feature .venue-story {
    width: 120px;
    height: 120px;
  }
  .dest-grid { grid-template-columns: repeat(3, minmax(0, 1fr)); }
  .contact-layout {
    display: grid;
    grid-template-columns: minmax(0, 1.08fr) minmax(320px, .92fr);
    gap: 56px;
    align-items: center;
    max-width: 920px;
    margin: 54px auto 0;
  }
  .contact-visual {
    max-width: none;
    margin: 0;
  }
  .contact-actions .lede {
    margin: 0;
    text-align: left;
  }
  .contact-grid {
    grid-template-columns: 1fr;
    max-width: none;
    margin: 30px 0 0;
  }
  .venues-grid-1, .venues-grid-2, .venues-grid-3, .venues-grid-4 {
    grid-template-columns: repeat(4,minmax(0,1fr));
  }
  .venue-area-1 .venues-grid-4,
  .venue-area-2 .venues-grid-3,
  .venue-area-4 .venues-grid-1 {
    grid-template-columns: repeat(3, minmax(0,1fr));
  }
  .venue-area-5 .venues-grid-2 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

/* Venue detail section-heading rhythm. */
.venue-detail-page .facts h2 {
  margin-bottom: 32px;
}
.venue-detail-page .fact-list {
  margin-top: 0;
}
.venue-detail-page .photo-heading,
.venue-detail-page .access-heading {
  margin-bottom: 32px;
}
.venue-detail-page .facilities-inner h2 {
  margin: 0 0 32px;
  font-size: 24px;
  letter-spacing: .5px;
}
.venue-detail-page .facilities-inner ul {
  margin-top: 0;
}
.venue-detail-page .highlights h2 {
  font-size: 16px;
}
.venue-detail-page .highlights li:last-child {
  border-bottom: 0;
}
.venue-detail-page .facts {
  border-bottom: 0;
}
.venue-detail-page .access-route {
  padding: 0;
}
.venue-detail-page .facilities ul {
  border-radius: 0;
}
.venue-detail-page .facilities li {
  font-size: 13px;
}
.venue-detail-page .facilities li::after {
  width: 14px;
  height: 14px;
  box-sizing: border-box;
  content: "";
  font-size: 0;
}
.venue-detail-page .facilities .yes::after {
  content: "";
  border: 1.5px solid currentColor;
  border-radius: 50%;
  background: none;
}
.venue-detail-page .facilities .no::after {
  content: "";
  border: 0;
  background:
    linear-gradient(45deg, transparent 44%, currentColor 44% 56%, transparent 56%),
    linear-gradient(-45deg, transparent 44%, currentColor 44% 56%, transparent 56%);
}
.venue-detail-page .facility-key > span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
}
.venue-detail-page .facility-key-symbol {
  position: relative;
  display: inline-block;
  width: 14px;
  height: 14px;
  box-sizing: border-box;
  flex: 0 0 14px;
  font-style: normal;
}
.venue-detail-page .facility-key-symbol.is-available {
  border: 1.5px solid var(--blue);
  border-radius: 50%;
}
.venue-detail-page .facility-key-symbol.is-unavailable::before,
.venue-detail-page .facility-key-symbol.is-unavailable::after {
  position: absolute;
  top: 6.25px;
  left: 0;
  width: 14px;
  height: 1.5px;
  content: "";
  border-radius: 999px;
  background: #8d8881;
}
.venue-detail-page .facility-key-symbol.is-unavailable::before {
  transform: rotate(45deg);
}
.venue-detail-page .facility-key-symbol.is-unavailable::after {
  transform: rotate(-45deg);
}
.venue-detail-page .closing-cta-note > span {
  display: block;
}

@media (max-width: 767px) {
  .venue-detail-page .facts {
    padding: 38px 0 20px;
  }
  .venue-detail-page .venue-photo-section {
    padding: 40px 20px 32px;
  }
  .venue-detail-page .access-section {
    padding: 32px 20px 72px;
  }
  .venue-detail-page .facilities li {
    font-size: 13px;
  }
}

@media (min-width: 768px) {
  .venue-detail-page .visual-title h1 {
    font-size: clamp(42px, 4.8vw, 64px);
  }
  .venue-detail-page .about h2 {
    font-size: 32px;
  }
  .venue-detail-page .photo-heading h2,
  .venue-detail-page .access-heading h2,
  .venue-detail-page .facilities-inner h2,
  .venue-detail-page .closing-cta h2 {
    font-size: 32px;
  }
  .venue-detail-page .highlights ul {
    grid-template-columns: 1fr;
  }
  .venue-detail-page .photo-heading {
    display: block;
    margin-bottom: 48px;
    text-align: center;
  }
  .venue-detail-page .venue-photo-section {
    padding-bottom: 0;
  }
  .venue-detail-page .access-section {
    padding-top: 100px;
  }
  .venue-detail-page .access-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 12px;
  }
  .venue-detail-page .access-heading {
    margin-bottom: 48px;
    text-align: center;
  }
  .venue-detail-page .access-route {
    margin-right: 48px;
  }
  .venue-detail-page .venue-map {
    aspect-ratio: 4 / 3;
  }
  .venue-detail-page .facilities-section {
    padding-top: 72px;
    padding-bottom: 72px;
  }
  .venue-detail-page .facilities-inner > .eyebrow,
  .venue-detail-page .facilities-inner h2 {
    text-align: center;
  }
  .venue-detail-page .facilities-inner h2 {
    margin-bottom: 48px;
  }
  .venue-detail-page .facilities li {
    font-size: 16px;
  }
  .venue-detail-page .facility-key {
    font-size: 13px;
  }
  .venue-detail-page .closing-cta .closing-cta-lede {
    margin: 18px 0 48px;
  }
  .venue-detail-page .closing-cta .cta-button {
    height: 70px;
    min-width: min(360px, calc((100% - 12px) / 2));
  }
  .venue-detail-page .closing-support {
    margin-top: 48px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after {
    scroll-behavior: auto !important;
    transition-duration: .01ms !important;
  }
}

/* ============== ACCESS: 鉄道ルート／車ルートの並記 ============== */
/* 会場に着くルートが2通りある会場で使う。鉄道を先に置く（インバウンドは鉄道利用が前提）。 */
.venue-detail-page .access-routes {
  display: flex;
  flex-direction: column;
}
.venue-detail-page .access-option,
.venue-detail-page .access-route-tail {
  margin-top: 16px;
  padding-top: 16px;
  border-top: 1px solid var(--line);
}
/* ラベルの余白・文字サイズは .venue-tag に合わせる（色だけ teal 系） */
.venue-detail-page .access-option-label {
  display: inline-flex;
  min-height: 22px;
  width: fit-content;
  margin: 0 0 4px;
  padding: 4px 8px;
  align-items: center;
  box-sizing: border-box;
  border-radius: 999px;
  background: var(--pale);
  color: var(--teal);
  font-family: var(--sans);
  font-size: 11px;
  font-weight: 600;
  line-height: 14px;
  letter-spacing: .08em;
  text-transform: uppercase;
  white-space: nowrap;
}
.venue-detail-page .access-option .access-route {
  padding-top: 0;
}

/* 文字サイズと行間を詰める */
.venue-detail-page .access-route li {
  padding: 12px 0;
}
.venue-detail-page .access-route strong {
  font-size: 14px;
  line-height: 1.35;
}
.venue-detail-page .access-route p {
  margin-top: 3px;
  line-height: 1.5;
}

@media (max-width: 767px) {
  .venue-detail-page .access-option,
  .venue-detail-page .access-route-tail {
    margin-top: 14px;
    padding-top: 14px;
  }
}

/* ============== CTA下の注記（Zoom相談と日程調整の説明） ============== */
/* .bm-note と同じ見た目に揃える。既存の .final-cta p / .closing-cta p が
   margin と color を上書きしてくるため、詳細度を上げてまとめて指定する。 */
.cta-note,
.final-cta .cta-note,
.venue-detail-page .closing-cta .cta-note {
  max-width: 480px;
  margin: 16px auto 0;
  color: var(--ink-mute);
  text-align: center;
  font-size: 12px;
  line-height: 1.55;
}

/* Hide the programmatic focus ring only when a touch opens the gallery. */
.venue-detail-page .lightbox.is-touch-open .lightbox-close:focus {
  outline: none;
}
