@import url('./fonts.css');

/* 真似元: nissin.com/jp/recruit/nissinfoods/
   観察結果:
   - 全面ビビッドイエロー(#FFE600系)背景・赤(#E60012系)アクセント
   - 左上に赤円NISSINロゴ + 黒帯「新卒採用サイト」
   - 右上に 2027/2028 MY PAGE と 2028 ENTRY の角ばった黒/赤ボタン
   - 左サイドに縦書き赤文字「FUTURE FOOD CREATOR」、右サイドに「YOU CAN BE FUTURE FOOD CREATOR TOO! NISSIN RECRUITING SITE」
   - ヒーロー:「食を通じて世界をHAPPYにしたいヤツ、集合！」吹き出し + 巨大赤太字「FUTURE FOOD CREATOR」白フチ
   - 麺/ひよこキャラクター(KISSINキャラ「ピヨ太」)が常時周囲に
   - 動画モジュール: 黄色背景に黒い枠線、赤い再生ボタン
   - 帯型バナー「BUSINESS / WORK / INTERVIEW」: 赤背景・白角ばった文字
   - カラータイル6個: 採用メッセージ/募集要項/選考フロー/Q&A/サステナビリティ/オープンカンパニー
   - フッター: 赤帯にNISSIN円ロゴ
   - 主色: イエロー(#FFE600)・レッド(#E60012)・ブラック・ホワイト */
:root{
  --p17-yellow:#FFE600;
  --p17-yellow-deep:#FFD400;
  --p17-red:#E60012;
  --p17-red-dark:#B8000F;
  --p17-ink:#1A1A1A;
  --p17-ink-soft:#3A3A3A;
  --p17-paper:#FFF8C8;
  --p17-line:#1A1A1A;
  --p17-white:#FFFFFF;
  --p17-mute:#888;
}
*{box-sizing:border-box}
html,body{margin:0;padding:0}
html{background:var(--p17-yellow);color:var(--p17-ink);font-family:var(--p17-font-body);font-weight:500;font-size:14px;line-height:1.85;-webkit-font-smoothing:antialiased}
body{background:var(--p17-yellow);min-height:100vh}
img{max-width:100%;display:block;height:auto}
a{color:inherit;text-decoration:none}

/* ===== サイド縦書き帯(左:FUTURE FOOD CREATOR / 右:YOU CAN BE...) ===== */
.p17-sideband{position:fixed;top:0;bottom:0;width:34px;display:flex;align-items:center;justify-content:center;background:var(--p17-yellow);z-index:25;pointer-events:none;border-right:3px solid var(--p17-ink)}
.p17-sideband--left{left:0;border-right:3px solid var(--p17-ink);border-left:none}
.p17-sideband--right{right:0;border-left:3px solid var(--p17-ink);border-right:none}
.p17-sideband span{writing-mode:vertical-rl;font-family:var(--p17-font-display);color:var(--p17-red);font-size:13px;letter-spacing:.22em;font-weight:400;text-transform:uppercase}

/* ===== HEADER ===== */
.p17-skip{position:absolute;left:-9999px;top:0;background:var(--p17-red);color:#fff;padding:8px 14px}
.p17-skip:focus{left:50px;top:14px;z-index:100}

.p17-header{position:sticky;top:0;z-index:30;background:var(--p17-yellow);border-bottom:3px solid var(--p17-ink);padding:10px 60px 10px 50px;display:grid;grid-template-columns:auto 1fr auto;align-items:center;gap:16px}
.p17-header__hb{width:38px;height:38px;background:var(--p17-ink);color:#fff;border:0;cursor:pointer;display:flex;flex-direction:column;justify-content:center;align-items:center;gap:5px;border-radius:4px}
.p17-header__hb span{display:block;width:18px;height:2.5px;background:#fff}
.p17-header__brand{display:flex;align-items:center;gap:10px;text-decoration:none;color:var(--p17-ink)}
.p17-header__logo{width:52px;height:52px;border-radius:50%;background:var(--p17-red);color:#fff;display:flex;align-items:center;justify-content:center;font-family:var(--p17-font-display);font-size:14px;letter-spacing:.04em;border:2.5px solid var(--p17-ink);position:relative}
.p17-header__logo small{display:block;font-size:7px;letter-spacing:.05em;margin-top:1px}
.p17-header__brand strong{background:var(--p17-ink);color:#fff;padding:6px 12px;font-size:13px;font-weight:700;letter-spacing:.04em;border-radius:3px}
.p17-header__util{display:flex;align-items:stretch;gap:0}
.p17-header__util a{font-family:var(--p17-font-display);font-weight:400;font-size:11px;letter-spacing:.04em;padding:10px 14px;line-height:1.15;text-align:center;border:2.5px solid var(--p17-ink);border-right-width:0;display:flex;flex-direction:column;justify-content:center;min-width:78px;color:#fff;background:var(--p17-ink)}
.p17-header__util a:last-child{border-right-width:2.5px}
.p17-header__util a small{display:block;font-size:13px;line-height:1.05;font-weight:400}
.p17-header__util a.p17-entry{background:var(--p17-red);color:#fff}

/* ===== HERO ===== */
.p17-hero{position:relative;background:var(--p17-yellow);padding:50px 60px 80px;overflow:hidden;border-bottom:3px solid var(--p17-ink)}
.p17-hero__bubble{display:inline-block;background:#fff;color:var(--p17-ink);border:3px solid var(--p17-ink);border-radius:48px;padding:14px 38px;font-family:var(--p17-font-body);font-weight:900;font-size:18px;letter-spacing:.04em;position:relative;margin:0 auto 28px;text-align:center}
.p17-hero__bubblewrap{display:flex;justify-content:center;margin-bottom:30px}
.p17-hero__bubble::after{content:"";position:absolute;bottom:-15px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:14px solid transparent;border-right:14px solid transparent;border-top:14px solid var(--p17-ink)}
.p17-hero__bubble::before{content:"";position:absolute;bottom:-10px;left:50%;transform:translateX(-50%);width:0;height:0;border-left:11px solid transparent;border-right:11px solid transparent;border-top:11px solid #fff;z-index:1}
.p17-hero__title{font-family:var(--p17-font-display);color:var(--p17-red);text-align:center;font-size:clamp(54px,9vw,128px);line-height:1;letter-spacing:.02em;margin:0 0 24px;text-shadow:5px 5px 0 #fff, 5px 5px 0 1px var(--p17-ink), -2px -2px 0 #fff, 2px -2px 0 #fff, -2px 2px 0 #fff, 7px 7px 0 var(--p17-ink);font-weight:400}
.p17-hero__title small{display:block;font-family:var(--p17-font-display);font-size:.55em;line-height:1.08;margin-top:.18em}
.p17-hero__lead{text-align:center;font-weight:700;font-size:15px;line-height:1.95;letter-spacing:.04em;max-width:780px;margin:0 auto;color:var(--p17-ink)}
.p17-hero__chick{position:absolute;width:130px;opacity:.92}
.p17-hero__chick--l{left:14px;top:80px;transform:rotate(-12deg)}
.p17-hero__chick--r{right:14px;top:80px;transform:rotate(12deg) scaleX(-1)}
.p17-hero__chick svg{width:100%;height:auto;display:block}

/* ===== HEROムービー ===== */
.p17-vid{background:var(--p17-yellow);padding:30px 60px 70px;border-bottom:3px solid var(--p17-ink);position:relative;overflow:hidden}
.p17-vid__inner{max-width:840px;margin:0 auto;background:var(--p17-yellow-deep);border:3px solid var(--p17-ink);border-radius:8px;padding:14px 18px 24px;position:relative;box-shadow:6px 6px 0 var(--p17-ink)}
.p17-vid__tag{display:inline-block;background:var(--p17-ink);color:#fff;padding:5px 14px;font-size:11px;font-weight:700;letter-spacing:.06em;margin-bottom:14px;border-radius:3px}
.p17-vid__plate{position:relative;background:var(--p17-yellow);border:2.5px solid var(--p17-ink);aspect-ratio:16/9;overflow:hidden;display:flex;align-items:center;justify-content:center}
.p17-vid__plate img{width:100%;height:100%;object-fit:cover}
.p17-vid__play{position:absolute;width:80px;height:80px;border-radius:50%;background:var(--p17-red);border:4px solid #fff;display:flex;align-items:center;justify-content:center;box-shadow:0 4px 0 var(--p17-ink)}
.p17-vid__play::after{content:"";width:0;height:0;border-top:14px solid transparent;border-bottom:14px solid transparent;border-left:22px solid #fff;margin-left:6px}
.p17-vid__cap{position:absolute;left:0;right:0;bottom:-12px;text-align:center;background:var(--p17-red);color:#fff;font-family:var(--p17-font-display);font-size:24px;letter-spacing:.04em;padding:6px 0;border-top:2.5px solid var(--p17-ink);border-bottom:2.5px solid var(--p17-ink)}
.p17-vid__cap em{font-style:normal;background:#fff;color:var(--p17-red);padding:0 8px;border-radius:4px;margin:0 4px}

/* ===== VIEW MORE 円ボタン ===== */
.p17-viewmore{display:flex;justify-content:center;padding:60px 60px;background:#fff;border-bottom:3px solid var(--p17-ink)}
.p17-viewmore a{display:inline-block;background:var(--p17-red);color:#fff;font-family:var(--p17-font-display);font-size:14px;letter-spacing:.1em;padding:16px 56px;border-radius:48px;border:3px solid var(--p17-ink);box-shadow:5px 5px 0 var(--p17-ink)}
.p17-viewmore a:hover{transform:translate(2px,2px);box-shadow:3px 3px 0 var(--p17-ink)}

/* ===== カテゴリ帯バナー(BUSINESS, WORK, INTERVIEW) ===== */
.p17-catbanner{background:var(--p17-yellow);padding:34px 60px;border-bottom:3px solid var(--p17-ink)}
.p17-catbanner__row{max-width:980px;margin:0 auto 24px;background:var(--p17-ink);border-radius:96px;display:grid;grid-template-columns:1fr auto 1fr;align-items:center;gap:24px;padding:14px 30px;position:relative;overflow:hidden}
.p17-catbanner__row:last-child{margin-bottom:0}
.p17-catbanner__bg{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;font-family:var(--p17-font-display);font-size:88px;color:rgba(255,230,0,.12);letter-spacing:.05em;pointer-events:none;line-height:1}
.p17-catbanner__title{font-family:var(--p17-font-display);color:#fff;font-size:38px;letter-spacing:.04em;text-align:center;line-height:1;position:relative;z-index:2}
.p17-catbanner__title small{display:block;background:var(--p17-red);color:#fff;padding:4px 16px;font-size:13px;letter-spacing:.06em;border-radius:24px;margin-top:8px;font-family:var(--p17-font-display)}
.p17-catbanner__more{font-family:var(--p17-font-display);color:var(--p17-yellow);font-size:14px;letter-spacing:.08em;text-align:right;position:relative;z-index:2}
.p17-catbanner__more::after{content:"▶";margin-left:6px;font-size:10px}
.p17-catbanner__icon{width:96px;height:96px;border-radius:50%;background:var(--p17-yellow);border:3px solid var(--p17-yellow-deep);display:flex;align-items:center;justify-content:center;position:relative;z-index:2;overflow:hidden}
.p17-catbanner__icon img{width:100%;height:100%;object-fit:cover}

/* ===== 6 カラータイル(下部) ===== */
.p17-tiles6{background:var(--p17-yellow);padding:30px 60px 50px;border-bottom:3px solid var(--p17-ink)}
.p17-tiles6__grid{max-width:980px;margin:0 auto;display:grid;grid-template-columns:repeat(2,1fr);gap:14px}
.p17-tile6{display:flex;align-items:center;gap:12px;background:var(--p17-yellow-deep);border:3px solid var(--p17-ink);padding:14px;border-radius:8px;box-shadow:4px 4px 0 var(--p17-ink);min-height:84px}
.p17-tile6 img{width:120px;height:64px;object-fit:cover;border:2px solid var(--p17-ink);flex-shrink:0}
.p17-tile6__txt{flex:1;display:flex;flex-direction:column;line-height:1.2}
.p17-tile6__ja{font-weight:900;font-size:14px;color:var(--p17-ink);letter-spacing:.02em}
.p17-tile6__en{font-family:var(--p17-font-display);font-size:11px;color:var(--p17-red);letter-spacing:.08em;margin-top:4px}
.p17-tile6__arr{width:24px;height:24px;border-radius:50%;background:var(--p17-red);color:#fff;display:flex;align-items:center;justify-content:center;font-size:11px;flex-shrink:0}
.p17-tile6:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--p17-ink)}

/* ===== FOOTER ===== */
.p17-foot{background:var(--p17-ink);color:#fff;padding:40px 60px 28px;text-align:center}
.p17-foot__logo{width:74px;height:74px;border-radius:50%;background:var(--p17-red);color:#fff;display:flex;align-items:center;justify-content:center;flex-direction:column;font-family:var(--p17-font-display);font-size:18px;border:3px solid #fff;margin:0 auto 18px}
.p17-foot__logo small{font-size:8px;letter-spacing:.04em}
.p17-foot__links{display:flex;justify-content:center;gap:20px;font-size:12px;margin-bottom:16px;flex-wrap:wrap}
.p17-foot__links a{color:#fff;border-right:1px solid #555;padding-right:20px}
.p17-foot__links a:last-child{border-right:none;padding-right:0}
.p17-foot__copy{font-size:10.5px;color:#aaa;letter-spacing:.04em;line-height:1.6}
.p17-foot__src{font-size:10px;color:#888;margin-top:8px}

/* ===== 下層ページ共通 ===== */
.p17-page{background:var(--p17-yellow);min-height:60vh}
.p17-page__hero{background:var(--p17-yellow);padding:50px 60px 70px;border-bottom:3px solid var(--p17-ink);text-align:center;position:relative;overflow:hidden}
.p17-page__hero h1{font-family:var(--p17-font-display);color:var(--p17-red);font-size:clamp(48px,7vw,96px);line-height:1;letter-spacing:.03em;margin:0 0 14px;text-shadow:4px 4px 0 #fff, 4px 4px 0 1px var(--p17-ink), -2px -2px 0 #fff, 2px -2px 0 #fff, -2px 2px 0 #fff, 6px 6px 0 var(--p17-ink);font-weight:400}
.p17-page__hero__badge{display:inline-block;background:var(--p17-red);color:#fff;padding:6px 24px;font-weight:900;font-size:13px;letter-spacing:.08em;border-radius:32px;border:2.5px solid var(--p17-ink)}
.p17-page__hero__sub{font-family:var(--p17-font-display);color:var(--p17-red);font-size:13px;letter-spacing:.14em;margin-bottom:18px}
.p17-page__crumb{padding:14px 60px;background:var(--p17-ink);color:#fff;font-size:11.5px;letter-spacing:.08em;margin:0}
.p17-page__crumb a{color:#fff;text-decoration:underline}
.p17-page__inner{max-width:920px;margin:0 auto;padding:50px 60px}
.p17-page__lead{font-size:14.5px;line-height:2;font-weight:700;margin:0 0 36px;color:var(--p17-ink)}

/* ===== 職種一覧 ===== */
.p17-jobs__grid{max-width:980px;margin:0 auto;padding:40px 60px 60px;display:grid;grid-template-columns:repeat(2,1fr);gap:30px}
.p17-jobcard{background:#fff;border:3px solid var(--p17-ink);border-radius:14px;padding:0;overflow:hidden;box-shadow:6px 6px 0 var(--p17-ink);display:flex;flex-direction:column;transition:transform .2s ease}
.p17-jobcard:hover{transform:translate(3px,3px);box-shadow:3px 3px 0 var(--p17-ink)}
.p17-jobcard__plate{position:relative;aspect-ratio:5/3;overflow:hidden;border-bottom:3px solid var(--p17-ink)}
.p17-jobcard__plate img{width:100%;height:100%;object-fit:cover}
.p17-jobcard__plate::before{content:"";position:absolute;inset:0;background:linear-gradient(135deg,rgba(255,230,0,.0) 60%,rgba(230,0,18,.18))}
.p17-jobcard__code{font-family:var(--p17-font-display);font-size:11px;color:var(--p17-red);letter-spacing:.08em;margin:18px 22px 6px}
.p17-jobcard__title{font-family:var(--p17-font-body);font-weight:900;font-size:22px;color:var(--p17-ink);letter-spacing:.02em;margin:0 22px 6px;line-height:1.3}
.p17-jobcard__sub{font-size:12.5px;color:var(--p17-ink-soft);margin:0 22px 14px;line-height:1.6}
.p17-jobcard__meta{display:flex;flex-direction:column;gap:6px;margin:0 22px 22px;padding-top:14px;border-top:1.5px dashed var(--p17-ink)}
.p17-jobcard__meta span{font-size:11.5px;color:var(--p17-ink);display:flex;gap:10px}
.p17-jobcard__meta b{font-family:var(--p17-font-display);color:var(--p17-red);font-size:10.5px;letter-spacing:.06em;min-width:48px}

/* ===== 職種詳細 ===== */
.p17-job__hero{padding:50px 60px;background:var(--p17-yellow);border-bottom:3px solid var(--p17-ink);text-align:center}
.p17-job__hero__img{max-width:780px;margin:0 auto 28px;border:3px solid var(--p17-ink);overflow:hidden;border-radius:14px;box-shadow:6px 6px 0 var(--p17-ink)}
.p17-job__hero__img img{width:100%;aspect-ratio:16/9;object-fit:cover}
.p17-job__hero__num{display:inline-block;font-family:var(--p17-font-display);color:var(--p17-red);font-size:14px;letter-spacing:.1em;margin-bottom:10px}
.p17-job__hero__label{display:inline-block;background:var(--p17-red);color:#fff;font-weight:900;font-size:12px;letter-spacing:.06em;padding:6px 20px;border-radius:24px;border:2.5px solid var(--p17-ink);margin-left:8px}
.p17-job__hero__title{font-family:var(--p17-font-display);color:var(--p17-red);font-size:clamp(42px,6vw,76px);line-height:1;letter-spacing:.04em;margin:14px 0 18px;text-shadow:3px 3px 0 #fff, 3px 3px 0 1px var(--p17-ink), 5px 5px 0 var(--p17-ink);font-weight:400}
.p17-job__hero__sub{font-size:14px;font-weight:700;line-height:1.9;color:var(--p17-ink);max-width:740px;margin:0 auto 24px}
.p17-job__hero__meta{display:grid;grid-template-columns:repeat(4,1fr);gap:10px;max-width:780px;margin:0 auto;background:var(--p17-ink);padding:14px;border-radius:8px}
.p17-job__hero__meta>div{background:var(--p17-yellow);padding:10px;text-align:center;border-radius:4px}
.p17-job__hero__meta dt{font-family:var(--p17-font-display);color:var(--p17-red);font-size:10px;letter-spacing:.08em;margin-bottom:4px}
.p17-job__hero__meta dd{margin:0;font-weight:900;font-size:13px;color:var(--p17-ink);line-height:1.4}

.p17-job__sec{max-width:880px;margin:50px auto;padding:0 60px}
.p17-job__sec__bar{display:flex;align-items:baseline;justify-content:flex-start;gap:18px;margin-bottom:28px;padding-bottom:14px;border-bottom:3px solid var(--p17-ink);position:relative}
.p17-job__sec__bar::after{content:"";position:absolute;left:0;bottom:-3px;width:80px;height:3px;background:var(--p17-red)}
.p17-job__sec__bar__tag{font-weight:900;font-size:20px;color:var(--p17-ink);letter-spacing:.02em}
.p17-job__sec__bar__title{font-family:var(--p17-font-display);font-size:13px;color:var(--p17-red);letter-spacing:.1em}
.p17-job__sec p{font-size:14px;line-height:2.05;color:var(--p17-ink);margin:0}
.p17-job__sec ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px}
.p17-job__sec ul li{background:#fff;border:2.5px solid var(--p17-ink);padding:14px 18px 14px 44px;position:relative;border-radius:8px;font-size:13.5px;font-weight:700;color:var(--p17-ink);box-shadow:3px 3px 0 var(--p17-ink)}
.p17-job__sec ul li::before{content:"";position:absolute;left:14px;top:50%;transform:translateY(-50%);width:20px;height:20px;border-radius:50%;background:var(--p17-red);color:#fff;display:flex;align-items:center;justify-content:center}
.p17-job__sec ul li::after{content:"✓";position:absolute;left:18px;top:50%;transform:translateY(-50%);color:#fff;font-size:12px;font-weight:900}

/* 1日のスケジュール */
.p17-day{display:flex;flex-direction:column;gap:14px}
.p17-day__row{display:grid;grid-template-columns:120px 1fr;gap:18px;background:#fff;border:3px solid var(--p17-ink);padding:18px 22px;border-radius:10px;box-shadow:4px 4px 0 var(--p17-ink)}
.p17-day__time{font-family:var(--p17-font-display);font-size:26px;color:var(--p17-red);letter-spacing:.04em;line-height:1;padding-top:4px;border-right:2px dashed var(--p17-ink)}
.p17-day__body h4{margin:0 0 6px;font-size:15px;font-weight:900;color:var(--p17-ink)}
.p17-day__body p{margin:0;font-size:12.5px;line-height:1.7;color:var(--p17-ink-soft);font-weight:500}

/* ===== 募集要項テーブル ===== */
.p17-reqtable{width:100%;border-collapse:separate;border-spacing:0;background:#fff;border:3px solid var(--p17-ink);border-radius:10px;overflow:hidden;box-shadow:5px 5px 0 var(--p17-ink)}
.p17-reqtable tr{border-bottom:2px solid var(--p17-ink)}
.p17-reqtable tr:last-child{border-bottom:none}
.p17-reqtable th{background:var(--p17-yellow);color:var(--p17-ink);font-weight:900;text-align:left;padding:16px 20px;width:30%;font-size:13px;letter-spacing:.04em;border-right:2px solid var(--p17-ink);vertical-align:top}
.p17-reqtable td{padding:16px 20px;font-size:13.5px;line-height:1.85;color:var(--p17-ink);font-weight:500}

/* ===== FAQ ===== */
.p17-faqlist{display:flex;flex-direction:column;gap:14px}
.p17-faqitem{background:#fff;border:3px solid var(--p17-ink);border-radius:12px;padding:0;overflow:hidden;box-shadow:4px 4px 0 var(--p17-ink)}
.p17-faqitem summary{list-style:none;cursor:pointer;padding:18px 60px 18px 64px;font-weight:900;font-size:14px;color:var(--p17-ink);position:relative;line-height:1.55}
.p17-faqitem summary::-webkit-details-marker{display:none}
.p17-faqitem summary::before{content:"Q";position:absolute;left:18px;top:50%;transform:translateY(-50%);width:30px;height:30px;border-radius:50%;background:var(--p17-red);color:#fff;font-family:var(--p17-font-display);font-size:14px;display:flex;align-items:center;justify-content:center;border:2px solid var(--p17-ink)}
.p17-faqitem summary::after{content:"+";position:absolute;right:22px;top:50%;transform:translateY(-50%);font-size:24px;font-weight:900;color:var(--p17-red)}
.p17-faqitem[open] summary::after{content:"−"}
.p17-faqitem>div{padding:0 24px 22px 64px;font-size:13.5px;line-height:1.95;color:var(--p17-ink-soft);font-weight:500;position:relative;border-top:1.5px dashed var(--p17-ink);padding-top:18px;margin-top:0}
.p17-faqitem>div::before{content:"A";position:absolute;left:18px;top:18px;width:30px;height:30px;border-radius:50%;background:var(--p17-ink);color:var(--p17-yellow);font-family:var(--p17-font-display);font-size:14px;display:flex;align-items:center;justify-content:center}

/* ===== FORM ===== */
.p17-form{display:flex;flex-direction:column;gap:18px;background:#fff;border:3px solid var(--p17-ink);padding:30px;border-radius:12px;box-shadow:5px 5px 0 var(--p17-ink)}
.p17-form>div{display:flex;flex-direction:column;gap:6px}
.p17-form label{font-size:12.5px;font-weight:900;color:var(--p17-ink);display:flex;align-items:center;gap:8px}
.p17-form label small{background:var(--p17-red);color:#fff;font-size:9.5px;padding:2px 8px;border-radius:12px;font-weight:700;letter-spacing:.04em}
.p17-form input,.p17-form select,.p17-form textarea{font:inherit;padding:11px 14px;border:2px solid var(--p17-ink);background:#fff8e0;color:var(--p17-ink);border-radius:6px}
.p17-form input:focus,.p17-form select:focus,.p17-form textarea:focus{outline:none;border-color:var(--p17-red);background:#fff}
.p17-form button{margin-top:8px;background:var(--p17-red);color:#fff;border:3px solid var(--p17-ink);padding:16px 0;font-family:var(--p17-font-display);font-size:16px;letter-spacing:.1em;cursor:pointer;border-radius:48px;box-shadow:4px 4px 0 var(--p17-ink)}
.p17-form button:hover{transform:translate(2px,2px);box-shadow:2px 2px 0 var(--p17-ink)}
.p17-form__note{background:var(--p17-yellow-deep);border:2px dashed var(--p17-ink);padding:14px 18px;font-size:12px;line-height:1.7;color:var(--p17-ink);margin:0 0 18px;border-radius:8px;font-weight:500}

/* ===== HISTORY ===== */
.p17-history{display:flex;flex-direction:column;gap:0;border-left:4px solid var(--p17-red);margin-left:8px;padding-left:0}
.p17-history__row{display:grid;grid-template-columns:100px 1fr;gap:24px;padding:18px 0 18px 24px;position:relative;border-bottom:1.5px dashed var(--p17-ink)}
.p17-history__row::before{content:"";position:absolute;left:-12px;top:24px;width:20px;height:20px;border-radius:50%;background:var(--p17-yellow);border:3px solid var(--p17-red)}
.p17-history__row:last-child{border-bottom:none}
.p17-history__year{font-family:var(--p17-font-display);font-size:24px;color:var(--p17-red);letter-spacing:.04em;line-height:1.1}
.p17-history__event{font-size:13.5px;line-height:1.9;color:var(--p17-ink);font-weight:500}

/* ===== MESSAGE ===== */
.p17-message{position:relative;max-width:880px;margin:50px auto;padding:0 60px}
.p17-message__photo{width:280px;height:280px;border-radius:50%;overflow:hidden;border:5px solid var(--p17-red);box-shadow:8px 8px 0 var(--p17-ink);margin:0 auto 32px;background:#fff}
.p17-message__photo img{width:100%;height:100%;object-fit:cover}
.p17-message__title{font-family:var(--p17-font-display);color:var(--p17-red);font-size:13px;letter-spacing:.16em;text-align:center;margin:0 0 18px}
.p17-message__lead{font-weight:900;font-size:24px;text-align:center;line-height:1.55;color:var(--p17-ink);margin:0 0 32px;letter-spacing:.02em}
.p17-message__body{font-size:14px;line-height:2.1;color:var(--p17-ink);font-weight:500;white-space:pre-line;background:#fff;border:3px solid var(--p17-ink);padding:32px;border-radius:14px;box-shadow:5px 5px 0 var(--p17-ink)}
.p17-message__sign{text-align:right;margin:24px 0 0;font-size:12px;color:var(--p17-ink-soft);font-weight:700}
.p17-message__sign b{display:inline-block;font-size:18px;font-weight:900;color:var(--p17-ink);margin-top:6px;margin-left:10px}

/* ===== reveal motion ===== */
.p17-reveal{opacity:0;transform:translateY(18px);transition:opacity .8s ease, transform .8s ease;transition-delay:var(--p17-delay,0ms)}
.p17-reveal.p17-in{opacity:1;transform:translateY(0)}

/* ===== レスポンシブ ===== */
@media (max-width:880px){
  .p17-sideband{display:none}
  .p17-header,.p17-hero,.p17-vid,.p17-viewmore,.p17-catbanner,.p17-tiles6,.p17-foot,.p17-page__hero,.p17-page__crumb,.p17-job__hero,.p17-job__sec,.p17-message{padding-left:18px;padding-right:18px}
  .p17-page__inner{padding:30px 18px}
  .p17-jobs__grid{grid-template-columns:1fr;padding:30px 18px}
  .p17-tiles6__grid{grid-template-columns:1fr}
  .p17-header__util a{padding:8px 8px;font-size:9px;min-width:0}
  .p17-header__util a small{font-size:11px}
  .p17-job__hero__meta{grid-template-columns:repeat(2,1fr)}
  .p17-hero__chick{width:70px;top:auto;bottom:18px}
  .p17-hero__chick--l{left:2px}
  .p17-hero__chick--r{right:2px}
  .p17-message__photo{width:200px;height:200px}
  .p17-day__row{grid-template-columns:80px 1fr;gap:12px;padding:14px 16px}
  .p17-day__time{font-size:18px}
}
