    :root{
      --bg:#f4efe4;
      --card:#fbf7ef;
      --khaki:#5f6f52;
      --khaki-dark:#516046;
      --khaki-soft:#dce2ce;
      --line:#ddd2bd;
      --text:#2f3526;
      --sub:#5b664d;
      --tab:#f7f0e1;
      --tab-hover:#eadeca;
      --white:#ffffff;
    }

    *{box-sizing:border-box}
    html{scroll-behavior:smooth}
    body{
      margin:0;
      font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic","Noto Sans JP",sans-serif;
      color:var(--text);
      background:var(--bg);
      line-height:1.7;
    }

    img{max-width:100%;display:block}
    a{text-decoration:none;color:inherit}

    .container{
      width:min(1120px, calc(100% - 32px));
      margin:0 auto;
    }

    .section{
      padding:72px 0;
    }

    .card{
      background:var(--card);
      border:1px solid var(--line);
      border-radius:28px;
      overflow:hidden;
    }

    .btn-row{
      display:flex;
      gap:12px;
      flex-wrap:wrap;
    }

    .btn{
      display:inline-flex;
      align-items:center;
      justify-content:center;
      min-height:48px;
      padding:0 28px;
      border-radius:999px;
      font-weight:700;
      transition:.2s ease;
      border:1px solid transparent;
    }

    .btn-primary{
      background:var(--khaki);
      color:#fff;
    }
    .btn-primary:hover{background:var(--khaki-dark)}

    .btn-secondary{
      background:#f7f1e6;
      color:var(--text);
      border-color:rgba(138,146,115,.45);
    }
    .btn-secondary:hover{background:#efe6d6}

    .hero{
      position:relative;
      min-height:720px;
      display:flex;
      align-items:flex-end;
      overflow:hidden;
    }

    .hero img{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
    }

    .hero::before{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(to bottom, rgba(0,0,0,0.82), rgba(0,0,0,0.75), rgba(244,239,228,.95));
    }

    .hero-content{
      position:relative;
      width:min(1120px, calc(100% - 32px));
      margin:0 auto;
      padding:92px 0 96px;
      z-index:1;
    }

    .eyebrow{
      display:inline-flex;
      align-items:center;
      gap:8px;
      padding:10px 16px;
      border-radius:999px;
      border:1px solid rgba(255,255,255,.35);
      background:rgba(255,255,255,.15);
      color:#fff;
      backdrop-filter:blur(10px);
      font-size:14px;
      font-weight:700;
    }

    .hero-sub{
      margin:22px 0 0;
      font-size:14px;
      letter-spacing:.24em;
      text-transform:uppercase;
      color:rgba(255,255,255,.92);
    }

    .hero h1{
      margin:16px 0 0;
      font-size:clamp(40px, 7vw, 72px);
      line-height:1.05;
      color:#fff;
      text-shadow:0 2px 12px rgba(0,0,0,.35);
    }

    .hero-copy{
      margin:24px 0 0;
      max-width:840px;
      font-size:clamp(20px, 2.4vw, 34px);
      line-height:1.55;
      color:#fff;
      text-shadow:0 2px 10px rgba(0,0,0,.30);
      font-weight:700;
    }

    .hero .btn-row{margin-top:28px}

    .section-title{
      margin:0 0 12px;
      font-size:14px;
      letter-spacing:.22em;
      text-transform:uppercase;
      color:#7d866f;
      font-weight:700;
    }

    .section h2{
      margin:0;
      font-size:clamp(28px, 4vw, 44px);
      line-height:1.25;
    }

    .problem-grid{
      display:grid;
      grid-template-columns:.95fr 1.05fr;
      gap:24px;
      align-items:center;
    }

    .problem-list{
      padding:32px;
    }

    .problem-list ul{
      margin:0;
      padding:0;
      list-style:none;
      display:grid;
      gap:16px;
      color:#43503a;
      font-size:18px;
    }

    .problem-list li{
      display:flex;
      gap:12px;
      align-items:flex-start;
    }

    .problem-list li::before{
      content:"›";
      font-size:28px;
      line-height:1;
      color:#6d785e;
      margin-top:-2px;
    }

    .problem-note{
      margin-top:24px;
      padding:16px 20px;
      border-radius:18px;
      background:var(--khaki-soft);
      font-weight:700;
    }

    .lead{
      margin:16px 0 0;
      color:#5f6852;
      font-size:18px;
    }

    .tab-wrap{
      position:sticky;
      top:12px;
      z-index:20;
      margin-top:32px;
      padding:8px;
      border:1px solid #d9ceb8;
      border-radius:22px;
      background:rgba(239,231,215,.92);
      backdrop-filter:blur(8px);
      overflow:auto;
    }

    .tabs{
      display:flex;
      gap:8px;
      min-width:max-content;
    }

    .tab{
      border:none;
      border-radius:999px;
      padding:14px 22px;
      background:var(--tab);
      color:var(--text);
      font-size:15px;
      font-weight:700;
      cursor:pointer;
      transition:.2s ease;
      white-space:nowrap;
    }

    .tab:hover{background:var(--tab-hover)}
    .tab.active{
      background:var(--khaki);
      color:#fff;
    }

    .areas{
      margin-top:32px;
      display:grid;
      gap:28px;
    }

    .area{
      scroll-margin-top:92px;
    }

    .area-grid{
      display:grid;
      grid-template-columns:.95fr 1.05fr;
    }

    .area-grid.reverse{
      grid-template-columns:1.05fr .95fr;
    }

    .area-visual{
      position:relative;
      min-height:320px;
    }

    .area-visual img{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
    }

    .area-visual::before{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(to top, rgba(85,98,74,.30), rgba(85,98,74,.10));
      z-index:1;
    }

    .tag{
      position:absolute;
      left:24px;
      bottom:24px;
      z-index:2;
      display:inline-flex;
      gap:8px;
      align-items:center;
      padding:10px 16px;
      border-radius:999px;
      background:rgba(251,247,239,.88);
      color:var(--text);
      backdrop-filter:blur(10px);
      font-size:14px;
      font-weight:700;
    }

    .area-content{
      padding:36px 40px;
    }

    .area h3{
      margin:0;
      font-size:32px;
      line-height:1.3;
    }

    .area-catch{
      margin:14px 0 0;
      font-size:25px;
      line-height:1.5;
      color:#35412c;
      font-weight:700;
    }

    .area p{
      margin:18px 0 0;
      font-size:18px;
      color:#4d5941;
    }

    .quote-box{
      margin-top:22px;
      padding:18px 20px;
      background:#f1eadb;
      border:1px solid var(--line);
      border-radius:18px;
      color:var(--text);
      font-weight:700;
    }

    .feature-grid{
      margin-top:24px;
      display:grid;
      grid-template-columns:repeat(3, 1fr);
      gap:16px;
    }

    .feature{
      background:#f1eadb;
      border:1px solid var(--line);
      border-radius:18px;
      padding:18px;
    }

    .feature h4{
      margin:0;
      font-size:16px;
    }

    .feature p{
      margin:10px 0 0;
      font-size:14px;
      line-height:1.8;
      color:#5b664d;
    }

    .reserve-box{
      margin-top:32px;
      padding:28px 32px;
    }

    .reserve-flex{
      display:flex;
      justify-content:space-between;
      align-items:center;
      gap:20px;
    }

    .event-grid, .access-grid{
      display:grid;
      gap:24px;
      align-items:stretch;
    }

    .event-grid{grid-template-columns:.95fr 1.05fr}
    .access-grid{grid-template-columns:.88fr 1.12fr}

    .event-content, .access-content{
      padding:36px 40px;
    }

    .date-badge{
      display:inline-flex;
      align-items:center;
      gap:10px;
      margin-top:22px;
      padding:16px 20px;
      border-radius:18px;
      background:#f5eedf;
      border:1px solid #d4c9b3;
      color:#35412c;
      font-size:26px;
      font-weight:700;
    }

    .event-visual, .map-box{
      min-height:380px;
    }

    .event-visual{
      position:relative;
    }

    .event-visual img{
      position:absolute;
      inset:0;
      width:100%;
      height:100%;
      object-fit:cover;
    }

    .event-visual::before{
      content:"";
      position:absolute;
      inset:0;
      background:linear-gradient(to top, rgba(85,98,74,.20), transparent);
    }

    .info-list{
      margin-top:28px;
      display:grid;
      gap:14px;
      color:#4d5941;
      font-size:18px;
    }

    .parking{
      display:flex;
      gap:12px;
      align-items:flex-start;
    }

    iframe{
      width:100%;
      height:100%;
      min-height:380px;
      border:0;
      display:block;
    }

    .final-cta{
      text-align:center;
      padding:40px 32px 56px;
    }

    .final-cta p{
      max-width:760px;
      margin:18px auto 0;
      color:#5b664d;
      font-size:18px;
    }

    .sp-fixed{
      position:fixed;
      left:50%;
      bottom:16px;
      transform:translateX(-50%);
      width:min(calc(100% - 24px), 420px);
      z-index:50;
      padding:8px;
      border-radius:999px;
      border:1px solid rgba(170,178,150,.4);
      background:rgba(251,247,239,.92);
      box-shadow:0 18px 40px rgba(183,170,144,.22);
      backdrop-filter:blur(10px);
      display:none;
    }

    .sp-fixed .grid{
      display:grid;
      grid-template-columns:1fr 1fr;
      gap:8px;
    }

    @media (max-width: 900px){
      .problem-grid,
      .area-grid,
      .area-grid.reverse,
      .event-grid,
      .access-grid,
      .reserve-flex{
        grid-template-columns:1fr;
        display:grid;
      }

      .area-content,
      .event-content,
      .access-content,
      .problem-list{
        padding:28px 22px;
      }

      .feature-grid{
        grid-template-columns:1fr;
      }

      .hero{
        min-height:620px;
      }

      .date-badge{
        font-size:22px;
      }
    }

    @media (max-width: 768px){
      .section{
        padding:56px 0;
      }

      .hero-content{
        padding:88px 0 88px;
      }

      .hero-copy{
        font-size:22px;
      }

      .sp-fixed{
        display:block;
      }

      .btn{
        width:100%;
      }
    }
  
.hero-content{
  position:relative;
}
/* removed inner overlay*/
.hero-content::before{
  content:"";
  position:absolute;
  inset:-24px -16px;
  background:linear-gradient(to bottom, rgba(0,0,0,0.45), rgba(0,0,0,0.25));
  border-radius:24px;
  z-index:-1;
}


.parking{
  display:grid;
  grid-template-columns:72px 1fr;
  gap:12px;
  align-items:start;
}
.parking strong{
  display:block;
  writing-mode:horizontal-tb;
  line-height:1.7;
}
.parking div{
  line-height:1.8;
}


.problem-title{
  font-size:18px;
  white-space:nowrap;
}
