/* =========================================================
   Project : はじめのいちだま
   File    : 02-common.css
   Version : 7.3.1
   Updated : 2026-08-05

   Responsibility:
   - Base / SWELL reset
   - Shared containers
   - Shared section headings (single source of truth)
   - Shared content typography hierarchy
   - Shared buttons and notices
   - Accessibility and visibility helpers
========================================================= */

*,
*::before,
*::after {
  box-sizing: border-box;
}

html {
  scroll-behavior: smooth;
}

html,
body {
  overflow-x: clip;
}

body {
  margin: 0;
  color: var(--ht-color-text);
  font-family: var(--ht-font-base);
  font-size: var(--ht-font-size-body);
  font-weight: var(--ht-font-weight-regular);
  line-height: var(--ht-line-height-body);
}

img,
svg {
  max-width: 100%;
}

img {
  height: auto;
  vertical-align: bottom;
}

button,
input,
select,
textarea {
  font: inherit;
}

.home .l-content,
.home .l-mainContent,
.home .l-mainContent__inner,
.home .post_content {
  width: 100%;
  max-width: none;
}

.home .l-content {
  display: block;
  padding-inline: 0;
}

.home .l-mainContent,
.home .post_content {
  margin: 0;
  padding: 0;
}

.home .post_content > [class^="hitotama-"],
.home .post_content > [class*=" hitotama-"],
.home .post_content > .ht-cta {
  margin-block: 0;
}

.post_content [class^="hitotama-"] :is(h1, h2, h3),
.post_content [class*=" hitotama-"] :is(h1, h2, h3),
.post_content .ht-cta :is(h1, h2, h3) {
  margin: 0;
  padding: 0;
  border: 0;
  background: transparent;
  box-shadow: none;
  color: inherit;
  font-family: var(--ht-font-base);
  text-shadow: none;
  -webkit-text-fill-color: currentColor;
}

.post_content [class^="hitotama-"] :is(h1, h2, h3)::before,
.post_content [class^="hitotama-"] :is(h1, h2, h3)::after,
.post_content [class*=" hitotama-"] :is(h1, h2, h3)::before,
.post_content [class*=" hitotama-"] :is(h1, h2, h3)::after,
.post_content .ht-cta :is(h1, h2, h3)::before,
.post_content .ht-cta :is(h1, h2, h3)::after {
  content: none;
}

.ht-container {
  width: min(calc(100% - (var(--ht-gutter) * 2)), var(--ht-content-main));
  margin-inline: auto;
}

.ht-section-heading {
  display: flex;
  width: min(100%, 1120px);
  margin-inline: auto;
  text-align: center;
  align-items: center;
  flex-direction: column;
}

.ht-section-heading__eyebrow {
  display: inline-flex;
  width: fit-content;
  max-width: 100%;
  margin: 0 0 12px;
  padding: 0;
  color: var(--ht-color-primary);
  font-size: var(--ht-font-size-label);
  font-weight: var(--ht-font-weight-extra-bold);
  line-height: 1.6;
  letter-spacing: var(--ht-letter-spacing-label);
  text-align: center;
  align-items: center;
  justify-content: center;
}

.ht-section-heading__eyebrow::before,
.ht-section-heading__eyebrow::after {
  content: none;
}

.post_content .ht-section-heading__title {
  display: block;
  width: 100%;
  max-width: 100%;
  margin-inline: auto;
  color: #171717 !important;
  font-size: var(--ht-font-size-section-title) !important;
  font-weight: 700 !important;
  line-height: 1.28 !important;
  letter-spacing: var(--ht-letter-spacing-heading);
  text-align: center;
  text-wrap: balance;
  line-break: strict;
  word-break: normal;
  -webkit-text-fill-color: #171717 !important;
}

.post_content .ht-section-heading__title::after {
  content: none !important;
}

.ht-section-heading__lead,
.hitotama-hero__lead,
.ht-cta__text {
  font-size: var(--ht-font-size-lead) !important;
  font-weight: var(--ht-font-weight-regular);
  line-height: var(--ht-line-height-lead) !important;
}

.ht-section-heading__lead {
  max-width: 700px;
  margin: 22px auto 0;
  color: var(--ht-color-text-sub);
  text-align: center;
  text-wrap: pretty;
}

.hitotama-points__text,
.ranking-card__editor-comment,
.hitotama-ranking__editorial-text,
.type-card__text,
.hitotama-faq__item p {
  font-size: var(--ht-font-size-body) !important;
  font-weight: var(--ht-font-weight-regular);
  line-height: var(--ht-line-height-body) !important;
}

.hitotama-ranking__research-text,
.hitotama-ranking__research-date,
.hitotama-ranking__research-note,
.hitotama-comparison__guide,
.hitotama-comparison__note,
.hitotama-type__note {
  font-size: var(--ht-font-size-small) !important;
  font-weight: var(--ht-font-weight-regular);
  line-height: var(--ht-line-height-small) !important;
}

.ht-notice p,
.ht-cta__note {
  font-size: var(--ht-font-size-note) !important;
  font-weight: var(--ht-font-weight-regular);
  line-height: var(--ht-line-height-note) !important;
}

.ht-section-heading__eyebrow.hitotama-ranking__eyebrow {
  position: relative;
  margin-bottom: 20px;
  padding: 8px 18px;
  background: var(--ht-color-primary);
  color: var(--ht-color-surface);
  line-height: 1.5;
  letter-spacing: 0.04em;
}

.ht-section-heading__eyebrow.hitotama-ranking__eyebrow::before {
  position: absolute;
  top: calc(100% - 1px);
  left: 50%;
  width: 0;
  height: 0;
  border-top: 9px solid var(--ht-color-primary);
  border-right: 9px solid transparent;
  border-left: 9px solid transparent;
  content: "";
  transform: translateX(-50%);
}

.ht-section-heading__eyebrow.hitotama-ranking__eyebrow::after {
  content: none;
}

.ht-button {
  display: inline-flex;
  min-height: var(--ht-button-height-md);
  padding: 11px 22px;
  border: 1px solid transparent;
  border-radius: var(--ht-button-radius);
  box-shadow: none;
  font-size: var(--ht-font-size-button);
  font-weight: var(--ht-font-weight-bold);
  line-height: 1.4;
  text-align: center;
  text-decoration: none;
  cursor: pointer;
  align-items: center;
  justify-content: center;
  gap: var(--ht-space-2);
  transition: background-color var(--ht-transition), border-color var(--ht-transition), color var(--ht-transition), opacity var(--ht-transition);
}

.ht-button:hover {
  transform: none;
}

.ht-button--primary {
  border-color: var(--ht-color-primary);
  background: var(--ht-color-primary);
  color: var(--ht-color-surface);
}

.ht-button--primary:hover {
  border-color: var(--ht-color-primary-dark);
  background: var(--ht-color-primary-dark);
  color: var(--ht-color-surface);
}

.ht-button--outline {
  border-color: var(--ht-color-primary);
  background: var(--ht-color-surface);
  color: var(--ht-color-primary);
}

.ht-button--outline:hover {
  border-color: var(--ht-color-primary-dark);
  background: var(--ht-color-primary-soft);
  color: var(--ht-color-primary-dark);
}

.ht-button--lg {
  min-height: var(--ht-button-height-lg);
  padding: 13px 28px;
}

.ht-notice {
  display: flex;
  flex-wrap: wrap;
  gap: 4px 18px;
  padding: 12px 16px;
  border: 1px solid var(--ht-color-border);
  background: var(--ht-color-surface);
  box-shadow: none;
}

.ht-notice p {
  margin: 0;
  color: var(--ht-color-text-sub);
}

.ht-notice strong {
  display: inline-block;
  margin-right: 5px;
  padding: 0 6px;
  border: 1px solid var(--ht-color-primary);
  color: var(--ht-color-primary);
  font-size: var(--ht-font-size-micro);
  font-weight: var(--ht-font-weight-extra-bold);
  line-height: 1.6;
}

.ht-only-sp {
  display: none;
}

:where(a, button, summary, [tabindex]):focus-visible {
  outline: 3px solid rgba(216, 73, 75, 0.28);
  outline-offset: 3px;
}

@media (max-width: 767px) {
  .ht-only-sp {
    display: inline;
  }

  .ht-only-pc {
    display: none;
  }

  .ht-section-heading {
    width: 100%;
    margin-inline: auto;
    align-items: center;
  }

  .ht-section-heading__eyebrow {
    max-width: calc(100% - 16px);
    margin-inline: auto;
    font-size: 0.8125rem;
  }

  .post_content .ht-section-heading__title {
    width: 100%;
    max-width: 12.5em;
    margin-inline: auto;
    font-size: var(--ht-font-size-section-title) !important;
    font-weight: 700 !important;
    line-height: 1.34 !important;
    letter-spacing: var(--ht-letter-spacing-heading);
    text-align: center;
  }

  .ht-section-heading__lead {
    max-width: 32em;
    margin: 18px auto 0;
  }

  .ht-section-heading__eyebrow.hitotama-ranking__eyebrow {
    max-width: calc(100% - 32px);
    padding: 7px 13px;
  }

  .ht-button--lg {
    min-height: 54px;
    padding-inline: 20px;
  }
}

@media (prefers-reduced-motion: reduce) {
  html {
    scroll-behavior: auto;
  }

  *,
  *::before,
  *::after {
    scroll-behavior: auto !important;
    transition-duration: 0.01ms !important;
    animation-duration: 0.01ms !important;
    animation-iteration-count: 1 !important;
  }
}

/* =========================================================
   File Information
   Updated : 2026-08-05 JST
   Status  : Latest
========================================================= */