@charset "UTF-8";

/*
 * Additive stylesheet for the Astro migration.
 * The original global.css / pc.css / smart.css are kept untouched so they can
 * still be diffed against the Movable Type site; every deliberate change lives
 * here instead.
 */

/*
 * Movable Type emitted a duplicated, nested #bukken_syousai_wrap on every
 * property page, so pc.css applied `padding: 30px 0` twice. The Astro markup
 * uses a single (valid) wrapper, so the padding is restored explicitly.
 * smart.css never set this padding, hence the PC-only media query.
 */
@media screen and (min-width: 641px) {
  #bukken_syousai_wrap {
    padding: 60px 0;
  }
}

/* --- お問合せフォーム（mail.php と共通） ------------------------------- */

/*
 * Honeypot. Kept out of the layout and out of the accessibility tree without
 * display:none, which some bots detect and skip.
 */
.hp-field {
  position: absolute !important;
  left: -9999px !important;
  top: auto !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.form-error {
  color: #c00;
}

.form-errorlist {
  max-width: 600px;
  margin: 0 auto 20px auto;
  padding: 15px 20px 15px 40px;
  border: 1px solid #f0c0c0;
  background-color: #fff5f5;
  color: #c00;
  text-align: left;
}

#kakunin a {
  display: inline-block;
  padding: 10px 20px;
  font-size: 16px;
}

/* --- 画像のアスペクト比維持 --------------------------------------------- */

/*
 * Every <img> now carries intrinsic width/height so lazy loading reserves the
 * right space (the legacy tables were sized by the decoded image, and without
 * reserved space #topbanar / #book / #f_txt collapsed).
 *
 * A height attribute acts as a presentational hint, so an image whose CSS only
 * sets `width` would lock to its full pixel height instead of scaling - this is
 * what happened to #topbanar on PC, where pc.css sets width:100% but no
 * height:auto (smart.css does set it for mobile).
 *
 * Restoring `height: auto` matches what the original CSS already declares for
 * every other image. The one rule that fixes a pixel height, `.bg_img_tate img`
 * in slider.css, is not used by any page.
 *
 * The selector requires BOTH attributes, so the external LINE button image
 * (height="36" only) keeps its behaviour.
 */
img[width][height] {
  height: auto;
}

/*
 * #topbanar is a `display: table` with no width, so the original layout took its
 * width from the natural width of the three banner images. With lazy loading the
 * table would collapse until those images arrive and then jump to full width.
 * Stating the width it always resolved to removes the dependency entirely.
 */
#topbanar {
  width: 100%;
}

/* --- 新着バッジ ----------------------------------------------------------- */

/*
 * SOLDOUT バッジ（ul#bukkenlist_top li a.imglink strong）と同じ体裁のまま、
 * 背景色だけを変えて「新着」を示します。赤はナビの「NEW!」で
 * すでに使われている色に合わせています。
 */
ul#bukkenlist_top li a.imglink strong.new {
  background-color: red;
}
