/* LP x event-list mock additions (v2, 2026-11-09).
   Card/detail styling follows the beta member site (public/app.css .otk-ev-card*,
   .otk-dt-hero, .otk-cta-bar) with its design tokens, so the mock shows the
   service site's real card look inside the LP. */
.events-section,.dt-main{
  --c-bg:#ffffff;--c-ink:#222222;--c-ink-2:#555555;--c-surface:#f4f4f4;
  --c-line:#e2e2e2;--c-line-2:#c9c9c9;--c-brand:#e73b88;--c-brand-hover:#d02c76;
  --c-brand-tint:#fdebf3;--c-white:#ffffff;
  --s-2:8px;--s-3:12px;--s-4:16px;--s-5:20px;--s-6:24px;--s-8:32px;
  --t-sm:.8125rem;--t-md:.9375rem;--t-lg:1.125rem;--r-pill:999px;
  color:var(--c-ink);
}
.events-section h2{margin:0 0 12px;font-size:clamp(1.65rem,5.2vw,2.5rem);line-height:1.3;font-weight:800}
.events-lead{margin:0 0 28px;font-size:var(--t-md);line-height:1.8;color:var(--c-ink-2)}
.mock-ev-cards{display:grid;gap:var(--s-8);margin:0;padding:0;list-style:none}
@media (min-width:768px){.mock-ev-cards{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media (min-width:1024px){.mock-ev-cards{grid-template-columns:repeat(3,minmax(0,1fr))}}
.mock-ev-cards>li{display:block;min-width:0}
.otk-ev-card__open{display:grid;gap:var(--s-3);padding:0;border:0;border-radius:12px;background:none;color:inherit;text-decoration:none;text-align:left}
.otk-ev-card__open:hover .otk-ev-card__title{text-decoration:underline;text-underline-offset:4px;text-decoration-thickness:2px}
.otk-ev-card__open:focus-visible{outline:3px solid var(--c-ink);outline-offset:4px}
.otk-ev-card__ph{position:relative;display:block;width:100%;aspect-ratio:4/3;overflow:hidden;border-radius:12px;background:var(--c-surface)}
.otk-ev-card__ph img{display:block;width:100%;height:100%;object-fit:cover}
.otk-chip{display:inline-flex;align-items:center;min-height:24px;padding:0 10px;border-radius:var(--r-pill);font-size:12px;font-weight:700;white-space:nowrap}
.otk-chip--ok{background:#e6f4ee;color:#0e7a55}
.otk-ev-card__ph .otk-chip{position:absolute;left:var(--s-3);top:var(--s-3);gap:6px;min-height:26px;padding:0 10px 0 9px;background:var(--c-white);box-shadow:0 1px 4px rgba(0,0,0,.12)}
.otk-ev-card__ph .otk-chip::before{content:"";width:7px;height:7px;border-radius:50%;background:currentColor}
.otk-ev-card__body{display:grid;gap:6px;min-width:0}
.otk-ev-card__title{font-size:1.25rem;font-weight:700;line-height:1.4;overflow-wrap:anywhere}
.otk-ev-card__when{display:flex;flex-wrap:wrap;gap:4px 14px;font-size:var(--t-sm);font-weight:700;color:var(--c-ink)}
.otk-ev-card__when>span{display:inline-flex;align-items:center;gap:5px;min-width:0;overflow-wrap:anywhere}
.otk-ev-icon{width:16px;height:16px;flex:none;color:var(--c-ink-2)}
/* Member-registration guide block (replaces the pre-registration form) */
.member-guide-lead{font-weight:700;line-height:1.9;margin:0}
.member-guide-steps{list-style:none;margin:22px 0 4px;padding:0;display:grid;gap:12px}
.member-guide-steps li{display:flex;align-items:center;gap:12px;font-weight:800;font-size:16px}
.member-guide-steps li span{display:grid;place-items:center;width:28px;height:28px;flex:none;border:2px solid #fff;border-radius:50%;font-size:14px;font-weight:900}
.member-guide-points{list-style:none;margin:16px 0 4px;padding:0;display:grid;gap:10px}
.member-guide-points li{display:flex;gap:10px;align-items:flex-start;font-weight:700;font-size:15px;line-height:1.6}
.member-guide-points li::before{content:"✓";display:grid;place-items:center;width:24px;height:24px;flex:none;border:1.5px solid #fff;border-radius:50%;font-size:13px;margin-top:1px}
.member-guide-cta{display:flex;align-items:center;justify-content:center;text-decoration:none;box-sizing:border-box}
/* Detail pages (beta detail layout inside the LP frame) */
.dt-page{padding-bottom:110px}
.dt-main{padding-top:92px}
@media (min-width:768px){.dt-main{padding-top:118px}}
.dt-back{margin:0 0 14px;font-size:var(--t-sm);font-weight:700}
.dt-back a{display:inline-flex;align-items:center;min-height:40px;padding:6px 16px;border:1.5px solid var(--c-line-2);border-radius:999px;background:#fff;color:var(--c-ink);text-decoration:none}
.dt-back a:hover{border-color:var(--c-ink)}
.otk-dt-hero{margin-inline:calc(50% - 50vw);aspect-ratio:4/3;max-height:62vh;overflow:hidden;background:var(--c-surface)}
.otk-dt-hero img{display:block;width:100%;height:100%;object-fit:cover}
@media (min-width:768px){.otk-dt-hero{margin-inline:0;border-radius:16px;aspect-ratio:16/9}}
.dt-head{display:flex;flex-wrap:wrap;align-items:center;gap:10px 14px;margin:20px 0 8px}
.dt-head h1{margin:0;font-size:clamp(1.4rem,4.6vw,1.9rem);line-height:1.35;font-weight:800}
.dt-facts{margin:0;display:grid}
.dt-facts>div{display:flex;align-items:baseline;justify-content:space-between;gap:16px;padding:12px 0}
.dt-facts dt{flex:none;font-size:var(--t-sm);font-weight:700;color:var(--c-ink-2)}
.dt-facts dd{margin:0;font-size:var(--t-md);font-weight:700;text-align:right;overflow-wrap:anywhere}
.dt-facts dd span{font-weight:600;color:var(--c-ink-2);font-size:var(--t-sm)}
.dt-h2{margin:28px 0 10px;font-size:1.25rem;font-weight:800}
.dt-desc{margin:0;font-size:var(--t-md);line-height:1.9;color:var(--c-ink)}
.dt-note{margin:20px 0 8px;font-size:var(--t-sm);line-height:1.8;color:var(--c-ink-2)}
.otk-cta-bar{position:fixed;z-index:44;left:0;right:0;bottom:0;display:flex;gap:var(--s-2);padding:12px 20px calc(12px + env(safe-area-inset-bottom,0px));background:#ffffff}
.otk-cta-bar .dt-cta{flex:1;display:inline-flex;align-items:center;justify-content:center;min-height:56px;padding:0 24px;border-radius:999px;background:#e73b88;color:#fff;font-weight:700;font-size:17px;text-decoration:none;text-align:center;line-height:1.35}
.otk-cta-bar .dt-cta:hover{background:#d02c76}
@media (min-width:768px){.otk-cta-bar{left:50%;right:auto;bottom:16px;transform:translateX(-50%);width:min(720px,calc(100% - 64px));border:1px solid var(--c-line,#e2e2e2);border-radius:16px;box-shadow:0 8px 28px rgba(0,0,0,.08)}}
/* Mock marker: a static strip at the very end of the page. The LP header is a
   fixed floating pill that covers the top of the page by design, so any marker
   placed at the top is partly covered; the end-of-page strip never overlaps. */
.mock-strip{background:#222222;color:#ffffff;text-align:center;font-size:12px;font-weight:700;letter-spacing:.04em;padding:8px 12px;line-height:1.5}

/* --- v3 hybrid additions (2026-11-09) --- */
/* "See all events" button at the end of the LP events section */
.events-more{margin:30px 0 0;text-align:center}
.events-more a{display:inline-flex;align-items:center;justify-content:center;min-height:54px;padding:6px 38px;border-radius:999px;background:#e73b88;color:#fff;font-size:16px;font-weight:800;text-decoration:none}
.events-more a:hover{background:#d02c76}
@media (max-width:767px){.events-more a{display:flex;width:100%}}
/* Zero-events state of the LP events section */
.events-zero{border:2px dashed #c9c9c9;border-radius:16px;padding:30px 24px;text-align:center;background:#fff}
.events-zero-title{margin:0 0 10px;font-size:1.15rem;font-weight:800;color:#222222}
.events-zero-text{margin:0 auto 20px;max-width:560px;font-size:.9375rem;line-height:1.85;color:#555555}
.events-zero-btn{display:inline-flex;align-items:center;justify-content:center;min-height:50px;padding:6px 30px;border-radius:999px;background:#e73b88;color:#fff;font-size:15px;font-weight:800;text-decoration:none}
.events-zero-btn:hover{background:#d02c76}
/* Dedicated list page */
.evl-title{margin:0 0 10px;font-size:clamp(1.65rem,5.2vw,2.3rem);line-height:1.3;font-weight:800;color:#222222}
.evl-lead{margin:0 0 28px;font-size:.9375rem;line-height:1.85;color:#555555;max-width:720px}

/* --- v4 fixes: main bottom spacing + trial-aligned detail (2026-11-09) --- */
.dt-main{padding-bottom:64px}
.td-grid{display:grid;gap:8px}
.td-chips{display:flex;flex-wrap:wrap;gap:8px;margin:18px 0 10px}
.td-chip{display:inline-flex;align-items:center;gap:6px;padding:5px 12px;border-radius:999px;background:#f3f3f3;color:#555555;font-size:.8125rem;font-weight:700}
.td-title{margin:0 0 6px;font-size:clamp(1.45rem,5.4vw,2rem);line-height:1.35;font-weight:800;color:#222222}
.td-sum{display:grid;grid-template-columns:1fr;margin:14px 0 6px}
.td-sum>div{display:flex;align-items:center;gap:14px;padding:13px 2px}
.td-sum dt{display:flex;align-items:center;gap:8px;width:92px;flex:none;color:#777777;font-size:.875rem;font-weight:600}
.td-sum dt .otk-ev-icon{width:19px;height:19px;color:#999999}
.td-sum dd{margin:0;font-size:.9375rem;color:#555555}
.td-sum dd b{color:#222222;font-size:1.0625rem}
.td-members{margin:22px 0 4px}
.td-members-head{display:flex;align-items:baseline;justify-content:space-between;gap:12px}
.td-members-head h2{margin:0;font-size:1.0625rem;font-weight:800;color:#222222}
.td-members-head span{font-size:.8125rem;color:#777777;font-weight:600}
.td-avatars{display:flex;align-items:center;margin-top:12px}
.td-av{width:46px;height:46px;border-radius:50%;background:#d9d9d9;border:2px solid #fff;margin-left:-10px;position:relative}
.td-av:first-child{margin-left:0}
.td-av--org{background:#e73b88;color:#fff;font-size:.625rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.td-av--more{background:#f0f0f0;color:#555555;font-size:.8125rem;font-weight:800;display:flex;align-items:center;justify-content:center}
.td-apply-sp{margin:22px 0 6px}
.td-apply-btn{display:flex;align-items:center;justify-content:center;min-height:56px;padding:8px 20px;border-radius:999px;background:#e73b88;color:#fff;font-size:1rem;font-weight:800;text-decoration:none;text-align:center}
.td-apply-btn:hover{background:#d02c76}
.td-apply-note{margin:10px 0 0;text-align:center;font-size:.8125rem;color:#777777}
.td-h2{margin:34px 0 12px;font-size:1.25rem;font-weight:800;color:#222222}
.td-desc{margin:0;font-size:.9375rem;line-height:1.95;color:#444444;white-space:pre-wrap}
.td-desc--clamp{display:-webkit-box;-webkit-line-clamp:4;-webkit-box-orient:vertical;overflow:hidden}
.td-desc--open{display:block}
.td-more{margin:10px 0 0;text-align:center}
.td-more button{min-height:40px;padding:4px 22px;border:1px solid #dddddd;border-radius:999px;background:#fff;font-size:.875rem;font-weight:700;color:#444444;cursor:pointer}
.td-facts2{margin:0}
.td-facts2>div{display:flex;gap:16px;padding:13px 2px}
.td-facts2 dt{width:52px;flex:none;color:#777777;font-size:.875rem;font-weight:600;padding-top:2px}
.td-facts2 dd{margin:0;font-size:.9375rem;color:#555555}
.td-facts2 dd b{color:#222222}
.td-facts2 dd small{display:block;margin-top:3px;font-size:.8125rem;color:#888888}
.td-feebox{margin:22px 0 6px;border:1px solid #e5e5e5;border-radius:16px;padding:18px 20px}
.td-feebox-label{margin:0;font-size:.8125rem;font-weight:700;color:#777777}
.td-feebox-price{margin:2px 0 6px;font-size:2rem;font-weight:900;color:#222222;line-height:1.1}
.td-feebox-price span{font-size:1rem;font-weight:800}
.td-feebox-note{margin:0;font-size:.8125rem;line-height:1.8;color:#666666}
.td-rowlink{display:flex;align-items:center;gap:14px;margin-top:14px;padding:16px 18px;border-radius:16px;background:#f6f6f6;color:#222222;text-decoration:none}
.td-rowlink-ic{width:38px;height:38px;flex:none;border-radius:50%;background:#333333;color:#fff;display:flex;align-items:center;justify-content:center;font-weight:900;font-size:1rem}
.td-rowlink b{display:block;font-size:.9375rem}
.td-rowlink small{display:block;margin-top:2px;font-size:.8125rem;color:#777777}
.td-rowlink-ar{margin-left:auto;font-size:1.3rem;color:#999999}
.td-others{display:grid;gap:14px}
.td-other{display:flex;gap:14px;align-items:center;color:#222222;text-decoration:none}
.td-other img{width:112px;height:84px;flex:none;object-fit:cover;border-radius:12px}
.td-other-title{display:block;font-weight:800;font-size:.9375rem;line-height:1.45}
.td-other-meta{display:block;margin-top:4px;font-size:.8125rem;color:#777777}
.td-side{display:none}
@media (min-width:768px){
  .td-sum{grid-template-columns:1fr 1fr;column-gap:36px}
  .td-others{grid-template-columns:1fr 1fr}
}
@media (min-width:1024px){
  .td-grid{grid-template-columns:minmax(0,1fr) 340px;gap:36px;align-items:start}
  .td-apply-sp{display:none}
  .td-side{display:block}
  .td-side-card{position:sticky;top:112px;border:1px solid #e5e5e5;border-radius:18px;padding:22px;background:#fff}
  .td-side-fee{display:flex;align-items:flex-end;justify-content:space-between;margin:0 0 14px}
  .td-side-fee span{font-size:.8125rem;font-weight:700;color:#777777}
  .td-side-fee b{font-size:2rem;font-weight:900;line-height:1}
  .td-side-fee b em{font-style:normal;font-size:1rem;font-weight:800}
  .td-side-row{display:flex;gap:12px;align-items:flex-start;padding:10px 0}
  .td-side-row .otk-ev-icon{width:20px;height:20px;color:#999999;flex:none;margin-top:2px}
  .td-side-row b{display:block;font-size:.9375rem;color:#222222}
  .td-side-row small{display:block;font-size:.8125rem;color:#888888;margin-top:2px}
  .td-side-card .td-apply-btn{margin-top:16px}
}

/* --- v5 trial-aligned cards, list bar, gallery (2026-11-09) --- */
.tc-open{display:block;color:inherit;text-decoration:none}
.tc-ph{position:relative;display:block;border-radius:16px;overflow:hidden;aspect-ratio:4/3;background:#eee}
.tc-ph img{width:100%;height:100%;object-fit:cover;display:block}
.tc-new{position:absolute;top:16px;left:-36px;transform:rotate(-45deg);background:#35708f;color:#fff;font-size:11px;font-weight:800;letter-spacing:.12em;padding:4px 40px}
.tc-heart{width:19px;height:19px}
.tc-like-btn{position:absolute;top:10px;right:10px;width:38px;height:38px;border-radius:50%;background:rgba(40,40,40,.48);color:#fff;display:flex;align-items:center;justify-content:center}
.tc-like-count{position:absolute;bottom:10px;right:10px;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:rgba(40,40,40,.55);color:#fff;font-size:12.5px;font-weight:700}
.tc-like-count .tc-heart{width:13px;height:13px}
.tc-like-count--sm{bottom:6px;right:6px;padding:3px 8px;font-size:11.5px}
.tc-title{display:block;margin:12px 0 6px;font-size:1.0625rem;font-weight:800;line-height:1.45;color:#222222}
.tc-meta{display:flex;flex-wrap:wrap;gap:5px 14px;font-size:.84375rem;font-weight:600;color:#444444}
.tc-meta span{display:inline-flex;align-items:center;gap:5px}
.tc-meta .otk-ev-icon{width:15px;height:15px;color:#999999}
.tc-members{position:relative;display:flex;align-items:center;margin-top:12px;padding-bottom:6px}
.tc-org{position:relative;width:40px;height:40px;flex:none;border-radius:50%;background:#d9d9d9;border:2px solid #fff;font-size:0}
.tc-org::after{content:"主催";position:absolute;bottom:-7px;left:50%;transform:translateX(-50%);background:#e73b88;color:#fff;font-size:9px;font-weight:800;padding:1px 5px;border-radius:999px;line-height:1.3}
.tc-face{width:40px;height:40px;flex:none;border-radius:50%;object-fit:cover;border:2px solid #fff;margin-left:-9px}
.tc-more{width:40px;height:40px;flex:none;border-radius:50%;background:#f0f0f0;border:2px solid #fff;margin-left:-9px;display:flex;align-items:center;justify-content:center;font-size:13px;font-weight:800;color:#555555}
.tc-members--big .tc-org,.tc-members--big .tc-face,.tc-members--big .tc-more{width:46px;height:46px}
.evl-bar{display:flex;align-items:center;justify-content:space-between;padding:4px 0 20px}
.evl-count{font-size:.9375rem;font-weight:700;color:#555555}
.evl-count b{font-size:1.25rem;color:#222222}
.evl-area{display:inline-flex;align-items:center;gap:6px;padding:8px 16px;border:1px solid #dddddd;border-radius:999px;font-size:.875rem;font-weight:700;color:#444444;background:#fff}
.evl-area .otk-ev-icon{width:16px;height:16px;color:#999999}
.td-gal{position:relative;overflow:hidden;border-radius:16px;background:#eee}
.td-gal-track{display:flex;transition:transform .35s ease}
.td-gal-track img{width:100%;flex:none;aspect-ratio:4/3;object-fit:cover;display:block}
.td-gal-nav{position:absolute;top:50%;transform:translateY(-50%);width:40px;height:40px;border:0;border-radius:50%;background:rgba(50,50,50,.55);color:#fff;font-size:22px;line-height:1;cursor:pointer;display:flex;align-items:center;justify-content:center}
.td-gal-prev{left:12px}
.td-gal-next{right:12px}
.td-gal-count{position:absolute;left:12px;bottom:12px;padding:4px 11px;border-radius:999px;background:rgba(40,40,40,.55);color:#fff;font-size:12.5px;font-weight:700}
.td-gal-dots{position:absolute;bottom:16px;left:50%;transform:translateX(-50%);display:flex;gap:6px}
.td-gal-dots i{width:6px;height:6px;border-radius:50%;background:rgba(255,255,255,.45)}
.td-gal-dots i.on{background:#fff}
.td-gal-like{position:absolute;bottom:10px;right:10px;display:inline-flex;align-items:center;gap:5px;padding:4px 10px;border-radius:999px;background:rgba(40,40,40,.55);color:#fff;font-size:12.5px;font-weight:700}
.td-gal-like .tc-heart{width:13px;height:13px}
.td-gal-heart{position:absolute;top:10px;right:10px;width:38px;height:38px;border-radius:50%;background:rgba(40,40,40,.48);color:#fff;display:flex;align-items:center;justify-content:center}
.td-pill{display:inline-block;padding:3px 14px;border:1px solid #cccccc;border-radius:999px;font-weight:700;color:#333333}
.td-facts2 dd small.td-min{color:#e73b88;font-weight:700}
.td-members-row{display:flex;align-items:center;justify-content:space-between;gap:12px}
.td-seeall{flex:none;min-height:40px;padding:6px 18px;border:0;border-radius:999px;background:#f0f0f0;font-size:.84375rem;font-weight:700;color:#333333;cursor:pointer}
.td-other-ph{position:relative;flex:none;display:block}
.td-other-ph img{width:112px;height:84px;object-fit:cover;border-radius:12px;display:block}
.td-other{align-items:flex-start}
.td-side{display:block}
@media (max-width:1023px){.td-side-card{margin-top:30px;border:1px solid #e5e5e5;border-radius:18px;padding:22px;background:#fff}
.td-side-fee{display:flex;align-items:flex-end;justify-content:space-between;margin:0 0 14px}
.td-side-fee span{font-size:.8125rem;font-weight:700;color:#777777}
.td-side-fee b{font-size:2rem;font-weight:900;line-height:1}
.td-side-fee b em{font-style:normal;font-size:1rem;font-weight:800}
.td-side-row{display:flex;gap:12px;align-items:flex-start;padding:10px 0}
.td-side-row .otk-ev-icon{width:20px;height:20px;color:#999999;flex:none;margin-top:2px}
.td-side-row b{display:block;font-size:.9375rem;color:#222222}
.td-side-row small{display:block;font-size:.8125rem;color:#888888;margin-top:2px}
.td-side-card .td-apply-btn{margin-top:16px}}
@media (max-width:767px){.td-gal{width:100vw;margin-left:calc(50% - 50vw);border-radius:0}}

/* =========================================================
   Audit fixes (2026-11-10, spacing-audit-lpmock) — LP top
   ========================================================= */
/* #6 Hero: the LP lifts the logo/CTA block with transform:translateY(-23px)
   (SP: +11px), which moved the block's box 7px under the fixed header at PC
   widths. Same visual position, done with padding inside the photo instead. */
.hero-content{transform:none;padding:1px 24px 47px}
@media (max-width:700px){.hero-content{transform:none;padding:35px 18px 13px}}

/* #3 A closed FAQ answer takes no space (Chrome otherwise reports a box for
   the hidden last answer that ran 102.5px into the footer at 390px). */
.faq-list details:not([open])>p{display:none}

/* #10 Tap targets at least 44px on phones (header logo / CTA / menu button,
   footer links; card hearts and avatars come from the app CSS via app-cards.css) */
@media (max-width:767px){
  .site-header .header-logo{display:flex;align-items:center;min-height:44px}
  .site-header .header-cta{display:inline-flex;align-items:center;min-height:44px}
  .site-menu-toggle{width:44px;height:44px}
  .site-footer nav{gap:8px}
  .site-footer nav a{display:flex;align-items:center;min-height:44px}
}

/* R2-4 (2026-11-10) Footer links are centred like the logo and the copyright
   line (phones: each link row stays full width / 44px tall, text centred). */
.site-footer nav{justify-content:center}
@media (max-width:700px){.site-footer nav a{justify-content:center;text-align:center}}

/* R2 extra (2026-11-10) The LP copy of the app card did not get the app's base
   reset (app.css: h1-h4/p margin 0, ul/ol no margin, padding or bullets), so the
   date row sat 40px in with 13px browser margins and the title kept the LP h2
   bottom margin. Same reset, scoped to the cards. */
#events .ev-card h2,#events .ev-card p{margin:0}
#events .ev-card h2{letter-spacing:-.02em}
#events .ev-card ul,#events .ev-card ol{margin:0;padding:0;list-style:none}
/* Round 3 (2026-11-10): no information-free divider lines on the LP mock.
   The site menu rows and the post-registration invite block are separated by whitespace instead. */
.site-menu a{border-bottom:0}
.register-invite{border-top:0;padding-top:8px}
/* Round 3: the hero subtitle's dotted rule and the EVENTS kicker's dotted underline carry no information.
   The subtitle keeps its margin to the CTA; the kicker sits 12px above its heading so it reads as that heading's label. */
.hero-subtitle{border-bottom:0;padding-bottom:0}
.section-kicker{border-bottom:0;padding-bottom:0;margin-bottom:12px}
/* Stage fix 2026-11-12: on phones the header logo image sat at the top of its
   44px link box (measured 9px above centre). Centre it vertically. */
@media (max-width:767px){.site-header .header-inner>.header-logo{display:flex;align-items:center}}
