
:root{--purple:#241237;--green:#123c32;--gold:#b99a5b;--cream:#f4efe6;--ink:#241f1c;--muted:#6f655d;--line:rgba(185,154,91,.35)}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:"Yu Mincho","Hiragino Mincho ProN","Noto Serif JP",serif;color:var(--ink);background:var(--cream);line-height:1.9}a{color:inherit;text-decoration:none}
.site-header{position:sticky;top:0;z-index:20;background:rgba(36,18,55,.94);color:#fff;border-bottom:1px solid rgba(185,154,91,.35)}.header-inner{width:min(1120px,92%);margin:auto;display:flex;justify-content:space-between;align-items:center;min-height:72px}.logo{letter-spacing:.08em;font-size:18px}.logo span{display:block;font-size:11px;color:var(--gold);letter-spacing:.22em;margin-top:-4px}.nav{display:flex;gap:24px;font-size:14px;letter-spacing:.08em}.nav a:hover{color:var(--gold)}
.hero{color:#fff;background:radial-gradient(circle at 78% 20%,rgba(185,154,91,.16),transparent 28%),linear-gradient(130deg,rgba(36,18,55,.96),rgba(36,18,55,.91) 48%,rgba(18,60,50,.86)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='1400' height='900'%3E%3Cpath d='M0 640 C220 520 310 560 470 430 C650 280 740 370 910 240 C1080 110 1220 140 1400 60 L1400 900 L0 900 Z' fill='%23ffffff' opacity='.05'/%3E%3Cpath d='M0 720 C250 610 390 660 560 520 C740 370 850 420 1030 300 C1190 190 1300 190 1400 160' fill='none' stroke='%23d8c8a4' stroke-width='2' opacity='.16'/%3E%3C/svg%3E");background-size:cover}.hero-inner{width:min(1120px,92%);margin:auto;padding:120px 0 90px;display:grid;grid-template-columns:1.08fr .92fr;gap:56px;align-items:center}.eyebrow{color:var(--gold);letter-spacing:.22em;font-size:13px;text-transform:uppercase}.hero h1{font-size:54px;line-height:1.35;letter-spacing:.08em;margin:24px 0;font-weight:500}.lead{font-size:18px;line-height:2.05;color:rgba(255,255,255,.9)}.hero-card{border:1px solid var(--line);background:rgba(244,239,230,.08);min-height:410px;padding:42px;position:relative;box-shadow:0 24px 80px rgba(0,0,0,.22)}.hero-card:before{content:"";position:absolute;inset:22px;border:1px solid rgba(185,154,91,.23)}.hero-card>*{position:relative}.kanji{font-size:90px;color:rgba(185,154,91,.58);line-height:1;margin-bottom:30px}
.btns{display:flex;gap:16px;flex-wrap:wrap;margin-top:34px}.btn{display:inline-flex;align-items:center;justify-content:center;min-width:170px;padding:13px 22px;border:1px solid var(--gold);letter-spacing:.12em;font-size:14px}.btn.primary{background:var(--gold);color:#1e1425}.btn.secondary{color:#fff}
.section{padding:92px 0}.section.dark{background:var(--purple);color:#fff}.section.green,.page-hero{background:var(--green);color:#fff}.page-hero.purple{background:var(--purple)}.container{width:min(1120px,92%);margin:auto}.page-hero{padding:110px 0 76px}.page-hero h1{font-size:44px;font-weight:500;letter-spacing:.12em;margin:12px 0 0}.section-title{text-align:center;margin-bottom:52px}.section-title .en{color:var(--gold);letter-spacing:.25em;font-size:12px}.section-title h2{margin:12px 0 0;font-size:34px;font-weight:500;letter-spacing:.12em}.section-title p{color:var(--muted);max-width:760px;margin:22px auto 0}.dark .section-title p,.green .section-title p{color:rgba(255,255,255,.78)}
.grid-3{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}.card{background:rgba(255,255,255,.72);border:1px solid rgba(185,154,91,.35);padding:34px;min-height:260px}.dark .card,.green .card{background:rgba(255,255,255,.06);border-color:rgba(185,154,91,.35)}.card .num{color:var(--gold);letter-spacing:.2em;font-size:13px}.card h3{font-size:23px;font-weight:500;margin:10px 0 18px;letter-spacing:.06em}.card p{font-size:15px;color:#4b423c}.dark .card p,.green .card p{color:rgba(255,255,255,.78)}
.worries{display:grid;grid-template-columns:1fr 1fr;gap:16px 28px;list-style:none;padding:0;margin:0}.worries li{border-bottom:1px solid rgba(185,154,91,.33);padding:0 0 14px 18px;position:relative}.worries li:before{content:"";width:5px;height:5px;background:var(--gold);position:absolute;left:0;top:15px;border-radius:50%}.theme-list{display:grid;grid-template-columns:repeat(3,1fr);gap:14px}.theme-list div{border:1px solid rgba(185,154,91,.35);padding:18px 20px;background:rgba(255,255,255,.55)}
.profile{display:grid;grid-template-columns:.9fr 1.1fr;gap:48px;align-items:start}.profile-photo{min-height:420px;background:linear-gradient(160deg,rgba(36,18,55,.8),rgba(18,60,50,.55)),url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='700' height='700'%3E%3Ccircle cx='350' cy='260' r='170' fill='%23b99a5b' opacity='.14'/%3E%3Cpath d='M80 510 C210 420 290 450 390 330 C480 220 560 260 650 150' fill='none' stroke='%23f4efe6' stroke-width='2' opacity='.18'/%3E%3C/svg%3E");border:1px solid var(--line)}.profile h3{font-size:25px;font-weight:500;margin-top:0}.flow{counter-reset:item;display:grid;gap:14px}.flow div{counter-increment:item;border-left:2px solid var(--gold);padding:10px 0 10px 24px}.flow div:before{content:"0" counter(item);color:var(--gold);letter-spacing:.16em;margin-right:18px}.footer{background:#160d20;color:#fff;padding:56px 0;text-align:center;border-top:1px solid rgba(185,154,91,.35)}
.service-row{display:grid;grid-template-columns:260px 1fr;gap:38px;padding:48px 0;border-top:1px solid rgba(185,154,91,.38)}.service-row:last-child{border-bottom:1px solid rgba(185,154,91,.38)}.position{color:var(--gold);letter-spacing:.12em;font-size:14px}.service-row h2{font-size:30px;font-weight:500;margin:8px 0 4px}.service-row h3{font-size:22px;font-weight:500;margin:0 0 24px;color:var(--green)}.note{border:1px solid rgba(185,154,91,.45);background:rgba(185,154,91,.08);padding:18px 22px;margin-top:20px}
@media(max-width:820px){.nav{display:none}.hero-inner,.profile,.service-row{grid-template-columns:1fr}.hero h1{font-size:38px}.grid-3,.theme-list,.worries{grid-template-columns:1fr}.section{padding:66px 0}}


.contact-form{
  max-width:760px;
  margin:0 auto;
  text-align:left;
}
.form-row{
  margin-bottom:20px;
}
.form-row label{
  display:block;
  margin-bottom:8px;
  letter-spacing:.08em;
}
.form-row input,
.form-row select,
.form-row textarea{
  width:100%;
  padding:14px 16px;
  border:1px solid rgba(185,154,91,.45);
  background:rgba(255,255,255,.72);
  font-family:inherit;
  font-size:16px;
  color:var(--ink);
}
.form-row textarea{
  min-height:180px;
  resize:vertical;
}
.form-note{
  font-size:14px;
  color:var(--muted);
}
.hidden-field{
  position:absolute;
  left:-9999px;
  opacity:0;
}


/* =========================================================
   Japanese line-break control - safe version
   本文はスマホで自然に折り返す。見出しだけ孤立改行を抑える。
   ========================================================= */

/* 本文・カード・リスト類は、はみ出し防止を優先 */
p,
li,
.lead,
.card p,
.profile p,
.service-row p,
.worries li,
.theme-list div,
.flow div,
.btn{
  word-break:normal;
  overflow-wrap:anywhere;
  line-break:strict;
}

/* 見出しのみ、1文字残りを抑える */
h1,h2,h3,
.section-title h2,
.page-hero h1,
.card h3,
.profile h2,
.profile h3,
.service-row h2,
.service-row h3{
  word-break:keep-all;
  overflow-wrap:normal;
  line-break:strict;
  text-wrap:balance;
}

/* 字間を少しだけ詰める */
.hero h1{
  letter-spacing:.045em;
}
.section-title h2{
  letter-spacing:.07em;
}
.page-hero h1{
  letter-spacing:.08em;
}

/* スマホでは本文の横はみ出しを絶対に防ぐ */
@media(max-width:820px){
  body{
    overflow-x:hidden;
  }
  .container,
  .hero-inner,
  .header-inner{
    max-width:92%;
  }
  p,
  li,
  .lead,
  .card p,
  .profile p,
  .service-row p,
  .worries li,
  .theme-list div,
  .flow div,
  .btn{
    word-break:normal;
    overflow-wrap:anywhere;
  }
  .hero h1{
    font-size:36px;
    letter-spacing:.02em;
    line-height:1.5;
  }
  .section-title h2{
    font-size:29px;
    letter-spacing:.03em;
    line-height:1.7;
  }
  .page-hero h1{
    font-size:35px;
    letter-spacing:.035em;
    line-height:1.55;
  }
  .lead{
    font-size:16px;
    line-height:2;
  }
}

@media(max-width:390px){
  .hero h1{
    font-size:32px;
  }
  .section-title h2{
    font-size:25px;
  }
  .page-hero h1{
    font-size:31px;
  }
}

