/* =============================================================
   Base reset + shared primitives (PC & SP)
   Written from scratch; no vendor CSS reused.
   ============================================================= */
*, *::before, *::after { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body {
  margin: 0;
  font-family: var(--font-sans);
  color: var(--dark-color);
  background-color: var(--background-color);
  line-height: 1.5;
  -webkit-font-smoothing: antialiased;
}
h1, h2, h3, h4, p, dl, dd, dt, figure, ul, ol, table { margin: 0; padding: 0; }
ul, ol { list-style: none; }
a { color: inherit; text-decoration: none; }
a:hover { opacity: .85; }
img { max-width: 100%; vertical-align: bottom; border: 0; }
button { font-family: inherit; cursor: pointer; border: 0; background: none; }
table { border-collapse: collapse; }
time { font-family: Arial, var(--font-sans); }

/* inline sprite icon */
.icon {
  display: inline-block;
  width: 1em;
  height: 1em;
  fill: currentColor;
  flex: none;
}

.sr-only {
  position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0;
}

/* image fitting helpers (shared) */
.ui-contain-img { background-color: var(--bg-light-gray); overflow: hidden; }
.ui-contain-img img { width: 100%; height: 100%; object-fit: contain; object-position: center; }
.ui-radius-img { border-radius: 8px; overflow: hidden; }
.ui-circle-img { border-radius: 50%; overflow: hidden; }
.ui-fit-img { overflow: hidden; }

/* gray placeholder that stands in for property / blog / customer photos
   (live site pulls these from cdn.img-asp.jp — replaced per clone policy).
   Dimensions & radius are inherited from the wrapping component. */
.ph {
  width: 100%; height: 100%;
  background-color: var(--bg-light-gray);
  background-image:
    linear-gradient(135deg, rgba(38,50,56,.05) 25%, transparent 25%, transparent 50%,
      rgba(38,50,56,.05) 50%, rgba(38,50,56,.05) 75%, transparent 75%, transparent);
  background-size: 16px 16px;
}
