/* ==========================================================================
   重要なお知らせ（台風による休止など）
   ・管理画面の「重要なお知らせ」欄に文章があるときだけ表示（空なら枠ごと出さない）
   ・ヘッダー（メニュー帯）の直下、写真より上に配置 → どのページでも最初に目に入る
   ========================================================================== */
.so-notice{background:#FFF;padding:14px 0;}
.so-notice-in{
  display:flex;gap:14px;align-items:flex-start;
  background:#FFF1EE;border:2.5px solid #C8102E;border-radius:14px;
  box-shadow:5px 5px 0 #F7B5AA;padding:14px 18px;color:#5A0A12;
}
.so-notice-icon{
  flex:none;width:34px;height:34px;border-radius:50%;background:#C8102E;color:#fff;
  font:700 20px/34px "RocknRoll One",sans-serif;text-align:center;
  animation:so-notice-pulse 2.4s ease-in-out infinite;
}
@keyframes so-notice-pulse{0%,100%{box-shadow:0 0 0 0 rgba(200,16,46,.45);}50%{box-shadow:0 0 0 8px rgba(200,16,46,0);}}
.so-notice-body{flex:1;min-width:0;}
.so-notice-head{display:flex;flex-wrap:wrap;align-items:center;gap:4px 10px;margin:0 0 4px;}
.so-notice-label{
  display:inline-block;background:#C8102E;color:#fff;border-radius:6px;padding:2px 10px;
  font:14px/1.6 "RocknRoll One","Zen Maru Gothic",sans-serif;letter-spacing:.06em;
}
.so-notice-list{list-style:none;margin:0;padding:0;}
.so-notice-list li{padding:8px 0;}
.so-notice-list li + li{border-top:1.5px dashed #E8A3A3;}
.so-notice-list li:first-child{padding-top:4px;}
.so-notice-list li:last-child{padding-bottom:0;}
.so-notice-date{display:block;font-size:12px;color:#8A3B42;margin-bottom:2px;}
.so-notice-text{margin:0;font-size:16px;line-height:1.75;font-weight:700;color:#3D0610;overflow-wrap:anywhere;}
.so-notice-text a{color:#C8102E;text-decoration:underline;}
@media (max-width:640px){
  .so-notice{padding:10px 0;}
  .so-notice-in{gap:10px;padding:12px 12px;border-radius:12px;box-shadow:3px 3px 0 #F7B5AA;}
  /* スマホ：「!」をラベルの横に置き、本文は枠の幅いっぱいに使う */
  .so-notice-in{display:block;position:relative;}
  .so-notice-icon{position:absolute;left:12px;top:12px;width:28px;height:28px;font-size:16px;line-height:28px;}
  .so-notice-head{padding-left:38px;min-height:28px;}
  .so-notice-text{font-size:15px;}
}
@media (prefers-reduced-motion:reduce){.so-notice-icon{animation:none;}}
