@import url("https://fonts.googleapis.com/css2?family=Noto+Sans+JP:wght@400;500;700;900&family=Zen+Kaku+Gothic+New:wght@500;700&display=swap");

/* ==========================================================================
   HitR Corporate Site — 統合スタイルシート
   Claude Design 書き出し（React インラインstyle）から静的CSSへ変換。
   トークン定義は tokens/*.css の内容をそのまま移植している。
   直接値を書かず、必ず変数を経由すること。
   ========================================================================== */

/* --------------------------------------------------------------- tokens */
:root{
/* ---- base brand ---- */
--white:#FFFFFF;
--ink:#222222;
--blue:#2194FF;

/* ---- ink ramp (neutral, derived from #222222) ---- */
--ink-900:#111315;
--ink-800:#1B1D1F;
--ink-700:#222222;
--ink-600:#3D4045;
--ink-500:#5A5E64;
--ink-400:#868A90;
--ink-300:#B5B8BD;
--ink-200:#DCDEE1;
--ink-100:#EDEEF0;
--ink-050:#F6F7F8;

/* ---- blue ramp (derived from #2194FF) ---- */
--blue-900:#04407A;
--blue-800:#0A5FAF;
--blue-700:#0B78D6;
--blue-600:#128AF0;
--blue-500:#2194FF;
--blue-400:#5EB1FF;
--blue-300:#8FC9FF;
--blue-200:#BFE0FF;
--blue-100:#DCEDFF;
--blue-050:#F0F7FF;

/* ---- logo accents (sampled from the HitR mark) ---- */
--logo-indigo:#607CE1;
--logo-sky:#60A3E1;
--logo-indigo-100:#E4E9FA;
--logo-sky-100:#E4EFFA;

/* ---- semantic: surfaces ---- */
--surface-page:var(--white);
--surface-subtle:var(--ink-050);
--surface-card:var(--white);
--surface-invert:var(--ink-700);
--surface-invert-deep:var(--ink-900);
--surface-accent:var(--blue-500);
--surface-accent-subtle:var(--blue-050);
--surface-accent-tint:var(--blue-100);

/* ---- semantic: text ---- */
--text-body:var(--ink-700);
--text-heading:var(--ink-700);
--text-muted:var(--ink-500);
--text-faint:var(--ink-400);
--text-on-dark:var(--white);
--text-on-dark-muted:#B9BCC1;
--text-on-accent:var(--white);
--text-accent:var(--blue-700);
--text-link:var(--blue-700);
--text-link-hover:var(--blue-900);

/* ---- semantic: lines ---- */
--border-hairline:var(--ink-200);
--border-strong:var(--ink-700);
--border-accent:var(--blue-500);
--border-on-dark:rgba(255,255,255,.18);

/* ---- semantic: interactive ---- */
--action-primary:var(--ink-700);
--action-primary-hover:var(--ink-900);
--action-accent:var(--blue-500);
--action-accent-hover:var(--blue-700);
--action-accent-press:var(--blue-800);
--focus-ring:var(--blue-500);

/* ---- semantic: status ---- */
--status-error:#D63A3A;
--status-error-subtle:#FCECEC;
--status-success:#1E9E6A;
--status-success-subtle:#E9F7F1;

/* ---- typography ---- */
--font-sans:"Noto Sans JP","Hiragino Kaku Gothic ProN","Yu Gothic",system-ui,sans-serif;
/* 元 typography.css の注記どおり、Corporate Logo ver3 はブラウザのフォントサニタイザに
   弾かれるため意図的にチェーンから外している。OTF は本番不要（未使用のため削除済み）。 */
--font-logo:"Zen Kaku Gothic New","Noto Sans JP",sans-serif;
--font-en:"Noto Sans JP",system-ui,sans-serif;

--fw-regular:400;
--fw-medium:500;
--fw-bold:700;
--fw-black:900;

--type-hero:clamp(40px,5.6vw,84px);
--type-hero-lh:1.28;
--type-hero-ls:.02em;

--type-h1:clamp(30px,3.4vw,46px);
--type-h2:clamp(26px,2.6vw,36px);
--type-h3:20px;
--type-h4:17px;
--type-heading-lh:1.45;
--type-heading-ls:.01em;

--type-body-lg:17px;
--type-body:15px;
--type-body-sm:13px;
--type-caption:12px;
--type-body-lh:1.9;
--type-body-ls:.02em;

--type-eyebrow:12px;
--type-eyebrow-ls:.18em;
--type-nav:14px;
--type-nav-ls:.06em;

--type-watermark:clamp(72px,13vw,190px);
--type-watermark-ls:-.01em;

/* ---- spacing ---- */
--sp-1:4px;--sp-2:8px;--sp-3:12px;--sp-4:16px;--sp-5:24px;--sp-6:32px;
--sp-7:40px;--sp-8:56px;--sp-9:72px;--sp-10:96px;--sp-11:128px;--sp-12:160px;
--section-y:clamp(72px,9vw,140px);
--gutter:clamp(20px,5vw,64px);
--container:1200px;
--container-narrow:820px;
--header-h:80px;

/* ---- radius: sharp by default — HitR is straight-edged ---- */
--radius-0:0px;
--radius-sm:2px;
--radius-md:4px;
--radius-lg:8px;
--radius-pill:999px;
--radius-media:0px;

/* ---- elevation ---- */
--shadow-none:none;
--shadow-card:0 1px 2px rgba(17,19,21,.04),0 8px 24px rgba(17,19,21,.06);
--shadow-raised:0 2px 4px rgba(17,19,21,.05),0 18px 40px rgba(17,19,21,.10);
--shadow-header:0 1px 0 rgba(17,19,21,.06);
--shadow-accent:0 12px 28px rgba(33,148,255,.24);
--overlay-photo:linear-gradient(180deg,rgba(17,19,21,.55) 0%,rgba(17,19,21,.25) 45%,rgba(17,19,21,.7) 100%);
--overlay-scrim:rgba(17,19,21,.62);

/* ---- motion ---- */
--ease-out:cubic-bezier(.22,.61,.36,1);
--ease-inout:cubic-bezier(.4,0,.2,1);
--dur-fast:120ms;
--dur-base:220ms;
--dur-slow:420ms;
--dur-reveal:720ms;
}

/* ----------------------------------------------------------------- base */
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:calc(var(--header-h) + 16px)}
body{margin:0;font-family:var(--font-sans);font-weight:var(--fw-regular);font-size:var(--type-body);line-height:var(--type-body-lh);letter-spacing:var(--type-body-ls);color:var(--text-body);background:var(--surface-page);-webkit-font-smoothing:antialiased;text-wrap:pretty}
h1,h2,h3,h4{margin:0;font-weight:var(--fw-bold);line-height:var(--type-heading-lh);letter-spacing:var(--type-heading-ls);color:var(--text-heading)}
p{margin:0}
a{color:var(--text-link);text-decoration:none;transition:color var(--dur-fast) var(--ease-out)}
a:hover{color:var(--text-link-hover)}
img{display:block;max-width:100%}
:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.visually-hidden{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0 0 0 0);white-space:nowrap;border:0}

/* ------------------------------------------------------------ primitives */
.container{max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}
.container-narrow{max-width:var(--container-narrow);margin:0 auto;padding:0 var(--gutter)}
.section{padding:var(--section-y) 0;position:relative}
.section--subtle{background:var(--surface-subtle)}
.section--dark{background:var(--surface-invert)}
.anchor{position:absolute;top:calc(var(--header-h) * -1)}

/* --- eyebrow --- */
.eyebrow{display:inline-flex;align-items:center;gap:12px;font-family:var(--font-en);font-size:var(--type-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--type-eyebrow-ls);text-transform:uppercase;color:var(--text-accent)}
.eyebrow::before{content:"";width:36px;height:1px;background:currentColor}
.eyebrow--on-dark{color:var(--white)}

/* --- buttons --- */
.btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;font-family:var(--font-sans);font-weight:var(--fw-bold);letter-spacing:.04em;line-height:1;border:1px solid transparent;border-radius:var(--radius-0);cursor:pointer;text-decoration:none;font-size:14px;padding:15px 28px;transition:background-color var(--dur-base) var(--ease-out),color var(--dur-base) var(--ease-out),border-color var(--dur-base) var(--ease-out),transform var(--dur-fast) var(--ease-out)}
.btn:active{transform:translateY(1px)}
.btn--sm{font-size:13px;padding:10px 18px}
.btn--lg{font-size:15px;padding:19px 40px}
.btn--block{display:flex;width:100%}
.btn--primary{background:var(--action-primary);color:var(--text-on-dark);border-color:var(--action-primary)}
.btn--primary:hover{background:var(--action-primary-hover);border-color:var(--action-primary-hover);color:var(--text-on-dark)}
.btn--accent{background:var(--action-accent);color:var(--text-on-accent);border-color:var(--action-accent)}
.btn--accent:hover{background:var(--action-accent-hover);border-color:var(--action-accent-hover);color:var(--text-on-accent)}
.btn--outline{background:transparent;color:var(--text-heading);border-color:var(--border-strong)}
.btn--outline:hover{background:var(--ink-700);color:var(--white);border-color:var(--ink-700)}
.btn--on-dark{background:var(--white);color:var(--ink-700);border-color:var(--white)}
.btn--on-dark:hover{background:var(--blue-500);color:var(--white);border-color:var(--blue-500)}
.btn--on-accent{background:transparent;color:var(--white);border-color:var(--white)}
.btn--on-accent:hover{background:var(--white);color:var(--blue-700)}
.btn[disabled],.btn:disabled{opacity:.38;cursor:not-allowed}
.btn[disabled]:hover,.btn:disabled:hover{background:var(--action-accent);border-color:var(--action-accent);color:var(--text-on-accent)}
.btn__icon{display:flex;font-size:1.15em}
/* 外部リンクを示す矢印 */
.ext-arrow{display:inline-block;font-size:.85em;line-height:1;margin-left:.35em;transform:translateY(-.05em)}

/* --- section head --- */
.section-head{position:relative}
.section-head__watermark{position:absolute;left:-.06em;top:-.52em;font-family:var(--font-en);font-size:var(--type-watermark);font-weight:var(--fw-black);letter-spacing:var(--type-watermark-ls);line-height:1;color:var(--blue-050);white-space:nowrap;pointer-events:none;user-select:none}
.section-head__watermark--white{color:var(--white)}
.section-head__watermark--on-dark{color:rgba(255,255,255,.07)}
.section-head__inner{position:relative}
.section-head__title{margin:18px 0 0;font-size:var(--type-h2);font-weight:var(--fw-bold);color:var(--text-heading)}
.section-head--dark .section-head__title{color:var(--white)}
.section-head__lead{margin:24px 0 0;max-width:58ch;font-size:var(--type-body);color:var(--text-muted)}
.section-head--dark .section-head__lead{color:var(--text-on-dark-muted)}

/* --- photo frame placeholder --- */
.photo{width:100%;object-fit:cover;border-radius:var(--radius-media)}
.photo-frame{width:100%;display:grid;place-items:center;background:var(--ink-050);border:1px solid var(--border-hairline);border-radius:var(--radius-media)}
.photo-frame__label{font-family:var(--font-en);font-size:var(--type-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--type-eyebrow-ls);color:var(--text-faint)}

/* ---------------------------------------------------------------- header */
.site-header{position:sticky;top:0;left:0;right:0;z-index:50;background:var(--white);box-shadow:var(--shadow-header)}
.hitr-header-inner{height:var(--header-h);max-width:var(--container);margin:0 auto;padding:0 var(--gutter);display:flex;align-items:center;gap:var(--sp-6)}
.site-header__logo{display:flex;align-items:center}
.hitr-nav{margin-left:auto;display:flex;align-items:center;gap:var(--sp-6)}
.hitr-nav a{font-size:var(--type-nav);font-weight:var(--fw-bold);letter-spacing:var(--type-nav-ls);color:var(--ink-700);padding-bottom:4px;border-bottom:2px solid transparent}
.hitr-nav a:hover{color:var(--text-accent)}
.hitr-nav a[aria-current="page"]{color:var(--text-accent);border-bottom-color:var(--blue-500)}
.site-header__cta{margin-left:auto}
.hitr-burger{display:none;width:40px;height:40px;padding:0;background:transparent;border:1px solid var(--border-hairline);cursor:pointer;place-items:center}
.hitr-burger__bars{display:grid;gap:4px}
.hitr-burger__bars span{display:block;width:18px;height:1.5px;background:var(--ink-700);transition:transform var(--dur-base) var(--ease-out),opacity var(--dur-fast) var(--ease-out)}
.hitr-burger[aria-expanded="true"] .hitr-burger__bars span:nth-child(1){transform:translateY(5.5px) rotate(45deg)}
.hitr-burger[aria-expanded="true"] .hitr-burger__bars span:nth-child(2){opacity:0}
.hitr-burger[aria-expanded="true"] .hitr-burger__bars span:nth-child(3){transform:translateY(-5.5px) rotate(-45deg)}
.hitr-drawer{display:none;border-top:1px solid var(--border-hairline);background:var(--white);padding:var(--sp-2) var(--gutter) var(--sp-5)}
.hitr-drawer[data-open="true"]{display:block}
.hitr-drawer a{display:block;padding:16px 0;border-bottom:1px solid var(--border-hairline);font-size:var(--type-body);font-weight:var(--fw-bold);letter-spacing:var(--type-nav-ls);color:var(--ink-700)}

/* ------------------------------------------------------------------ hero */
.hero{position:relative;background:var(--white);overflow:hidden}
.hitr-hero-watermark{position:absolute;right:-2vw;top:40px;font-family:var(--font-en);font-size:clamp(80px,11vw,168px);font-weight:var(--fw-black);letter-spacing:-.02em;line-height:1;color:var(--ink-050);white-space:nowrap;user-select:none}
.hitr-hero{position:relative;max-width:var(--container);margin:0 auto;padding:clamp(64px,8vw,120px) var(--gutter) clamp(48px,6vw,88px);display:grid;grid-template-columns:minmax(0,1fr) 200px;gap:var(--sp-9);align-items:start}
.hero__title{margin:var(--sp-5) 0 0;font-family:var(--font-logo);font-weight:var(--fw-bold);font-size:var(--type-hero);line-height:var(--type-hero-lh);letter-spacing:var(--type-hero-ls);color:var(--ink-700)}
.hero__lead{margin:var(--sp-6) 0 0;max-width:46ch;font-size:var(--type-body-lg);font-weight:var(--fw-medium);color:var(--text-body)}
.hitr-btn-stack{display:flex;gap:var(--sp-3);margin-top:var(--sp-7)}
.hitr-hero-rail{display:grid;gap:var(--sp-3);padding-top:var(--sp-8)}
.hero-card{border:1px solid var(--border-hairline);padding:var(--sp-5)}
.hero-card--dark{background:var(--ink-700);color:var(--white);border-color:var(--ink-700)}
.hero-card__label{font-family:var(--font-en);font-size:var(--type-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--type-eyebrow-ls);color:var(--text-faint)}
.hero-card--dark .hero-card__label{color:var(--blue-400)}
/* 200px のレールに収める必要があるため nowrap 固定。
   元デザインの 20px は「03-0000-0000」前提の値で、現在の文言では折り返すため 17px にしている。 */
.hero-card__value{font-family:var(--font-en);font-size:17px;font-weight:var(--fw-bold);color:var(--ink-700);margin-top:6px;white-space:nowrap}
.hero-card--dark .hero-card__value{color:var(--white)}
.hero-card__note{font-size:var(--type-caption);color:var(--text-faint)}
.hero-card--dark .hero-card__note{color:var(--text-on-dark-muted)}

/* ----------------------------------------------------------------- about */
.hitr-about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:var(--sp-10);align-items:center}
.about__body{margin:var(--sp-6) 0 0;font-size:var(--type-body);color:var(--text-muted)}
.about__body + .about__body{margin-top:var(--sp-4)}

/* -------------------------------------------------------------- services */
.services__list{display:grid;gap:var(--sp-4);margin-top:var(--sp-8)}
.hitr-service-card{position:relative;display:grid;grid-template-columns:minmax(0,320px) minmax(0,1fr);gap:var(--sp-7);padding:var(--sp-6);background:var(--surface-card);border:1px solid var(--border-hairline);border-radius:var(--radius-0);transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.hitr-service-card:hover{border-color:var(--border-accent);box-shadow:var(--shadow-card)}
.hitr-service-photo{max-width:100%}
.service-card__meta{display:flex;align-items:baseline;gap:14px}
.service-card__index{font-family:var(--font-en);font-size:13px;font-weight:var(--fw-bold);letter-spacing:.14em;color:var(--blue-500)}
.service-card__latin{font-family:var(--font-en);font-size:var(--type-caption);font-weight:var(--fw-bold);letter-spacing:var(--type-eyebrow-ls);text-transform:uppercase;color:var(--text-faint)}
.service-card__title{margin:10px 0 0;font-size:var(--type-h3)}
.service-card__body{margin:var(--sp-4) 0 0;font-size:var(--type-body);color:var(--text-muted)}
.service-card__bullets{list-style:none;margin:var(--sp-5) 0 0;padding:var(--sp-4) var(--sp-5);background:var(--ink-050);display:grid;gap:10px}
.service-card__bullets li{display:grid;grid-template-columns:10px 1fr;gap:12px;align-items:start;font-size:var(--type-body-sm);color:var(--ink-600)}
.service-card__bullets li::before{content:"";width:10px;height:1px;background:var(--blue-500);margin-top:12px}

/* --------------------------------------------------------------- company */
.company__head-wrap{padding-top:64px;overflow:hidden}
.info-table{margin:0;display:grid;max-width:720px;margin-top:48px}
.hitr-info-row{display:grid;grid-template-columns:180px 1fr;gap:var(--sp-5);padding:var(--sp-5) 0;border-bottom:1px solid var(--border-hairline)}
.hitr-info-row:first-child{border-top:1px solid var(--border-hairline)}
.hitr-info-row dt{font-size:var(--type-body-sm);font-weight:var(--fw-bold);letter-spacing:.04em;color:var(--ink-700)}
.hitr-info-row dd{margin:0;font-size:var(--type-body);color:var(--text-muted);white-space:pre-line}

/* ------------------------------------------------------------------- cta */
.contact-cta{background:var(--surface-accent);color:var(--white);position:relative;overflow:hidden}
.contact-cta__wash{position:absolute;inset:0;background:linear-gradient(105deg,var(--blue-600) 0%,var(--blue-500) 46%,var(--logo-indigo) 130%)}
.hitr-cta-inner{position:relative;max-width:var(--container);margin:0 auto;padding:var(--section-y) var(--gutter);display:grid;grid-template-columns:1fr auto;gap:var(--sp-9);align-items:center}
.contact-cta .eyebrow{color:var(--white)}
.contact-cta__title{margin:18px 0 0;font-size:var(--type-h2);color:var(--white)}
.contact-cta__lead{margin:var(--sp-5) 0 0;max-width:52ch;font-size:var(--type-body);color:rgba(255,255,255,.86)}
.hitr-cta-actions{display:grid;gap:var(--sp-3);min-width:240px}

/* ---------------------------------------------------------------- footer */
.site-footer{background:var(--surface-invert);color:var(--text-on-dark)}
.hitr-footer-top{max-width:var(--container);margin:0 auto;padding:var(--sp-10) var(--gutter) var(--sp-7);display:grid;grid-template-columns:minmax(240px,1fr) 2fr;gap:var(--sp-9)}
.site-footer__tagline{margin-top:var(--sp-4);font-size:var(--type-body-sm);font-weight:var(--fw-bold);line-height:1.9;color:var(--white);white-space:pre-line}
.hitr-footer-cols{display:grid;grid-template-columns:repeat(3,1fr);gap:var(--sp-7);border-left:1px solid var(--border-on-dark);padding-left:var(--sp-9)}
.footer-col__title{font-family:var(--font-en);font-size:var(--type-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--type-eyebrow-ls);text-transform:uppercase;color:var(--white)}
.footer-col ul{list-style:none;margin:var(--sp-4) 0 0;padding:0;display:grid;gap:var(--sp-3)}
.footer-col a{font-size:var(--type-body-sm);color:var(--text-on-dark-muted);white-space:nowrap}
.footer-col a:hover{color:var(--white)}
.site-footer__legal{border-top:1px solid var(--border-on-dark)}
.site-footer__legal div{max-width:var(--container);margin:0 auto;padding:var(--sp-5) var(--gutter);font-size:var(--type-caption);color:var(--text-on-dark-muted);text-align:center}

/* ----------------------------------------------------------- page header */
.page-header{position:relative;overflow:hidden;background:var(--ink-700);padding:clamp(56px,7vw,104px) 0}
.page-header__watermark{position:absolute;left:-.04em;bottom:-.28em;font-family:var(--font-en);font-size:var(--type-watermark);font-weight:var(--fw-black);line-height:1;color:rgba(255,255,255,.07);white-space:nowrap;user-select:none}
.page-header__inner{position:relative;max-width:var(--container);margin:0 auto;padding:0 var(--gutter)}

/* ----------------------------------------------------------------- forms */
.form-grid{display:grid;gap:var(--sp-6);margin-top:var(--sp-8)}
.hitr-form-row{display:grid;grid-template-columns:1fr 1fr;gap:var(--sp-5)}
.field{display:grid;gap:10px}
.field__label{display:flex;align-items:center;gap:10px;font-size:var(--type-body-sm);font-weight:var(--fw-bold);letter-spacing:.04em;color:var(--ink-700)}
.field__required{font-size:11px;font-weight:var(--fw-bold);letter-spacing:.08em;color:var(--white);background:var(--blue-500);padding:2px 6px;line-height:1.4}
.field__hint{font-size:var(--type-caption);color:var(--text-faint)}
.field__error{font-size:var(--type-caption);color:var(--status-error)}
.field__error:empty{display:none}
.input,.textarea,.select select{width:100%;font-family:var(--font-sans);font-size:var(--type-body);color:var(--text-body);background:var(--white);border:1px solid var(--border-hairline);border-radius:var(--radius-0);padding:14px 16px;outline:none;transition:border-color var(--dur-base) var(--ease-out),box-shadow var(--dur-base) var(--ease-out)}
.input{line-height:1.7}
.textarea{line-height:1.9;resize:vertical}
.input:focus,.textarea:focus,.select select:focus{border-color:var(--blue-500);box-shadow:0 0 0 3px var(--blue-100)}
.input[aria-invalid="true"],.textarea[aria-invalid="true"],.select select[aria-invalid="true"]{border-color:var(--status-error)}
.input:disabled,.textarea:disabled,.select select:disabled{background:var(--ink-050)}
.select{position:relative}
.select select{appearance:none;padding:14px 40px 14px 16px}
.select select:invalid{color:var(--text-faint)}
.select__chevron{position:absolute;right:16px;top:50%;transform:translateY(-50%);pointer-events:none}
.form-footer{border-top:1px solid var(--border-hairline);padding-top:var(--sp-6);display:grid;gap:var(--sp-5);justify-items:start}
.checkbox{display:inline-grid;grid-template-columns:18px 1fr;gap:12px;align-items:start}
.checkbox__box{position:relative;width:18px;height:18px;margin-top:5px;border:1px solid var(--ink-300);background:var(--white);cursor:pointer;transition:background var(--dur-fast) var(--ease-out),border-color var(--dur-fast) var(--ease-out)}
.checkbox input{position:absolute;inset:0;opacity:0;margin:0;cursor:pointer}
/* チェックマークは常時DOMにあるため、クリックを奪わないよう必ず pointer-events:none */
.checkbox__check{position:absolute;left:2px;top:3px;opacity:0;pointer-events:none;transition:opacity var(--dur-fast) var(--ease-out)}
.checkbox input:checked ~ .checkbox__check{opacity:1}
.checkbox__box:has(input:checked){background:var(--blue-500);border-color:var(--blue-500)}
.checkbox__label{font-size:var(--type-body-sm);color:var(--text-body)}
.checkbox__label label{cursor:pointer}
.form-status{border:1px solid var(--status-success);background:var(--status-success-subtle);padding:var(--sp-8)}
.form-status--error{border-color:var(--status-error);background:var(--status-error-subtle)}
.form-status h2{font-size:var(--type-h3)}
.form-status p{margin-top:var(--sp-4);font-size:var(--type-body);color:var(--text-muted)}
.form-status__actions{margin-top:var(--sp-6)}
[hidden]{display:none !important}

/* --------------------------------------------------------------- privacy */
.privacy__intro{font-size:var(--type-body);color:var(--text-muted)}
.privacy__list{display:grid;gap:var(--sp-7);margin-top:var(--sp-9)}
.privacy__h{font-size:var(--type-h4);padding-bottom:var(--sp-3);border-bottom:1px solid var(--border-hairline)}
.privacy__h::before{content:"";display:inline-block;width:6px;height:6px;background:var(--blue-500);margin-right:12px;vertical-align:middle}
.privacy__p{margin-top:var(--sp-4);font-size:var(--type-body);color:var(--text-muted)}
.privacy__p + .privacy__p{margin-top:var(--sp-4)}
.privacy__ol{margin:var(--sp-4) 0 0;padding-left:1.4em;font-size:var(--type-body);color:var(--text-muted)}
.privacy__ol li{margin-top:6px}
.privacy__ol ul{list-style:disc;margin:6px 0 0;padding-left:1.2em}
.privacy__contact{margin-top:var(--sp-9);background:var(--surface-accent-subtle);border:1px solid var(--blue-200);padding:var(--sp-7)}
.privacy__contact-eyebrow{font-family:var(--font-en);font-size:var(--type-eyebrow);font-weight:var(--fw-bold);letter-spacing:var(--type-eyebrow-ls);color:var(--text-accent)}
.privacy__contact h2{font-size:var(--type-h4);margin-top:var(--sp-3)}
.hitr-privacy-dl{margin:var(--sp-5) 0 0;display:grid;grid-template-columns:120px 1fr;row-gap:10px;font-size:var(--type-body-sm)}
.hitr-privacy-dl dt{font-weight:var(--fw-bold)}
.hitr-privacy-dl dd{margin:0;color:var(--text-muted);white-space:pre-line}

/* ============================================================ responsive
   元 responsive.css の 2段階ブレークポイントを維持。
   インラインstyleを廃したため !important は不要になっている。
   ========================================================================= */

/* ---- tablet ---- */
@media (max-width:1024px){
  :root{--header-h:68px}
  .hitr-hero{grid-template-columns:minmax(0,1fr);gap:40px}
  .hitr-hero-rail{padding-top:0;grid-template-columns:1fr 1fr}
  .hitr-about{grid-template-columns:minmax(0,1fr);gap:48px}
  .hitr-service-card{grid-template-columns:minmax(0,1fr);gap:24px}
  .hitr-service-photo{max-width:420px}
  .hitr-cta-inner{grid-template-columns:minmax(0,1fr);gap:40px}
  .hitr-footer-top{grid-template-columns:minmax(0,1fr);gap:48px}
  .hitr-footer-cols{border-left:0;padding-left:0;border-top:1px solid var(--border-on-dark);padding-top:40px}
  .hitr-form-row{grid-template-columns:minmax(0,1fr)}
}

/* ---- mobile ---- */
@media (max-width:640px){
  :root{--type-watermark:clamp(56px,17vw,96px)}
  .hitr-nav{display:none}
  .hitr-burger{display:grid}
  .hitr-header-inner{gap:12px}
  /* 元デザイン同様、モバイルでも CTA は残す（ナビだけをドロワーに畳む） */
  .site-header__cta{padding:10px 14px}
  .hitr-hero-rail{grid-template-columns:minmax(0,1fr)}
  .hitr-hero-watermark{display:none}
  .hitr-cta-actions{min-width:0;width:100%}
  .hitr-footer-cols{grid-template-columns:minmax(0,1fr);gap:32px}
  .hitr-info-row{grid-template-columns:minmax(0,1fr);gap:6px;padding:16px 0}
  .hitr-privacy-dl{grid-template-columns:minmax(0,1fr);row-gap:2px}
  .hitr-btn-stack{flex-direction:column;align-items:stretch}
  .hitr-btn-stack > *{width:100%}
}

/* ------------------------------------------------------ reduced motion */
@media (prefers-reduced-motion:reduce){
  html{scroll-behavior:auto}
  *,*::before,*::after{animation-duration:.01ms !important;animation-iteration-count:1 !important;transition-duration:.01ms !important}
}
