:root {
  --background:#f7f9f8; --foreground:#17292f; --card:#fff; --card-foreground:#17292f;
  --popover:#fff; --popover-foreground:#17292f; --primary:#0e6b70; --primary-foreground:#fff;
  --secondary:#e8f0ee; --secondary-foreground:#173e42; --muted:#eef2f0; --muted-foreground:#64767a;
  --accent:#e2efec; --accent-foreground:#173e42; --destructive:#b73236;
  --border:#dce5e2; --input:#c5d2ce; --ring:#0e6b70;
  --chart-1:#0e6b70; --chart-2:#4a8e8d; --chart-3:#184550; --chart-4:#bd9861; --chart-5:#6b7e88;
  --radius:.8rem;
}
@theme inline {
  --color-background:var(--background); --color-foreground:var(--foreground);
  --color-card:var(--card); --color-card-foreground:var(--card-foreground);
  --color-popover:var(--popover); --color-popover-foreground:var(--popover-foreground);
  --color-primary:var(--primary); --color-primary-foreground:var(--primary-foreground);
  --color-secondary:var(--secondary); --color-secondary-foreground:var(--secondary-foreground);
  --color-muted:var(--muted); --color-muted-foreground:var(--muted-foreground);
  --color-accent:var(--accent); --color-accent-foreground:var(--accent-foreground);
  --color-destructive:var(--destructive); --color-border:var(--border);
  --color-input:var(--input); --color-ring:var(--ring);
  --color-chart-1:var(--chart-1); --color-chart-2:var(--chart-2); --color-chart-3:var(--chart-3);
  --color-chart-4:var(--chart-4); --color-chart-5:var(--chart-5);
  --radius-sm:calc(var(--radius) - 4px); --radius-md:calc(var(--radius) - 2px);
  --radius-lg:var(--radius); --radius-xl:calc(var(--radius) + 4px);
  --font-sans:Arial,"Hiragino Kaku Gothic ProN","Hiragino Sans",Meiryo,sans-serif;
}
* { box-sizing:border-box; }
html { scroll-behavior:smooth; }
body { margin:0; background:var(--background); color:var(--foreground); font-family:var(--font-sans); }
button { cursor:pointer; }
.site-shell { min-height:100vh; display:flex; flex-direction:column; }
.site-header { min-height:84px; border-bottom:1px solid #e1e9e6; background:#fff; display:flex; align-items:center; justify-content:space-between; gap:24px; padding:0 clamp(24px,5vw,84px); }
.brand { display:flex; align-items:center; gap:11px; font-size:15px; font-weight:700; letter-spacing:.025em; white-space:nowrap; }
.brand { color:inherit; text-decoration:none; }
.brand-mark { color:#0e6b70; font-size:36px; line-height:1; font-weight:400; transform:rotate(12deg); }
.brand-separator { color:#a5b2af; margin:0 4px; }
.header-note { color:#6a7b7a; font-size:14px; }
.main-area { flex:1; padding:clamp(30px,5.5vw,76px) clamp(20px,5vw,84px) 64px; }
.survey-layout { width:min(1180px,100%); margin:auto; display:grid; grid-template-columns:minmax(0,.85fr) minmax(0,1.15fr); gap:clamp(28px,5vw,82px); align-items:start; }
.intro-panel { padding:21px 0; position:sticky; top:28px; }
.intro-label { display:flex; align-items:center; gap:10px; color:#0e6b70; font-size:12px; font-weight:800; letter-spacing:.2em; }
.intro-line { display:block; width:27px; height:1px; background:#0e6b70; }
.intro-panel h1 { margin:35px 0 24px; max-width:490px; font-size:clamp(32px,3.2vw,46px); font-weight:700; line-height:1.48; letter-spacing:-.065em; }
.intro-panel p { margin:0; max-width:430px; color:#52676b; font-size:16px; line-height:1.95; }
.intro-image { width:100%; height:230px; margin:32px 0 0; overflow:hidden; border-radius:14px; }
.intro-image img { display:block; width:100%; height:100%; object-fit:cover; }
.intro-bottom { margin-top:25px; display:flex; align-items:center; gap:10px; color:#31565b; font-size:14px; font-weight:700; }
.mini-diamond { font-size:27px; color:#0e6b70; line-height:1; }
.survey-card { min-height:650px; display:flex; flex-direction:column; background:#fff; border:1px solid #e2e9e6; border-radius:22px; box-shadow:0 24px 55px rgba(16,57,55,.07); padding:clamp(24px,3vw,42px); }
.card-topline { display:flex; align-items:center; justify-content:space-between; color:#547077; font-size:12px; font-weight:800; letter-spacing:.12em; }
.survey-progress { margin-top:19px; height:5px; background:#e8efed; }
.progress-fill { display:block; height:100%; background:#0e6b70; transition:width .2s ease; }
.question-content { padding-top:48px; flex:1; }
.eyebrow { color:#0e6b70; font-size:13px; font-weight:800; letter-spacing:.11em; }
.question-content h2 { margin:15px 0 10px; font-size:clamp(22px,2vw,29px); line-height:1.55; letter-spacing:-.055em; }
.question-hint { margin:0 0 28px; color:#738386; font-size:14px; }
.options { display:grid; gap:11px; }
.option { min-height:58px; width:100%; display:flex; align-items:center; gap:14px; border:1px solid #dfe8e5; border-radius:11px; padding:12px 17px; background:#fff; color:#263e43; transition:border-color .15s,background .15s,transform .15s; cursor:pointer; }
.option:hover { border-color:#6ba6a2; transform:translateY(-1px); }
.option:focus-within { outline:2px solid #0e6b70; outline-offset:2px; }
.option-selected { border-color:#0e6b70; background:#eff8f5; }
.option input { appearance:none; width:19px; height:19px; flex:0 0 19px; margin:0; border:1.5px solid #799693; background:#fff; display:grid; place-items:center; }
.option input[type="radio"] { border-radius:50%; }
.option input[type="checkbox"] { border-radius:4px; }
.option input:checked { background:#0e6b70; border-color:#0e6b70; }
.option input[type="radio"]:checked::after { content:""; width:7px; height:7px; border-radius:50%; background:#fff; }
.option input[type="checkbox"]:checked::after { content:"✓"; color:#fff; font-size:14px; line-height:1; font-weight:700; }
.option input:focus-visible { outline:3px solid #78c3bf; outline-offset:3px; }
.option-number { color:#94a5a4; font-size:12px; font-weight:800; letter-spacing:.08em; }
.option-label { font-size:15px; font-weight:600; line-height:1.5; }
.comment-block { margin-top:30px; }
.comment-block label { display:block; margin-bottom:10px; font-size:14px; font-weight:700; }
.comment-block label span { margin-left:6px; color:#78898b; font-weight:400; }
.comment-block textarea { display:block; width:100%; min-height:100px; resize:vertical; font-family:inherit; font-size:15px; line-height:1.6; padding:13px; border:1px solid #d8e2df; border-radius:8px; }
.error-message { color:#b73236; margin:17px 0 0; font-size:14px; }
.card-actions { display:flex; justify-content:space-between; align-items:center; gap:16px; margin-top:40px; }
.next-button { min-height:52px; display:flex; align-items:center; justify-content:center; gap:14px; border:0; border-radius:9px; padding:0 24px; background:#0e6b70; color:#fff; font-size:15px; font-weight:700; transition:background .15s,transform .15s; }
.next-button:hover { background:#09565a; transform:translateY(-1px); }
.back-button { display:flex; align-items:center; gap:6px; border:0; background:transparent; color:#53696d; padding:12px 0; font-size:14px; font-weight:700; }
.next-button:focus-visible,.back-button:focus-visible,.restart-button:focus-visible { outline:3px solid #78c3bf; outline-offset:3px; }
.form-disclaimer { margin:26px 0 0; color:#7b8989; font-size:12px; line-height:1.5; text-align:right; }
.completion { flex:1; display:flex; flex-direction:column; align-items:flex-start; justify-content:center; padding:45px 14px; }
.completion-icon { width:67px; height:67px; display:grid; place-items:center; border-radius:50%; background:#e4f3ee; color:#0e6b70; margin-bottom:28px; }
.completion h2 { margin:14px 0 12px; font-size:clamp(29px,3vw,39px); letter-spacing:-.05em; }
.completion p { margin:0; color:#53696d; font-size:16px; line-height:1.8; }
.completion .sample-note { margin-top:18px; font-size:13px; color:#798b8a; }
.restart-button { display:flex; align-items:center; gap:9px; margin-top:38px; padding:12px 17px; background:transparent; border:1px solid #a9c6c2; border-radius:8px; color:#0e6b70; font-size:14px; font-weight:700; }
.restart-button:hover { background:#edf7f4; }
.site-footer { display:flex; flex-wrap:wrap; justify-content:space-between; gap:15px; border-top:1px solid #e1e9e6; padding:27px clamp(24px,5vw,84px); color:#718282; font-size:13px; }
.footer-links { display:flex; flex-wrap:wrap; gap:9px 22px; }
.footer-links a { color:#31565b; text-decoration:underline; text-underline-offset:3px; }
.footer-links a:hover { color:#0e6b70; }
.info-main { flex:1; width:min(860px,100%); margin:0 auto; padding:clamp(38px,6vw,80px) clamp(20px,5vw,40px) 80px; }
.info-back { display:inline-flex; align-items:center; gap:8px; color:#31565b; font-size:14px; font-weight:700; text-decoration:none; }
.info-back:hover { text-decoration:underline; }
.info-card { margin-top:28px; padding:clamp(26px,5vw,55px); border:1px solid #e2e9e6; border-radius:20px; background:#fff; box-shadow:0 24px 55px rgba(16,57,55,.06); }
.info-card h1 { margin:14px 0 18px; font-size:clamp(27px,3vw,38px); letter-spacing:-.04em; }
.info-lead { margin:0 0 30px; color:#52676b; font-size:16px; line-height:1.8; }
.info-card h2 { margin:35px 0 12px; padding-top:25px; border-top:1px solid #e2e9e6; font-size:20px; line-height:1.5; }
.info-card p { color:#354f54; font-size:15px; line-height:1.9; }
.info-card a { color:#0e6b70; text-decoration:underline; text-underline-offset:3px; overflow-wrap:anywhere; }
.company-list { margin:28px 0 0; border-top:1px solid #e2e9e6; }
.company-list div { display:grid; grid-template-columns:150px 1fr; gap:22px; padding:17px 0; border-bottom:1px solid #e2e9e6; }
.company-list dt { color:#60767a; font-size:14px; font-weight:700; }
.company-list dd { margin:0; font-size:15px; line-height:1.75; }
.source-note { margin:28px 0 0; font-size:13px !important; color:#738386 !important; }
@media (max-width:900px) {
  .survey-layout { grid-template-columns:1fr; gap:25px; max-width:650px; }
  .intro-panel { position:static; padding:0; }
  .intro-panel h1 { margin:16px 0 10px; font-size:clamp(28px,5vw,38px); }
  .intro-panel p { max-width:none; }
  .intro-bottom { margin-top:18px; }
  .intro-image { margin-top:20px; height:180px; }
  .survey-card { min-height:0; }
}
@media (max-width:600px) {
  .site-header { min-height:68px; }
  .brand { font-size:13px; gap:7px; }
  .brand-mark { font-size:29px; }
  .header-note { display:none; }
  .main-area { padding-top:30px; padding-bottom:45px; }
  .intro-label { font-size:11px; }
  .intro-panel h1 { font-size:28px; line-height:1.5; }
  .intro-panel p { font-size:14px; line-height:1.75; }
  .intro-bottom { font-size:13px; }
  .intro-image { height:125px; margin-top:16px; }
  .survey-card { border-radius:17px; padding:24px 18px; }
  .question-content { padding-top:36px; }
  .question-content h2 { font-size:22px; }
  .option { padding:10px 12px; gap:10px; }
  .option-label { font-size:14px; }
  .card-actions { margin-top:30px; }
  .next-button { padding:0 17px; font-size:14px; }
  .site-footer { flex-direction:column; gap:5px; padding-top:24px; padding-bottom:24px; }
  .footer-links { margin:8px 0; }
  .company-list div { grid-template-columns:1fr; gap:5px; }
}
