/*
Theme Name: Astra｜星の小石
Theme URI: https://hoshinokoishi.com/
Description: Astra の標準テンプレートと Elementor を保ったまま、星の小石のブランド表現を追加する軽量子テーマ。
Author: MACHINE FIELD CO., LTD.
Template: astra
Version: 1.2.2
Requires at least: 6.6
Requires PHP: 8.1
Text Domain: astra-hoshino-koishi
*/

:root {
  --hks-cream: #fff9f2;
  --hks-paper: #fffdf9;
  --hks-mint: #bfede4;
  --hks-mint-deep: #71cdbd;
  --hks-aqua: #92d9e9;
  --hks-coral: #ff8fa3;
  --hks-coral-deep: #b83e5a;
  --hks-focus: #1f6574;
  --hks-lavender: #cab8f5;
  --hks-ink: #25324a;
  --hks-muted: #667085;
  --hks-line: rgba(37, 50, 74, 0.11);
  --hks-shadow: 0 18px 45px rgba(64, 86, 110, 0.12);
  --hks-radius: 28px;
  --hks-max: 1180px;
}

html { scroll-behavior: smooth; }
[id] { scroll-margin-top: 100px; }
body,
button,
input,
select,
textarea {
  color: var(--hks-ink);
  font-family: "Hiragino Maru Gothic ProN", "Yu Gothic", "YuGothic", "Noto Sans JP", sans-serif;
}
body,
#page,
.site-content { background: var(--hks-cream); }
body { font-size: 16px; line-height: 1.75; -webkit-font-smoothing: antialiased; }
a { text-underline-offset: .2em; }
:where(a, button, input, select, textarea):focus-visible {
  outline: 3px solid var(--hks-focus) !important;
  outline-offset: 3px;
}

/* Astra Header Builder, visually matched to the original 星の小石 header. */
.site-header {
  position: sticky;
  z-index: 100;
  top: 0;
  border-bottom: 1px solid rgba(255, 255, 255, .75);
  background: rgba(255, 249, 242, .9);
  backdrop-filter: blur(18px);
}
.admin-bar .site-header { top: 32px; }
.ast-primary-header-bar {
  min-height: 82px;
  border: 0;
  background: transparent;
}
.site-primary-header-wrap.ast-container {
  width: min(calc(100% - 40px), var(--hks-max));
  max-width: var(--hks-max);
  min-height: 82px;
  padding: 0;
}
.ast-builder-grid-row { grid-template-columns: auto 1fr; gap: 26px; }
.site-header-primary-section-right { justify-content: flex-end; }
.site-branding { padding: 0; }
.site-title { line-height: 1; }
.site-title a {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: var(--hks-ink) !important;
  font-size: 1.15rem;
  font-weight: 800;
  letter-spacing: .08em;
  text-decoration: none;
  white-space: nowrap;
}
.site-title a::before {
  content: "";
  width: 44px;
  height: 44px;
  flex: 0 0 44px;
  border-radius: 50% 46% 52% 44%;
  background:
    url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Cpath d='m16 3 2.7 8.2L27 14l-8.3 2.8L16 25l-2.8-8.2L5 14l8.2-2.8L16 3Z' fill='white'/%3E%3Ccircle cx='25' cy='6' r='2' fill='white'/%3E%3C/svg%3E") center / 27px 27px no-repeat,
    linear-gradient(145deg, var(--hks-aqua), var(--hks-lavender));
  box-shadow: 0 8px 20px rgba(146, 217, 233, .35);
  transform: rotate(-7deg);
}
.ast-builder-menu-1 .main-header-menu {
  align-items: center;
  gap: clamp(16px, 1.55vw, 24px);
}
.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link {
  position: relative;
  height: auto;
  padding: 0;
  color: #45516a;
  font-size: .9rem;
  font-weight: 700;
  line-height: 1.5;
}
.ast-builder-menu-1 .main-header-menu > .menu-item:not(.hks-astra-menu-action) > .menu-link::after {
  content: "";
  position: absolute;
  right: 50%;
  bottom: -9px;
  left: 50%;
  height: 3px;
  border-radius: 5px;
  background: var(--hks-coral);
  transition: right .22s ease, left .22s ease;
}
.ast-builder-menu-1 .main-header-menu > .menu-item:hover > .menu-link::after,
.ast-builder-menu-1 .main-header-menu > .current-menu-item > .menu-link::after,
.ast-builder-menu-1 .main-header-menu > .menu-item > .menu-link:focus-visible::after {
  right: 0;
  left: 0;
}
.hks-astra-menu-action { margin-left: 0; }
.hks-astra-menu-action + .hks-astra-menu-action { margin-left: -12px; }
.hks-astra-menu-action .menu-link {
  position: relative;
  width: 44px;
  min-width: 44px;
  height: 44px !important;
  display: inline-flex !important;
  align-items: center;
  justify-content: center;
  gap: 4px;
  border: 1px solid var(--hks-line);
  border-radius: 15px;
  background: rgba(255, 255, 255, .72);
  overflow: visible;
  transition: transform .2s ease, box-shadow .2s ease;
}
.hks-astra-menu-action .menu-link:hover { transform: translateY(-2px); box-shadow: 0 7px 16px rgba(37, 50, 74, .1); }
.hks-astra-menu-action svg { width: 19px; height: 19px; fill: none; stroke: currentColor; stroke-width: 1.8; }
.hks-astra-cart-count {
  position: absolute;
  z-index: 2;
  top: -6px;
  right: -7px;
  min-width: 20px;
  height: 20px;
  display: grid;
  place-items: center;
  padding: 0 4px;
  border-radius: 50%;
  color: #fff;
  background: var(--hks-coral-deep);
  font-size: 10px;
  font-weight: 800;
}
.hks-visually-hidden {
  position: absolute !important;
  width: 1px;
  height: 1px;
  padding: 0;
  margin: -1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
  white-space: nowrap;
  border: 0;
}

/* Astra ordinary pages and Core shortcode pages. */
body:not(.home) .site-content > .ast-container {
  width: min(calc(100% - 40px), var(--hks-max));
  max-width: var(--hks-max);
  padding: 56px 0 80px;
}
.ast-plain-container.ast-no-sidebar #primary { margin: 0; }
body:not(.home) .ast-article-single {
  padding: clamp(25px, 5vw, 54px);
  border: 1px solid var(--hks-line);
  border-radius: var(--hks-radius);
  background: #fff;
  box-shadow: var(--hks-shadow);
}
body:not(.home) .entry-header { margin-bottom: 1.5em; }
body:not(.home) .entry-title {
  margin: 0;
  color: var(--hks-ink);
  font-size: clamp(2rem, 4vw, 3.5rem);
  font-weight: 700;
  line-height: 1.25;
}
body:not(.home) .entry-content > :first-child { margin-top: 0; }
body:not(.home) .entry-content > :last-child { margin-bottom: 0; }
.page-id-18 .entry-content > h2:first-child { display: none; }

/* Elementor homepage: original four-part composition, all visible copy remains editable. */
body.elementor-page-34 .site-content,
body.elementor-page-34 .elementor { background: var(--hks-cream); }
body.elementor-page-34 .site-content > .ast-container {
  width: 100%;
  max-width: none;
  margin: 0;
  padding: 0;
}
body.elementor-page-34 .elementor { width: 100%; max-width: none; }
.elementor-34 .hks-elementor-candidate-hero {
  position: relative;
  width: min(calc(100% - 40px), var(--hks-max)) !important;
  max-width: var(--hks-max) !important;
  min-height: 610px !important;
  --min-height: 610px !important;
  align-items: flex-start !important;
  justify-content: center !important;
  overflow: visible;
  margin: 0 auto !important;
  padding: 88px 0 76px !important;
  border-radius: 0 !important;
  background: transparent !important;
  box-shadow: none !important;
}
.elementor-34 .hks-elementor-candidate-hero::before {
  content: none;
  position: absolute;
  z-index: 0;
  top: 74px;
  right: 0;
  left: auto !important;
  width: 420px;
  height: 420px;
  border-radius: 50%;
  background:
    radial-gradient(circle at 43% 37%, #fff 0 3.8%, rgba(255,255,255,.35) 4% 7%, transparent 8%),
    radial-gradient(circle at 50% 50%, rgba(146,217,233,.78) 0 29%, rgba(202,184,245,.72) 34%, transparent 35%),
    radial-gradient(circle at 50% 50%, transparent 0 42%, rgba(202,184,245,.65) 42.2% 42.6%, transparent 42.8%),
    radial-gradient(circle at 50% 50%, transparent 0 49%, rgba(146,217,233,.72) 49.2% 49.6%, transparent 49.8%);
  filter: drop-shadow(0 30px 35px rgba(99, 124, 160, .14));
  pointer-events: none;
}
.elementor-34 .hks-elementor-candidate-hero::after {
  content: none;
  position: absolute;
  z-index: 1;
  right: 0;
  bottom: 90px;
  width: 177px;
  padding: 15px 17px;
  border: 1px solid rgba(255,255,255,.8);
  border-radius: 22px;
  color: var(--hks-muted);
  background: rgba(255,255,255,.9);
  box-shadow: var(--hks-shadow);
  font-size: .78rem;
  font-weight: 700;
  line-height: 1.7;
  white-space: pre-line;
  backdrop-filter: blur(12px);
  transform: rotate(3deg);
  pointer-events: none;
}
.elementor-34 .hks-elementor-candidate-hero > .e-con-inner {
  width: 100%;
  max-width: none;
  min-height: 0;
  align-items: flex-start !important;
  justify-content: center !important;
  gap: 0 !important;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-34 .hks-elementor-candidate-hero > .hks-vue-widget,
.elementor-34 .hks-elementor-candidate-hero > .e-con-inner > .hks-vue-widget {
  position: absolute !important;
  z-index: 1;
  top: 54px !important;
  right: -12px !important;
  width: 470px !important;
  max-width: 42% !important;
  margin: 0 !important;
}
.elementor-34 .hks-elementor-candidate-hero .hks-vue-widget .hks-vue-mount[data-hks-vue-app="home-orbit"] {
  position: relative;
  top: auto;
  right: auto;
  width: 100%;
  max-width: none;
}
.elementor-34 .hks-elementor-candidate-hero > .elementor-element,
.elementor-34 .hks-elementor-candidate-hero > .e-con-inner > .elementor-element {
  position: relative;
  z-index: 2;
}
.elementor-34 .hks-elementor-candidate-hero .elementor-widget-text-editor,
.elementor-34 .hks-elementor-candidate-hero .elementor-widget-heading {
  width: min(58%, 680px) !important;
  max-width: 680px !important;
  text-align: left !important;
}
.elementor-34 .hks-elementor-candidate-hero .elementor-widget-text-editor:first-of-type {
  margin: 0 0 18px !important;
  color: #63718b !important;
  font-size: .83rem !important;
  font-weight: 800 !important;
  letter-spacing: .16em !important;
}
.elementor-34 .hks-elementor-candidate-hero .elementor-heading-title {
  margin: 0;
  color: var(--hks-ink) !important;
  font-size: clamp(2.55rem, 5.2vw, 5.1rem) !important;
  font-weight: 700 !important;
  line-height: 1.15 !important;
  letter-spacing: -.045em !important;
}
.elementor-34 .hks-elementor-candidate-hero .elementor-widget-text-editor:nth-of-type(3) {
  margin: 25px 0 0 !important;
  color: var(--hks-muted) !important;
  font-size: 1.03rem !important;
  line-height: 1.75 !important;
}
.elementor-34 .hks-elementor-candidate-hero .elementor-widget-text-editor p { margin: 0 !important; }
.elementor-34 .hks-elementor-candidate-hero .e-con.e-child {
  width: auto !important;
  flex-direction: row !important;
  gap: 12px;
  margin-top: 30px;
  padding: 0 !important;
}
.elementor-34 .hks-elementor-candidate-hero .e-con.e-child > .elementor-widget-button {
  width: auto !important;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-34 .hks-elementor-candidate-hero .elementor-button,
.elementor-34 .hks-elementor-feature-section .elementor-button,
.elementor-34 .hks-elementor-story-section .elementor-button,
.elementor-34 .hks-elementor-path-section .elementor-button {
  min-height: 52px;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 12px 23px !important;
  border: 0 !important;
  border-radius: 18px !important;
  font-weight: 800 !important;
  text-decoration: none;
}
.elementor-34 .hks-elementor-candidate-hero .elementor-widget-button:first-child .elementor-button {
  color: #fff !important;
  background: var(--hks-coral-deep) !important;
  box-shadow: 0 11px 24px rgba(233,101,128,.2);
}
.elementor-34 .hks-elementor-candidate-hero .elementor-widget-button:last-child .elementor-button {
  color: var(--hks-ink) !important;
  background: #fff !important;
  box-shadow: inset 0 0 0 1px var(--hks-line), 0 9px 22px rgba(37,50,74,.07);
}

.elementor-34 .hks-elementor-feature-section {
  width: 100% !important;
  max-width: none !important;
  margin: 0 !important;
  padding: 78px 0 !important;
  border-radius: 0 !important;
  background: rgba(255,255,255,.66) !important;
  box-shadow: none !important;
}
.elementor-34 .hks-elementor-feature-section > .e-con-inner {
  width: min(calc(100% - 40px), var(--hks-max));
  max-width: var(--hks-max);
  display: grid !important;
  align-items: stretch !important;
  gap: 0 !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .elementor-widget-text-editor:first-child {
  display: contents !important;
}
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .elementor-widget-text-editor,
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .elementor-widget-heading { text-align: left !important; }
.elementor-34 .hks-elementor-feature-section .hks-elementor-eyebrow {
  grid-row: 1;
  margin: 0 0 8px;
  color: var(--hks-coral-deep);
  font-size: .78rem;
  font-weight: 900;
  letter-spacing: .2em;
}
.elementor-34 .hks-elementor-feature-section .hks-elementor-section-intro {
  grid-row: 3;
  margin: 12px 0 0;
  color: var(--hks-muted);
  font-size: 1rem;
  font-weight: 400;
  letter-spacing: 0;
}
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .elementor-widget-heading .elementor-heading-title {
  color: var(--hks-ink) !important;
  font-size: clamp(1.85rem, 3.8vw, 3rem) !important;
  line-height: 1.35 !important;
}
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .elementor-widget-heading { grid-row: 2; }
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con {
  grid-row: 4;
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  align-items: stretch !important;
  gap: 18px !important;
  margin: 36px 0 0 !important;
  padding: 0 !important;
}
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con > .e-con {
  position: relative;
  width: 100% !important;
  min-height: 258px !important;
  justify-content: flex-start !important;
  gap: 0 !important;
  overflow: hidden;
  padding: 28px !important;
  border: 1px solid rgba(255,255,255,.85) !important;
  border-radius: var(--hks-radius) !important;
  background: rgba(255,255,255,.82) !important;
  box-shadow: 0 14px 35px rgba(50,75,105,.08) !important;
}
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con > .e-con::after {
  content: "";
  position: absolute;
  right: -35px;
  bottom: -42px;
  width: 120px;
  height: 120px;
  border-radius: 50%;
  background: var(--card-accent, var(--hks-mint));
  opacity: .45;
}
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con > .e-con:nth-child(2) { --card-accent: var(--hks-lavender); }
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con > .e-con:nth-child(3) { --card-accent: var(--hks-coral); }
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con .elementor-heading-title { font-size: 1.2rem !important; }
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con .elementor-widget-text-editor {
  margin-top: 8px !important;
  color: var(--hks-muted) !important;
  font-size: .94rem !important;
}
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con .elementor-widget-text-editor p { margin: 0 !important; }
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con .elementor-widget-button {
  margin-top: 17px !important;
  padding: 0 !important;
}
.elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con .elementor-button {
  min-height: auto;
  padding: 0 !important;
  color: var(--hks-coral-deep) !important;
  background: transparent !important;
  font-size: .88rem !important;
  box-shadow: none !important;
}

.elementor-34 .hks-elementor-story-section {
  width: 100% !important;
  max-width: none !important;
  flex-direction: column !important;
  margin: 0 !important;
  padding: 78px max(20px, calc((100% - var(--hks-max)) / 2)) !important;
  border-radius: 0 !important;
  background: linear-gradient(180deg, rgba(191,237,228,.38), rgba(255,249,242,0)) !important;
}
.elementor-34 .hks-elementor-story-section > .e-con-inner {
  width: 100%;
  max-width: var(--hks-max);
  display: block !important;
  margin: 0 auto !important;
  padding: 0 !important;
}
.elementor-34 .hks-elementor-story-section > .e-con-inner > .e-con:first-child { display: none !important; }
.elementor-34 .hks-elementor-story-section > .e-con-inner > .e-con:last-child {
  width: 100% !important;
  align-items: flex-start !important;
  gap: 0 !important;
  padding: 0 !important;
}
.elementor-34 .hks-elementor-story-section > .e-con-inner > .e-con:last-child > .elementor-widget-text-editor:first-child {
  margin: 0 0 8px !important;
  color: var(--hks-coral-deep) !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  letter-spacing: .2em !important;
}
.elementor-34 .hks-elementor-story-section > .e-con-inner > .e-con:last-child > .elementor-widget-text-editor:first-child p,
.elementor-34 .hks-elementor-story-section .hks-elementor-product-intro { margin: 0 !important; }
.elementor-34 .hks-elementor-story-section .elementor-heading-title {
  color: var(--hks-ink) !important;
  font-size: clamp(1.85rem, 3.8vw, 3rem) !important;
  line-height: 1.35 !important;
}
.elementor-34 .hks-elementor-story-section .hks-elementor-product-intro { color: var(--hks-muted); }
.elementor-34 .hks-elementor-story-section > .e-con-inner > .e-con:last-child > .elementor-widget-heading { margin: 0 !important; }
.elementor-34 .hks-elementor-story-section > .e-con-inner > .e-con:last-child > .elementor-widget-text-editor:nth-of-type(3) { margin-top: 12px !important; }
.elementor-34 .hks-elementor-story-section > .e-con-inner > .e-con:last-child > .elementor-widget-button {
  margin-top: 30px !important;
  padding: 0 !important;
}
.elementor-34 .hks-elementor-story-section .woocommerce ul.products {
  display: grid !important;
  grid-template-columns: repeat(4, 1fr);
  gap: 18px;
  margin: 34px 0 0 !important;
  padding: 0;
}
.elementor-34 .hks-elementor-story-section .woocommerce ul.products::before,
.elementor-34 .hks-elementor-story-section .woocommerce ul.products::after { display: none; }
.elementor-34 .hks-elementor-story-section .woocommerce ul.products li.product {
  width: auto !important;
  float: none !important;
  margin: 0 !important;
  padding: 13px 13px 20px !important;
  border: 1px solid var(--hks-line);
  border-radius: 24px;
  background: #fff;
  box-shadow: 0 10px 28px rgba(37,50,74,.07);
}
.elementor-34 .hks-elementor-story-section .elementor-widget-button .elementor-button {
  color: var(--hks-ink) !important;
  background: #fff !important;
  box-shadow: inset 0 0 0 1px var(--hks-line), 0 9px 22px rgba(37,50,74,.07) !important;
}

.elementor-34 .hks-elementor-path-section {
  position: relative;
  width: min(calc(100% - 40px), var(--hks-max)) !important;
  max-width: var(--hks-max) !important;
  min-height: 0 !important;
  display: block !important;
  margin: 78px auto !important;
  padding: 38px 42px !important;
  border: 1px solid rgba(255,255,255,.8) !important;
  border-radius: 34px !important;
  background: linear-gradient(135deg, rgba(202,184,245,.72), rgba(146,217,233,.68)) !important;
  box-shadow: var(--hks-shadow) !important;
}
.elementor-34 .hks-elementor-path-section > .e-con-inner {
  width: 100%;
  max-width: none;
  display: grid !important;
  grid-template-columns: minmax(0, 1fr) auto;
  align-items: center !important;
  gap: 10px 25px !important;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-34 .hks-elementor-path-section > .e-con-inner > .elementor-widget-text-editor,
.elementor-34 .hks-elementor-path-section > .e-con-inner > .elementor-widget-heading { grid-column: 1; text-align: left !important; }
.elementor-34 .hks-elementor-path-section > .e-con-inner > .elementor-widget-text-editor:first-child {
  grid-row: 1;
  margin: 0 !important;
  color: var(--hks-coral-deep) !important;
  font-size: .78rem !important;
  font-weight: 900 !important;
  letter-spacing: .2em !important;
}
.elementor-34 .hks-elementor-path-section > .e-con-inner > .elementor-widget-text-editor p { margin: 0 !important; }
.elementor-34 .hks-elementor-path-section > .e-con-inner > .elementor-widget-heading { grid-row: 2; margin: 0 !important; }
.elementor-34 .hks-elementor-path-section > .e-con-inner > .elementor-widget-heading .elementor-heading-title {
  color: var(--hks-ink) !important;
  font-size: clamp(1.85rem, 3.8vw, 3rem) !important;
  line-height: 1.35 !important;
}
.elementor-34 .hks-elementor-path-section > .e-con-inner > .elementor-widget-text-editor:nth-of-type(3) { grid-row: 3; color: #495774 !important; }
.elementor-34 .hks-elementor-path-section > .e-con-inner > .e-con { display: contents !important; }
.elementor-34 .hks-elementor-path-section > .e-con-inner > .e-con > .e-con { display: none !important; }
.elementor-34 .hks-elementor-path-section > .e-con-inner > .e-con > .e-con:first-child { display: contents !important; }
.elementor-34 .hks-elementor-path-section > .e-con-inner > .e-con > .e-con:first-child > * { display: none !important; }
.elementor-34 .hks-elementor-path-section > .e-con-inner > .e-con > .e-con:first-child > .elementor-widget-button {
  grid-column: 2;
  grid-row: 1 / span 3;
  align-self: center;
  display: block !important;
  margin: 0 !important;
  padding: 0 !important;
}
.elementor-34 .hks-elementor-path-section .elementor-button {
  color: var(--hks-ink) !important;
  background: var(--hks-mint) !important;
  box-shadow: 0 11px 24px rgba(113,205,189,.23) !important;
}
.elementor-34 .hks-elementor-closing-section { display: none !important; }

/* Astra footer hook + builder row, matched to the original three-column footer. */
.site-footer { color: #f7f8fc; background: var(--hks-ink); }
.hks-astra-footer-main { padding: 62px 0 22px; }
.hks-astra-footer-grid {
  width: min(calc(100% - 40px), var(--hks-max));
  max-width: var(--hks-max);
  display: grid;
  grid-template-columns: 1.2fr .8fr .8fr;
  gap: 50px;
  margin: 0 auto;
}
.hks-astra-footer-brand {
  display: inline-flex;
  align-items: center;
  gap: 11px;
  color: #fff !important;
  font-weight: 800;
  letter-spacing: .08em;
  text-decoration: none;
}
.hks-astra-footer-mark {
  width: 42px;
  height: 42px;
  display: grid;
  place-items: center;
  border-radius: 50% 46% 52% 44%;
  color: #fff;
  background: linear-gradient(145deg, var(--hks-aqua), var(--hks-lavender));
  box-shadow: 0 8px 20px rgba(146,217,233,.22);
  transform: rotate(-7deg);
}
.hks-astra-footer-copy { max-width: 420px; margin: 18px 0 0; color: #bdc5d4; font-size: .91rem; }
.hks-astra-footer-title { margin: 0 0 15px; color: var(--hks-mint); font-size: .78rem; letter-spacing: .15em; }
.hks-astra-footer-links { margin: 0; padding: 0; list-style: none; }
.hks-astra-footer-links li + li { margin-top: 8px; }
.hks-astra-footer-links a { color: #e7ebf2; font-size: .9rem; text-decoration: none; }
.hks-astra-footer-links a:hover { color: #fff; text-decoration: underline; }
.site-primary-footer-wrap { color: #f7f8fc; background: var(--hks-ink) !important; }
.site-primary-footer-wrap a { color: #e7ebf2; }
.site-below-footer-wrap {
  color: #9fa9bb;
  background: var(--hks-ink) !important;
  border-top: 1px solid rgba(255,255,255,.12) !important;
}
.ast-footer-copyright { color: #9fa9bb; }
.ast-footer-copyright p {
  width: min(calc(100% - 40px), var(--hks-max));
  max-width: var(--hks-max);
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin: 0 auto;
}
.ast-footer-copyright p::after { content: "本コンテンツは娯楽を目的としたものです。"; }

@media (max-width: 921px) {
  .site-primary-header-wrap.ast-container { width: min(calc(100% - 24px), var(--hks-max)); min-height: 70px; }
  .ast-primary-header-bar { min-height: 70px; }
  .site-title a { font-size: 1rem; }
  .site-title a::before { width: 39px; height: 39px; flex-basis: 39px; }
  .ast-button-wrap .menu-toggle.main-header-menu-toggle {
    display: flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    min-width: 44px !important;
    height: 44px !important;
    padding: 0 !important;
    border-radius: 15px !important;
    color: var(--hks-ink) !important;
    background: var(--hks-mint) !important;
  }
  .ast-button-wrap .menu-toggle.main-header-menu-toggle > .mobile-menu-toggle-icon {
    display: flex;
    align-items: center;
    justify-content: center;
    width: 20px;
    height: 20px;
  }
  .ast-header-break-point .ast-mobile-header-content {
    right: 0;
    left: 0;
    width: auto !important;
    margin: 0 10px 14px !important;
    border: 1px solid rgba(255,255,255,.8);
    border-radius: 24px;
    background: rgba(255,253,249,.98);
    box-shadow: var(--hks-shadow);
  }
  .ast-header-break-point .main-header-menu .menu-link { padding: 11px 13px; border: 0; border-radius: 12px; }
  .ast-header-break-point .main-header-menu .menu-link:hover { background: rgba(191,237,228,.4); }
  .hks-astra-menu-action { margin: 4px 0 0; }
  .hks-astra-menu-action .menu-link { width: auto; height: 44px !important; justify-content: flex-start; padding-inline: 13px !important; }
  .hks-astra-menu-action .hks-visually-hidden { position: static !important; width: auto; height: auto; margin: 0; overflow: visible; clip: auto; white-space: normal; }

  .elementor-34 .hks-elementor-candidate-hero {
    width: min(calc(100% - 24px), var(--hks-max)) !important;
    min-height: 0 !important;
    --min-height: 0 !important;
    justify-content: flex-start !important;
    padding: 48px 0 56px !important;
  }
  .elementor-34 .hks-elementor-candidate-hero > .e-con-inner { justify-content: flex-start !important; }
  .elementor-34 .hks-elementor-candidate-hero > .hks-vue-widget,
  .elementor-34 .hks-elementor-candidate-hero > .e-con-inner > .hks-vue-widget {
    position: relative !important;
    top: auto !important;
    right: auto !important;
    width: min(86vw, 390px) !important;
    max-width: 100% !important;
    margin: 48px auto 0 !important;
  }
  .elementor-34 .hks-elementor-candidate-hero::before { top: 520px; right: 50%; width: min(86vw, 380px); height: min(86vw, 380px); transform: translateX(50%); }
  .elementor-34 .hks-elementor-candidate-hero::after { right: 4px; bottom: 54px; }
  .elementor-34 .hks-elementor-candidate-hero .elementor-widget-text-editor,
  .elementor-34 .hks-elementor-candidate-hero .elementor-widget-heading { width: 100% !important; max-width: 100% !important; }
  .elementor-34 .hks-elementor-candidate-hero .elementor-heading-title { font-size: clamp(2.3rem, 12vw, 3.3rem) !important; }
  .elementor-34 .hks-elementor-candidate-hero .e-con.e-child { display: grid !important; width: 100% !important; }
  .elementor-34 .hks-elementor-candidate-hero .elementor-widget-button,
  .elementor-34 .hks-elementor-candidate-hero .elementor-button { width: 100%; }

  .elementor-34 .hks-elementor-feature-section { padding: 58px 0 !important; }
  .elementor-34 .hks-elementor-feature-section > .e-con-inner { width: min(calc(100% - 24px), var(--hks-max)); }
  .elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con { grid-template-columns: 1fr; }
  .elementor-34 .hks-elementor-feature-section > .e-con-inner > .e-con > .e-con { width: 100% !important; }
  .elementor-34 .hks-elementor-story-section { padding: 58px 12px !important; }
  .elementor-34 .hks-elementor-story-section .woocommerce ul.products { grid-template-columns: 1fr 1fr; gap: 10px; }
  .elementor-34 .hks-elementor-story-section .woocommerce ul.products li.product { padding: 8px 8px 14px !important; border-radius: 18px; }
  .elementor-34 .hks-elementor-path-section {
    width: min(calc(100% - 24px), var(--hks-max)) !important;
    margin: 58px auto !important;
    padding: 29px 24px !important;
  }
  .elementor-34 .hks-elementor-path-section > .e-con-inner { display: flex !important; flex-direction: column !important; align-items: stretch !important; }
  .elementor-34 .hks-elementor-path-section > .e-con-inner > .e-con > .e-con:first-child > .elementor-widget-button { width: 100%; margin-top: 14px !important; }
  .elementor-34 .hks-elementor-path-section .elementor-button { width: 100%; }
  body:not(.home) .site-content > .ast-container { width: min(calc(100% - 24px), var(--hks-max)); padding: 38px 0 58px; }
  .hks-astra-footer-grid { width: min(calc(100% - 24px), var(--hks-max)); grid-template-columns: 1fr 1fr; }
  .hks-astra-footer-about { grid-column: 1 / -1; }
}

@media (max-width: 782px) { .admin-bar .site-header { top: 0; } }

@media (max-width: 600px) {
  .hks-astra-footer-main { padding-top: 48px; }
  .hks-astra-footer-grid { grid-template-columns: 1fr; gap: 32px; }
  .hks-astra-footer-about { grid-column: auto; }
  .ast-footer-copyright p { width: min(calc(100% - 24px), var(--hks-max)); flex-direction: column; }
}

@media (prefers-reduced-motion: reduce) {
  *, *::before, *::after {
    scroll-behavior: auto !important;
    animation-duration: .01ms !important;
    animation-iteration-count: 1 !important;
    transition-duration: .01ms !important;
  }
}
