.site-nav .is-current::after { right:0; }
.site-nav a,.header-cta,.ct-hero .button,.ct-compat .button,.ct-final .button { font-size:16px; }
.ct-hero p,.ct-intro p,.ct-menu p,.ct-menu dt,.ct-menu dd,.ct-process p,.ct-compat p,.ct-notice p,.ct-final p { font-size:16px; }
.ct-heading-line { display:inline-block; white-space:nowrap; }
.ct-hero { position:relative; isolation:isolate; min-height:760px; display:flex; align-items:center; overflow:hidden; padding:90px clamp(24px,7vw,108px) 150px; color:#fff; background:#151515; }
.ct-hero-image,.ct-hero-shade { position:absolute; inset:0; width:100%; height:100%; }
.ct-hero-image { z-index:-2; object-fit:cover; object-position:60% center; filter:saturate(.7) contrast(1.08); }
.ct-hero-shade { z-index:-1; background:linear-gradient(90deg,rgba(10,10,9,.97) 0 36%,rgba(10,10,9,.62) 55%,rgba(10,10,9,.12) 82%),linear-gradient(0deg,rgba(0,0,0,.65),transparent 42%); }
.ct-hero-content { width:min(760px,63vw); }
.ct-logo { display:block; width:250px; height:auto; margin-bottom:10px; }
.ct-overline { margin:0 0 35px; color:#d0ccc5; font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.14em; }
.ct-hero h1 { margin:0; font:600 clamp(52px,5.3vw,84px)/1.1 "Barlow Condensed","Noto Sans JP",sans-serif; letter-spacing:-.045em; }
.ct-hero h1 span,.ct-hero h1 em { display:inline-block; white-space:nowrap; }
.ct-hero h1 em { color:var(--orange); font-style:italic; }
.ct-hero-lead { max-width:680px; margin:30px 0 0; color:#eeeae3; line-height:1.9; }
.ct-hero-actions { display:flex; align-items:center; gap:28px; margin-top:36px; }
.ct-text-link { color:#fff; font-size:16px; text-underline-offset:6px; }
.ct-facts { position:absolute; right:0; bottom:0; left:0; display:grid; grid-template-columns:repeat(3,1fr); margin:0; background:rgba(19,19,18,.84); border-top:1px solid rgba(255,255,255,.18); backdrop-filter:blur(8px); }
.ct-facts div { display:grid; grid-template-columns:auto 1fr; align-items:center; gap:18px; min-height:96px; padding:20px clamp(24px,5vw,70px); }
.ct-facts div+div { border-left:1px solid rgba(255,255,255,.16); }
.ct-facts dt { color:var(--orange); font:600 25px "Barlow Condensed",sans-serif; }
.ct-facts dd { margin:0; color:#ddd9d2; font-size:16px; }

.ct-intro { max-width:1200px; margin:auto; padding:130px 40px; display:grid; grid-template-columns:1fr 1fr; gap:80px 60px; }
.ct-intro h2,.ct-section-head h2,.ct-compat h2,.ct-final h2 { margin:0; font:600 clamp(42px,4.2vw,58px)/1.2 "Barlow Condensed","Noto Sans JP",sans-serif; letter-spacing:-.035em; }
.ct-intro h2 .ct-heading-accent { color:var(--orange); }
.ct-intro-copy { padding-top:44px; }
.ct-intro-copy p { margin:0 0 26px; color:#514e49; line-height:1.9; }
.ct-values { grid-column:1/-1; display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ct-values article { padding:32px 34px 38px; }
.ct-values article+article { border-left:1px solid var(--line); }
.ct-values span,.ct-stage { color:var(--orange); font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.12em; }
.ct-values h3 { margin:28px 0 12px; font-size:20px; }
.ct-values p { margin:0; color:#514e49; line-height:1.8; }

.ct-menu { padding:120px max(40px,calc((100vw - 1120px)/2)); color:#fff; background:#242321; }
.ct-section-head { max-width:730px; margin-bottom:55px; }
.ct-section-head>p:last-child { max-width:760px; margin:24px 0 0; color:#d0cbc3; line-height:1.85; }
.ct-price-grid { display:grid; grid-template-columns:repeat(3,1fr); border:1px solid #4e4b46; }
.ct-price-card { min-height:390px; padding:40px; }
.ct-price-card+.ct-price-card { border-left:1px solid #4e4b46; }
.ct-price-main { background:var(--orange); }
.ct-price-main .ct-stage,.ct-price-main>p:last-child { color:#fff; }
.ct-price-card h3 { min-height:58px; margin:24px 0 36px; font-size:20px; }
.ct-price { margin:0 0 24px; font:600 clamp(32px,3.2vw,48px) "Barlow Condensed",sans-serif; white-space:nowrap; }
.ct-price small { display:block; margin-bottom:6px; font:500 16px "Noto Sans JP",sans-serif; }
.ct-price-card>p:last-child { margin:0; color:#ded9d1; line-height:1.85; }
.ct-price-main>p:last-child { color:#fff; }
.ct-option-grid { display:grid; grid-template-columns:1fr 1fr; gap:18px; margin-top:18px; }
.ct-option-grid>article { padding:32px 36px; color:var(--ink); background:var(--paper); }
.ct-option-grid header p { margin:0; color:var(--orange); font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.12em; }
.ct-option-grid h3 { margin:7px 0 26px; font-size:20px; }
.ct-option-grid dl { margin:0; }
.ct-option-grid dl div { display:flex; justify-content:space-between; gap:20px; padding:15px 0; border-top:1px solid var(--line); }
.ct-option-grid dd { margin:0; font-weight:700; white-space:nowrap; }
.ct-included { margin-top:18px; padding:30px 36px; border:1px solid #4e4b46; }
.ct-included>p { margin:0 0 18px; color:var(--orange); font-weight:700; }
.ct-included ul { display:flex; flex-wrap:wrap; gap:8px; margin:0 0 18px; padding:0; }
.ct-included li { padding:9px 13px; border:1px solid #77726a; font-size:16px; list-style:none; }
.ct-included small { display:block; color:#d0cbc3; font-size:16px; line-height:1.8; }

.ct-process { padding:120px max(40px,calc((100vw - 1120px)/2)); color:#fff; background:#171716; }
.ct-process ol { display:grid; grid-template-columns:1fr 1fr; margin:0; padding:0; border-top:1px solid #4b4945; }
.ct-process li { display:grid; grid-template-columns:52px 1fr; gap:20px; min-height:190px; padding:34px; border-bottom:1px solid #4b4945; list-style:none; }
.ct-process li:nth-child(odd) { border-right:1px solid #4b4945; }
.ct-process li>span { color:var(--orange); font:600 24px "Barlow Condensed",sans-serif; }
.ct-process h3 { margin:2px 0 14px; font-size:20px; }
.ct-process li p { margin:0; color:#d0cbc3; line-height:1.8; }
.ct-travel { display:grid; grid-template-columns:190px 1fr; gap:30px; margin-top:28px; padding:28px 34px; color:var(--ink); background:var(--paper); }
.ct-travel strong { color:var(--orange); font-size:18px; }
.ct-travel p { margin:0; line-height:1.8; }

.ct-compat { max-width:1200px; margin:auto; padding:120px 40px; display:grid; grid-template-columns:1fr 1fr; gap:60px; }
.ct-compat h2 { font-size:clamp(40px,3.7vw,52px); }
.ct-compat-copy>p { margin:0 0 22px; color:#514e49; line-height:1.9; }
.ct-compat-links { display:flex; align-items:center; gap:26px; margin-top:34px; }
.ct-compat-links>a:last-child { font-size:16px; font-weight:700; text-underline-offset:5px; }
.ct-notice { max-width:1120px; margin:0 auto 120px; padding:0 40px; }
.ct-notice details { border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.ct-notice summary { display:flex; justify-content:space-between; align-items:center; padding:26px 0; cursor:pointer; font-size:18px; font-weight:700; list-style:none; }
.ct-notice summary::-webkit-details-marker { display:none; }
.ct-notice-body { display:grid; grid-template-columns:1fr 1fr; gap:30px 50px; padding:8px 0 40px; }
.ct-notice-body h3 { margin:0 0 10px; font-size:18px; }
.ct-notice-body p { margin:0; color:#514e49; line-height:1.8; }
.ct-final { padding:100px max(24px,calc((100vw - 1120px)/2)); color:#fff; background:#171716; text-align:center; }
.ct-final-heading { max-width:900px; margin:0 auto 48px; }
.ct-final img { width:210px; height:auto; }
.ct-final>p { margin:14px 0 28px; color:#cbc7c0; font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.14em; }
.ct-final-heading>p { margin:14px 0 28px; color:#cbc7c0; font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.14em; }
.ct-final-heading .ct-form-lead { max-width:720px; margin:28px auto 0; color:#ddd9d2; font:400 16px/1.9 "Noto Sans JP",sans-serif; letter-spacing:0; }
.ct-quote-form { color:var(--ink); background:var(--paper); text-align:left; border:1px solid #4b4945; }
.ct-form-status { margin:0!important; padding:18px 28px; color:#fff!important; background:#5a554f; font:600 16px/1.7 "Noto Sans JP",sans-serif!important; letter-spacing:0!important; }
.ct-form-section { margin:0; padding:44px 48px; border:0; border-bottom:1px solid var(--line); }
.ct-form-section-heading { display:grid; grid-template-columns:54px 1fr; gap:18px; align-items:start; margin-bottom:32px; }
.ct-form-section-heading>span { color:var(--orange); font:600 30px "Barlow Condensed",sans-serif; }
.ct-form-section-heading p { margin:0 0 4px; color:var(--orange); font:600 16px "Barlow Condensed",sans-serif; letter-spacing:.12em; }
.ct-form-section-heading h3 { margin:0; font-size:22px; }
.ct-form-section-heading h3 b,.ct-field>span b { display:inline-block; margin-left:10px; padding:3px 7px; color:#fff; background:var(--orange); font-size:16px; vertical-align:middle; }
.ct-field-grid { display:grid; grid-template-columns:1fr 1fr; gap:26px; }
.ct-field { display:flex; flex-direction:column; gap:10px; min-width:0; }
.ct-field-wide { grid-column:1/-1; }
.ct-field>span { font-size:16px; font-weight:700; }
.ct-field>span small { display:block; margin-top:3px; color:var(--muted); font-size:16px; font-weight:400; }
.ct-field input,.ct-field textarea,.ct-field select,.ct-choice-other input[type="text"] { width:100%; border:1px solid #aaa49a; border-radius:0; color:var(--ink); background:#fff; font:400 16px "Noto Sans JP",sans-serif; outline:none; }
.ct-field input,.ct-field select { min-height:54px; padding:12px 14px; }
.ct-field textarea { padding:14px; resize:vertical; line-height:1.7; }
.ct-field input:focus,.ct-field textarea:focus,.ct-field select:focus,.ct-choice-other input[type="text"]:focus { border-color:var(--orange); box-shadow:0 0 0 2px rgba(239,89,47,.18); }
.ct-choice-list { display:grid; grid-template-columns:1fr 1fr; gap:10px; }
.ct-choice-list>label { display:grid; grid-template-columns:24px 1fr; gap:12px; align-items:start; min-height:82px; padding:16px; border:1px solid var(--line); background:#fff; cursor:pointer; }
.ct-choice-list input[type="checkbox"],.ct-choice-list input[type="radio"] { width:20px; height:20px; margin:2px 0 0; accent-color:var(--orange); }
.ct-choice-list strong { display:block; font-size:16px; line-height:1.5; }
.ct-choice-list small { display:block; margin-top:5px; color:var(--muted); font-size:16px; line-height:1.5; }
.ct-choice-other span { min-width:0; }
.ct-choice-other input[type="text"] { min-height:40px; margin-top:8px; padding:8px 10px; }
.ct-choice-compact>label { min-height:62px; }
.ct-form-submit { padding:38px 48px 44px; text-align:center; }
.ct-form-submit button { min-width:280px; padding:17px 22px; border:0; color:#d2cec7; background:#77726b; font:700 16px "Noto Sans JP",sans-serif; cursor:not-allowed; }
.ct-form-submit button:not(:disabled) { color:#fff; background:var(--ink); cursor:pointer; }

@media (max-width:820px) {
  .ct-hero { min-height:790px; align-items:flex-end; padding:70px 24px 200px; }
  .ct-hero-image { object-position:62% center; }
  .ct-hero-shade { background:linear-gradient(0deg,rgba(10,10,9,.98) 0 52%,rgba(10,10,9,.18) 86%); }
  .ct-hero-content { width:100%; }
  .ct-logo { width:190px; }
  .ct-hero h1 { font-size:clamp(35px,10vw,55px); }
  .ct-hero-actions { align-items:flex-start; flex-direction:column; gap:18px; }
  .ct-facts { grid-template-columns:1fr; }
  .ct-facts div { min-height:58px; padding:10px 24px; }
  .ct-facts div+div { border-left:0; border-top:1px solid rgba(255,255,255,.16); }
  .ct-facts dt { font-size:18px; }
  .ct-intro,.ct-compat { grid-template-columns:1fr; gap:48px; padding:88px 24px; }
  .ct-intro-copy { padding:0; }
  .ct-values { grid-template-columns:1fr; }
  .ct-values article+article { border-left:0; border-top:1px solid var(--line); }
  .ct-menu,.ct-process { padding:88px 24px; }
  .ct-price-grid { grid-template-columns:1fr; }
  .ct-price-card { min-height:0; }
  .ct-price-card+.ct-price-card { border-left:0; border-top:1px solid #4e4b46; }
  .ct-price-card h3 { min-height:0; }
  .ct-option-grid,.ct-process ol,.ct-notice-body { grid-template-columns:1fr; }
  .ct-process li:nth-child(odd) { border-right:0; }
  .ct-travel { grid-template-columns:1fr; gap:12px; }
  .ct-compat-links { align-items:flex-start; flex-direction:column; }
  .ct-notice { margin-bottom:88px; padding:0 24px; }
  .ct-heading-line { white-space:normal; }
  .ct-final { padding:80px 0; }
  .ct-final-heading { padding-right:24px; padding-left:24px; }
  .ct-quote-form { border-right:0; border-left:0; }
  .ct-form-section { padding:36px 24px; }
  .ct-field-grid,.ct-choice-list { grid-template-columns:1fr; }
  .ct-form-section-heading { grid-template-columns:42px 1fr; }
  .ct-form-submit { padding:34px 24px 40px; }
  .ct-form-submit button { width:100%; min-width:0; }
}

@media (max-width:390px) {
  .ct-hero h1 { font-size:34px; }
  .ct-hero h1 span,.ct-hero h1 em { white-space:normal; }
  .ct-price-card,.ct-option-grid>article { padding:28px 24px; }
}
