@import url('https://fonts.googleapis.com/css2?family=Zen+Old+Mincho:wght@400;500;600;700&family=Noto+Serif+JP:wght@400;500;600;700&family=Noto+Sans+JP:wght@300;400;500;600;700&family=M+PLUS+Rounded+1c:wght@500;700;800&display=swap');

  :root{
    --shinai: #146670;      /* カードのターコイズを深めた色 */
    --shinai-light: #1D818C;
    --kinari: #FAF4E4;      /* ロゴ背景のクリーム */
    --tsuchi: #E8A23A;      /* カードのオレンジ（肉球） */
    --wakakusa: #3FB8C4;    /* カードの明るいターコイズ */
    --pale: #BFE8DC;        /* ペールグリーン（水色と緑の間） パネル背景用 */
    --sumi: #2B2620;        /* 墨 本文の黒 */
    --sumi-soft: #55504A;
    --line: rgba(43,38,32,0.14);
    --paper: #FDF9EE;
  }

  *{box-sizing:border-box; margin:0; padding:0;}

  html{
    -webkit-text-size-adjust:100%;
    scroll-behavior:smooth;
    font-size:10px;
    scroll-padding-top:10rem;
  }
  @media(max-width:640px){
    html{ font-size:10.33px; }
  }

  body{
    background: var(--kinari);
    color: var(--sumi);
    font-family: "Noto Sans JP", sans-serif;
    font-weight:400;
    line-height:1.9;
    font-size:1.7rem;
    -webkit-font-smoothing:antialiased;
  }

  h1,h2,h3,.serif{
    font-family:"Zen Old Mincho","Noto Serif JP", serif;
  }

  a{color:inherit; text-decoration:none;}

  .wrap{max-width:104rem; margin:0 auto; padding:0 2.8rem;}

  /* ---------- HEADER ---------- */
  header{
    position:sticky; top:0; z-index:50;
    background: rgba(250,244,228,0.92);
    backdrop-filter: blur(0.6rem);
    border-bottom:1px solid var(--line);
  }
  .nav-inner{
    display:flex; align-items:center; justify-content:space-between;
    padding:1.8rem 2.8rem; max-width:104rem; margin:0 auto;
  }
  @media(min-width:1401px){
    .nav-inner{ max-width:none; width:clamp(133rem, 92vw, 160rem); }
  }
  .logo{
    display:flex; flex-direction:column; gap:0.2rem; flex-shrink:0;
  }
  .logo-main{
    display:flex; align-items:center; gap:1.4rem;
  }
  .logo-tagline{
    font-family:"Noto Sans JP", sans-serif; font-size:1.1rem; letter-spacing:0.14em;
    color:var(--tsuchi); font-weight:600; padding-left:0.2rem; white-space:nowrap;
  }
  .logo-img{
    height:6.4rem; width:auto; display:block; flex-shrink:0;
  }
  .logo-text{
    white-space:nowrap;
    font-family:"M PLUS Rounded 1c", sans-serif; font-size:2.5rem; font-weight:700;
    color:var(--wakakusa); letter-spacing:0.03em;
  }
  ruby{ ruby-align:center; }
  rt{
    font-family:"M PLUS Rounded 1c", sans-serif; font-weight:500; letter-spacing:0.06em;
    color:var(--sumi-soft); font-size:1.3rem;
  }
  nav ul{display:flex; gap:2rem; list-style:none; flex-wrap:nowrap;}
  nav li{flex-shrink:0;}
  nav a{font-size:1.35rem; letter-spacing:0.03em; position:relative; padding-bottom:0.4rem; white-space:nowrap;}
  nav a:after{content:"";position:absolute;left:0;bottom:0;width:0;height:0.1rem;background:var(--tsuchi);transition:width .3s;}
  nav a:hover:after{width:100%;}
  .nav-phone{
    display:flex; align-items:center; gap:0.8rem; text-decoration:none; flex-shrink:0;
  }
  .nav-phone-icon{ font-size:1.8rem; }
  .nav-phone-number{
    font-family:"Zen Old Mincho", serif; font-size:2.2rem; font-weight:700; color:var(--shinai);
    letter-spacing:0.02em; white-space:nowrap;
  }
  @media(max-width:1400px){ .nav-phone{display:none;} }
  @media(max-width:640px){
    .nav-phone-number{font-size:1.7rem;}
  }

  .nav-cta{
    background:var(--pale); color:var(--shinai)!important; padding:1rem 2.2rem;
    border-radius:0.2rem; font-size:1.35rem; letter-spacing:0.08em; white-space:nowrap; flex-shrink:0;
  }
  @media(max-width:1400px){ nav ul{display:none;} .nav-cta{display:none;} }

  .menu-btn{
    display:none; flex-direction:column; justify-content:center; gap:0.5rem;
    width:3.8rem; height:3.8rem; background:none; border:none; cursor:pointer; padding:0;
  }
  .menu-btn span{width:2.4rem; height:0.2rem; background:var(--shinai); transition:transform .25s, opacity .25s;}
  .menu-btn.open span:nth-child(1){transform:translateY(0.7rem) rotate(45deg);}
  .menu-btn.open span:nth-child(2){opacity:0;}
  .menu-btn.open span:nth-child(3){transform:translateY(-0.7rem) rotate(-45deg);}
  @media(max-width:1400px){ .menu-btn{display:flex;} }

  .mobile-nav{
    display:grid; grid-template-rows:0fr; overflow:hidden;
    background:var(--kinari); border-bottom:1px solid var(--line);
    transition:grid-template-rows .3s ease;
  }
  .mobile-nav.open{grid-template-rows:1fr;}
  .mobile-nav ul{min-height:0; overflow:hidden; list-style:none; padding:0.8rem 2.8rem 2.4rem;}
  .mobile-nav li{border-bottom:1px solid var(--line);}
  .mobile-nav a{display:block; padding:1.6rem 0; font-size:1.55rem;}
  .mobile-nav .mobile-cta{color:var(--tsuchi); font-weight:600;}

  @media(max-width:640px){
    .logo-img{height:5.2rem;}
    .logo-text{font-size:1.9rem;}
    rt{font-size:1.1rem;}
    .logo-tagline{font-size:0.95rem;}
  }
  @media(max-width:400px){
    .logo-text{display:none;}
    .logo-tagline{display:none;}
  }

  @media(max-width:640px){
    .hero{padding:8.8rem 2.4rem 7.2rem;}
    .hero h1{font-size:2.8rem;}
    .hero p.lead{font-size:1.45rem;}
    section{padding:7.2rem 0;}
    .section-head h2{font-size:2.4rem;}
    .story-text .quote{font-size:1.8rem;}
    .years-badge .num{font-size:3.6rem;}
  }

  /* ---------- HERO ---------- */
  .hero{
    position:relative; background:var(--pale); color:var(--shinai);
    padding:10rem 2.8rem 9rem; overflow:hidden;
  }
  .hero-grid{
    max-width:104rem; margin:0 auto; display:grid; grid-template-columns:1.3fr 0.7fr;
    gap:6rem; align-items:start; position:relative; z-index:2;
  }
  .hero-inner{position:relative; z-index:2;}
  .hero-photo{
    border-radius:0.3rem; overflow:hidden; box-shadow:0 20px 46px rgba(20,102,112,0.28);
    border:1px solid var(--shinai); aspect-ratio:3/4; max-width:30rem; margin:0 0 0 auto;
  }
  .hero-photo img{ width:100%; height:100%; object-fit:cover; display:block; }
  @media(max-width:900px){
    .hero-grid{grid-template-columns:1fr; gap:4rem;}
    .hero-photo{max-width:26rem; margin:0 auto; order:-1;}
  }
  .eyebrow{
    font-size:1.3rem; letter-spacing:0.35em; color:var(--tsuchi); margin-bottom:2.8rem;
    display:flex; align-items:center; gap:1.4rem; font-weight:600;
  }
  .eyebrow:before{content:""; width:3.2rem; height:0.1rem; background:var(--tsuchi);}
  .hero h1{
    font-size:3.8rem; line-height:1.65; font-weight:600; letter-spacing:0.02em;
    margin-bottom:3.4rem;
  }
  .hero h1 em{
    font-style:normal; color:var(--tsuchi); background:linear-gradient(transparent 62%, rgba(168,90,42,0.35) 62%);
  }
  .hero p.lead{
    font-size:1.5rem; color:var(--sumi-soft); max-width:52rem; line-height:2.0; margin-bottom:4.4rem;
  }
  .hero-actions{display:flex; gap:1.6rem; flex-wrap:wrap;}
  .btn-primary{
    background:var(--tsuchi); color:var(--kinari); padding:1.5rem 3.4rem;
    font-size:1.45rem; letter-spacing:0.08em; border-radius:0.2rem; transition:opacity .25s;
  }
  .btn-primary:hover{opacity:0.85;}
  .btn-ghost{
    border:1px solid rgba(20,102,112,0.35); color:var(--shinai); padding:1.5rem 3.4rem;
    font-size:1.45rem; letter-spacing:0.08em; border-radius:0.2rem;
  }


  /* ---------- SECTION SHELL ---------- */
  section{padding:10.4rem 0;}
  .section-head{max-width:64rem; margin-bottom:5.6rem;}
  .section-eyebrow{
    font-size:1.25rem; letter-spacing:0.3em; color:var(--tsuchi); margin-bottom:1.6rem; display:block;
  }
  .section-head h2{font-size:3rem; font-weight:600; color:var(--shinai); line-height:1.6;}

  /* ---------- STORY ---------- */
  .story{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .story-grid{display:grid; grid-template-columns:1.1fr 0.9fr; gap:6.4rem; align-items:start;}
  @media(max-width:800px){.story-grid{grid-template-columns:1fr;}}

  .profile-grid{grid-template-columns:1fr 1fr; gap:5.6rem; align-items:center;}
  @media(max-width:800px){.profile-grid{grid-template-columns:1fr; gap:4rem;}}

  .timeline{ margin-top:6rem; padding-top:4.4rem; border-top:1px solid var(--line); }
  .timeline-track{
    display:flex; justify-content:space-between; position:relative; margin-top:3rem;
  }
  .timeline-track:before{
    content:""; position:absolute; top:0.6rem; left:0; right:0; height:0.1rem; background:var(--line);
  }
  .timeline-item{ position:relative; flex:1; padding:0 1.4rem; text-align:center; }
  .timeline-item:first-child{ text-align:left; padding-left:0; }
  .timeline-item:last-child{ text-align:right; padding-right:0; }
  .timeline-dot{
    width:0.8rem; height:0.8rem; border-radius:50%; background:var(--tsuchi); margin:0 auto 1.6rem;
  }
  .timeline-item:first-child .timeline-dot{ margin-left:0; }
  .timeline-item:last-child .timeline-dot{ margin-right:0; margin-left:auto; }
  .t-role{ font-size:1.35rem; font-weight:700; color:var(--shinai); margin-bottom:0.5rem; line-height:1.5; }
  .t-dur{ font-size:1.2rem; color:var(--sumi-soft); letter-spacing:0.03em; }

  @media(max-width:760px){
    .timeline-track{ flex-direction:column; gap:2.6rem; padding-left:1.8rem; }
    .timeline-track:before{ top:0; bottom:0; left:0.3rem; right:auto; width:0.1rem; height:auto; }
    .timeline-item, .timeline-item:first-child, .timeline-item:last-child{ text-align:left; padding:0; }
    .timeline-dot{ position:absolute; left:-1.8rem; top:0.4rem; margin:0; }
    .timeline-item:first-child .timeline-dot, .timeline-item:last-child .timeline-dot{ margin:0; }
  }
  .story-text p{margin-bottom:2.2rem; color:var(--sumi-soft); font-size:1.55rem;}
  .story-text .quote{
    font-family:"Zen Old Mincho", serif; font-size:2.2rem; line-height:1.9; color:var(--shinai);
    padding:0.8rem 0 0.8rem 2.8rem; border-left:2px solid var(--tsuchi); margin:3.4rem 0; font-weight:500;
  }
  .photo-slot{
    aspect-ratio:4/5; background:
      repeating-linear-gradient(135deg, var(--shinai-light), var(--shinai-light) 2px, #0F4A52 2px, #0F4A52 14px);
    border-radius:0.2rem; display:flex; align-items:center; justify-content:center;
    color:#BFE3E6; font-size:1.3rem; letter-spacing:0.1em; text-align:center; padding:2rem;
  }
  .access-grid{
    display:grid; grid-template-columns:1fr; max-width:52rem; margin:0 auto;
  }
  .entrance-photo{ margin-top:2.2rem; max-width:32rem; }
  .entrance-photo img{
    width:100%; border-radius:0.2rem; display:block;
    box-shadow:0 14px 30px rgba(20,102,112,0.16);
  }
  .entrance-photo span{
    display:block; margin-top:1rem; font-size:1.25rem; color:var(--sumi-soft);
  }
  .cal-months{ display:grid; grid-template-columns:1fr 1fr; gap:2.6rem; }
  @media(max-width:760px){ .cal-months{grid-template-columns:1fr;} }
  .cal-card{
    background:var(--paper); border:1px solid var(--line); border-radius:0.2rem; padding:3.6rem;
  }
  .cal-header{
    display:flex; justify-content:space-between; align-items:center; margin-bottom:2.2rem; flex-wrap:wrap; gap:1rem;
  }
  .cal-header #calMonthLabel{
    font-family:"Zen Old Mincho", serif; font-size:2rem; color:var(--shinai); font-weight:600;
  }
  .cal-legend{ font-size:1.25rem; color:var(--sumi-soft); display:flex; align-items:center; gap:0.8rem; }
  .cal-dot{ width:0.9rem; height:0.9rem; border-radius:50%; background:var(--tsuchi); display:inline-block; }
  .cal-grid{ display:grid; grid-template-columns:repeat(7,1fr); gap:0.6rem; }
  .cal-dow{ text-align:center; font-size:1.2rem; color:var(--sumi-soft); padding-bottom:0.8rem; }
  .cal-day{
    aspect-ratio:1; display:flex; align-items:center; justify-content:center;
    font-size:1.35rem; color:#C4B8A8; border-radius:0.2rem; background:transparent;
  }
  .cal-day.open{
    background:var(--tsuchi); color:var(--kinari); font-weight:700;
  }
  .cal-day.empty{ visibility:hidden; }
  .cal-day.today{
    box-shadow:0 0 0 3px var(--shinai);
    font-weight:700; color:var(--shinai);
  }
  .cal-day.today.open{
    box-shadow:0 0 0 3px var(--shinai);
    color:var(--kinari);
  }
  .cal-note{ margin-top:2.2rem; font-size:1.25rem; color:var(--sumi-soft); }
  @media(max-width:640px){
    .cal-card{padding:2.4rem 1.8rem;}
    .cal-day{font-size:1.2rem;}
  }

  .video-link{
    display:flex; align-items:center; gap:2rem; text-decoration:none;
    aspect-ratio:4/5; width:100%; border-radius:0.2rem; overflow:hidden;
    background:var(--pale); box-shadow:0 14px 30px rgba(20,102,112,0.16);
    flex-direction:column; justify-content:center; padding:3.2rem; text-align:center;
    transition:opacity .25s;
  }
  .video-link:hover{ opacity:0.88; }
  .story-media{ display:flex; flex-direction:column; gap:1.6rem; }
  .story-photos{ display:grid; grid-template-columns:1fr 1fr; gap:1.2rem; }
  .story-photos img{
    width:100%; aspect-ratio:1; object-fit:cover; border-radius:0.2rem;
    box-shadow:0 10px 22px rgba(20,102,112,0.14);
  }
  .video-link-thumb{
    width:7.6rem; height:7.6rem; border-radius:50%; background:rgba(20,102,112,0.1);
    display:flex; align-items:center; justify-content:center;
  }
  .video-link-text{
    color:var(--shinai); font-size:1.5rem; line-height:1.7; font-weight:600;
  }
  .polaroid-stack{ position:relative; min-height:48rem; }
  .polaroid{
    position:absolute; background:#FFFFFF; border:1px solid var(--line);
    box-shadow:0 14px 30px rgba(43,38,32,0.16); padding:1rem 1rem 3.2rem; border-radius:0.1rem;
  }
  .polaroid .ph{
    width:100%; height:100%; background:
      repeating-linear-gradient(135deg, var(--shinai-light), var(--shinai-light) 2px, #0F4A52 2px, #0F4A52 14px);
    display:flex; align-items:center; justify-content:center; text-align:center;
    color:#BFDAD5; font-size:1.2rem; letter-spacing:0.06em; padding:1rem;
  }
  img.polaroid, .polaroid img.ph, .polaroid img.ph-img{
    width:100%; height:100%; object-fit:cover; display:block; padding:0;
  }
  .polaroid .ph-img{
    width:100%; height:100%; object-fit:cover; display:block;
  }
  .polaroid .cap{
    position:absolute; bottom:0.8rem; left:0; right:0; text-align:center;
    font-family:"Zen Old Mincho", serif; font-size:1.15rem; letter-spacing:0.08em; color:var(--sumi-soft);
  }
  .polaroid.p1{ width:56%; aspect-ratio:4/5; top:0; left:2%; transform:rotate(-6deg); z-index:2; }
  .polaroid.p2{ width:48%; aspect-ratio:4/5; top:6%; right:0; transform:rotate(5deg); z-index:3; }
  .polaroid.p3{ width:42%; aspect-ratio:1/1; bottom:2%; left:0; transform:rotate(4deg); z-index:1; }
  .polaroid.p4{ width:40%; aspect-ratio:1/1; bottom:0; right:6%; transform:rotate(-4deg); z-index:2; }
  .polaroid.p5{ width:34%; aspect-ratio:4/5; top:38%; left:32%; transform:rotate(-2deg); z-index:4; }
  @media(max-width:800px){
    .polaroid-stack{min-height:0; display:grid; grid-template-columns:repeat(2,1fr); gap:1.6rem;}
    .polaroid{position:static; width:auto !important; aspect-ratio:4/5 !important; transform:none !important; padding:0.8rem 0.8rem 2.6rem;}
    .polaroid.p5{grid-column:span 2; width:60% !important; margin:0 auto;}
  }
  .years-badge{
    display:flex; align-items:center; gap:1.8rem; margin-top:3.8rem; padding-top:3rem; border-top:1px solid var(--line);
  }
  .years-badge .num{font-family:"Zen Old Mincho",serif; font-size:4.4rem; color:var(--tsuchi); font-weight:600; line-height:1;}
  .years-badge .cap{font-size:1.3rem; color:var(--sumi-soft); letter-spacing:0.05em; line-height:1.6;}

  /* ---------- FOR YOU (target audience) ---------- */
  .for-you{background:var(--kinari);}
  .letter{
    max-width:72rem; background:var(--paper); border:1px solid var(--line); border-radius:0.2rem;
    padding:5.6rem 5.6rem; position:relative;
  }
  @media(max-width:640px){.letter{padding:4rem 2.8rem;}}
  .letter:before{
    content:"手紙"; position:absolute; top:-1.4rem; left:4.8rem; background:var(--tsuchi); color:var(--kinari);
    font-size:1.2rem; letter-spacing:0.2em; padding:0.5rem 1.6rem; border-radius:0.1rem;
  }
  .letter p{color:var(--sumi-soft); font-size:1.55rem; margin-bottom:2rem;}
  .letter .sign{margin-top:3.2rem; font-family:"Zen Old Mincho",serif; color:var(--shinai); font-size:1.6rem; text-align:right;}
  .tag-row{display:flex; gap:1.2rem; flex-wrap:wrap; margin-top:3.6rem;}
  .bird-row{ display:flex; gap:2.2rem; margin-top:2.4rem; flex-wrap:wrap; }
  .bird-card{ text-align:center; width:8.8rem; }
  .bird-card img{
    width:8.8rem; height:8.8rem; border-radius:50%; object-fit:cover; display:block;
    border:2px solid var(--paper); box-shadow:0 6px 16px rgba(43,38,32,0.15); margin-bottom:1rem;
  }
  .bird-card span{ font-size:1.2rem; color:var(--sumi-soft); letter-spacing:0.02em; line-height:1.4; display:block; }
  .tag{
    border:1px solid var(--wakakusa); color:var(--wakakusa); font-size:1.3rem; padding:0.8rem 1.8rem;
    border-radius:2rem; letter-spacing:0.03em;
  }

  /* ---------- MENU ---------- */
  .menu{background:var(--pale); color:var(--shinai);}
  .menu .section-head h2{color:var(--kinari);}
  .menu-list{border-top:1px solid rgba(20,102,112,0.18);}
  .menu-item{
    display:flex; justify-content:space-between; align-items:baseline; gap:2.4rem;
    padding:2.6rem 0; border-bottom:1px solid rgba(20,102,112,0.18);
  }
  .menu-item .name{font-size:1.7rem; font-weight:500;}
  .menu-item .desc{font-size:1.35rem; color:var(--sumi-soft); margin-top:0.6rem; font-weight:300;}
  .menu-item .price{font-family:"Zen Old Mincho",serif; font-size:1.9rem; color:var(--tsuchi); white-space:nowrap;}

  /* ---------- VOICES ---------- */
  .voices{background:var(--paper); border-top:1px solid var(--line); border-bottom:1px solid var(--line);}
  .voice-grid{display:grid; grid-template-columns:repeat(3,1fr); gap:2.6rem;}
  @media(max-width:820px){.voice-grid{grid-template-columns:1fr;}}
  .voice-card{background:var(--kinari); border:1px solid var(--line); padding:3.2rem 2.8rem; border-radius:0.2rem;}
  .voice-card .stars{color:var(--tsuchi); font-size:1.3rem; letter-spacing:0.2rem; margin-bottom:1.6rem;}
  .voice-card p{font-size:1.45rem; color:var(--sumi-soft); margin-bottom:2rem;}
  .voice-card .who{font-size:1.25rem; color:var(--wakakusa); letter-spacing:0.05em;}

  .product-grid{ display:grid; grid-template-columns:repeat(3,1fr); gap:2.6rem; }
  @media(max-width:820px){ .product-grid{grid-template-columns:1fr;} }
  .product-card{
    border:1px solid var(--line); background:var(--kinari); border-radius:0.2rem; padding:3.4rem 2.8rem;
  }
  .product-card.disabled{ opacity:0.5; }
  .product-num{
    font-family:"Zen Old Mincho", serif; font-size:1.3rem; color:var(--tsuchi); letter-spacing:0.1em; margin-bottom:1.6rem;
  }
  .product-name{
    font-family:"Zen Old Mincho", serif; font-size:1.8rem; color:var(--shinai); font-weight:600; line-height:1.6; margin-bottom:1.6rem;
  }
  .product-desc{ font-size:1.35rem; color:var(--sumi-soft); line-height:1.9; margin-bottom:2rem; }
  .product-link{
    font-size:1.3rem; color:var(--tsuchi); font-weight:600; text-decoration:none; border-bottom:1px solid var(--tsuchi);
    padding-bottom:0.2rem;
  }

  /* ---------- BLOG / PLATFORM LINKS ---------- */
  .platform-grid{display:grid; grid-template-columns:repeat(4,1fr); gap:2.2rem;}
  @media(max-width:980px){.platform-grid{grid-template-columns:repeat(2,1fr);}}
  @media(max-width:560px){.platform-grid{grid-template-columns:1fr;}}
  .platform-card{
    display:block; border:1px solid var(--line); background:var(--paper); border-radius:0.2rem;
    padding:3.2rem 2.6rem; text-decoration:none; transition:transform .25s, box-shadow .25s;
  }
  a.platform-card:hover{ transform:translateY(-0.5rem); box-shadow:0 16px 30px rgba(20,102,112,0.18); }
  a.platform-card:hover .platform-icon{ animation:card-bounce .6s ease; }
  a.platform-card:hover .platform-arrow{ transform:translateX(0.4rem); opacity:1; }
  .platform-card.disabled{ opacity:0.55; cursor:default; }
  .platform-icon{
    width:5.2rem; height:5.2rem; border-radius:50%; display:flex; align-items:center; justify-content:center;
    font-family:"Zen Old Mincho", serif; font-weight:700; font-size:1.5rem; color:var(--kinari); margin-bottom:2rem;
    animation:card-float 3s ease-in-out infinite;
  }
  @keyframes card-float{
    0%,100%{ transform:translateY(0); }
    50%{ transform:translateY(-0.4rem); }
  }
  @keyframes card-bounce{
    0%{ transform:scale(1); }
    40%{ transform:scale(1.15); }
    70%{ transform:scale(0.95); }
    100%{ transform:scale(1); }
  }
  .note-icon{ background:#1A1A1A; }
  .ameba-icon{ background:var(--wakakusa); font-size:1.2rem; }
  .insta-icon{ background:linear-gradient(135deg, #F58529, #DD2A7B, #8134AF); }
  .youtube-icon{ background:#FF0000; font-size:1.6rem; }
  .platform-name{
    font-family:"Zen Old Mincho", serif; font-size:1.7rem; color:var(--shinai); font-weight:600;
    margin-bottom:1rem; display:flex; align-items:center; gap:0.6rem;
  }
  .platform-arrow{
    color:var(--tsuchi); opacity:0; transition:transform .25s, opacity .25s; font-weight:700;
  }
  .platform-desc{ font-size:1.35rem; color:var(--sumi-soft); line-height:1.8; }

  /* ---------- FOOTER / ACCESS ---------- */
  footer{background:#0B3238; color:#C9DEE0; padding:8rem 0 3.2rem;}
  .foot-grid{display:grid; grid-template-columns:1.2fr 1fr 1fr; gap:5rem; margin-bottom:6rem;}
  @media(max-width:760px){.foot-grid{grid-template-columns:1fr; gap:3.6rem;}}
  .foot-logo{font-family:"Zen Old Mincho",serif; font-size:1.9rem; color:var(--kinari); margin-bottom:1.8rem;}
  footer h4{font-size:1.3rem; letter-spacing:0.15em; color:#7FBEC4; margin-bottom:1.8rem;}
  footer p, footer li{font-size:1.35rem; line-height:2.1; color:#B8D6D9;}
  footer ul{list-style:none;}
  .foot-bottom{
    border-top:1px solid rgba(255,255,255,0.08); padding-top:2.6rem; font-size:1.2rem; color:#6FA8AD;
    display:flex; justify-content:space-between; flex-wrap:wrap; gap:1rem;
  }

  .reveal{opacity:0; transform:translateY(1.8rem); transition:opacity .7s ease, transform .7s ease;}
  .reveal.in{opacity:1; transform:translateY(0);}
