:root{
  --paper:#f5f2ea;
  --paper2:#eeeae0;
  --ink:#1f211f;
  --muted:#666a65;
  --line:rgba(31,33,31,.16);
  --sky:#c9dfe8;
  --coral:#d97860;
  --white:#f8f6ef;
}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;background:var(--paper);color:var(--ink);font-family:-apple-system,BlinkMacSystemFont,"Hiragino Kaku Gothic ProN","Yu Gothic",Meiryo,sans-serif;letter-spacing:.02em;line-break:strict;word-break:auto-phrase;overflow-wrap:break-word}
a{color:inherit;text-decoration:none}
img{max-width:100%;display:block}
button,input,select,textarea{font:inherit;color:inherit}
h1,h2,h3,p{margin-top:0}
h1,h2,h3,.balance{text-wrap:balance}
.keep{white-space:nowrap}
.mobile-only-break{display:none}
.page{overflow:hidden}
.header{height:104px;display:flex;align-items:center;justify-content:space-between;padding:0 5.3vw;position:absolute;z-index:20;width:100%;top:0;left:0}
.logo{width:min(34vw,490px);height:auto;display:block}
.nav{display:flex;gap:30px;font-size:12px;letter-spacing:.16em;text-transform:uppercase;align-items:center}
.nav a{position:relative}
.nav a:after{content:"";position:absolute;left:0;bottom:-6px;width:0;height:1px;background:currentColor;transition:width .3s ease}
.nav a:hover:after,.nav a[aria-current="page"]:after{width:100%}
.mobile-menu{display:none}
.header-dark{color:var(--paper)}
.header-dark .logo{filter:invert(1)}
.header-dark .mobile-menu nav{background:var(--ink);border-color:var(--paper);color:var(--paper)}
.section{padding:140px 5.3vw;border-top:1px solid var(--line)}
.section-label{font-size:10px;letter-spacing:.22em;text-transform:uppercase;color:var(--muted);margin-bottom:58px}
.mincho{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-weight:500;letter-spacing:.02em}
.button-link{display:inline-flex;align-items:center;justify-content:space-between;gap:48px;min-width:260px;border:1px solid currentColor;padding:17px 20px;font-size:11px;letter-spacing:.12em;text-transform:uppercase;transition:.25s}
.button-link:hover{background:var(--ink);color:var(--paper);border-color:var(--ink)}
.button-link.light:hover{background:var(--paper);color:var(--ink);border-color:var(--paper)}
.small-note{font-size:11px;line-height:1.9;color:var(--muted)}

/* TOP */
.hero{min-height:100vh;position:relative;padding:104px 5.3vw 64px;display:flex;align-items:center}
.hero:before{content:"";position:absolute;width:48vw;height:48vw;right:-15vw;top:-11vw;border-radius:50%;background:radial-gradient(circle at 42% 45%,rgba(201,223,232,.46),rgba(201,223,232,.16) 48%,rgba(201,223,232,0) 72%);pointer-events:none}
.hero:after{content:"";position:absolute;width:24vw;height:36vw;right:9vw;bottom:-17vw;transform:rotate(11deg);background:linear-gradient(155deg,rgba(217,120,96,.08),rgba(217,120,96,0));border-radius:50%;pointer-events:none}
.hero-inner{width:100%;display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:40px;align-items:end;position:relative;z-index:1;padding-top:8vh}
.eyebrow{font-size:11px;letter-spacing:.22em;text-transform:uppercase;margin-bottom:30px;color:var(--muted)}
.hero h1,.story-copy h2,.approach h2,.service h2,.price h2,.about h2,.contact-teaser h2,.footer-copy,.page-hero h1,.sub-head h2{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-weight:500;letter-spacing:.02em}
.hero h1{font-size:clamp(58px,7.4vw,116px);line-height:1.18;margin-bottom:0;max-width:900px}
.hero h1 .line{display:block}.hero h1 .second{margin-left:.55em}
.hero-sub{align-self:end;padding-bottom:12px;max-width:320px;font-size:15px;line-height:2;color:#3f433f}
.scroll{position:absolute;left:5.3vw;bottom:30px;font-size:10px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}
.scroll:after{content:"";display:inline-block;width:50px;height:1px;background:var(--ink);margin-left:12px;vertical-align:middle;opacity:.45}
.story-grid{display:grid;grid-template-columns:1.03fr .97fr;gap:8vw;align-items:start}
.horizon{aspect-ratio:1.18/1;position:relative;overflow:hidden;background:linear-gradient(to bottom,#dfe9e8 0%,#e9eee9 54%,#b8c9ca 54.4%,#9fb7bc 56%,#a8bec1 100%)}
.horizon:before{content:"";position:absolute;left:0;right:0;top:50%;height:10%;background:linear-gradient(to bottom,rgba(255,255,255,.36),rgba(255,255,255,0));filter:blur(10px)}
.horizon:after{content:"";position:absolute;width:36%;height:4.5%;left:51%;top:51%;background:#778b87;border-radius:50% 65% 30% 40%;filter:blur(.5px);opacity:.45}
.story-copy h2{font-size:clamp(34px,3.5vw,58px);line-height:1.5;margin-bottom:38px}
.story-copy p{font-size:15px;line-height:2.2;margin-bottom:18px;max-width:620px}.lead{font-size:18px!important;color:#323632}
.approach{padding-bottom:160px}.approach-head{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end;margin-bottom:85px}
.approach h2{font-size:clamp(42px,5.3vw,78px);line-height:1.32;margin-bottom:0}
.approach-head p{font-size:15px;line-height:2.15;color:#454945;margin-bottom:0;max-width:540px}
.steps{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid var(--ink);border-bottom:1px solid var(--ink)}
.step{padding:26px 22px 40px;border-right:1px solid var(--line);min-height:190px;display:flex;flex-direction:column;justify-content:space-between}.step:last-child{border-right:none}
.step-num{font-size:10px;letter-spacing:.14em;color:var(--muted)}.step-name{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-size:35px;font-weight:500}
.service-intro{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end;margin-bottom:60px}.service h2{font-size:clamp(42px,5.3vw,78px);line-height:1.32;margin-bottom:0}.service-intro p{font-size:15px;line-height:2.1;margin-bottom:0;color:#454945;max-width:540px}
.service-grid{display:grid;grid-template-columns:repeat(3,1fr);border-top:1px solid var(--ink)}
.service-card{padding:36px 34px 56px 0;border-bottom:1px solid var(--ink);min-height:370px;display:flex;flex-direction:column}.service-card+.service-card{padding-left:34px;border-left:1px solid var(--line)}
.service-card .num{font-size:10px;color:var(--muted);margin-bottom:56px;letter-spacing:.1em}.service-card h3{font-size:14px;letter-spacing:.14em;margin:0 0 10px}.service-card strong{display:block;font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-size:30px;font-weight:500;margin-bottom:22px}.service-card p{font-size:14px;line-height:2;margin-bottom:0;color:#444944}.service-card .arrow{margin-top:auto;padding-top:30px;font-size:20px}
.service-more{margin-top:42px;display:flex;justify-content:flex-end}
.price{background:#202220;color:#f4f1e9}.price .section-label{color:#b9beb8}.price h2{font-size:clamp(42px,5vw,76px);line-height:1.3;margin-bottom:70px}.price-note{font-size:14px;line-height:2;color:#cdd2cc;max-width:680px;margin:-45px 0 60px}
.price-grid{display:grid;grid-template-columns:1fr 1fr;border-top:1px solid rgba(255,255,255,.4);border-bottom:1px solid rgba(255,255,255,.4)}
.price-card{padding:38px 5vw 48px 0}.price-card+.price-card{padding-left:5vw;border-left:1px solid rgba(255,255,255,.2)}.kicker{font-size:11px;letter-spacing:.18em;color:#c8cec8;margin-bottom:32px}.price-card h3{font-size:28px;margin-bottom:30px;font-weight:500}.amount{font-size:42px;font-weight:500;letter-spacing:.02em;margin-bottom:24px}.amount span{font-size:14px;color:#cdd2cc;margin-left:5px}.price-card p{font-size:14px;line-height:2;color:#d6dad5;max-width:530px}.price-message{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-size:clamp(28px,3.2vw,48px);line-height:1.55;margin-top:78px;max-width:900px;font-weight:500}.price-more{margin-top:42px}
.about-section{background:var(--paper2)}.about-wrap{display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw;align-items:start}.about h2{font-size:clamp(42px,5vw,72px);margin-bottom:34px}.about p{font-size:15px;line-height:2.2;color:#444944;margin-bottom:18px}.about-mark{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-size:clamp(32px,4.8vw,76px);line-height:1.34;margin-top:78px}.about-mark .line{display:block}.about-mark .second{margin-left:1.2em}
.contact-teaser{display:grid;grid-template-columns:.8fr 1.2fr;gap:10vw;align-items:start}.contact-teaser h2{font-size:clamp(42px,5vw,76px);line-height:1.35;margin-bottom:0}.contact-teaser-body{max-width:650px}.contact-teaser p{font-size:15px;line-height:2.2;color:#444944;margin-bottom:30px}.contact-actions{display:flex;gap:14px;flex-wrap:wrap}
.footer{padding:120px 5.3vw 48px;border-top:1px solid var(--line)}.footer-copy{font-size:clamp(38px,5vw,72px);line-height:1.4;margin-bottom:100px}.footer-bottom{display:flex;align-items:end;justify-content:space-between;gap:20px}.footer-logo{width:min(35vw,440px);height:auto}.footer-meta{text-align:right;font-size:10px;letter-spacing:.12em;color:var(--muted);line-height:2}

/* SUB PAGES */
.page-hero{min-height:72vh;padding:180px 5.3vw 86px;display:flex;align-items:end;position:relative;border-bottom:1px solid var(--line)}
.page-hero.dark{background:var(--ink);color:var(--paper)}
.page-hero-inner{width:100%;display:grid;grid-template-columns:1fr minmax(280px,420px);gap:8vw;align-items:end}
.page-hero .eyebrow{margin-bottom:26px}.page-hero.dark .eyebrow{color:#b9beb8}
.page-hero h1{font-size:clamp(64px,8vw,128px);line-height:1.0;margin-bottom:0;letter-spacing:-.02em}
.page-hero p{font-size:15px;line-height:2.1;margin-bottom:4px;color:#4b504b}.page-hero.dark p{color:#cdd2cc}
.sub-section{padding:120px 5.3vw;border-bottom:1px solid var(--line)}
.sub-head{display:grid;grid-template-columns:.85fr 1.15fr;gap:9vw;align-items:start;margin-bottom:64px}
.sub-head h2{font-size:clamp(36px,4.6vw,68px);line-height:1.35;margin-bottom:0}
.sub-head p{font-size:15px;line-height:2.15;color:#4b504b;margin-bottom:0;max-width:650px}
.detail-list{border-top:1px solid var(--ink)}
.detail-row{display:grid;grid-template-columns:150px 1fr 1fr;gap:34px;padding:32px 0;border-bottom:1px solid var(--line);align-items:start}
.detail-row .code{font-size:10px;letter-spacing:.16em;color:var(--muted);padding-top:7px}.detail-row h3{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-size:26px;font-weight:500;margin-bottom:10px}.detail-row p{font-size:13px;line-height:2;color:#4b504b;margin-bottom:0}
.price-detail{background:var(--ink);color:var(--paper)}.price-detail .section-label{color:#b9beb8}.price-detail .sub-head p{color:#cdd2cc}.price-detail .detail-list{border-top-color:rgba(255,255,255,.4)}.price-detail .detail-row{border-bottom-color:rgba(255,255,255,.18)}.price-detail .detail-row .code{color:#aeb4ae}.price-detail .detail-row p{color:#d4d9d3}
.reference-price{font-size:32px;line-height:1.4;margin:4px 0 12px}.reference-price small{font-size:11px;letter-spacing:.1em;color:#bfc5bf;display:block;margin-bottom:5px}.reference-price span{font-size:14px;color:#cdd2cc;margin-left:5px}
.scope-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:1px;background:var(--line);border:1px solid var(--line)}
.scope-card{background:var(--paper);padding:32px;min-height:220px}.scope-card h3{font-size:14px;letter-spacing:.12em;margin-bottom:20px}.scope-card p,.scope-card li{font-size:13px;line-height:2;color:#4b504b}.scope-card ul{margin:0;padding-left:1.2em}
.cta-band{padding:110px 5.3vw;display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:end}.cta-band h2{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-size:clamp(38px,4.5vw,68px);line-height:1.4;margin-bottom:0}.cta-band p{font-size:14px;line-height:2;color:#4b504b;max-width:560px;margin-bottom:28px}

/* CONTACT PAGE */
.contact-page{padding:110px 5.3vw 140px}.contact-intro{display:grid;grid-template-columns:.8fr 1.2fr;gap:9vw;margin-bottom:76px}.contact-intro h2{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-size:clamp(34px,4.2vw,62px);line-height:1.4;margin-bottom:0}.contact-intro p{font-size:14px;line-height:2.2;color:#4b504b;max-width:680px;margin-bottom:0}
.contact-grid{display:grid;grid-template-columns:minmax(0,1.5fr) minmax(280px,.5fr);gap:6vw;align-items:start}.form{border-top:1px solid var(--ink)}.field{display:grid;grid-template-columns:220px 1fr;border-bottom:1px solid var(--line);padding:20px 0;gap:24px;align-items:start}.field label{font-size:12px;letter-spacing:.05em;padding-top:11px}.required{font-size:9px;color:var(--coral);margin-left:8px;vertical-align:middle;letter-spacing:.06em}.field input,.field select,.field textarea{width:100%;background:transparent;border:0;border-bottom:1px solid rgba(31,33,31,.28);outline:none;padding:9px 4px 10px;font-size:13px;border-radius:0}.field textarea{min-height:104px;resize:vertical}.field input:focus,.field select:focus,.field textarea:focus{border-color:var(--ink)}
.consent{display:block;font-size:12px;line-height:1.8;color:#555a55;margin-top:24px}.consent input{margin-right:8px}.send{margin-top:26px;width:100%;border:1px solid var(--ink);background:var(--ink);color:var(--paper);padding:18px 20px;font-size:12px;letter-spacing:.14em;cursor:pointer;transition:.25s}.send:hover{background:transparent;color:var(--ink)}.notice{margin-top:26px;padding:20px 0;border-top:1px solid var(--line);border-bottom:1px solid var(--line);font-size:12px;line-height:1.9;color:#555a55}.notice strong{display:block;color:var(--ink);font-size:12px;margin-bottom:4px}.line-box{position:sticky;top:28px;border-top:1px solid var(--ink);padding-top:24px}.line-box .mini{font-size:10px;letter-spacing:.18em;color:var(--muted);margin-bottom:20px}.line-box h3{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-size:26px;font-weight:500;margin-bottom:14px}.line-box p{font-size:12px;line-height:1.9;color:#555a55;margin-bottom:22px}.line-qr{width:190px;background:#fff;padding:10px}.line-btn{display:none;border:1px solid var(--ink);padding:16px;text-align:center;font-size:12px;letter-spacing:.08em;margin-top:18px}

/* PRIVACY */
.policy{max-width:920px;margin:0 auto;padding:120px 0}.policy h2{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-size:30px;font-weight:500;margin:60px 0 18px}.policy h2:first-child{margin-top:0}.policy p,.policy li{font-size:13px;line-height:2.15;color:#4b504b}.policy ul{padding-left:1.4em}.draft-note{border:1px solid var(--line);padding:20px 22px;margin-bottom:50px;font-size:12px;line-height:1.9;color:#555a55}

@media(max-width:820px){
  .header{height:78px;padding:0 22px}.logo{width:250px}.nav{display:none}.mobile-menu{display:block;position:relative}.mobile-menu summary{list-style:none;font-size:10px;letter-spacing:.15em;cursor:pointer}.mobile-menu summary::-webkit-details-marker{display:none}.mobile-menu nav{position:absolute;right:0;top:28px;min-width:190px;background:var(--paper);border:1px solid var(--ink);padding:15px;display:grid;gap:6px}.mobile-menu nav a{padding:10px 8px;font-size:11px;letter-spacing:.12em}
  .hero{padding:78px 22px 46px;min-height:92vh}.hero-inner{grid-template-columns:1fr;align-items:center;gap:42px;padding-top:12vh}.hero h1{font-size:clamp(48px,14.2vw,60px)}.hero h1 .second{margin-left:.25em}.hero-sub{font-size:13px;line-height:1.9;padding:0;max-width:300px}.scroll{left:22px;bottom:22px}
  .section{padding:94px 22px}.section-label{margin-bottom:40px}.story-grid,.approach-head,.service-intro,.about-wrap,.contact-teaser,.sub-head,.contact-intro,.cta-band{grid-template-columns:1fr;gap:52px}.story-copy h2{font-size:clamp(32px,9vw,40px)}.story-copy p{font-size:14px}.approach h2,.service h2{font-size:clamp(39px,11vw,48px)}
  .steps{grid-template-columns:1fr 1fr}.step:nth-child(2){border-right:none}.step:nth-child(-n+2){border-bottom:1px solid var(--line)}.step{min-height:160px}.step-name{font-size:28px}
  .service-grid{grid-template-columns:1fr}.service-card+.service-card{padding-left:0;border-left:none}.service-card{padding-right:0;min-height:300px}.service-more{justify-content:flex-start}
  .price-grid{grid-template-columns:1fr}.price-card+.price-card{padding-left:0;border-left:none;border-top:1px solid rgba(255,255,255,.2)}.price-card{padding-right:0}.price-note{margin-top:-45px}.amount{font-size:36px}.price-message{font-size:clamp(28px,8vw,38px)}
  .about-mark{margin-top:15px;font-size:clamp(34px,10vw,47px)}.about-mark .second{margin-left:.65em}.contact-actions{display:grid}.button-link{min-width:0;width:100%}
  .footer{padding:80px 22px 34px}.footer-copy{margin-bottom:70px}.footer-bottom{align-items:flex-start;flex-direction:column}.footer-logo{width:260px}.footer-meta{text-align:left}
  .page-hero{min-height:62vh;padding:140px 22px 62px}.page-hero-inner{grid-template-columns:1fr;gap:36px}.page-hero h1{font-size:clamp(53px,15.5vw,76px)}.page-hero p{font-size:13px}.sub-section{padding:90px 22px}.sub-head h2{font-size:clamp(36px,10vw,48px)}
  .detail-row{grid-template-columns:1fr;gap:10px;padding:28px 0}.detail-row .code{padding-top:0}.detail-row h3{font-size:24px}.scope-grid{grid-template-columns:1fr}.scope-card{min-height:0}.cta-band{padding:85px 22px}.cta-band h2{font-size:clamp(36px,10vw,48px)}
  .contact-page{padding:84px 22px 110px}.contact-grid{grid-template-columns:1fr;gap:70px}.field{grid-template-columns:1fr;gap:2px}.field label{padding-top:0}.field input,.field select,.field textarea{font-size:16px}.line-box{position:static}.line-qr{display:none}.line-btn{display:block}
  .policy{padding:90px 22px}.policy h2{font-size:26px}
}
@media(max-width:430px){
  .phrase-sora{white-space:normal;display:inline-block}
  .phrase-sora .mobile-only-break{display:block}
}
@media(max-width:380px){
  .logo{width:220px}.hero h1{font-size:48px}.about-mark{font-size:34px}.amount{font-size:32px}.step{padding-left:15px;padding-right:15px}.step-name{font-size:25px}
}

/* Concept 04: privacy / consent / future-proof contact details */
.policy-lead{font-family:"Hiragino Mincho ProN","Yu Mincho",YuMincho,serif;font-size:17px!important;line-height:2!important;color:var(--ink)!important;margin-bottom:54px}
.policy-meta{margin-top:70px;padding-top:24px;border-top:1px solid var(--line);font-size:11px!important;color:var(--muted)!important}
.optional-consent{margin-top:14px}.optional{display:inline-block;font-size:9px;letter-spacing:.06em;color:var(--muted);margin-left:6px;border:1px solid var(--line);padding:1px 5px;vertical-align:1px}
.consent-note{font-size:11px;line-height:1.8;color:var(--muted);margin:6px 0 0 24px}
.security-note{margin-top:18px;padding:18px 0;border-bottom:1px solid var(--line);font-size:11px;line-height:1.9;color:#555a55}.security-note strong{display:block;color:var(--ink);font-size:10px;letter-spacing:.14em;margin-bottom:4px}
.hp-field{position:absolute!important;left:-10000px!important;width:1px!important;height:1px!important;overflow:hidden!important}
.field[hidden]{display:none!important}
@media(max-width:820px){.policy-lead{font-size:15px!important}.consent-note{margin-left:0}}


/* Release RC1: secure contact / confirmation */
.amount-label{display:block;margin:0 0 5px;font-size:11px;letter-spacing:.1em}
.form-error-summary{margin:0 0 42px;padding:22px 24px;border:1px solid var(--coral);font-size:12px;line-height:1.9}
.form-error-summary strong{display:block;font-size:13px;margin-bottom:6px}
.form-error-summary ul{margin:8px 0 0;padding-left:1.4em}
.form-error-summary p{margin:8px 0 0;color:#555a55}
.compact-hero{min-height:58vh}
.confirm-page{max-width:1120px;margin:0 auto}
.confirm-list{border-top:1px solid var(--ink)}
.confirm-row{display:grid;grid-template-columns:240px 1fr;gap:28px;padding:22px 0;border-bottom:1px solid var(--line);align-items:start}
.confirm-row span{font-size:11px;letter-spacing:.06em;color:var(--muted)}
.confirm-row strong{font-size:13px;line-height:1.9;font-weight:500;overflow-wrap:anywhere}
.confirm-actions{display:grid;grid-template-columns:1fr 1fr;gap:18px;margin-top:34px}
.confirm-actions .button-link{width:100%;justify-content:space-between}
.confirm-send{margin:0}
.setup-warning{margin:18px 0 0;padding:16px 18px;border:1px solid var(--coral);font-size:11px;line-height:1.9;color:#555a55}
.thanks-link{margin-top:24px}

@media(max-width:820px){
  .confirm-row{grid-template-columns:1fr;gap:8px}
  .confirm-actions{grid-template-columns:1fr}
}


/* RC11: stable typography + semantic mobile wrapping.
   Layout/grid rules remain the original RC6 rules. */
@media (min-width:821px){
  .hero-sub{font-size:18px;line-height:1.9;max-width:360px}
  .story-copy p{font-size:18px;line-height:2}
  .lead{font-size:20px!important}
  .approach-head p,.service-intro p{font-size:18px;line-height:1.95}
  .service-card p{font-size:17px;line-height:1.9}
  .price-note,.price-card p{font-size:17px;line-height:1.9}
  .about p,.contact-teaser p{font-size:18px;line-height:2}
  .page-hero p{font-size:17px;line-height:1.95}
  .sub-head p{font-size:18px;line-height:1.95}
  .detail-row p{font-size:17px;line-height:1.9}
  .scope-card p,.scope-card li{font-size:17px;line-height:1.9}
  .cta-band p{font-size:17px;line-height:1.9}
  .contact-intro p{font-size:18px;line-height:2}
  .field label{font-size:15px}
  .consent{font-size:15px;line-height:1.8}
  .notice,.notice strong{font-size:15px}
  .line-box p{font-size:15px;line-height:1.85}
  .policy p,.policy li{font-size:17px;line-height:1.95}
  .policy-lead{font-size:19px!important;line-height:1.95!important}
  .draft-note{font-size:15px;line-height:1.85}
  .consent-note,.security-note{font-size:14px;line-height:1.8}
  .form-error-summary{font-size:15px;line-height:1.8}
  .form-error-summary strong{font-size:16px}
  .confirm-row strong{font-size:17px;line-height:1.8}
  .setup-warning,.small-note{font-size:14px;line-height:1.8}
}

.narrow-only-break{display:none}
.desktop-price-break{display:block}

@media (max-width:820px){
  body{word-break:normal;overflow-wrap:break-word;line-break:strict}
  p,li,.hero-sub,.page-hero p,.contact-intro p,.contact-teaser p,.sub-head p,.service-intro p,.approach-head p{text-wrap:pretty}
  .keep{white-space:normal}

  /* Preserve the approved mobile body size. */
  .hero-sub,.story-copy p,.approach-head p,.service-intro p,.about p,.contact-teaser p,
  .page-hero p,.sub-head p,.contact-intro p,.policy p,.policy li{font-size:16px;line-height:1.95}
  .lead{font-size:18px!important}
  .service-card p,.price-note,.price-card p,.detail-row p,.scope-card p,.scope-card li,.cta-band p{font-size:16px;line-height:1.9}
  .policy-lead{font-size:17px!important;line-height:1.95!important}

  /* Larger mobile link/button text. */
  .button-link{font-size:14px;letter-spacing:.07em;padding:18px 18px}
  .line-btn{font-size:14px;letter-spacing:.06em;padding:17px}
  .send{font-size:14px;letter-spacing:.10em;padding:19px 20px}
  .mobile-menu nav a{font-size:13px;letter-spacing:.09em}

  /* Only semantic breaks; no duplicate copies and no nowrap wrappers. */
  .mobile-only-break{display:block}
  .price-message .mobile-line{display:block}
  .desktop-price-break{display:none}
  .price-message .mobile-line + .mobile-line{margin-top:.08em}
  .about-mark .second{margin-left:0}
}

@media (max-width:350px){
  .narrow-only-break{display:block}
}


/* RC12: requested mobile line breaks + clearer desktop form + privacy confirmation gate */
.desktop-only-break{display:block}
.hero-walk{display:inline}
.privacy-consent-block{margin-top:28px;padding:22px 0 4px;border-top:1px solid var(--line)}
.privacy-check-row{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:10px}
.privacy-policy-link{display:inline-flex;align-items:center;justify-content:space-between;gap:18px;border:1px solid var(--ink);padding:12px 15px;font-size:14px;font-weight:600;letter-spacing:.02em;text-decoration:none;transition:.2s}
.privacy-policy-link:hover,.privacy-policy-link:focus-visible{background:var(--ink);color:var(--paper)}
.privacy-check-status{font-size:13px;line-height:1.7;color:var(--muted)}
.privacy-check-status.is-viewed{color:var(--ink)}
.privacy-consent{margin-top:12px}
.privacy-consent input:disabled{opacity:.45;cursor:not-allowed}
.privacy-noscript{font-size:13px;color:var(--coral);margin:10px 0 0}

@media (min-width:821px){
  .field{padding:22px 0;gap:28px}
  .field label{font-size:15px;padding-top:13px}
  .required{font-size:10px}
  .field input,.field select,.field textarea{
    background:rgba(255,255,255,.48);
    border:1px solid rgba(31,33,31,.24);
    padding:13px 14px 14px;
    font-size:16px;
    line-height:1.5;
    border-radius:2px;
  }
  .field textarea{min-height:124px}
  .field input::placeholder,.field textarea::placeholder{font-size:15px;color:#777c77;opacity:1}
  .field input:focus,.field select:focus,.field textarea:focus{
    border-color:var(--ink);
    background:rgba(255,255,255,.78);
    box-shadow:0 0 0 2px rgba(31,33,31,.06);
  }
}

@media (max-width:820px){
  .desktop-only-break{display:none}
  .hero h1 .second{margin-left:.55em}
  .hero-walk{display:inline-block;margin-left:.55em}
  .story-copy h2 .keep{white-space:normal}
  .privacy-check-row{align-items:stretch;gap:10px}
  .privacy-policy-link{width:100%;font-size:14px;padding:14px 15px}
  .privacy-check-status{font-size:13px}
}

/* RC14: exact mobile ABOUT indentation + clearer desktop contact controls */
.story-title-mobile{display:none}
.story-title-desktop{display:inline}

@media (min-width:821px){
  /* Make field labels and entered values easier to read on desktop. */
  .field label{font-size:16px;padding-top:14px}
  .field input,.field select,.field textarea{
    font-size:18px;
    line-height:1.55;
    padding:14px 15px 15px;
  }
  .field input::placeholder,.field textarea::placeholder{font-size:16px}
  .field select option{font-size:18px}

  /* Make the privacy action unmistakably button-like on desktop. */
  .privacy-check-row{display:grid;grid-template-columns:1fr;gap:10px;margin-bottom:14px}
  .privacy-policy-link{
    width:100%;
    min-height:58px;
    display:flex;
    align-items:center;
    justify-content:space-between;
    padding:16px 18px;
    border:1.5px solid var(--ink);
    background:rgba(255,255,255,.58);
    font-size:16px;
    font-weight:600;
    letter-spacing:.02em;
    text-decoration:none;
  }
  .privacy-policy-link span{margin-left:auto;font-size:18px}
  .privacy-policy-link:hover,.privacy-policy-link:focus-visible{background:var(--ink);color:var(--paper)}
  .privacy-check-status{font-size:14px}
  .privacy-consent{font-size:14px}
}

@media (max-width:820px){
  .story-title-desktop{display:none}
  .story-title-mobile{display:block}
  .story-mobile-line{display:block}
  .story-mobile-line.story-indent-1{margin-left:.45em}
  .story-mobile-line.story-indent-2{margin-left:1.05em}
}

/* RC15: SERVICE & PRICE mobile CTA line-break stabilization */
.cta-title span{display:block;}
@media(max-width:820px){
  .cta-title{font-size:clamp(30px,8.2vw,36px)!important;line-height:1.45;}
  .cta-title span{white-space:nowrap;}
}
@media(max-width:350px){
  .cta-title{font-size:28px!important;}
}


/* RC16: SERVICE & PRICE CTA — exact two-line mobile break. */
.cta-title-service .cta-line{display:block;}
@media(max-width:820px){
  .cta-title-service{
    font-size:clamp(29px,8.4vw,36px)!important;
    line-height:1.45!important;
    letter-spacing:.02em;
  }
  .cta-title-service .cta-line{
    display:block!important;
    white-space:nowrap!important;
    word-break:keep-all!important;
    overflow-wrap:normal!important;
  }
}
@media(max-width:330px){
  .cta-title-service{font-size:28px!important;}
}

/* RC19: iPhone/Safari-friendly Japanese wrapping for PRIVACY POLICY. */
.policy-term{white-space:nowrap}
@media(max-width:820px){
  .policy h2{
    line-height:1.5;
    word-break:normal;
    overflow-wrap:normal;
    line-break:strict;
    text-wrap:balance;
  }
  .policy p,.policy li{
    word-break:normal;
    overflow-wrap:normal;
    line-break:strict;
    text-wrap:pretty;
  }
}
