*,
*::before,
*::after { box-sizing: border-box; }

html {
  -webkit-text-size-adjust: none;
  text-size-adjust: none;
  line-height: 1.5;
  overflow-x: hidden;
}

a{text-decoration: none; color: inherit;}

html, body, div, span, object, iframe,
h1, h2, h3, h4, h5, h6, p, blockquote, pre,
abbr, address, cite, code,
del, dfn, em, img, ins, kbd, q, samp,
small, strong, sub, sup, var,
b, i,
dl, dt, dd, ol, ul, li,
fieldset, form, label, legend,
table, caption, tbody, tfoot, thead, tr, th, td,
article, aside, canvas, details, figcaption, figure,
footer, header, hgroup, menu, nav, section, summary,
time, mark, audio, video {
    margin:0;
    padding:0;
    border:0;
    outline:0;
    font-size:100%;
    vertical-align:baseline;
    background:transparent;
}

body { margin: 0; }

:focus-visible { outline-offset: 3px; } /* 既定のアウトラインは残す */

img, svg, video, canvas, audio, iframe {
  max-inline-size: 100%;
  max-block-size: 100%;
}

/* フォームのフォント継承 */
button, input, select, textarea {
  font: inherit;
}

/* iOS の search フィールド外観を安定化 */
input[type="search"] { -webkit-appearance: textfield; }

/* fieldset の最小幅問題回避 */
fieldset { min-inline-size: 0; }

/* hidden の扱い（until-found は尊重） */
[hidden]:not([hidden="until-found"]) { display: none !important; }

/* 任意: スクロールバーが出てもレイアウトを安定化 */
html { scrollbar-gutter: stable; }


ol, ul {list-style: none;}

