.guest-page { background:#f3eee5; }
.guest-hero { min-height:auto; padding-top:clamp(5.5rem,9vw,8rem); padding-bottom:clamp(4rem,7vw,6rem); background:radial-gradient(circle at 76% 18%,rgba(183,144,78,.2),transparent 32%),#121417; }
.guest-hero h1 { font-size:clamp(2.4rem,5vw,5.4rem); }

.guest-choice { padding:clamp(4.2rem,7vw,7rem) 6vw; color:#24221f; background:linear-gradient(135deg,#f7f3ec,#e9dece); }
.guest-choice-heading { display:grid; grid-template-columns:.9fr 1.1fr; gap:clamp(2rem,7vw,8rem); align-items:end; max-width:1200px; margin:0 auto 2.5rem; }
.guest-choice-heading .eyebrow { margin:0 0 .8rem; }
.guest-choice-heading h2 { margin:0; font:400 clamp(2.1rem,3.8vw,4rem)/1.35 "Noto Serif JP",serif; }
.guest-choice-heading > p { margin:0; max-width:42rem; line-height:1.9; }
.guest-programs { display:grid; grid-template-columns:repeat(3,1fr); gap:1px; max-width:1200px; margin:auto; padding:1px; background:rgba(38,32,25,.16); }
.guest-programs article { display:grid; grid-template-rows:auto auto 1fr auto; min-height:245px; padding:clamp(1.5rem,2.5vw,2.35rem); background:rgba(255,255,255,.55); }
.guest-programs span { color:#81554b; font:.65rem/1 "Noto Sans JP",sans-serif; letter-spacing:.16em; }
.guest-programs h3 { margin:1.25rem 0 .7rem; font:400 clamp(1.35rem,2vw,1.8rem)/1.4 "Noto Serif JP",serif; }
.guest-programs p { margin:0; line-height:1.8; }
.guest-programs strong { margin-top:1.5rem; font:500 clamp(1.45rem,2vw,1.9rem)/1.2 "Cormorant Garamond","Noto Serif JP",serif; }
.guest-programs small { display:block; margin-top:.35rem; color:#6a645c; font:400 .68rem/1.5 "Noto Sans JP",sans-serif; }
.guest-flow { display:grid; grid-template-columns:repeat(3,1fr); max-width:1200px; margin:2rem auto 0; color:#f8f5ef; background:#1a1c20; border:1px solid rgba(216,189,145,.35); }
.guest-flow div { position:relative; min-height:150px; padding:1.55rem 3.2rem 1.55rem 1.7rem; background:linear-gradient(135deg,rgba(255,255,255,.025),transparent); }
.guest-flow div + div { border-left:1px solid rgba(255,255,255,.12); }
.guest-flow div:not(:last-child)::after { content:""; position:absolute; z-index:2; top:50%; right:-.72rem; width:1.35rem; height:1.35rem; border-top:2px solid #d8bd91; border-right:2px solid #d8bd91; transform:translateY(-50%) rotate(45deg); }
.guest-flow span { display:flex; align-items:center; gap:.65rem; color:#d8bd91; font-size:.68rem; letter-spacing:.08em; }
.guest-flow span b { display:grid; place-items:center; width:1.9rem; height:1.9rem; color:#17191d; background:#d8bd91; border-radius:50%; font:600 .65rem "Noto Sans JP",sans-serif; letter-spacing:0; }
.guest-flow strong { display:block; margin-top:1.1rem; font:500 clamp(1rem,1.5vw,1.25rem)/1.7 "Noto Serif JP",serif; }
.guest-next-step { max-width:1200px; margin:1rem auto 0; color:#686057; font-size:.8rem; line-height:1.7; }

.guest-schedule-panel { padding-top:clamp(4rem,7vw,6.5rem); padding-bottom:clamp(4rem,7vw,6.5rem); }
.guest-page .schedule-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:1rem; background:none; border:0; }
.guest-page .schedule-card { min-height:0; padding:clamp(1.25rem,2vw,1.8rem); border:1px solid rgba(255,255,255,.13); transition:border-color .2s,transform .2s,box-shadow .2s; }
.guest-page .schedule-card.is-selected { border-color:#e7c986; box-shadow:0 0 0 2px rgba(231,201,134,.2),0 20px 50px rgba(0,0,0,.28); transform:translateY(-3px); }
.guest-page .schedule-card.is-selected::before { content:"選択中"; align-self:flex-start; margin-bottom:.8rem; padding:.25rem .55rem; color:#17191d; background:#e7c986; font-size:.62rem; font-weight:700; letter-spacing:.1em; }
.guest-page .schedule-datetime { margin-top:1.15rem; padding-bottom:.9rem; }
.guest-page .schedule-date-main { font-size:clamp(1.45rem,2.2vw,2rem); }
.guest-page .schedule-card h3 { margin:1rem 0 .5rem; }
.guest-page .schedule-card-foot { padding-top:1.25rem; }
.guest-page .schedule-book-button[aria-pressed="true"] { color:#f5f1e8; background:#81554b; border-color:#b98976; }
.guest-page .schedule-book-button[aria-pressed="true"]::after { content:"  ✓"; }

.guest-form-section { background:linear-gradient(135deg,#f6f2eb,#ece3d7); }
.guest-page .application-form { align-self:start; box-shadow:0 24px 65px rgba(57,42,25,.1); }
.guest-selected-event { position:relative; display:flex; align-items:flex-start; justify-content:space-between; gap:1.5rem; margin-bottom:.25rem; padding:1.5rem 4.2rem 1.5rem 1.5rem; color:#f5f1e8; background:radial-gradient(circle at 90% 10%,rgba(214,180,119,.2),transparent 32%),#171a1f; border:1px solid rgba(214,180,119,.52); }
.guest-selected-event[hidden] { display:none; }
.guest-selected-event span,.guest-selected-event strong,.guest-selected-event p,.guest-selected-event b { display:block; }
.guest-selected-event span { color:#d6b477; font-size:.66rem; letter-spacing:.15em; }
.guest-selected-event strong { margin-top:.55rem; font:500 1.12rem/1.55 "Noto Serif JP",serif; }
.guest-selected-event p { margin:.3rem 0 0; color:rgba(255,255,255,.7); font-size:.84rem; }
.guest-selected-event b { margin-top:.85rem; color:#e6c987; font:500 1.12rem "Noto Serif JP",serif; }
.guest-selected-event button { position:absolute; top:1rem; right:1rem; width:2.25rem; height:2.25rem; padding:0; color:#fff; background:transparent; border:1px solid rgba(255,255,255,.3); border-radius:50%; font-size:1.25rem; line-height:1; cursor:pointer; }
.guest-selected-event button:hover { color:#17191d; background:#d6b477; border-color:#d6b477; }

.social-picker { margin:0; padding:1.35rem; border:1px solid rgba(44,39,33,.18); }
.social-picker legend { padding:0 .45rem; color:#25211c; font:500 .9rem "Noto Sans JP",sans-serif; }
.social-picker legend span { margin-left:.55rem; color:#81554b; font-size:.65rem; letter-spacing:.06em; }
.social-picker > p { margin:0 0 1rem; color:#756d63; font-size:.75rem; line-height:1.6; }
.social-options { display:flex; flex-wrap:wrap; gap:.55rem; }
.social-options label { position:relative; cursor:pointer; }
.social-options input { position:absolute; opacity:0; pointer-events:none; }
.social-options span { display:block; padding:.68rem .92rem; color:#5f584f; background:#f7f4ef; border:1px solid rgba(44,39,33,.2); border-radius:999px; font-size:.76rem; transition:.18s ease; }
.social-options input:checked + span { color:#fff; background:#81554b; border-color:#81554b; box-shadow:0 5px 16px rgba(129,85,75,.2); }
.social-options input:focus-visible + span { outline:2px solid #81554b; outline-offset:2px; }
.social-details { display:grid; grid-template-columns:1fr 1fr; gap:.8rem; margin-top:1rem; }
.social-details label[hidden] { display:none; }
.social-details label { font-size:.72rem; }
.social-details input { margin-top:.45rem; }

.guest-page .application-policy { padding:0; border:1px solid rgba(44,39,33,.18); background:rgba(255,255,255,.45); }
.guest-page .application-policy summary { padding:1rem 1.15rem; color:#3e3831; font:500 .82rem "Noto Sans JP",sans-serif; cursor:pointer; }
.guest-page .application-policy ul { margin:0; padding:0 1.5rem 1.25rem 2.35rem; }
.guest-page .application-policy li { margin:.45rem 0; color:#3e3831; font-size:.76rem; line-height:1.65; }   /* it inherited the page's white text and could not be read on the light box */
.guest-page .apply-submit:disabled { color:#847c70; background:#d8d2c8; border-color:#d8d2c8; box-shadow:none; cursor:not-allowed; }

@media (max-width:860px) {
  .guest-choice-heading { grid-template-columns:1fr; gap:1.25rem; }
  .guest-programs { grid-template-columns:1fr; }
  .guest-programs article { min-height:0; }
  .guest-flow { grid-template-columns:1fr; }
  .guest-flow div { min-height:0; padding:1.4rem 3.5rem 1.4rem 1.4rem; }
  .guest-flow div + div { border-top:1px solid rgba(255,255,255,.12); border-left:0; }
  .guest-flow div:not(:last-child)::after { top:auto; right:1.65rem; bottom:-.7rem; transform:rotate(135deg); }
  .guest-page .schedule-list { grid-template-columns:repeat(2,minmax(0,1fr)); gap:.6rem; }
}
@media (max-width:560px) {
  .guest-choice { padding-left:5vw; padding-right:5vw; }
  .guest-flow strong { margin-top:.75rem; }
  .social-details { grid-template-columns:1fr; }
  .social-options span { padding:.62rem .78rem; font-size:.72rem; }
}

.guest-selected-event .guest-online { display:flex; align-items:flex-start; gap:.5rem; margin-top:.7rem; font-size:.9rem; line-height:1.6; cursor:pointer; }
.guest-selected-event .guest-online[hidden] { display:none; }
.guest-selected-event .guest-online input { width:1.1rem; height:1.1rem; flex:none; margin:.25rem 0 0; }
.guest-selected-event .guest-online span { display:inline; }
.free-terms{margin:.8rem 0;padding:.8rem 1rem;background:#f6f2ea;border:1px solid #d9d0bf;font-size:.84rem;line-height:1.7}.free-terms p{margin:0 0 .4rem}

/* /guest/: a free LDA MORNING entrance above the one-time first-guest programmes */
.guest-free { display:grid; grid-template-columns:auto 1fr auto; gap:1.5rem; align-items:center; max-width:1200px; margin:0 auto 2rem; padding:1.4rem clamp(1.2rem,2.5vw,2.2rem); color:#1c2a36; background:linear-gradient(120deg,#eaf3fa,#f6efe0); border:1px solid #b9d3e6; border-left:5px solid #5b93bd; }
.guest-free > span { color:#3f78a3; font:600 .68rem/1.3 "Noto Sans JP",sans-serif; letter-spacing:.16em; }
.guest-free h3 { margin:0 0 .3rem; font:400 clamp(1.3rem,2vw,1.7rem)/1.3 "Noto Serif JP",serif; }
.guest-free p { margin:0; line-height:1.8; font-size:.9rem; }
.guest-free-link { padding:.7rem 1.1rem; color:#fff; background:#3f78a3; text-decoration:none; font-size:.85rem; font-weight:600; white-space:nowrap; }
.guest-free-link:hover, .guest-free-link:focus-visible { background:#2e5f85; }
.guest-programs-label { max-width:1200px; margin:0 auto .8rem; color:#81554b; font-size:.8rem; font-weight:600; letter-spacing:.08em; }
@media (max-width:860px) { .guest-free { grid-template-columns:1fr; gap:.7rem; } .guest-free-link { justify-self:start; } }

/* the application form sat flush against its edge: give it a card with breathing room */
.guest-page .application-form { padding:clamp(1.4rem,3.2vw,2.6rem); background:rgba(255,255,255,.62); border:1px solid rgba(38,32,25,.1); }
@media (max-width:560px) { .guest-page .application-form { padding:1.25rem 1.1rem 1.5rem; } }

/* the confirmation that replaces the form once a free programme is confirmed */
.apply-done { text-align:center; padding:2rem 1rem 1.6rem; }
.apply-done-mark { display:flex; align-items:center; justify-content:center; width:3.2rem; height:3.2rem; margin:0 auto .8rem; border-radius:50%; background:#2c8a55; color:#fff; font-size:1.6rem; animation:apply-done-pop .5s cubic-bezier(.2,.9,.3,1.4); }
.apply-done h3 { margin:.2rem 0 1rem; font-size:1.4rem; color:#2c6a45; }
.apply-done .guest-selected-event { margin:0 auto 1rem; text-align:left; max-width:26rem; }
.apply-done-note { margin:0 auto 1.2rem; max-width:26rem; line-height:1.9; font-size:.9rem; }
.apply-done-links { display:flex; gap:1.4rem; justify-content:center; flex-wrap:wrap; margin:0; }
.apply-done-links a { color:inherit; text-decoration:underline; text-underline-offset:4px; }
@keyframes apply-done-pop { 0% { transform:scale(.4); opacity:0; } 60% { transform:scale(1.12); } 100% { transform:scale(1); opacity:1; } }
@media (prefers-reduced-motion:reduce) { .apply-done-mark { animation:none; } }
