:root{
    --paper:#F7F5F0;
    --paper-deep:#F1EEE7;
    --ink:#272420;
    --sub:#6B665E;
    --navy:#16213D;
    --navy-deep:#0F1730;
    --gold:#A9824B;
    --line:rgba(22,33,61,0.12);
    --overlay:rgba(15,20,35,0.38);
  }
  *{box-sizing:border-box;margin:0;padding:0;}
  html{scroll-behavior:smooth;-webkit-text-size-adjust:100%;}
  body{
    font-family:"Zen Kaku Gothic New","Hiragino Sans","Hiragino Kaku Gothic ProN",sans-serif;
    background:var(--paper);
    color:var(--ink);
    line-height:1.9;
    letter-spacing:0.02em;
    font-weight:300;
    -webkit-font-smoothing:antialiased;
    overflow-x:hidden;
  }
  img{display:block;width:100%;height:100%;object-fit:cover;}
  a{color:inherit;text-decoration:none;}
  .serif{font-family:"Shippori Mincho",serif;font-weight:500;}
  .eng{font-family:"Zen Kaku Gothic New",sans-serif;}

  /* ===== 共通 ===== */
  .eyebrow{
    display:block;font-size:11px;letter-spacing:0.28em;color:var(--gold);
    font-weight:500;margin-bottom:24px;text-transform:uppercase;
  }
  .eyebrow.on-dark{color:#D8C5A4;}
  .lead{
    font-size:clamp(24px,4.2vw,40px);
    line-height:1.8;
    color:var(--navy);
    font-weight:500;
  }
  .lead.on-dark{color:#fff;}
  .small{font-size:13.5px;color:var(--sub);line-height:2;font-weight:300;}
  .small.on-dark{color:#C9CCD6;}

  .fade{opacity:0;transform:translateY(22px);transition:opacity 1.1s ease, transform 1.1s ease;}
  .fade.is-visible{opacity:1;transform:translateY(0);}

  /* ===== Header ===== */
  .site-header{
    position:fixed;top:0;left:0;right:0;z-index:1000;
    display:flex;align-items:center;justify-content:space-between;
    padding:28px 28px;
    transition:background .4s ease, padding .4s ease, border-color .4s ease;
    border-bottom:1px solid transparent;
    mix-blend-mode:normal;
  }
  .site-header .logo{
    font-size:13px;font-weight:500;letter-spacing:0.22em;color:#fff;
    transition:color .4s ease;
  }
  .logo-img{height:30px;width:auto;display:block;}
  .logo-img.logo-dark{display:none;}
  .site-header.scrolled .logo-img.logo-white{display:none;}
  .site-header.scrolled .logo-img.logo-dark{display:block;}
  .site-header .h-link{
    font-size:11.5px;font-weight:500;letter-spacing:0.12em;color:#fff;
    border-bottom:1px solid rgba(255,255,255,0.5);padding-bottom:4px;
    transition:color .4s ease,border-color .4s ease;
  }
  .site-header.scrolled{
    background:rgba(247,245,240,0.88);backdrop-filter:blur(10px);
    border-bottom-color:var(--line);padding:20px 28px;
  }
  .site-header.scrolled .logo{color:var(--navy);}
  .site-header.scrolled .h-link{color:var(--navy);border-color:var(--navy);}

  /* ===== Hero（クロスフェード写真） ===== */
  .hero{
    position:relative;height:100vh;min-height:560px;
    display:flex;align-items:flex-end;
    overflow:hidden;
  }
  .hero-bg{position:absolute;inset:0;}
  .hero-bg img{
    position:absolute;inset:0;opacity:0;
    animation:heroFade 18s infinite;
    transform:scale(1.06);
    animation-timing-function:ease-in-out;
  }
  .hero-bg img:nth-child(1){animation-delay:0s;}
  .hero-bg img:nth-child(2){animation-delay:6s;}
  .hero-bg img:nth-child(3){animation-delay:12s;}
  @keyframes heroFade{
    0%{opacity:0;}
    4%{opacity:1;}
    30%{opacity:1;}
    36%{opacity:0;}
    100%{opacity:0;}
  }
  .hero::after{
    content:"";position:absolute;inset:0;
    background:linear-gradient(180deg, rgba(15,20,35,0.15) 0%, rgba(15,20,35,0.55) 100%);
    z-index:1;
  }
  .hero-content{position:relative;z-index:2;padding:0 28px 90px;width:100%;}
  .hero-content .eyebrow{color:#D8C5A4;}
  .hero h1{
    font-size:clamp(30px,6.4vw,58px);
    color:#fff;line-height:1.6;font-weight:500;
    margin-bottom:26px;
  }
  .hero-sub{font-size:14px;color:#FFFFFF;font-weight:400;letter-spacing:0.05em;margin-bottom:46px;}
  .hero-link{
    display:inline-flex;align-items:center;gap:12px;color:#fff;
    font-size:13px;letter-spacing:0.1em;font-weight:500;
    border-bottom:1px solid rgba(255,255,255,0.55);padding-bottom:8px;
  }
  .hero-link .arrow{transition:transform .3s;}
  .hero-link:hover .arrow{transform:translateX(6px);}
  .scroll-cue{
    position:absolute;bottom:32px;right:28px;z-index:2;
    font-size:10px;color:#E6E3DA;letter-spacing:0.2em;
    display:flex;flex-direction:column;align-items:center;gap:10px;
  }
  .scroll-cue .line{width:1px;height:36px;background:rgba(255,255,255,0.5);overflow:hidden;position:relative;}
  .scroll-cue .line::after{
    content:"";position:absolute;top:-100%;left:0;width:100%;height:100%;background:#fff;
    animation:scrollLine 2.2s infinite;
  }
  @keyframes scrollLine{0%{top:-100%;}100%{top:100%;}}

  /* ===== 静かなステートメント ===== */
  .statement{
    padding:170px 28px;text-align:center;background:var(--paper);
  }
  .statement .inner{max-width:640px;margin:0 auto;}

  /* ===== 写真＋テキスト分割 ===== */
  .split{background:var(--paper);}
  .split-grid{display:grid;grid-template-columns:1fr;}
  .split-photo{height:62vh;min-height:380px;position:relative;overflow:hidden;}
  .split-photo img{transition:transform 1.4s ease;}
  .split-text{padding:80px 28px;display:flex;align-items:center;}
  .split-text .inner{max-width:420px;}
  .split.reverse .split-grid{direction:rtl;}
  .split.reverse .split-text .inner{direction:ltr;}

  /* ===== フルブリード・統計モーメント ===== */
  .stat-moment{
    position:relative;height:78vh;min-height:480px;
    display:flex;align-items:center;justify-content:center;text-align:center;
    overflow:hidden;
  }
  .stat-moment img{position:absolute;inset:0;z-index:0;}
  .stat-moment::after{content:"";position:absolute;inset:0;background:var(--overlay);z-index:1;}
  .stat-moment .inner{position:relative;z-index:2;max-width:540px;padding:0 28px;}
  .stat-num{
    font-size:clamp(64px,13vw,128px);color:#fff;font-weight:500;line-height:1;
    margin-bottom:24px;
  }

  /* ===== プロセス（静かな3フェーズ） ===== */
  .process{padding:160px 28px;background:var(--paper-deep);}
  .process .inner{max-width:560px;margin:0 auto;}
  .phase-list{margin-top:64px;}
  .phase{
    display:flex;gap:28px;padding:38px 0;border-top:1px solid var(--line);
    align-items:baseline;
  }
  .phase:last-child{border-bottom:1px solid var(--line);}
  .phase-num{font-size:26px;color:var(--gold);letter-spacing:0.05em;flex:0 0 auto;width:52px;font-weight:700;}
  .phase-body h3{font-size:16px;color:var(--navy);font-weight:500;margin-bottom:8px;letter-spacing:0.02em;}
  .phase-body p{font-size:17px;color:var(--navy);font-weight:600;line-height:1.8;}

  /* ===== コミュニティ・モザイク ===== */
  .mosaic{padding:160px 28px 100px;background:var(--paper);text-align:center;}
  .mosaic .inner{max-width:640px;margin:0 auto;}
  .mosaic-grid{
    margin-top:56px;display:grid;grid-template-columns:1fr;gap:10px;
  }
  .mosaic-grid .m-item{height:280px;overflow:hidden;position:relative;}
  .mosaic-grid .m-item:nth-child(2){height:200px;}

  /* ===== 料金（控えめ） ===== */
  .pricing-quiet{padding:140px 28px;background:var(--navy);color:#fff;text-align:center;}
  .pricing-quiet .inner{max-width:520px;margin:0 auto;}
  .pricing-quiet .lead{color:#fff;font-size:clamp(18px,2.6vw,22px);line-height:2;}
  .pricing-detail{
    margin-top:40px;font-size:12.5px;color:#AEB6CC;letter-spacing:0.04em;
    max-height:0;overflow:hidden;transition:max-height .4s ease, margin-top .4s ease;
  }
  .pricing-detail.open{max-height:300px;margin-top:32px;}
  .pricing-detail .row{display:flex;justify-content:space-between;gap:16px;padding:14px 0;border-top:1px solid rgba(255,255,255,0.12);text-align:left;}
  .pricing-detail .row span:first-child{flex:1;color:#FFFFFF;font-size:15px;font-weight:600;letter-spacing:0.01em;}
  .pricing-detail .row span:last-child{flex:0 0 auto;white-space:nowrap;color:#FFFFFF;font-size:18px;font-weight:600;letter-spacing:0.02em;}
  .pricing-toggle{
    margin-top:36px;display:inline-block;font-size:11.5px;letter-spacing:0.12em;
    color:#D8C5A4;border-bottom:1px solid rgba(216,197,164,0.5);padding-bottom:6px;cursor:pointer;
  }

  /* ===== FAQ（簡潔） ===== */
  .faq-quiet{padding:140px 28px;background:var(--paper);}
  .faq-quiet .inner{max-width:560px;margin:0 auto;}
  .faq-row{border-top:1px solid var(--line);padding:28px 0;cursor:pointer;}
  .faq-row:last-child{border-bottom:1px solid var(--line);}
  .faq-row .q{display:flex;justify-content:space-between;align-items:baseline;font-size:14.5px;color:var(--navy);font-weight:500;letter-spacing:0.02em;}
  .faq-row .q .mk{color:var(--gold);font-size:15px;transition:transform .3s;}
  .faq-row.open .q .mk{transform:rotate(45deg);}
  .faq-row .a{max-height:0;overflow:hidden;transition:max-height .35s ease;}
  .faq-row .a p{font-size:15.5px;color:var(--navy);font-weight:500;padding-top:16px;line-height:1.95;}

  /* ===== 最終CTA ===== */
  .final-cta{
    position:relative;height:90vh;min-height:540px;
    display:flex;align-items:center;justify-content:center;text-align:center;
    overflow:hidden;
  }
  .final-cta img{position:absolute;inset:0;}
  .final-cta::after{content:"";position:absolute;inset:0;background:rgba(15,20,35,0.5);}
  .final-cta .inner{position:relative;z-index:2;max-width:520px;padding:0 28px;}
  .final-cta h2{font-size:clamp(26px,4.5vw,42px);color:#fff;font-weight:500;margin-bottom:22px;}
  .final-cta .small{margin-bottom:42px;}

  /* ===== お問い合わせフォーム ===== */
  .contact-form{padding:140px 28px 160px;background:var(--paper);}
  .contact-form .inner{max-width:520px;margin:0 auto;}
  .contact-form form{display:flex;flex-direction:column;gap:30px;}
  .f-row{display:flex;flex-direction:column;gap:10px;}
  .f-row label{
    font-size:12px;letter-spacing:0.08em;color:var(--navy);font-weight:500;
  }
  .f-row label .req{
    font-size:10px;color:var(--gold);border:1px solid var(--gold);
    padding:1px 7px;letter-spacing:0.05em;margin-left:6px;font-weight:500;
  }
  .f-row input,.f-row textarea{
    font-family:"Zen Kaku Gothic New",sans-serif;
    font-size:14px;color:var(--ink);background:transparent;
    border:none;border-bottom:1px solid var(--line);
    padding:12px 2px;outline:none;letter-spacing:0.02em;
    transition:border-color .25s;resize:vertical;
  }
  .f-row input::placeholder,.f-row textarea::placeholder{color:#A8A29A;}
  .f-row input:focus,.f-row textarea:focus{border-color:var(--gold);}
  .f-submit{
    margin-top:12px;align-self:flex-start;
    background:var(--navy);color:#fff;border:1px solid var(--navy);
    font-size:13px;letter-spacing:0.12em;font-weight:500;
    padding:17px 44px;cursor:pointer;transition:opacity .2s;
  }
  .f-submit:hover{opacity:0.85;}
  .contact-form form.is-hidden{display:none;}
  .f-thanks{display:none;text-align:center;padding:40px 0;}
  .f-thanks.is-visible{display:block;}

  footer{
    background:var(--navy-deep);color:#8B95AC;text-align:center;
    padding:70px 28px 50px;font-size:11px;letter-spacing:0.08em;
  }
  footer .f-logo-img{height:24px;width:auto;margin:0 auto 22px;}
  footer .f-tagline{display:block;margin:0 auto 30px;font-size:14px;color:#C9CCD6;line-height:1.8;white-space:nowrap;}
  footer .f-company{font-size:11px;color:#FFFFFF;line-height:2;margin-bottom:26px;letter-spacing:0.04em;}
  footer .f-copyright{font-size:11px;letter-spacing:0.08em;}

  /* ============================================
     768px〜
     ============================================ */
  @media (min-width:768px){
    .hero-content{padding:0 56px 110px;}
    .statement{padding:220px 56px;}
    .split-grid{grid-template-columns:1fr 1fr;align-items:stretch;}
    .split-photo{height:auto;min-height:560px;}
    .split-text{padding:0 64px;}
    .process{padding:200px 56px;}
    .mosaic{padding:200px 56px 140px;}
    .mosaic-grid{grid-template-columns:1.2fr 1fr 1fr;grid-template-rows:280px 280px;}
    .mosaic-grid .m-item:nth-child(1){grid-row:1 / 3;height:100%;}
    .mosaic-grid .m-item:nth-child(2){height:100%;}
    .mosaic-grid .m-item:nth-child(3){height:100%;}
    .pricing-quiet{padding:180px 56px;}
    .faq-quiet{padding:180px 56px;}
  }

  /* ============================================
     1024px〜
     ============================================ */
  @media (min-width:1024px){
    .site-header{padding:36px 64px;}
    .site-header.scrolled{padding:24px 64px;}
    .hero-content{padding:0 64px 130px;max-width:680px;}
    .statement{padding:260px 64px;}
    .statement .inner{max-width:760px;}
    .split-text .inner{max-width:440px;}
    .stat-moment{height:86vh;}
    .process .inner{max-width:640px;}
    .mosaic .inner{max-width:760px;}
    .pricing-quiet .inner{max-width:560px;}
    .faq-quiet .inner{max-width:620px;}
    footer{padding:90px 64px 60px;}
  }

/* ===== WordPress integration tweaks ===== */
html { margin-top: 0 !important; }
body.wp-admin-bar .site-header, .admin-bar .site-header { top: 32px; }
@media screen and (max-width:782px){ body.wp-admin-bar .site-header, .admin-bar .site-header { top: 46px; } }
.site-header.site-header--solid,
.site-header.scrolled {
  background: rgba(247,245,240,0.88);
  backdrop-filter: blur(10px);
  border-bottom-color: var(--line);
  padding: 20px 28px;
}
.site-header.site-header--solid .logo,
.site-header.site-header--solid .h-link,
.site-header.scrolled .logo,
.site-header.scrolled .h-link { color: var(--navy); border-color: var(--navy); }
.site-header.site-header--solid .logo-img.logo-white,
.site-header.scrolled .logo-img.logo-white { display:none; }
.site-header.site-header--solid .logo-img.logo-dark,
.site-header.scrolled .logo-img.logo-dark { display:block; }
@media (min-width:1024px){ .site-header.site-header--solid, .site-header.scrolled{ padding:24px 64px; } }
.logo-img { max-width: 160px; height: auto; object-fit: contain; }
footer .f-logo-img { max-width: 180px; object-fit: contain; }
.f-submit { border-radius: 0; font-family:"Zen Kaku Gothic New",sans-serif; }
.contact-form form input:-webkit-autofill,
.contact-form form textarea:-webkit-autofill {
  -webkit-box-shadow: 0 0 0 1000px var(--paper) inset;
  -webkit-text-fill-color: var(--ink);
}
.hidden-tracking-form { display:none; }
.company-link {
  margin-top: 26px;
  font-size: 11px;
  letter-spacing: .08em;
}
.company-link a { color:#C9CCD6; border-bottom:1px solid rgba(201,204,214,.45); padding-bottom:3px; }
.thanks-page {
  min-height: 100vh;
  padding: 160px 28px 120px;
  background: var(--paper);
  display:flex;
  align-items:center;
  justify-content:center;
  text-align:center;
}
.thanks-page .inner { max-width: 680px; margin: 0 auto; }
.thanks-page .lead { margin-top: 0; }
.thanks-page .thanks-card {
  margin-top: 50px;
  padding: 48px 34px;
  border: 1px solid var(--line);
  background: rgba(255,255,255,.28);
}
.thanks-page .thanks-message {
  color: var(--navy);
  font-weight: 500;
  font-size: clamp(15px, 2.6vw, 18px);
  line-height: 2;
}
.thanks-page .line-cta {
  display:block;
  width:min(360px, 100%);
  height:auto;
  margin: 34px auto 0;
  object-fit: contain;
}
.thanks-page .back-link {
  display:inline-flex;
  margin-top: 40px;
  color: var(--navy);
  font-size: 12px;
  letter-spacing: .12em;
  border-bottom: 1px solid var(--navy);
  padding-bottom: 6px;
  font-weight: 500;
}
.grecaptcha-badge { visibility: hidden; }
@media (max-width: 767px){
  .thanks-page { padding-top: 130px; }
  .thanks-page .thanks-card { padding: 34px 22px; }
  footer .f-tagline { white-space: normal; }
}
