:root{
    --ivory:#f7f4ee; --paper:#ffffff; --ink:#1d1b17; --sub:#6b665c;
    --line:#e3ddd1; --gold:#c6a86a; --gold-d:#8c7139; --bordeaux:#5c1f28;
  }
  *{box-sizing:border-box}
  html,body{margin:0; min-height:100%}
  .visually-hidden{
    position:absolute;
    width:1px;
    height:1px;
    padding:0;
    margin:-1px;
    overflow:hidden;
    clip:rect(0,0,0,0);
    white-space:nowrap;
    border:0;
  }
  body{
    background:#141009;
    color:var(--ink);
    font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,"Noto Serif JP",serif;
    line-height:1.9; -webkit-font-smoothing:antialiased; padding-bottom:56px;
  }
  #bgLayer{position:fixed; inset:0; z-index:-2; background:#141009 center/cover no-repeat; transition:opacity .45s ease; opacity:1; filter:saturate(1.22) brightness(1.1)}
  #bgShade{position:fixed; inset:0; z-index:-1; background:linear-gradient(180deg, rgba(20,16,10,.55) 0%, rgba(20,16,10,.34) 32%, rgba(16,12,8,.68) 100%)}
  .wrap{max-width:960px; margin:0 auto; padding:0 18px}
  header.hero{position:relative; text-align:center; padding:88px 20px 40px; color:#f6efe0}
  .kicker{letter-spacing:.44em; font-size:11px; color:var(--gold); margin:0 0 20px; font-family:sans-serif}
  .hero h1{font-size:38px; line-height:1.25; letter-spacing:.055em; margin:0 0 12px; font-weight:500; text-shadow:0 2px 18px rgba(0,0,0,.55)}
  .hero h1 span{display:block}
  .hero h1 span:first-child{font-size:.72em; letter-spacing:.12em; margin-bottom:.22em}
  .brand-logo{position:absolute; top:18px; left:20px; display:inline-flex}
  .brand-logo img{display:block; width:150px; height:auto; filter:brightness(0) invert(1); opacity:.96}
  .hero .en{font-size:13px; letter-spacing:.32em; color:#e7ddc9; font-family:sans-serif; margin:0}
  .hero-intro{max-width:530px; margin:18px auto 0; color:#f4eddf; font-size:13px; line-height:1.8; text-shadow:0 1px 10px rgba(0,0,0,.45)}
  .rule{width:46px; height:1px; background:var(--gold); margin:22px auto}

  /* タブ */
  .tabs-shell{position:relative; margin-bottom:16px}
  .tabs{display:flex; gap:8px; overflow-x:auto; padding:4px 0 2px; margin:0; scroll-snap-type:x proximity; -webkit-overflow-scrolling:touch}
  .tabs-arrow{display:none}
  .tab{flex:0 0 auto; min-width:120px; text-align:center; cursor:pointer; border:1px solid rgba(198,168,106,.5); border-radius:3px 3px 0 0; background:rgba(247,244,238,.14); color:#efe6d3; padding:12px 14px; transition:.15s; font:inherit}
  .tab{scroll-snap-align:start}
  .tab .d{font-size:19px; letter-spacing:.04em; font-weight:500; font-family:inherit}
  .tab-day{font-size:12px}
  .tab .v{font-size:11px; font-family:sans-serif; color:#d8cbb0; margin-top:3px; display:block}
  .tab.active{background:rgba(249,246,240,.975); color:var(--ink); border-color:#fff}
  .tab.active .v{color:var(--gold-d)}
  .tab.closed{cursor:pointer; opacity:.5; border-color:rgba(198,168,106,.3)}
  .tab.closed .v{color:#e5d9c1}

  .sheet{background:rgba(249,246,240,.975); border:1px solid rgba(255,255,255,.5); border-radius:3px; box-shadow:0 30px 70px rgba(0,0,0,.4); padding:34px 30px 40px; margin-bottom:26px}
  .lead{font-size:15px; color:#413d36; margin:0 0 4px}
  .facts{margin-top:0; padding-top:0}
  .venue-badge{font-family:sans-serif; font-size:12px; letter-spacing:.16em; color:var(--gold-d); margin:0 0 4px}
  .venue-name{font-size:21px; font-weight:500; letter-spacing:.03em; margin:0 0 6px}
  .venue-note{font-size:13px; color:var(--sub); margin:0 0 18px}
  .facts dl{display:grid; grid-template-columns:96px 1fr; gap:10px 14px; margin:0; font-size:14px}
  .facts dt{color:var(--gold-d); letter-spacing:.06em; font-family:sans-serif; font-size:12px; padding-top:2px}
  .facts dd{margin:0}
  .facts dd a{color:var(--bordeaux); text-decoration:none; border-bottom:1px solid rgba(92,31,40,.3)}
  .facts .note{grid-column:1/-1; font-size:12px; color:var(--sub); border-top:1px solid var(--line); padding-top:12px; margin-top:4px; line-height:1.7}
  .detail-link{display:inline-block; margin-top:16px; font-family:sans-serif; font-size:13px; letter-spacing:.08em; color:var(--gold-d); text-decoration:none; border:1px solid var(--gold); border-radius:2px; padding:9px 16px}
  .detail-link:hover{background:var(--gold); color:#fff}

  .sec-label{font-family:sans-serif; font-size:12px; letter-spacing:.2em; color:var(--gold-d); margin:6px 0 16px}
  .field{margin:0 0 20px}
  label{display:block; font-size:14px; margin:0 0 7px; font-weight:500}
  .req{color:var(--bordeaux); font-size:11px; margin-left:6px; font-family:sans-serif; vertical-align:1px}
  .opt{color:var(--sub); font-size:11px; margin-left:6px; font-family:sans-serif}
  input,select,textarea{width:100%; padding:12px 13px; border:1px solid var(--line); border-radius:2px; background:#fcfbf8; font-size:15px; font-family:inherit; color:var(--ink)}
  input:focus,select:focus,textarea:focus{outline:2px solid var(--gold); outline-offset:1px; border-color:var(--gold); background:#fff}
  textarea{min-height:84px; resize:vertical}
  #mailformpro .mfp_element_text,
  #mailformpro .mfp_element_number,
  #mailformpro .mfp_element_select-one,
  #mailformpro .mfp_element_email,
  #mailformpro .mfp_element_tel,
  #mailformpro .mfp_element_textarea{
    width:100% !important;
    min-height:46px;
    margin:0 !important;
    padding:12px 13px !important;
    border:1px solid var(--line) !important;
    border-radius:2px !important;
    box-shadow:none !important;
    background:#fcfbf8 !important;
    color:var(--ink) !important;
    font:inherit !important;
  }
  #mailformpro .mfp_element_textarea{min-height:104px; line-height:1.6}
  .selected-date{background:#fbf7ee; border:1px solid var(--line); border-left:3px solid var(--gold); padding:12px 16px; border-radius:2px; margin:0 0 22px; font-size:14px}
  .selected-date b{font-weight:500}
  .hint{font-size:12px; color:var(--sub); margin:6px 0 0}
  .dresscode{background:#fbf7ee; border:1px solid var(--line); border-left:3px solid var(--gold); padding:16px 18px; border-radius:2px; margin:28px 0 20px}
  .dresscode h3{margin:0 0 4px; font-size:15px; font-weight:500; letter-spacing:.04em}
  .dresscode p{margin:0; font-size:13px; color:var(--sub)}
  .check{display:grid; grid-template-columns:18px minmax(0,1fr); gap:10px; align-items:start; width:100%; min-width:0; box-sizing:border-box; font-size:14px; background:#fbf7ee; border:1px solid var(--line); padding:14px; border-radius:2px}
  .check input{width:18px; height:18px; margin:3px 0 0; min-width:0}
  .check span{min-width:0; white-space:normal; overflow-wrap:anywhere; word-break:normal}
  button.submit{width:100%; margin-top:14px; padding:16px; border:none; border-radius:2px; cursor:pointer; background:var(--ink); color:#f3ead6; font-size:15px; letter-spacing:.16em; font-family:inherit}
  #mailformpro button.submit.mfp_element_submit{
    margin:14px 0 0 !important;
    padding:16px !important;
    border:none !important;
    border-radius:2px !important;
    background:var(--ink) !important;
    color:#f3ead6 !important;
    box-shadow:none !important;
    text-shadow:none !important;
    font:inherit !important;
    font-size:15px !important;
    letter-spacing:.16em;
    line-height:1.5;
  }
  button.submit:hover{background:#000}
  button.submit:disabled{opacity:.5; cursor:default}
  .err{color:var(--bordeaux); font-size:13px; margin-top:8px; display:none}
  .noscript-message{color:var(--bordeaux); font-size:13px; margin-top:12px}
  .foot{text-align:center; font-size:12px; color:#eaddc2; margin-top:6px; line-height:1.8}
  .footer-link{color:inherit; text-underline-offset:3px}
  .check a{color:#76591f; text-decoration-thickness:1px; text-underline-offset:3px}
  .application-closed{text-align:center; padding:54px 24px}
  .application-closed h2{font-size:24px; font-weight:500; letter-spacing:.08em; margin:0 0 14px}
  .application-closed p:last-child{margin:0; color:var(--sub)}
  .mfp_confirm_before{margin:0 0 18px}
  .mfp-confirm-event{border-left:3px solid var(--gold); background:#fbf7ee; padding:12px 14px; color:var(--ink); line-height:1.6}
  .mfp-confirm-event p{margin:0 0 3px; color:var(--gold-d); font:600 11px/1.4 sans-serif; letter-spacing:.12em}
  .mfp-confirm-event strong,.mfp-confirm-event span{display:block}
  .mfp-confirm-event strong{font-size:15px; font-weight:500}
  .mfp-confirm-event span{font-size:13px; margin-top:2px}
  #thanks{display:none}
  #thanks .sheet{text-align:center; padding:56px 24px}
  #thanks h2{font-weight:500; letter-spacing:.08em; font-size:23px; margin:.2em 0}
  body.is-submitted > .wrap > .hero{padding-bottom:18px}
  body.is-submitted .hero-intro{display:none}
  #thanks .thanks-hero{padding:32px 20px 12px}
  .thanks-copy{text-align:center}
  @media (max-width:600px){
    .desktop-break{display:none}
    header.hero{ padding:82px 16px 30px }
    .hero h1{ font-size:30px }
    .hero .en{ font-size:12px; letter-spacing:.22em }
    .hero-intro{margin-top:16px; font-size:12px; line-height:1.8}
    .kicker{ letter-spacing:.34em }
    .brand-logo{ top:16px; left:16px }
    .brand-logo img{ width:120px }
    .wrap{ padding:0 14px }
    .sheet{ padding:24px 18px 30px }
    .facts dl{ grid-template-columns:80px 1fr; gap:8px 12px }
    .tabs{ scrollbar-width:none }
    .tabs::-webkit-scrollbar{ display:none }
    .tabs-shell.is-scrollable .tabs-arrow{display:grid}
    .tabs-arrow{position:absolute; z-index:3; top:50%; width:36px; height:48px; padding:0; place-items:center; transform:translateY(-50%); border:1px solid rgba(255,255,255,.72); border-radius:20px; background:rgba(35,31,26,.88); color:#f4ead7; box-shadow:0 5px 16px rgba(0,0,0,.32); cursor:pointer; transition:opacity .2s, background-color .2s}
    .tabs-arrow svg{width:19px; height:19px; fill:none; stroke:currentColor; stroke-width:2; stroke-linecap:round; stroke-linejoin:round}
    .tabs-arrow-prev{left:4px}
    .tabs-arrow-next{right:4px}
    .tabs-arrow:disabled{opacity:0; pointer-events:none}
    .tab{ min-width:104px; padding:10px 10px }
    .tab .d{ font-size:17px }
    input,select,textarea{ font-size:16px }
  }
