
/* ===== BREADCRUMB ===== */
.crumb{padding:120px 80px 0;font-family:var(--label-en);font-size:11px;letter-spacing:.2em;color:var(--ink-soft)}
.crumb a{color:var(--ink-soft)}
.crumb .sep{margin:0 10px;opacity:.6}

/* ===== MASTHEAD: 雑誌の表紙風タイトル ===== */
.masthead{padding:40px 80px 60px;position:relative;border-bottom:1px solid var(--line)}
.masthead .issue-line{display:flex;justify-content:space-between;align-items:baseline;margin-bottom:36px;font-family:var(--label-en);font-size:11px;letter-spacing:.4em;color:var(--ink-soft)}
.masthead .issue-line .iss{color:var(--accent);font-weight:500}
.masthead .title-block{display:grid;grid-template-columns:1fr auto;gap:64px;align-items:end}
.masthead h1{font-family:var(--label-en);font-weight:200;font-size:clamp(80px,11vw,180px);letter-spacing:-.01em;line-height:.9;color:var(--ink);transform:translateX(-.03em)}
.masthead h1 .dot{color:var(--accent);font-weight:500}
.masthead .ja-sub{font-family:var(--serif-jp);font-weight:400;font-size:15px;letter-spacing:.32em;color:var(--ink);line-height:1.9;text-align:right;padding-bottom:18px;max-width:320px}
.masthead .ja-sub .em{display:block;font-size:18px;letter-spacing:.36em;margin-bottom:8px;font-weight:500}



/* ========== CONTACT PAGE CSS ========== */
/* ========== CONTACT PAGE CSS ========== */

/* INTRO */
.ct-intro{padding:96px 80px 0;max-width:880px;margin:0 auto;text-align:center}
.ct-intro p{font-family:var(--body-jp);font-weight:400;font-size:15px;line-height:2.4;letter-spacing:.06em;color:var(--ink)}

/* STEPS */
.ct-steps{padding:80px 80px 32px;max-width:880px;margin:0 auto;display:flex;justify-content:center;align-items:center;gap:32px}
.ct-steps .step{display:flex;align-items:center;gap:14px;opacity:.4;transition:.3s}
.ct-steps .step.active{opacity:1}
.ct-steps .step .lbl{font-family:var(--label-en);font-size:11px;letter-spacing:.4em;color:var(--ink-soft)}
.ct-steps .step .num{font-family:var(--label-en);font-weight:300;font-size:34px;letter-spacing:.02em;color:var(--accent);line-height:1}
.ct-steps .step .ja{font-family:var(--body-jp);font-weight:700;font-size:13px;letter-spacing:.18em;color:var(--ink)}
.ct-steps .arrow{font-family:var(--label-en);font-size:14px;color:var(--line);font-weight:300}

/* NOTES */
.ct-notes{padding:0 80px 32px;max-width:880px;margin:0 auto}
.ct-notes ul{list-style:none}
.ct-notes li{font-size:13px;line-height:2.2;color:var(--ink-soft);letter-spacing:.04em;padding-left:18px;position:relative}
.ct-notes li::before{content:"•";position:absolute;left:0;top:0;color:var(--accent);font-weight:500}

/* FORM */
.ct-form{padding:48px 80px 80px;max-width:980px;margin:0 auto}
.ct-form .row{display:grid;grid-template-columns:260px 1fr;gap:48px;padding:32px 0;border-bottom:1px solid var(--line)}
.ct-form .row:first-child{border-top:1px solid var(--line)}
.ct-form .lbl-col{display:flex;align-items:flex-start;gap:14px;padding-top:6px}
.ct-form .badge{display:inline-block;padding:5px 10px;font-family:var(--label-en);font-size:10px;letter-spacing:.18em;font-weight:500;border-radius:2px;line-height:1.2;flex-shrink:0;letter-spacing:.04em}
.ct-form .badge.req{background:var(--accent);color:#fff}
.ct-form .badge.opt{background:var(--bg-deep);color:var(--ink-soft);border:1px solid var(--line)}
.ct-form .field-name{font-family:var(--body-jp);font-weight:700;font-size:14px;letter-spacing:.12em;line-height:1.6;color:var(--ink)}

.ct-form .input-col input[type="text"],
.ct-form .input-col input[type="tel"],
.ct-form .input-col input[type="email"],
.ct-form .input-col select,
.ct-form .input-col textarea{
  width:100%;padding:14px 18px;
  font-family:var(--body-jp);font-size:14.5px;color:var(--ink);
  background:#fff;border:1px solid var(--line);border-radius:0;
  letter-spacing:.04em;transition:border-color .25s ease;
  appearance:none;-webkit-appearance:none;
}
.ct-form .input-col input[type="text"]:focus,
.ct-form .input-col input[type="tel"]:focus,
.ct-form .input-col input[type="email"]:focus,
.ct-form .input-col select:focus,
.ct-form .input-col textarea:focus{
  outline:none;border-color:var(--accent);
  box-shadow:0 0 0 3px rgba(68,90,105,.08);
}
.ct-form .input-col input::placeholder,
.ct-form .input-col textarea::placeholder{color:var(--ink-soft);opacity:.5}
.ct-form .input-col textarea{min-height:160px;resize:vertical;font-family:var(--body-jp);line-height:1.95}

.ct-form .input-col .mt{margin-top:14px}

/* RADIO / CHECKBOX OPTIONS */
.opt-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(220px,1fr));gap:14px 18px}
.ct-form label.radio,.ct-form label.check{display:flex;align-items:flex-start;gap:12px;cursor:pointer;font-size:13.5px;line-height:1.6;color:var(--ink);letter-spacing:.04em;padding:6px 0}
.ct-form label.radio input,.ct-form label.check input{appearance:none;-webkit-appearance:none;flex-shrink:0;width:18px;height:18px;background:#fff;border:1.5px solid var(--line);position:relative;cursor:pointer;margin-top:2px;transition:.2s}
.ct-form label.radio input{border-radius:50%}
.ct-form label.check input{border-radius:3px}
.ct-form label.radio input:checked{border-color:var(--accent)}
.ct-form label.radio input:checked::after{content:"";position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:9px;height:9px;background:var(--accent);border-radius:50%}
.ct-form label.check input:checked{background:var(--accent);border-color:var(--accent)}
.ct-form label.check input:checked::after{content:"";position:absolute;top:1px;left:5px;width:5px;height:9px;border-right:2px solid #fff;border-bottom:2px solid #fff;transform:rotate(45deg)}
.ct-form label.check.large{font-size:15px;font-weight:500;align-items:center;padding:8px 0}
.ct-form label.check.large input{width:22px;height:22px;margin-top:0}
.ct-form label.check.large input:checked::after{top:3px;left:7px;width:6px;height:11px}
.ct-form .under{text-decoration:underline;color:var(--accent);font-weight:500}

/* ADDRESS BLOCK */
.addr-zip{display:flex;align-items:center;gap:12px;margin-bottom:14px}
.addr-zip .zip-mark{font-family:var(--body-jp);font-weight:700;font-size:18px;color:var(--ink);width:24px}
.addr-zip .zip-input{flex:0 0 220px}
.addr-zip .zip-btn{padding:12px 22px;background:var(--ink);color:#fff;font-family:var(--label-en);font-size:11px;letter-spacing:.24em;border:1px solid var(--ink);cursor:pointer;transition:.3s;border-radius:0}
.addr-zip .zip-btn:hover{background:transparent;color:var(--ink)}
.addr-grid{display:grid;grid-template-columns:200px 1fr;gap:14px}

.ssl-note{margin-top:14px;font-size:12px;line-height:2;color:var(--ink-soft);letter-spacing:.04em}

/* SUBMIT */
.ct-submit{padding:60px 0 0;text-align:center}
.submit-btn{display:inline-flex;align-items:center;gap:18px;padding:22px 80px;background:var(--ink);color:#fff;font-family:var(--body-jp);font-weight:700;font-size:15px;letter-spacing:.32em;border:1px solid var(--ink);cursor:pointer;transition:.3s;position:relative}
.submit-btn:hover{background:var(--accent);border-color:var(--accent)}
.submit-btn .arrow{font-family:var(--label-en);font-size:18px;font-weight:300;transition:transform .3s ease}
.submit-btn:hover .arrow{transform:translateX(6px)}

/* MOBILE NOTICE */
.ct-mobile-notice{padding:60px 80px;background:var(--bg-warm);border-top:1px solid var(--line);border-bottom:1px solid var(--line);max-width:none}
.ct-mobile-notice h3{font-family:var(--body-jp);font-weight:700;font-size:15px;letter-spacing:.14em;color:var(--ink);margin-bottom:14px;text-align:center}
.ct-mobile-notice p{font-size:13px;line-height:2.2;color:var(--ink-soft);letter-spacing:.04em;max-width:880px;margin:0 auto;text-align:left}

/* COMPANY BAND */
.ct-company{padding:120px 80px;background:var(--bg-deep)}
.ct-company-head{text-align:center;margin-bottom:64px}
.ct-company-head .eb{font-family:var(--label-en);font-size:12px;letter-spacing:.5em;color:var(--accent);font-weight:500;margin-bottom:18px}
.ct-company-head h2{font-family:var(--body-jp);font-weight:700;font-size:clamp(22px,2.6vw,32px);letter-spacing:.16em;line-height:1.6;color:var(--ink);margin-bottom:14px}
.ct-company-head .sub{font-family:var(--label-en);font-size:12px;letter-spacing:.28em;color:var(--ink-soft);font-family:var(--body-jp);letter-spacing:.18em}
.ct-company-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:48px;max-width:1100px;margin:0 auto}
.ct-company-grid .col{text-align:center;padding:32px 24px;background:#fff;border:1px solid var(--line)}
.ct-company-grid .col h4{font-family:var(--label-en);font-size:11px;letter-spacing:.36em;color:var(--accent);margin-bottom:20px;font-weight:500}
.ct-company-grid .col p{font-size:13px;line-height:2.1;color:var(--ink);letter-spacing:.06em;margin-bottom:14px}
.ct-company-grid .col p:last-child{margin-bottom:0}
.ct-company-grid .col .tel{font-family:var(--label-en);font-size:14px;letter-spacing:.04em}

/* MOBILE */
@media (max-width:1023px){
  .ct-intro,.ct-steps,.ct-notes,.ct-form,.ct-mobile-notice,.ct-company{padding-left:32px;padding-right:32px}
  .ct-steps{gap:14px;flex-wrap:wrap;justify-content:flex-start}
  .ct-steps .step .num{font-size:26px}
  .ct-form .row{grid-template-columns:1fr;gap:16px;padding:24px 0}
  .ct-form .lbl-col{padding-top:0}
  .addr-grid{grid-template-columns:1fr}
  .addr-zip{flex-wrap:wrap}
  .addr-zip .zip-input{flex:1}
  .opt-grid{grid-template-columns:1fr 1fr}
  .ct-company-grid{grid-template-columns:1fr;gap:24px}
  .submit-btn{padding:20px 56px;font-size:14px;letter-spacing:.24em}
}
@media (max-width:767px){
  .ct-intro,.ct-steps,.ct-notes,.ct-form,.ct-mobile-notice,.ct-company{padding-left:20px;padding-right:20px}
  .ct-intro p{font-size:13.5px;line-height:2.1}
  .ct-steps .step{gap:8px}
  .ct-steps .step .lbl{font-size:9px;letter-spacing:.32em}
  .ct-steps .step .num{font-size:22px}
  .ct-steps .step .ja{font-size:12px;letter-spacing:.14em}
  .ct-steps .arrow{font-size:11px}
  .opt-grid{grid-template-columns:1fr}
  .addr-zip{gap:8px}
  .addr-zip .zip-input{flex:1 1 100%;order:2}
  .addr-zip .zip-btn{padding:10px 18px;font-size:10px;letter-spacing:.18em}
  .ct-company{padding:64px 20px}
  .submit-btn{width:100%;padding:18px;justify-content:center;font-size:13.5px}
}


/* --- Contact Form 7 adaptation (added 2026-08-31) --- */
.ct-form .wpcf7-form-control-wrap{display:contents}
.ct-form .wpcf7-radio,.ct-form .wpcf7-checkbox,.ct-form .wpcf7-acceptance{display:contents}
.ct-form .wpcf7-list-item{display:contents;margin:0}
.ct-form .wpcf7-not-valid-tip{display:block;color:#c0392b;font-size:12px;margin-top:6px}
.ct-form .wpcf7-response-output{margin:24px 0 0;padding:14px 16px;border:1px solid #c9ccd1;font-size:13px;line-height:1.8}
.ct-form.invalid .wpcf7-response-output{border-color:#c0392b;color:#c0392b}
.cw-cbox{display:none}
.ct-form.cw-confirming .row,.ct-form.cw-confirming .ct-submit{display:none}
.ct-form.cw-confirming .cw-cbox{display:block}
.cw-cbox .cw-r{display:grid;grid-template-columns:220px 1fr;gap:16px;padding:16px 0;border-bottom:1px solid #e3e5e8}
.cw-cbox .cw-k{font-size:13px;letter-spacing:.08em;color:#6b7280}
.cw-cbox .cw-v{font-size:15px;line-height:1.9;white-space:pre-wrap;word-break:break-all}
.cw-cbtns{display:flex;gap:16px;justify-content:center;margin-top:40px;flex-wrap:wrap}
.cw-cbtns button{min-width:220px;padding:18px 32px;font-size:14px;letter-spacing:.18em;cursor:pointer;border:1px solid #2D3744;background:transparent;color:#2D3744}
.cw-cbtns .cw-send{background:#2D3744;color:#fff}
@media(max-width:767px){.cw-cbox .cw-r{grid-template-columns:1fr;gap:6px}.cw-cbtns button{min-width:0;width:100%}}

.ct-form .cw-zip-msg{display:block;width:100%;margin-top:8px;font-size:12px;letter-spacing:.04em;color:#6b7280}

.ct-form .addr-zip .cw-zip-msg{grid-column:1 / -1;flex-basis:100%;order:99}

/* cw-fix 2026-09-03: these two render as empty bordered rows above the form */
.ct-form .wpcf7-response-output:empty{display:none !important}
.ct-form .hidden-fields-container{display:none !important}
