:root{
    --bone:#D8E5EC;--bone-2:#C6D9E2;--paper:#EDF3F6;
    --ocean:#0F3049;--ocean-2:#2C6E95;--ochre:#D69A3A;--rust:#E2643C;--wood:#3A5A6E;
    --char:#132A3D;--char-soft:#4B6274;
    --disp:"Anton",sans-serif;--jp:"Zen Kaku Gothic New",sans-serif;--label:"Oswald",sans-serif;
    --wrap:1180px;
  }
  *{box-sizing:border-box;margin:0;padding:0}
  html{scroll-behavior:smooth}
  @media (prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
  body{font-family:var(--jp);color:var(--char);line-height:1.85;background:var(--bone);-webkit-font-smoothing:antialiased;overflow-x:hidden;position:relative}
  body::before{content:"";position:fixed;inset:0;z-index:1;pointer-events:none;opacity:.06;mix-blend-mode:multiply;
    background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.9' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}
  a{color:inherit;text-decoration:none}
  img,svg{display:block;max-width:100%}
  .wrap{width:min(100% - 44px,var(--wrap));margin-inline:auto;position:relative;z-index:2}

  header{position:sticky;top:0;z-index:50;background:var(--bone);border-bottom:2.5px solid var(--char)}
  .bar{display:flex;align-items:center;justify-content:space-between;height:76px}
  .brand{display:flex;align-items:center;gap:14px}
  .stamp{width:40px;height:40px;border-radius:50%;border:2px solid var(--char);display:grid;place-items:center;flex:none;font-family:var(--disp);font-size:.62rem;line-height:.9;text-align:center;color:var(--char);background:radial-gradient(circle at 50% 40%,var(--ochre) 0 46%,transparent 47%)}
  .brand .mark{font-family:var(--jp);font-weight:900;font-size:1.32rem;letter-spacing:.05em}
  .brand .mark b{color:var(--ocean-2)}
  nav ul{list-style:none;display:flex;gap:26px;align-items:center}
  nav a{font-family:var(--label);text-transform:uppercase;letter-spacing:.1em;font-size:.82rem;font-weight:500;color:var(--char);transition:color .2s;padding:4px 0}
  nav a:hover{color:var(--rust)}
  .nav-cta{border:2px solid var(--char);padding:8px 16px;font-weight:600;background:var(--char);color:var(--bone)!important;transition:background .2s,color .2s}
  .nav-cta:hover{background:var(--rust);border-color:var(--rust);color:#fff!important}
  .burger{display:none;background:none;border:0;cursor:pointer;width:44px;height:44px;color:var(--char)}
  .burger span{display:block;width:24px;height:2.5px;background:currentColor;margin:5px auto;transition:.3s}

  .hero{position:relative;padding:60px 0 0;overflow:hidden}
  .hero-grid{display:grid;grid-template-columns:1.05fr .95fr;gap:44px;align-items:end}
  .hero-eyebrow{font-family:var(--label);text-transform:uppercase;letter-spacing:.24em;font-size:.78rem;font-weight:600;color:var(--rust);margin-bottom:16px;display:flex;align-items:center;gap:12px}
  .hero-eyebrow::before{content:"";width:38px;height:2px;background:var(--rust)}
  .hero .big{font-family:var(--disp);text-transform:uppercase;line-height:.86;letter-spacing:.01em;color:var(--ocean);font-size:clamp(3.4rem,9vw,7rem);margin-bottom:4px}
  .hero .big .out{color:transparent;-webkit-text-stroke:2px var(--ocean)}
  .hero h1{font-family:var(--jp);font-weight:900;font-size:clamp(1.3rem,2.6vw,1.9rem);line-height:1.55;letter-spacing:.02em;margin:18px 0 20px}
  .hero h1 mark{background:var(--ochre);color:var(--char);padding:0 .2em}
  .hero .lede{color:var(--char-soft);max-width:40ch;margin-bottom:30px;font-size:1rem}
  .hero-actions{display:flex;gap:14px;flex-wrap:wrap}
  .btn{font-family:var(--label);text-transform:uppercase;letter-spacing:.1em;font-weight:600;font-size:.86rem;padding:15px 30px;cursor:pointer;border:2px solid var(--char);transition:transform .15s,background .2s,color .2s}
  .btn-fill{background:var(--char);color:var(--bone)}
  .btn-fill:hover{background:var(--rust);border-color:var(--rust);color:#fff;transform:translate(-2px,-2px)}
  .btn-ghost{background:transparent;color:var(--char)}
  .btn-ghost:hover{background:var(--char);color:var(--bone);transform:translate(-2px,-2px)}

  /* framed illustration / photo slot */
  .frame{position:relative;overflow:hidden;border:6px solid var(--paper);outline:2px solid var(--char);min-height:240px;box-shadow:6px 6px 0 rgba(36,31,24,.18);background:var(--ocean)}
  .frame .scene{position:absolute;inset:0;width:100%;height:100%}
  .frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
  .hero-photo{position:relative}
  .hero-photo .frame{min-height:clamp(300px,42vw,440px);transform:rotate(1.6deg)}
  .tape{position:absolute;z-index:4;width:96px;height:30px;background:rgba(196,137,43,.7);top:-12px;left:40px;transform:rotate(-6deg);box-shadow:0 2px 6px rgba(0,0,0,.15)}
  .seal{position:absolute;z-index:4;right:-18px;bottom:-18px;width:110px;height:110px;border-radius:50%;background:var(--rust);color:var(--bone);display:grid;place-items:center;text-align:center;font-family:var(--disp);text-transform:uppercase;line-height:.95;font-size:.82rem;letter-spacing:.02em;border:3px dashed var(--bone);transform:rotate(-8deg);box-shadow:4px 4px 0 rgba(36,31,24,.25)}

  .marquee{background:var(--char);color:var(--bone);border-block:2.5px solid var(--char);overflow:hidden;white-space:nowrap;margin-top:56px}
  .marquee .track{display:inline-block;padding:14px 0;font-family:var(--disp);text-transform:uppercase;font-size:1.05rem;letter-spacing:.12em;animation:scroll 26s linear infinite}
  .marquee .track span{margin:0 26px;color:var(--bone)}
  .marquee .track span.hl{color:var(--ochre)}
  @keyframes scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
  @media (prefers-reduced-motion:reduce){.marquee .track{animation:none}}

  section{padding:88px 0}
  .kicker{font-family:var(--label);text-transform:uppercase;letter-spacing:.24em;font-size:.76rem;font-weight:600;color:var(--rust);display:flex;align-items:center;gap:12px;margin-bottom:16px}
  .kicker::before{content:"";width:34px;height:2px;background:var(--rust)}
  .kicker.center{justify-content:center}
  .sec-head{max-width:60ch;margin-bottom:50px}
  .sec-head.center{text-align:center;margin-inline:auto}
  h2.disp{font-family:var(--disp);text-transform:uppercase;line-height:.95;letter-spacing:.01em;font-size:clamp(2.2rem,5vw,3.6rem);color:var(--ocean)}
  .sec-head .jp{font-family:var(--jp);font-weight:900;font-size:clamp(1.15rem,2vw,1.4rem);margin-top:10px}
  .sec-head p{margin-top:16px;color:var(--char-soft)}

  .philo{background:var(--bone-2);border-block:2.5px solid var(--char)}
  .philo-grid{display:grid;grid-template-columns:.9fr 1.1fr;gap:56px;align-items:center}
  .philo-copy p+p{margin-top:16px}
  .philo-copy p{color:#463f31}

  .feat-list{border-top:2px solid var(--char)}
  .feat{display:grid;grid-template-columns:88px 1fr;gap:24px;padding:30px 0;border-bottom:2px solid var(--char);align-items:baseline;transition:padding-left .25s,background .25s}
  .feat:hover{padding-left:14px;background:linear-gradient(90deg,rgba(196,137,43,.12),transparent 60%)}
  .feat .no{font-family:var(--disp);font-size:2.6rem;color:var(--ochre);line-height:1}
  .feat h3{font-family:var(--jp);font-weight:900;font-size:1.3rem;margin-bottom:6px}
  .feat p{color:var(--char-soft);font-size:.94rem;max-width:60ch}

  .series{background:linear-gradient(160deg,#2A688A 0%,#1E5273 100%);color:var(--bone);border-block:2.5px solid var(--char)}
  .series h2.disp{color:var(--bone)}
  .series .kicker{color:var(--ochre)}
  .series .kicker::before{background:var(--ochre)}
  .series .sec-head p{color:rgba(233,225,206,.78)}
  .series-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
  .boat{background:var(--paper);color:var(--char);border:2px solid var(--char);box-shadow:6px 6px 0 rgba(0,0,0,.25);transition:transform .2s;display:flex;flex-direction:column}
  .boat:hover{transform:translate(-3px,-3px);box-shadow:9px 9px 0 rgba(0,0,0,.25)}
  .boat .frame{border:0;outline:0;box-shadow:none;min-height:200px;border-bottom:2px solid var(--char)}
  .boat-body{padding:22px 24px 24px;display:flex;flex-direction:column;flex:1}
  .boat .model{font-family:var(--disp);font-size:1.9rem;line-height:1;color:var(--ocean);letter-spacing:.01em}
  .boat .tag{display:inline-block;align-self:flex-start;font-family:var(--label);text-transform:uppercase;letter-spacing:.1em;font-size:.68rem;font-weight:600;color:var(--bone);background:var(--rust);padding:4px 12px;margin:10px 0 14px}
  .boat .desc{font-size:.9rem;color:var(--char-soft);margin-bottom:18px}
  .boat .spec{margin-top:auto;display:grid;grid-template-columns:repeat(3,1fr);gap:8px;border-top:1px dotted #9DB6C4;padding-top:14px}
  .boat .spec dt{font-family:var(--label);text-transform:uppercase;letter-spacing:.08em;font-size:.6rem;font-weight:600;color:var(--char-soft);margin-bottom:2px}
  .boat .spec dd{font-family:var(--disp);font-size:1.3rem;line-height:1;color:var(--ocean-2)}
  .boat .spec dd i{font-family:var(--label);font-style:normal;font-size:.6rem;font-weight:500;color:var(--char-soft);margin-left:2px}
  .note-line{font-size:.78rem;color:rgba(216,229,236,.72);margin-top:26px;text-align:center;font-family:var(--label);letter-spacing:.04em}
  .res-links{display:flex;gap:12px;flex-wrap:wrap;justify-content:center;margin-top:30px}
  .res-links a{font-family:var(--label);text-transform:uppercase;letter-spacing:.08em;font-size:.74rem;font-weight:600;color:var(--bone);border:2px solid rgba(216,229,236,.45);padding:10px 18px;display:inline-flex;gap:8px;align-items:center;transition:background .2s,color .2s,border-color .2s}
  .res-links a:hover{background:var(--bone);color:var(--ocean);border-color:var(--bone)}
  .prod-grid{display:grid;grid-template-columns:1fr 1fr;gap:24px}
  .boat .price{font-family:var(--label);font-weight:600;color:var(--rust);margin:0 0 14px;font-size:.92rem}
  .boat .price small{color:var(--char-soft);font-weight:500;font-size:.8em}
  .boat .pdf-link{margin-top:auto;font-family:var(--label);text-transform:uppercase;letter-spacing:.09em;font-size:.74rem;font-weight:600;color:var(--ocean-2);border-top:1px dotted #9DB6C4;padding-top:14px;display:inline-flex;justify-content:space-between;align-items:center;width:100%}
  .boat .pdf-link:hover{color:var(--rust)}

  .band{background:var(--bone)}
  .band-inner{display:grid;grid-template-columns:1.1fr .9fr;gap:52px;align-items:center}
  .band h2.disp{color:var(--ocean)}
  .band .jp{font-family:var(--jp);font-weight:900;font-size:clamp(1.15rem,2vw,1.4rem);margin-top:8px}
  .band p{margin-top:14px;color:var(--char-soft)}
  .brands{display:flex;gap:12px;margin-top:22px;flex-wrap:wrap}
  .brands span{font-family:var(--label);text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-size:.82rem;border:2px solid var(--char);padding:7px 15px}
  .notice{position:relative;background:var(--ochre);color:var(--char);border:2px solid var(--char);padding:30px 28px;box-shadow:6px 6px 0 rgba(36,31,24,.25);transform:rotate(-1deg)}
  .notice .t{font-family:var(--label);text-transform:uppercase;letter-spacing:.18em;font-size:.72rem;font-weight:600;margin-bottom:8px}
  .notice p{font-family:var(--jp);font-weight:900;font-size:1.25rem;line-height:1.5}

  .company{background:var(--bone-2);border-top:2.5px solid var(--char)}
  .comp-grid{display:grid;grid-template-columns:1fr 1fr;gap:48px}
  .info dl{display:grid;grid-template-columns:120px 1fr;border-top:2px solid var(--char)}
  .info dt{padding:15px 0;border-bottom:1px solid #C3B99D;font-family:var(--label);text-transform:uppercase;letter-spacing:.08em;font-size:.8rem;font-weight:600;color:var(--ocean)}
  .info dd{padding:15px 0;border-bottom:1px solid #C3B99D;font-size:.94rem}
  .map .frame{min-height:360px}
  .map .frame iframe{position:absolute;inset:0;width:100%;height:100%;border:0}

  .cta{background:var(--char);color:var(--bone);border-block:2.5px solid var(--char)}
  .cta-inner{text-align:center;max-width:60ch;margin-inline:auto}
  .cta .kicker{color:var(--ochre);justify-content:center}
  .cta .kicker::before{background:var(--ochre)}
  .cta h2.disp{color:var(--bone)}
  .cta p{color:rgba(233,225,206,.8);margin:16px auto 30px;max-width:44ch}
  .cta .btn-ghost{color:var(--bone);border-color:var(--bone)}
  .cta .btn-ghost:hover{background:var(--bone);color:var(--char)}

  footer{background:var(--ocean);color:var(--bone);padding:56px 0 34px}
  .foot-grid{display:flex;justify-content:space-between;gap:40px;flex-wrap:wrap;margin-bottom:36px}
  .foot-brand .mark{font-family:var(--jp);font-weight:900;font-size:1.25rem}
  .foot-brand .mark b{color:var(--ochre)}
  .foot-brand p{font-size:.84rem;color:rgba(233,225,206,.7);margin-top:12px;max-width:34ch}
  .foot-cols{display:flex;gap:56px;flex-wrap:wrap}
  .foot-cols h4{font-family:var(--label);text-transform:uppercase;letter-spacing:.16em;font-size:.72rem;color:var(--ochre);margin-bottom:14px}
  .foot-cols ul{list-style:none;display:grid;gap:10px}
  .foot-cols a{font-size:.86rem;color:rgba(233,225,206,.85);transition:color .2s}
  .foot-cols a:hover{color:#fff}
  .copyright{border-top:1px solid rgba(233,225,206,.2);padding-top:22px;font-family:var(--label);text-transform:uppercase;letter-spacing:.1em;font-size:.72rem;color:rgba(233,225,206,.6);display:flex;justify-content:space-between;flex-wrap:wrap;gap:8px}

  .reveal{opacity:0;transform:translateY(26px);transition:opacity .7s ease,transform .7s ease}
  .reveal.in{opacity:1;transform:none}
  @media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none;transition:none}}

  @media (max-width:900px){
    .hero-grid,.philo-grid,.comp-grid,.band-inner{grid-template-columns:1fr;gap:40px}
    .hero-grid{align-items:start}
    .series-grid{grid-template-columns:1fr 1fr}
  }
  @media (max-width:640px){
    nav ul{display:none}
    .burger{display:block}
    nav.open ul{display:flex;flex-direction:column;position:absolute;top:76px;left:0;right:0;background:var(--bone);border-bottom:2.5px solid var(--char);padding:22px 24px;gap:18px}
    nav.open ul .nav-cta{align-self:flex-start}
    section{padding:60px 0}
    .series-grid,.prod-grid{grid-template-columns:1fr}
    .feat{grid-template-columns:60px 1fr;gap:16px}
    .feat .no{font-size:2rem}
    .info dl{grid-template-columns:98px 1fr}
    .hero-photo .frame{transform:none}
  }
  .to-top{position:fixed;right:26px;bottom:26px;z-index:60;width:58px;height:58px;padding:0;border:0;background:transparent;cursor:pointer;display:grid;place-items:center;opacity:0;visibility:hidden;transform:translateY(14px) scale(.85);transition:opacity .4s ease,transform .4s cubic-bezier(.34,1.56,.64,1)}
  .to-top.show{opacity:1;visibility:visible;transform:none}
  .to-top::before{content:"";position:absolute;inset:8px;border-radius:50%;background:var(--char);box-shadow:0 10px 24px -8px rgba(36,31,24,.7);transition:background .25s,transform .25s}
  .to-top:hover::before{background:var(--rust)}
  .to-top:active::before{transform:scale(.92)}
  .to-top .ring{position:absolute;inset:0;width:100%;height:100%;transform:rotate(-90deg)}
  .to-top .ring circle{fill:none;stroke-width:2}
  .to-top .ring .track{stroke:rgba(36,31,24,.16)}
  .to-top .ring .prog{stroke:var(--ochre);stroke-linecap:round;transition:stroke-dashoffset .1s linear}
  .to-top .arw{position:relative;width:20px;height:20px}
  .to-top .arw path{fill:none;stroke:var(--bone);stroke-width:2.2;stroke-linecap:round;stroke-linejoin:round}
  .to-top:hover .arw{animation:nudgeUp .7s ease}
  @keyframes nudgeUp{0%,100%{transform:translateY(0)}45%{transform:translateY(-4px)}}
  @media (max-width:640px){.to-top{right:16px;bottom:16px;width:50px;height:50px}}

  /* ---------- spec table (規格一覧) ---------- */
  .spec-wrap{overflow-x:auto;-webkit-overflow-scrolling:touch;border:2px solid var(--char);margin-top:26px;background:var(--paper)}
  .spec-table{border-collapse:collapse;width:100%;min-width:900px;font-family:var(--jp)}
  .spec-table th,.spec-table td{border:1px solid var(--bone-2);padding:10px 12px;text-align:center;vertical-align:middle;font-size:.9rem}
  .spec-table thead th{background:var(--ocean);color:var(--paper);font-family:var(--label);font-weight:500;letter-spacing:.03em;padding:12px 10px}
  .spec-table thead th.row-key{background:var(--char)}
  .spec-table thead th a{color:var(--paper);border-bottom:1px solid rgba(255,255,255,.4)}
  .spec-table thead .thumb{padding:6px;background:var(--paper)}
  .spec-table thead .thumb img{display:block;height:72px;width:auto;max-width:100%;margin:0 auto;object-fit:contain}
  .spec-table th.row-key{background:var(--ochre);color:var(--char);font-family:var(--label);font-weight:500;letter-spacing:.04em;white-space:nowrap;text-align:right;padding-right:14px;position:sticky;left:0;z-index:1;font-size:.82rem}
  .spec-table tbody tr:nth-child(even) td{background:#E4EEF3}
  .spec-table td.pv{font-family:var(--disp);font-size:1.2rem;color:var(--ocean);letter-spacing:.02em}
  .spec-table td.price{font-family:var(--disp);font-size:1.15rem;color:var(--rust)}
  .spec-table td.equip{text-align:left;font-size:.82rem;line-height:1.7;color:var(--char-soft)}
  .spec-table td.equip ul{list-style:none;margin:0;padding:0}
  .spec-table td.equip li{padding-left:14px;position:relative}
  .spec-table td.equip li::before{content:"–";position:absolute;left:0;color:var(--ochre)}
  .spec-note{color:var(--char-soft);font-size:.85rem;margin-top:14px}

  /* 和文を文節（語のまとまり）で改行。Chromium 119+ で有効、他ブラウザは従来通り */
  .hero .lede, .sec-head p, .feat p, .about p, .band-inner p, .cta-inner p,
  .boat .desc, .info dd, .prod-grid p, .note-line, .spec-note{
    line-break:strict; word-break:auto-phrase;
  }

  /* ---------- video gallery ---------- */
  .video-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(320px,1fr));gap:22px;margin-top:26px}
  .video-item{border:2px solid var(--char);background:#000;position:relative;aspect-ratio:16/9;overflow:hidden}
  .video-item iframe{position:absolute;inset:0;width:100%;height:100%;border:0;display:block}
  .video-num{position:absolute;top:8px;left:10px;z-index:2;font-family:var(--disp);font-size:1rem;color:#fff;background:rgba(15,48,73,.72);padding:1px 10px;letter-spacing:.05em;pointer-events:none}
  @media(max-width:560px){.video-grid{grid-template-columns:1fr}}

  /* ---------- owner's manual ---------- */
  .manual{max-width:820px}
  .manual .lead{color:var(--char-soft);margin-bottom:10px}
  .safety-box{border:1.5px solid var(--ochre);border-radius:4px;overflow:hidden;margin:26px 0}
  .safety-box .t{background:var(--ochre);color:#fff;font-weight:700;padding:9px 16px;letter-spacing:.06em;font-family:var(--label)}
  .safety-box ul{margin:0;padding:14px 18px 14px 34px}
  .safety-box li{margin-bottom:9px;line-height:1.85}
  .safety-box li:last-child{margin-bottom:0}
  .m-sec{margin-top:34px}
  .m-sec h3{display:flex;align-items:center;gap:11px;font-family:var(--jp);font-weight:900;font-size:1.25rem;color:var(--ocean);margin:0 0 12px}
  .m-sec h3::before{content:"";flex:none;width:7px;height:22px;background:var(--rust);border-radius:1px}
  .m-sec p{line-height:1.95;margin:0 0 11px;color:var(--char)}
  .m-divider{display:flex;align-items:center;gap:14px;margin:30px 0 6px;color:var(--ochre);font-family:var(--label);letter-spacing:.2em;font-size:.78rem}
  .m-divider::before,.m-divider::after{content:"";height:1px;background:var(--bone-2);flex:1}

  /* 和文の文節改行を全本文に適用（赤枠対応・追補） */
  .hero .lede, .sec-head p, .sec-head .jp, .jp, .feat p, .about p,
  .band-inner p, .cta-inner p, .contact p, .boat .desc, .desc, .info dd,
  .prod-grid p, .note-line, .spec-note, .foot-brand p, .lead,
  .safety-box li, .m-sec p{
    line-break:strict; word-break:auto-phrase;
  }

  /* ---------- 申込・お問い合わせページ（EBOSHI） ---------- */
  .contact-cols{display:grid;grid-template-columns:1.55fr 1fr;gap:34px;align-items:start;margin-top:26px}
  .contact-form{min-width:0}
  .contact-side{display:flex;flex-direction:column;gap:18px}
  .cs-box{border:2px solid var(--char);background:var(--paper);padding:20px 22px}
  .cs-box .cs-t{font-family:var(--label);text-transform:uppercase;letter-spacing:.12em;font-size:.82rem;font-weight:600;color:var(--rust);margin-bottom:12px}
  .cs-box dl{margin:0;display:grid;grid-template-columns:auto 1fr;gap:6px 14px}
  .cs-box dt{font-size:.78rem;color:var(--char-soft);font-weight:500;align-self:center}
  .cs-box dd{margin:0;font-family:var(--disp);font-size:1.15rem;letter-spacing:.02em;color:var(--ocean)}
  .cs-box dd a{color:var(--ocean)}
  .cs-box dd a:hover{color:var(--rust)}
  .cs-box .cs-note{font-size:.8rem;color:var(--char-soft);margin:12px 0 0;line-height:1.75}
  .cs-box p{margin:0 0 12px;line-height:1.85}
  .cs-links{list-style:none;margin:0;padding:0}
  .cs-links li{margin-bottom:9px}
  .cs-links a{color:var(--ocean);font-weight:500}
  .cs-links a:hover{color:var(--rust)}

  /* 未設定時の案内ボックス */
  .form-setup{border:1.5px dashed var(--bone-2);background:var(--paper);padding:22px 24px;border-radius:4px}
  .form-setup .fs-title{font-family:var(--jp);font-weight:900;color:var(--ocean);margin:0 0 12px;font-size:1.05rem}
  .form-setup ol{margin:0 0 8px;padding-left:1.3em}
  .form-setup li{margin-bottom:9px;line-height:1.85}
  .form-setup code{background:#fff;border:1px solid var(--bone-2);padding:1px 6px;border-radius:3px;font-size:.86em}
  .form-setup .fs-note{font-size:.84rem;color:var(--char-soft);margin:10px 0 0}
  .form-setup .fs-contact{margin:12px 0 0;line-height:2}
  .form-setup .fs-contact a{color:var(--ocean);font-weight:600}

  /* Contact Form 7（EBOSHI 配色） */
  .eb-form .tk-field{margin-bottom:16px}
  .eb-form .tk-row{display:grid;grid-template-columns:1fr 1fr;gap:16px}
  .eb-form label{display:block;font-weight:700;font-size:.92rem;color:var(--char);margin-bottom:6px}
  .eb-form .tk-req{display:inline-block;background:var(--rust);color:#fff;font-family:var(--label);font-size:.66rem;letter-spacing:.08em;padding:1px 7px;border-radius:2px;margin-left:6px;vertical-align:middle}
  .eb-form input[type=text],.eb-form input[type=email],.eb-form input[type=tel],
  .eb-form select,.eb-form textarea{width:100%;box-sizing:border-box;font-family:var(--jp);font-size:1rem;color:var(--char);background:#fff;border:2px solid var(--bone-2);border-radius:3px;padding:11px 13px;transition:border-color .2s}
  .eb-form input:focus,.eb-form select:focus,.eb-form textarea:focus{outline:none;border-color:var(--ocean)}
  .eb-form textarea{resize:vertical;min-height:130px}
  .eb-form .wpcf7-list-item{display:inline-block;margin:0 16px 6px 0}
  .eb-form .wpcf7-list-item label{display:inline-flex;align-items:center;gap:6px;font-weight:500}
  .eb-form input[type=submit]{font-family:var(--label);text-transform:uppercase;letter-spacing:.08em;font-weight:600;font-size:.95rem;color:#fff;background:var(--ocean);border:2px solid var(--ocean);border-radius:3px;padding:14px 30px;cursor:pointer;transition:background .2s,border-color .2s}
  .eb-form input[type=submit]:hover{background:var(--rust);border-color:var(--rust)}
  .eb-form .wpcf7-spinner{margin:0 0 0 12px}
  .eb-form .wpcf7-not-valid-tip{color:var(--rust);font-size:.82rem;margin-top:4px}
  .eb-form .wpcf7-response-output{margin:16px 0 0!important;border-width:2px!important;padding:12px 16px!important;font-size:.9rem}

  @media(max-width:820px){
    .contact-cols{grid-template-columns:1fr}
    .eb-form .tk-row{grid-template-columns:1fr}
  }

  /* ---------- 規格表：各艇の詳細カード ---------- */
  .spec-details{border-top:2px solid var(--bone-2)}
  .model-card{display:grid;grid-template-columns:minmax(0,42%) 1fr;gap:30px;align-items:center;
    padding:30px 0;border-bottom:1px solid var(--bone-2)}
  .model-card.rev .model-photo{order:2}
  .model-photo img{width:100%;height:auto;display:block;border:2px solid var(--char);
    box-shadow:6px 6px 0 var(--bone-2)}
  .model-name{font-size:clamp(1.5rem,3.4vw,2.1rem);color:var(--ocean);margin:0 0 10px;letter-spacing:.02em}
  .model-spec{font-family:var(--jp);font-weight:700;color:var(--char);margin:0 0 4px;line-height:1.7;
    font-size:.96rem;word-break:auto-phrase;line-break:strict}
  .model-weight{font-size:.86rem;color:var(--char-soft);margin:0 0 12px}
  .model-lead{line-height:1.95;margin:0 0 14px;word-break:auto-phrase;line-break:strict}
  .model-points{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:9px}
  .model-points li{position:relative;padding-left:20px;line-height:1.85;font-size:.94rem;color:var(--char);
    word-break:auto-phrase;line-break:strict}
  .model-points li::before{content:"";position:absolute;left:0;top:.62em;width:9px;height:9px;
    background:var(--rust);transform:rotate(45deg)}
  @media (max-width:760px){
    .model-card{grid-template-columns:1fr;gap:16px;padding:24px 0}
    .model-card.rev .model-photo{order:0}
    .model-photo img{box-shadow:4px 4px 0 var(--bone-2)}
  }

  /* ---------- 製造工程ページ ---------- */
  .proc-card{display:grid;grid-template-columns:minmax(0,46%) 1fr;gap:30px;align-items:center;
    padding:26px 0;border-bottom:1px solid var(--bone-2)}
  .proc-card.rev .proc-photo{order:2}
  .proc-photo{position:relative}
  .proc-photo img{width:100%;height:auto;display:block;border:2px solid var(--char);box-shadow:6px 6px 0 var(--bone-2)}
  .proc-no{position:absolute;top:-14px;left:-10px;z-index:2;font-family:var(--disp);
    font-size:2.4rem;line-height:1;color:#fff;background:var(--ocean);padding:8px 14px;
    border:2px solid var(--char);letter-spacing:.02em}
  .proc-title{font-size:clamp(1.4rem,3vw,1.9rem);color:var(--ocean);margin:0 0 12px}
  .proc-body p{line-height:1.95;margin:0 0 10px;word-break:auto-phrase;line-break:strict}
  @media (max-width:760px){
    .proc-card{grid-template-columns:1fr;gap:20px;padding:22px 0}
    .proc-card.rev .proc-photo{order:0}
    .proc-no{font-size:2rem}
  }

  /* ---------- オプション一覧ページ ---------- */
  .opt-grid{display:grid;grid-template-columns:repeat(2,1fr);gap:22px;margin-top:24px}
  .opt-cat{border:2px solid var(--char);background:var(--paper);padding:20px 22px}
  .opt-cat-t{font-family:var(--jp);font-weight:900;color:var(--ocean);margin:0 0 14px;
    font-size:1.08rem;padding-bottom:10px;border-bottom:2px solid var(--rust)}
  .opt-cat ul{list-style:none;margin:0;padding:0;display:flex;flex-direction:column;gap:8px}
  .opt-cat li{position:relative;padding-left:18px;line-height:1.7;font-size:.96rem;color:var(--char)}
  .opt-cat li::before{content:"";position:absolute;left:0;top:.6em;width:7px;height:7px;
    background:var(--ochre);transform:rotate(45deg)}
  @media (max-width:640px){ .opt-grid{grid-template-columns:1fr} }

  /* ユーザー紹介：艇名バッジ */
  .user-boat{display:inline-block;font-family:var(--label);font-size:.62em;letter-spacing:.08em;
    color:#fff;background:var(--rust);padding:3px 10px;border-radius:2px;vertical-align:middle;margin-left:8px}

  /* ---------- ポータボートページ ---------- */
  .porta-feats{display:grid;grid-template-columns:repeat(3,1fr);gap:20px;margin-top:24px}
  .porta-feat{border:2px solid var(--char);background:var(--paper);padding:22px 22px 20px}
  .porta-feat-t{font-family:var(--jp);font-weight:900;color:var(--ocean);margin:0 0 10px;
    font-size:1.06rem;padding-bottom:9px;border-bottom:2px solid var(--rust)}
  .porta-feat p{margin:0;line-height:1.9;font-size:.95rem;word-break:auto-phrase;line-break:strict}
  .porta-gallery{display:flex;flex-wrap:wrap;gap:22px;margin-top:28px;justify-content:center}
  .porta-shot{margin:0;text-align:center}
  .porta-shot img{max-height:240px;width:auto;display:block;border:2px solid var(--char);
    box-shadow:5px 5px 0 var(--bone-2);background:#fff}
  .porta-shot figcaption{margin-top:8px;font-size:.84rem;color:var(--char-soft);letter-spacing:.02em}
  @media (max-width:720px){
    .porta-feats{grid-template-columns:1fr}
    .porta-shot img{max-height:200px}
  }

  /* ---------- カヌー・カヤックページ ---------- */
  .canoe-card{display:grid;grid-template-columns:minmax(0,44%) 1fr;gap:30px;align-items:start;
    padding:30px 0;border-bottom:1px solid var(--bone-2)}
  .canoe-card.rev .canoe-photo{order:2}
  .canoe-photo{position:sticky;top:80px}
  .canoe-photo img{width:100%;height:auto;display:block;border:2px solid var(--char);box-shadow:6px 6px 0 var(--bone-2)}
  .canoe-brand{font-family:var(--label);text-transform:uppercase;letter-spacing:.1em;
    font-size:.78rem;font-weight:600;color:var(--rust);margin:0 0 6px}
  .canoe-sub{display:inline-block;font-size:.6em;color:var(--char-soft);margin-left:8px;letter-spacing:.04em}
  .canoe-spec{width:100%;border-collapse:collapse;margin:14px 0 12px;font-size:.92rem}
  .canoe-spec th,.canoe-spec td{border:1px solid var(--bone-2);padding:7px 12px;text-align:left;vertical-align:top}
  .canoe-spec th{background:var(--paper);color:var(--char);font-weight:700;white-space:nowrap;width:34%}
  .canoe-spec td{color:var(--char)}
  .canoe-price{font-family:var(--disp);font-size:1.3rem;color:var(--ocean);margin:6px 0 0;letter-spacing:.02em}
  @media (max-width:760px){
    .canoe-card{grid-template-columns:1fr;gap:16px;padding:24px 0}
    .canoe-card.rev .canoe-photo{order:0}
    .canoe-photo{position:static}
  }
