:root {
  --accent: #8ba1aa;
  --line: #404040;
  --cream: #fdfacd;
  --sky: #dce7ef;
}

* {
  box-sizing: border-box;
}

html {
  overflow-x: hidden;
}

body {
  margin: 0;
  color: var(--line);
  font-family: "Noto Sans JP", sans-serif;
  background: #fff;
  overflow-x: hidden;
}

body.page-enter {
  opacity: 0;
  transform: translateY(8px);
}

body.page-enter.page-ready {
  opacity: 1;
  transform: none;
  transition:
    opacity 220ms ease,
    transform 220ms cubic-bezier(0.22, 1, 0.36, 1);
}

body.page-enter:not(.page-ready) .deco,
body.page-enter:not(.page-ready) .hero-deco,
body.page-enter:not(.page-ready) .na-bg,
body.page-enter:not(.page-ready) .na-card,
body.page-enter:not(.page-ready) .ap-area-name,
body.page-enter:not(.page-ready) .ft-walker-top,
body.page-enter:not(.page-ready) .ft-walker-bottom {
  animation-play-state: paused !important;
}

@keyframes decoFlipY {

  0%,
  93% {
    transform: rotateY(0deg);
  }

  96% {
    transform: rotateY(180deg);
  }

  100% {
    transform: rotateY(360deg);
  }
}

@keyframes decoFlipX {

  0%,
  93% {
    transform: rotateX(0deg);
  }

  96% {
    transform: rotateX(180deg);
  }

  100% {
    transform: rotateX(360deg);
  }
}

@keyframes apAreaNameSoftPop {

  0%,
  80%,
  100% {
    transform: rotateY(0deg);
  }

  86% {
    transform: rotateY(360deg);
  }

  92% {
    transform: rotateY(720deg);
  }
}

.site-header {
  position: fixed;
  top: 0;
  left: 0;
  right: 0;
  z-index: 100;
  background: #fff;
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
  transition: transform 0.35s ease;
}

.site-header.is-shrunk {
  transform: translateY(-168px);
}

.header-spacer {
  height: 247px;
}

.header-top {
  position: relative;
  max-width: 1440px;
  height: 168px;
  margin: 0 auto;
  overflow: hidden;
}

.topline {
  position: absolute;
  left: 50%;
  top: 23px;
  transform: translateX(-50%);
  margin: 0;
  padding: 0 4px 1px;
  border-bottom: 1px dashed var(--line);
  font: 700 21.6px/45px "Kaisei Decol", serif;
  white-space: nowrap;
}

.header-brand {
  position: absolute;
  left: 50%;
  top: 78px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 8px;
}

.header-brand img {
  width: 55px;
  height: 59px;
  object-fit: cover;
}

.header-brand span {
  font: 400 40px/1 "Sansation", "Montserrat", sans-serif;
  letter-spacing: -0.15px;
}

.header-icons {
  position: absolute;
  right: 43px;
  top: 35px;
  display: flex;
  align-items: center;
  gap: 13px;
  height: 40px;
}

.icon-btn {
  display: grid;
  place-items: center;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  background: transparent;
}

.icon-btn img {
  width: 40px;
  height: 40px;
  object-fit: contain;
}

.icon-btn.search {
  border: 1px solid var(--line);
  border-radius: 50%;
  box-shadow: 2px 2px 0 #000;
  background: #fff;
  aspect-ratio: 1 / 1;
}

.icon-btn.search img {
  width: 20px;
  height: 20px;
}

.icon-btn.user {
  border: 1px solid var(--line);
  border-radius: 50%;
  box-shadow: 2px 2px 0 #000;
  background: #fff;
  aspect-ratio: 1 / 1;
}

/* --- Mobile menu overlay --- */

.icon-btn.plain {
  display: none;
}

.mobile-menu-overlay {
  position: fixed;
  inset: 0;
  z-index: 9999;
  background: rgba(0, 0, 0, 0.45);
  opacity: 0;
  visibility: hidden;
  transition: opacity 0.3s, visibility 0.3s;
}

.mobile-menu-overlay.active {
  opacity: 1;
  visibility: visible;
}

.mobile-menu-panel {
  position: absolute;
  top: 0;
  right: 0;
  width: 300px;
  max-width: 85vw;
  height: 100%;
  background: #fff;
  padding: 24px 20px;
  overflow-y: auto;
  transform: translateX(100%);
  transition: transform 0.3s ease;
}

.mobile-menu-overlay.active .mobile-menu-panel {
  transform: translateX(0);
}

.mobile-menu-close {
  display: block;
  margin-left: auto;
  border: 0;
  background: transparent;
  font-size: 28px;
  line-height: 1;
  color: var(--line);
  cursor: pointer;
  padding: 0 4px 12px;
}

.mobile-menu-nav {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mobile-menu-nav a {
  display: block;
  padding: 12px 8px;
  font: 500 15px/1.4 "Noto Sans JP", sans-serif;
  color: var(--line);
  text-decoration: none;
  border-bottom: 1px solid #eee;
  transition: background 0.2s;
}

.mobile-menu-nav a:hover {
  background: #f9f9f9;
}

.mobile-menu-links {
  margin-top: 20px;
  padding-top: 16px;
  border-top: 2px solid var(--line);
  display: flex;
  flex-direction: column;
  gap: 0;
}

.mobile-menu-links a {
  display: block;
  padding: 12px 8px;
  font: 700 15px/1.4 "Noto Sans JP", sans-serif;
  color: var(--line);
  text-decoration: none;
  border-bottom: 1px solid #eee;
  transition: background 0.2s;
}

.mobile-menu-links a:hover {
  background: #f9f9f9;
  color: var(--accent);
}

@media (max-width: 900px) {
  .icon-btn.plain {
    display: grid;
  }
}

/* --- Header search overlay --- */
.header-search-overlay {
  display: none;
  position: absolute;
  top: 100%;
  right: 0;
  z-index: 100;
  margin-top: 8px;
  padding: 12px;
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 12px;
  box-shadow: 2px 4px 12px rgba(0,0,0,.12);
  min-width: 280px;
}
.header-search-overlay.active {
  display: block;
}
.header-search-form {
  display: flex;
  align-items: center;
  gap: 8px;
}
.header-search-field {
  flex: 1;
  padding: 8px 12px;
  border: 1px solid #ccc;
  border-radius: 8px;
  font-size: 14px;
  outline: none;
  font-family: inherit;
}
.header-search-field:focus {
  border-color: var(--accent);
}
.header-search-submit {
  display: grid;
  place-items: center;
  width: 36px;
  height: 36px;
  padding: 0;
  border: 1px solid var(--line);
  border-radius: 50%;
  background: #fff;
  cursor: pointer;
}
.header-search-submit:hover {
  background: #f5f5f5;
}

/* ヘッダーキャラクター非表示 */
.deco {
  display: none;
  position: absolute;
  object-fit: cover;
  transform-origin: center center;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform;
  animation-name: var(--deco-flip-name, decoFlipY);
  animation-duration: var(--deco-flip-duration, 36s);
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-delay: var(--deco-flip-delay, 0s);
}

.deco-10 {
  left: 65px;
  top: 30px;
  width: 82.75px;
  height: 155.7px;
  --deco-flip-duration: 34.8s;
  --deco-flip-delay: -5.1s;
}

.deco-9 {
  left: 296px;
  top: -42px;
  width: 81px;
  height: 150px;
  --deco-flip-name: decoFlipX;
  --deco-flip-duration: 41.2s;
  --deco-flip-delay: -18.7s;
}

.deco-11 {
  left: 985px;
  top: -9px;
  width: 71px;
  height: 134px;
  --deco-flip-duration: 31.6s;
  --deco-flip-delay: -10.3s;
}

.deco-8 {
  left: 1148px;
  top: 40px;
  width: 90.62px;
  height: 150.3px;
  --deco-flip-name: decoFlipX;
  --deco-flip-duration: 38.4s;
  --deco-flip-delay: -22.2s;
}

.header-nav-wrap {
  position: relative;
  z-index: 20;
  max-width: 1440px;
  margin: 0 auto;
  border-top: 2px solid var(--line);
  box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  overflow: visible;
}

.nav-arrow {
  flex: 0 0 26px;
  width: 26px;
  height: 26px;
  border: 0;
  background: transparent;
  padding: 0;
}

.nav-arrow img {
  width: 26px;
  height: 26px;
  display: block;
}

.header-nav-wrap .nav-arrow[aria-label="left"] img {
  transform: rotate(180deg) !important;
}

.header-nav-wrap .nav-arrow[aria-label="right"] img {
  transform: rotate(180deg) !important;
}

.chip-nav {
  display: flex;
  flex: 1;
  align-items: center;
  gap: 25px;
  overflow: hidden;
  padding: 16px 12px 16px 0;
  border-top: 0;
}

.chip-nav button,
.chip-nav a {
  border: 0;
  background: transparent;
  border-radius: 10px;
  padding: 10px;
  font: 500 18px/24px "Noto Sans JP", sans-serif;
  letter-spacing: -0.31px;
  white-space: nowrap;
  color: var(--line) !important;
  text-decoration: none !important;
}

.chip-nav .active {
  background: #fff75d;
}

/* --- Global Nav (WordPress menu) --- */
.global-nav {
  flex: 1;
}

.global-nav-list {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0;
  list-style: none;
  margin: 0;
  padding: 0;
}

.global-nav-list li {
  flex: none;
  position: relative;
}

.global-nav-list li + li::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 1px;
  height: 18px;
  background: #ccc;
}

.global-nav-list a {
  display: block;
  padding: 22px 22px;
  font: 500 16px/1.4 "Noto Sans JP", sans-serif;
  letter-spacing: 0.04em;
  white-space: nowrap;
  color: var(--line);
  text-decoration: none;
  transition: color 0.25s, background 0.25s;
}

.global-nav-list a:hover {
  color: var(--accent);
  background: rgba(139, 161, 170, 0.08);
}

.global-nav-list .current-menu-item a {
  color: var(--accent);
  font-weight: 700;
}

.global-nav-list a[href=""],
.global-nav-list a:not([href]) {
  cursor: default;
}

.global-nav-list a[href=""]:hover,
.global-nav-list a:not([href]):hover {
  color: var(--line);
  background: transparent;
}

/* サブメニュー（ドロップダウン） */
.global-nav-list .sub-menu {
  display: none;
  position: absolute;
  top: 100%;
  left: 50%;
  transform: translateX(-50%);
  z-index: 100;
  min-width: 200px;
  list-style: none;
  margin: 0;
  padding: 8px 0;
  background: #fff;
  border: 1px solid #e0e0e0;
  border-radius: 8px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}

.global-nav-list li:hover > .sub-menu {
  display: block;
}

.global-nav-list .sub-menu li {
  position: static;
}

.global-nav-list .sub-menu li + li::before {
  display: none;
}

.global-nav-list .sub-menu a {
  padding: 10px 20px;
  font-size: 14px;
  white-space: nowrap;
}

.global-nav-list .sub-menu a:hover {
  background: rgba(139, 161, 170, 0.1);
  color: var(--accent);
}

main {
  max-width: 1440px;
  margin: 0 auto;
}

/* --- Content + Sidebar layout --- */
.content-with-sidebar {
  position: relative;
}

/* --- Floating Sidebar --- */
.floating-sidebar {
  position: fixed;
  top: 280px;
  left: calc(50% + 420px);
  width: 280px;
  max-height: calc(100vh - 300px);
  overflow-y: auto;
  background: #f7f7f7;
  padding: 28px 24px;
  z-index: 50;
  transition: opacity 0.3s ease, top 0.35s ease;
  scrollbar-width: none;
}

.floating-sidebar::-webkit-scrollbar {
  display: none;
}

/* --- Sections --- */
.fs-section + .fs-section {
  margin-top: 24px;
  padding-top: 24px;
  border-top: none;
  position: relative;
}

.fs-section + .fs-section::before {
  content: "";
  position: absolute;
  top: 0;
  left: 10%;
  right: 10%;
  height: 1px;
  background: linear-gradient(90deg, transparent, var(--accent), transparent);
  opacity: 0.3;
}

/* --- Heading --- */
.fs-heading {
  margin: 0 0 16px;
  font: 700 13px/1 "Montserrat", sans-serif;
  color: var(--accent);
  letter-spacing: 0.14em;
  text-transform: uppercase;
  position: relative;
  padding-left: 14px;
}

.fs-heading::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  transform: translateY(-50%);
  width: 4px;
  height: 14px;
  background: var(--accent);
  border-radius: 2px;
}

/* --- Tags --- */
.fs-tags {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
}

.fs-tag {
  display: inline-flex;
  align-items: center;
  padding: 7px 14px;
  font: 500 13px/1.3 "Noto Sans JP", sans-serif;
  color: var(--line);
  background: #fff;
  border: 1px solid #e4e8ea;
  border-radius: 20px;
  text-decoration: none;
  white-space: nowrap;
  transition: all 0.25s ease;
}

.fs-tag:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  transform: translateY(-2px);
  box-shadow: 0 3px 10px rgba(139, 161, 170, 0.25);
}

/* --- Popular posts --- */
.fs-popular {
  list-style: none;
  margin: 0;
  padding: 0;
}

.fs-popular-item + .fs-popular-item {
  margin-top: 16px;
}

.fs-popular-item a {
  display: flex;
  align-items: center;
  gap: 12px;
  text-decoration: none;
  color: var(--line);
  padding: 8px;
  border-radius: 12px;
  transition: background 0.2s;
}

.fs-popular-item a:hover {
  background: rgba(139, 161, 170, 0.08);
}

.fs-popular-rank {
  flex: none;
  width: 22px;
  height: 22px;
  border-radius: 6px;
  background: var(--accent);
  color: #fff;
  font: 700 11px/22px "Montserrat", sans-serif;
  text-align: center;
}

.fs-popular-item:nth-child(1) .fs-popular-rank {
  background: var(--line);
}

.fs-popular-item:nth-child(2) .fs-popular-rank {
  background: #7a8f97;
}

.fs-popular-item:nth-child(3) .fs-popular-rank {
  background: var(--accent);
}

.fs-popular-thumb {
  flex: none;
  width: 56px;
  height: 56px;
  border-radius: 10px;
  overflow: hidden;
}

.fs-popular-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.fs-popular-noimg {
  width: 100%;
  height: 100%;
  background: #e8ecee;
}

.fs-popular-title {
  flex: 1;
  font: 500 13px/1.6 "Noto Sans JP", sans-serif;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

/* スマホでは非表示 */
@media (max-width: 1400px) {
  .floating-sidebar {
    display: none;
  }
}

/* フロントページではflex無効 */
body.home .content-with-sidebar {
  display: block;
}

main a {
  color: inherit;
  text-decoration: none;
}

.hero-wrap {
  position: relative;
  min-height: 680px;
  padding: 8px 0 34px;
  overflow: visible;
}

.hero-deco {
  position: absolute;
  z-index: 1;
  object-fit: cover;
  pointer-events: none;
  transform-origin: center center;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform;
  animation-name: var(--deco-flip-name, decoFlipY);
  animation-duration: var(--deco-flip-duration, 36s);
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-delay: var(--deco-flip-delay, 0s);
}

.hero-deco-lt {
  left: 136px;
  top: 63px;
  width: 98px;
  height: 154px;
  --deco-flip-duration: 36.9s;
  --deco-flip-delay: -8.9s;
}

.hero-deco-rt {
  left: 1110px;
  top: 72px;
  width: 90px;
  height: 189px;
  --deco-flip-name: decoFlipX;
  --deco-flip-duration: 29.7s;
  --deco-flip-delay: -13.5s;
}

.hero-deco-rtt {
  left: 1271px;
  top: 18px;
  width: 76px;
  height: 168px;
  --deco-flip-duration: 33.3s;
  --deco-flip-delay: -20.8s;
}

.hero-deco-lb {
  left: 25px;
  top: 500px;
  width: 111px;
  height: 166px;
  --deco-flip-name: decoFlipX;
  --deco-flip-duration: 44.1s;
  --deco-flip-delay: -27.7s;
}

.hero-deco-rb {
  left: 1281px;
  top: 500px;
  width: 111px;
  height: 179px;
  --deco-flip-duration: 35.9s;
  --deco-flip-delay: -4.9s;
}

.pickup-title {
  position: relative;
  z-index: 4;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  width: fit-content;
  margin: 30px auto 40px;
  transform: translateX(-168px) rotate(-8.16deg);
}

.pickup-line {
  display: block;
  object-fit: contain;
}

.pickup-line-left {
  width: 47px;
  height: 2px;
  transform: rotate(53.16deg);
}

.pickup-line-right {
  width: 40px;
  height: 2px;
  transform: rotate(-57.21deg);
}

.pickup {
  margin: 0;
  font: 400 27px/1 "Croissant One", serif;
  text-align: center;
  letter-spacing: 0.01em;
}

.pickup-swiper,
.pickup-swiper.swiper {
  position: relative;
  z-index: 3;
  max-width: 1394px;
  margin: 40px auto 0;
  padding: 8px 0 74px;
  overflow: visible !important;
}

.pickup-swiper .swiper-wrapper {
  align-items: flex-start;
}

.pickup-swiper .swiper-slide {
  width: clamp(400px, 34vw, 580px);
  margin-top: 0;
  transition: transform 0.7s ease, opacity 0.7s ease;
  will-change: transform, opacity;
}

.hero-card {
  position: relative;
  width: 100%;
  aspect-ratio: 672 / 542;
  margin: 0;
  border: 2.214px solid var(--line);
  border-radius: 21.485px;
  overflow: hidden;
  background: #fff;
  box-shadow: 7.75px 7.75px 7.75px rgba(0, 0, 0, 0.45);
}

.pickup-swiper .swiper-slide-prev.hero-card,
.pickup-swiper .swiper-slide-next.hero-card {
  border-radius: 25.153px;
}

.pickup-swiper .swiper-slide-active.hero-card {
  border-radius: 33.276px;
}

.hero-thumb {
  height: 76.7%;
  overflow: hidden;
}

.hero-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.hero-meta {
  height: 23.3%;
  background: #fff;
  padding: 20px 22px 16px;
}

.pill {
  --pill-size: 17.747px;
  --pill-v-pad: 12.176px;
  --pill-h-pad: 26.566px;
  position: absolute;
  left: 0;
  top: 68.6%;
  z-index: 4;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: var(--pill-v-pad) var(--pill-h-pad);
  font: 500 var(--pill-size) / 1 "Noto Sans JP", sans-serif;
  white-space: nowrap;
}

.pill-corner {
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 0 8px 0 0;
}

.pill-bubble {
  left: 13px;
  background: #85c2ff;
  color: var(--line);
  border: 0.9px solid var(--line);
  border-radius: 999px;
  box-shadow: 1.677px 1.677px 0 #000;
}

.hero-meta time {
  display: block;
  color: var(--accent);
  font: 700 16.638px/1.1 "Montserrat", sans-serif;
  letter-spacing: -0.01em;
  margin-top: 0;
}

.hero-meta h1 {
  margin: 8px 0 0;
  font: 700 17.747px/1.25 "Noto Sans JP", sans-serif;
  letter-spacing: 0;
}

.pickup-swiper .swiper-pagination {
  bottom: 8px !important;
}

.pickup-swiper .swiper-pagination-bullet {
  width: 13px;
  height: 13px;
  margin: 0 7px !important;
  border: 2px solid #696969;
  border-radius: 50%;
  opacity: 1;
  background: #fff;
}

.pickup-swiper .swiper-pagination-bullet-active {
  width: 15px;
  height: 15px;
  position: relative;
}

.pickup-swiper .swiper-pagination-bullet-active::after {
  content: "";
  position: absolute;
  inset: 3px;
  border-radius: 50%;
  background: var(--accent);
}

.section-blue {
  background: #e8f2fa;
}

.grid {
  display: grid;
  gap: 16px;
  margin-left: 48px;
}

.area-picks {
  position: relative;
  background: #fff;
  min-height: 937px;
  padding: 80px 83px 80px 188px;
  overflow: hidden;
}

.ap-rail {
  position: absolute;
  left: 79px;
  top: 80px;
  width: 58px;
  height: calc(100% - 160px);
  z-index: 2;
}

.ap-rail::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 1px;
  height: 100%;
  background: var(--line);
}

.ap-rail-title,
.ap-rail-sub {
  margin: 0;
  color: var(--line);
  writing-mode: vertical-rl;
  text-orientation: mixed;
}

.ap-rail-title {
  font: 700 40px/20px "Montserrat", sans-serif;
  letter-spacing: -0.1504px;
}

.ap-rail-sub {
  margin-top: 21px;
  font: 500 18px/25px "Noto Sans JP", sans-serif;
  letter-spacing: -0.4492px;
}

.ap-grid {
  position: relative;
  z-index: 1;
  display: grid;
  grid-template-columns: repeat(2, 565px);
  gap: 39px;
}

.ap-card {
  position: relative;
  width: 565px;
  height: 449px;
  transition:
    transform 780ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 680ms ease,
    filter 780ms ease;
}

.ap-card.ap-pre-reveal {
  opacity: 0;
  transform: translateY(34px) scale(0.96) rotate(-0.8deg);
  filter: saturate(0.9) blur(0.3px);
}

.ap-card.ap-revealed {
  opacity: 1;
  transform: translateY(0) scale(1) rotate(0deg);
  filter: none;
}

.seq-reveal-target {
  transition:
    transform 780ms cubic-bezier(0.22, 1, 0.36, 1),
    opacity 680ms ease,
    filter 780ms ease;
}

.seq-reveal-target.seq-pre-reveal {
  opacity: 0;
  transform: translateY(34px) scale(0.96) rotate(-0.8deg);
  filter: saturate(0.9) blur(0.3px);
}

.seq-reveal-target.seq-revealed {
  opacity: 1;
  transform: translateY(0) scale(1) rotate(0deg);
  filter: none;
}

.new-articles .seq-reveal-target {
  transition: opacity 620ms ease;
}

.new-articles .seq-reveal-target.seq-pre-reveal {
  opacity: 0;
  transform: none;
  filter: none;
}

.new-articles .seq-reveal-target.seq-revealed {
  opacity: 1;
  transform: none;
  filter: none;
}

.se-main-more.seq-pre-reveal {
  transform: translateX(-50%) translateY(34px) scale(0.96) rotate(-0.8deg);
}

.se-main-more.seq-revealed {
  transform: translateX(-50%) translateY(0) scale(1) rotate(0deg);
}

.ap-card::before {
  content: "";
  position: absolute;
  left: 6px;
  top: 7px;
  width: 557px;
  height: 442px;
  border: 2px solid var(--line);
  border-radius: 30px;
  pointer-events: none;
  z-index: 1;
}

.ap-card::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 557px;
  height: 442px;
  border-radius: 30px;
  z-index: 0;
}

.ap-card-harajuku::after,
.ap-card:nth-child(1)::after {
  background: #ff6b6b;
}

.ap-card-omotesando::after,
.ap-card:nth-child(2)::after {
  background: #4ecec5;
}

.ap-card-gaienmae::after,
.ap-card:nth-child(3)::after {
  background: #ffe66e;
}

.ap-card-aoyama::after,
.ap-card:nth-child(4)::after {
  background: #dda1de;
}

.ap-content {
  position: absolute;
  left: 113px;
  top: 27px;
  width: 432px;
  z-index: 2;
}

.ap-item+.ap-item {
  margin-top: 11px;
}

.ap-item {
  display: flex;
  align-items: center;
  gap: 15px;
  padding: 13px;
  border-radius: 20px;
  background: #fff9f0;
}

.ap-item img {
  width: 110px;
  height: 110px;
  border-radius: 10px;
  object-fit: cover;
  display: block;
}

.ap-item-body {
  min-width: 0;
  flex: 1;
}

.ap-item-body h3 {
  margin: 0;
  color: #000;
  font: 500 17px/28px "Noto Sans JP", sans-serif;
}

.ap-item-meta {
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 6px;
  flex-wrap: wrap;
  overflow: hidden;
}

.ap-item-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 22px;
  border: 1px solid var(--line);
  border-radius: 11px;
  padding: 0 10px;
  font: 400 12px/1 "Noto Sans JP", sans-serif;
  color: var(--line);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
  max-width: 200px;
}

.ap-item-meta time {
  font: 600 16px/16px "Montserrat", sans-serif;
  color: var(--line);
  white-space: nowrap;
}

.ap-divider {
  position: absolute;
  left: -93px;
  top: 321px;
  width: 517px;
  border-top: 2px dotted var(--line);
}

.ap-more {
  position: absolute;
  left: -79px;
  top: 347px;
  height: 37.5px;
  border: 2px solid var(--line);
  border-radius: 18.75px;
  background: #fff;
  color: var(--line);
  padding: 0 29.25px;
  display: inline-flex;
  align-items: center;
  font: 500 15px/24.75px "Montserrat", sans-serif;
  text-decoration: none;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
}
.ap-more:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(182, 190, 194, 0.3);
}

.ap-area-name {
  position: absolute;
  left: 26px;
  margin: 0;
  padding: 12px 17px;
  border-radius: 10px;
  background: var(--line);
  color: #fff;
  font: 900 24px/30px "Noto Sans JP", sans-serif;
  letter-spacing: -0.4492px;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  z-index: 2;
  transform-origin: center center;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform;
  animation: apAreaNameSoftPop var(--ap-name-pulse-dur, 21s) ease-in-out infinite;
  animation-delay: var(--ap-name-pulse-delay, 0s);
}

.ap-card-harajuku .ap-area-name,
.ap-card:nth-child(1) .ap-area-name {
  top: 133px;
  --ap-name-pulse-dur: 19.8s;
  --ap-name-pulse-delay: -4.3s;
}

.ap-card-omotesando .ap-area-name,
.ap-card:nth-child(2) .ap-area-name {
  top: 120px;
  --ap-name-pulse-dur: 22.4s;
  --ap-name-pulse-delay: -11.2s;
}

.ap-card-gaienmae .ap-area-name,
.ap-card:nth-child(3) .ap-area-name {
  top: 118px;
  --ap-name-pulse-dur: 20.9s;
  --ap-name-pulse-delay: -7.7s;
}

.ap-card-aoyama .ap-area-name,
.ap-card:nth-child(4) .ap-area-name {
  top: 88px;
  --ap-name-pulse-dur: 23.6s;
  --ap-name-pulse-delay: -14.1s;
}

.new-articles {
  position: relative;
  overflow: hidden;
  padding: 100px 85px 102px 188px;
  min-height: 1465px;
}

.na-bg {
  position: absolute;
  pointer-events: none;
  user-select: none;
  z-index: 1;
  transform-origin: center center;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform;
  animation-name: var(--deco-flip-name, decoFlipY);
  animation-duration: var(--deco-flip-duration, 48s);
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-delay: var(--deco-flip-delay, 0s);
}

.na-bg-top {
  left: -246px;
  top: -378px;
  width: 1036px;
  height: 1036px;
  --deco-flip-name: decoFlipX;
  --deco-flip-duration: 52s;
  --deco-flip-delay: -17.8s;
}

.na-bg-bottom {
  right: -273px;
  top: 881px;
  width: 1036px;
  height: 1036px;
  --deco-flip-duration: 58s;
  --deco-flip-delay: -39.1s;
}

.na-rail {
  position: absolute;
  left: 79px;
  top: 100px;
  width: 58px;
  height: 1297px;
  z-index: 3;
}

.na-rail::after {
  content: "";
  position: absolute;
  left: 57px;
  top: 0;
  width: 1px;
  height: 1297px;
  background: var(--line);
}

.na-rail-title-wrap {
  width: 24px;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 21px;
}

.na-rail-title,
.na-rail-sub {
  margin: 0;
  writing-mode: vertical-rl;
  text-orientation: mixed;
  color: var(--line);
}

.na-rail-title {
  font: 700 40px/20px "Montserrat", sans-serif;
  letter-spacing: -0.1504px;
}

.na-rail-sub {
  font: 500 18px/25px "Noto Sans JP", sans-serif;
  letter-spacing: -0.4492px;
}

.na-new-badge {
  position: absolute;
  left: 38px;
  top: 620px;
  transform: rotate(-13.82deg);
  z-index: 4;
  display: flex;
  flex-direction: column;
  align-items: center;
}

.na-new-text {
  margin: 0;
  color: var(--accent);
  font: 700 28.74px/19.973px "Caveat", cursive;
}

.na-new-underline {
  margin-top: 3px;
  width: 81.503px;
  height: 18.239px;
  transform: rotate(8.16deg);
}

@keyframes naCardFloatPulse {

  0%,
  100% {
    transform: translateY(0);
    box-shadow: 0 8px 16px rgba(0, 0, 0, 0.08);
  }

  50% {
    transform: translateY(-5px);
    box-shadow: 0 14px 24px rgba(0, 0, 0, 0.13);
  }
}

@keyframes naThumbSlowZoom {
  0% {
    transform: scale(1) translate(0, 0);
  }

  100% {
    transform: scale(var(--na-zoom-max, 1.16)) translate(var(--na-zoom-x, 0px), var(--na-zoom-y, -4px));
  }
}

@keyframes naCardBorderShift {

  0%,
  100% {
    border-color: var(--line);
  }

  33% {
    border-color: var(--accent);
  }

  66% {
    border-color: #6ec5ff;
  }
}

.new-articles-inner {
  position: relative;
  z-index: 2;
  width: 1167px;
  max-width: 100%;
  margin: 0 auto;
  display: flex;
  align-items: flex-start;
  gap: 38.889px;
}

.na-featured-col {
  flex: 0 0 515.278px;
  display: flex;
  flex-direction: column;
  gap: 38.889px;
}

.na-grid-col {
  flex: 0 0 612.5px;
  display: grid;
  grid-template-columns: repeat(2, 281.944px);
  gap: 40px 38.889px;
}

.na-card {
  position: relative;
  display: flex;
  flex-direction: column;
  background: #fff;
  border-style: solid;
  border-color: var(--line);
  border-width: 1.944px 6.806px 6.806px 1.944px;
  border-radius: 29.167px;
  overflow: hidden;
  animation:
    naCardFloatPulse var(--na-card-dur, 18s) ease-in-out infinite,
    naCardBorderShift var(--na-border-dur, 28s) linear infinite;
  animation-delay: var(--na-card-delay, 0s), var(--na-border-delay, -2s);
  will-change: transform, box-shadow;
}

.na-media {
  position: relative;
  overflow: hidden;
}

.na-card-featured .na-media {
  height: 388.889px;
}

.na-card-small .na-media {
  height: 204.167px;
}

.na-media img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.na-featured-col .na-card:nth-child(1) {
  --na-card-dur: 19s;
  --na-card-delay: -3.4s;
  --na-thumb-dur: 24s;
  --na-thumb-delay: -9.2s;
  --na-border-dur: 27s;
  --na-border-delay: -4.6s;
}

.na-featured-col .na-card:nth-child(2) {
  --na-card-dur: 21s;
  --na-card-delay: -11.1s;
  --na-thumb-dur: 27s;
  --na-thumb-delay: -4.6s;
  --na-border-dur: 30s;
  --na-border-delay: -14.9s;
}

.na-grid-col .na-card:nth-child(1) {
  --na-card-dur: 16.5s;
  --na-card-delay: -7.5s;
  --na-thumb-dur: 20.5s;
  --na-thumb-delay: -2.1s;
  --na-border-dur: 25.5s;
  --na-border-delay: -9.3s;
}

.na-grid-col .na-card:nth-child(2) {
  --na-card-dur: 18.5s;
  --na-card-delay: -13.7s;
  --na-thumb-dur: 23.5s;
  --na-thumb-delay: -15.8s;
  --na-border-dur: 29.5s;
  --na-border-delay: -6.8s;
}

.na-grid-col .na-card:nth-child(3) {
  --na-card-dur: 20.5s;
  --na-card-delay: -5.2s;
  --na-thumb-dur: 25s;
  --na-thumb-delay: -6.3s;
  --na-border-dur: 26.5s;
  --na-border-delay: -18.4s;
}

.na-grid-col .na-card:nth-child(4) {
  --na-card-dur: 17.8s;
  --na-card-delay: -10.9s;
  --na-thumb-dur: 21.8s;
  --na-thumb-delay: -12.4s;
  --na-border-dur: 24.5s;
  --na-border-delay: -11.2s;
}

.na-tags {
  position: absolute;
  left: 0;
  bottom: 0;
  display: flex;
  align-items: center;
}

.na-tag {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  font: 500 13px/1 "Noto Sans JP", sans-serif;
  white-space: nowrap;
}

.na-tag-primary,
.na-tag-single {
  background: var(--accent);
  color: #fff;
}

.na-tag-primary {
  height: 32px;
  padding: 6px 14px;
}

.na-tag-secondary {
  height: 32px;
  padding: 6px 14px;
  background: #fff;
  color: var(--line);
  border-top-right-radius: 12px;
}

.na-tag-single {
  position: absolute;
  left: 0;
  bottom: 0;
  padding: 8px 14px;
  border-top-right-radius: 10px;
}

.na-body-featured {
  padding: 16.528px 31.111px 29.167px 21.389px;
}

.na-body-small {
  padding: 14.583px 22.361px 26.25px 12.639px;
}

.na-date {
  display: block;
  margin: 0;
  color: var(--accent);
  font-family: "Montserrat", sans-serif;
  font-weight: 700;
}

.na-date-featured {
  font-size: 15.556px;
  line-height: 22.734px;
}

.na-date-small {
  font-size: 14.583px;
  line-height: 22.734px;
}

.na-title {
  margin: 0;
  color: var(--line);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 700;
}

.na-title-featured {
  font-size: 19.444px;
  line-height: 32.083px;
}

.na-title-small {
  font-size: 16px;
  line-height: 24px;
}

.na-read-more {
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  z-index: 2;
  width: fit-content;
  height: 50px;
  margin: 66px auto 0;
  border-radius: 25px;
  padding: 0 32px;
  font-size: 20px;
  line-height: 33px;
  border: 0;
  background: var(--line);
  color: #fff;
  text-decoration: none;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  transition: background 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
  cursor: pointer;
}
.na-read-more:hover {
  background: var(--accent);
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(182, 190, 194, 0.3);
}

section.search {
  position: relative;
  background: #fdfacd;
  min-height: 2170px;
  overflow: hidden;
}

.se-title {
  position: absolute;
  left: 20px;
  top: 32px;
  margin: 0;
  color: #fff;
  font: 700 159.243px/53.081px "Montserrat", sans-serif;
}

.se-rail {
  position: absolute;
  left: 76px;
  width: 58px;
}

.se-rail::after {
  content: "";
  position: absolute;
  right: 0;
  top: 0;
  width: 1px;
  height: 100%;
  background: #9b9b9b;
}

.se-rail p {
  margin: 0;
  width: 17px;
  color: var(--line);
  font: 500 18px/25px "Noto Sans JP", sans-serif;
  letter-spacing: -0.4492px;
  writing-mode: vertical-rl;
  text-orientation: mixed;
}

.se-rail-keyword {
  top: 181px;
  height: 252px;
}

.se-rail-article {
  top: 560px;
  height: 1336px;
}

.se-rail-other {
  top: 2019px;
  height: 92px;
}

.se-chip-list {
  position: absolute;
  left: 188px;
  top: 181px;
  width: 1167px;
  display: grid;
  grid-template-columns: repeat(3, 369px);
  gap: 27px 23px;
}

.se-chip {
  height: 66px;
  border: 2px solid var(--line);
  border-radius: 20px;
  background: #fff;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  color: var(--line);
  font-family: "Noto Sans JP", sans-serif;
  font-weight: 500;
}

.se-chip span:first-child {
  font-size: 30px;
  line-height: 1;
}

.se-chip span:last-child {
  font-size: 18px;
  line-height: 24px;
  letter-spacing: -0.3125px;
}

.se-main-more {
  position: absolute;
  left: 50%;
  top: 537px;
  transform: translateX(-50%);
  width: 155px;
  height: 50px;
  border: 0;
  border-radius: 25px;
  background: var(--line);
  color: #fff;
  font: 500 20px/33px "Montserrat", sans-serif;
  transition: background 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
  cursor: pointer;
}
.se-main-more:hover {
  background: var(--accent);
  transform: translateX(-50%) translateY(-3px);
  box-shadow: 0 6px 20px rgba(182, 190, 194, 0.3);
}

.se-article-grid {
  position: absolute;
  left: 190px;
  top: 560px;
  width: 1153px;
  display: grid;
  grid-template-columns: repeat(2, 554px);
  gap: 45px;
}

.se-box {
  background: #fff;
  border: 2px solid var(--line);
  border-radius: 30px;
  padding: 30px 25px 22px;
  display: flex;
  flex-direction: column;
  gap: 20px;
}

.se-box-head {
  margin: 0;
  padding: 11px 0 17px;
  border-bottom: 1px solid var(--line);
  display: flex;
  align-items: center;
  gap: 13px;
}

.se-box-head span {
  width: 35px;
  font-size: 35px;
  line-height: 1;
}

.se-box-head h3 {
  margin: 0;
  color: var(--line);
  font: 700 25px/1.2 "Noto Sans JP", sans-serif;
}

.se-box-list {
  display: flex;
  flex-direction: column;
  gap: 12px;
}

.se-list-item {
  background: #fdfacd;
  border-radius: 10px;
  padding: 15px;
  display: flex;
  align-items: center;
  gap: 15px;
}

.se-list-item img {
  width: 110px;
  height: 110px;
  border-radius: 5px;
  object-fit: cover;
  display: block;
}

.se-list-body {
  min-width: 0;
  flex: 1;
}

.se-list-body p {
  margin: 0;
  color: var(--line);
  font: 500 17px/28px "Noto Sans JP", sans-serif;
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.se-list-meta {
  margin-top: 8px;
  display: flex;
  align-items: center;
  gap: 8px;
}

.se-list-meta span {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  height: 24px;
  border: 1px solid var(--line);
  border-radius: 12px;
  padding: 0 15px;
  color: var(--line);
  font: 400 14px/16px "Noto Sans JP", sans-serif;
  white-space: nowrap;
}

.se-list-meta time {
  color: var(--line);
  font: 600 16px/16px "Montserrat", sans-serif;
  white-space: nowrap;
}

.se-box-more {
  margin: 11px auto 0;
  height: 37.5px;
  border: 0;
  border-radius: 18.75px;
  padding: 0 29.25px;
  background: var(--line);
  color: #fff;
  font: 500 17px/33px "Montserrat", sans-serif;
  display: inline-flex;
  align-items: center;
  text-decoration: none;
  transition: background 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
}
.se-box-more:hover {
  background: var(--accent);
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(182, 190, 194, 0.3);
}

.se-bottom-cta {
  position: absolute;
  left: 190px;
  top: 2019px;
  width: 1153px;
  display: grid;
  grid-template-columns: repeat(2, 554px);
  gap: 45px;
}

.se-bottom-cta button,
.se-bottom-cta .se-bottom-btn {
  display: flex;
  align-items: center;
  justify-content: center;
  height: 92px;
  border: 2px solid var(--line);
  border-radius: 20px;
  background: #fff;
  color: var(--line);
  font: 700 23.4px/31.2px "Noto Sans JP", sans-serif;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.4s ease, color 0.4s ease, border-color 0.4s ease, transform 0.4s ease, box-shadow 0.4s ease;
}
.se-bottom-cta button:hover,
.se-bottom-cta .se-bottom-btn:hover {
  background: var(--accent);
  border-color: var(--accent);
  color: #fff;
  transform: translateY(-3px);
  box-shadow: 0 6px 20px rgba(182, 190, 194, 0.3);
}

/* --- Popular posts section --- */

.popular-section {
  background: #faf9f6;
  padding: 48px 20px 56px;
}

.popular-inner {
  max-width: 1000px;
  margin: 0 auto;
}

.popular-heading {
  text-align: center;
  margin-bottom: 32px;
}

.popular-title {
  font-family: "Montserrat", sans-serif;
  font-size: 1.6rem;
  font-weight: 700;
  color: var(--accent);
  letter-spacing: 0.08em;
  margin: 0 0 4px;
}

.popular-sub {
  font-size: 0.8rem;
  color: #999;
  margin: 0;
}

.popular-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 20px;
}

.popular-card {
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.25s, transform 0.25s;
}

.popular-card:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.10);
  transform: translateY(-3px);
}

.popular-card-link {
  display: block;
  text-decoration: none;
  color: inherit;
}

.popular-card-thumb {
  position: relative;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: #f0f0f0;
}

.popular-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s;
}

.popular-card:hover .popular-card-thumb img {
  transform: scale(1.04);
}

.popular-card-noimg {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #f5f5f5 0%, #e8e8e8 100%);
}

.popular-card-cat {
  position: absolute;
  bottom: 8px;
  left: 8px;
  padding: 3px 10px;
  font-size: 0.7rem;
  font-weight: 600;
  color: #fff;
  background: var(--accent);
  border-radius: 20px;
  line-height: 1.5;
}

.popular-card-rank {
  position: absolute;
  top: 0;
  left: 0;
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  font-family: "Montserrat", sans-serif;
  font-size: 0.8rem;
  font-weight: 700;
  color: #fff;
  background: rgba(0, 0, 0, 0.55);
  border-radius: 0 0 8px 0;
  line-height: 1;
}

.popular-card-body {
  padding: 14px 16px 18px;
}

.popular-card-date {
  display: block;
  font-size: 0.72rem;
  color: #aaa;
  margin-bottom: 6px;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  letter-spacing: 0.03em;
}

.popular-card-title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.6;
  color: var(--line);
  margin: 0;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.popular-card-link:hover .popular-card-title {
  color: var(--accent);
}

.popular-card-views {
  display: block;
  margin-top: 8px;
  font-size: 0.68rem;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  color: #bbb;
  letter-spacing: 0.02em;
}

@media (max-width: 900px) {
  .popular-grid {
    grid-template-columns: repeat(2, 1fr);
  }
}

@media (max-width: 600px) {
  .popular-section {
    padding: 36px 16px 44px;
  }

  .popular-grid {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .popular-card-title {
    font-size: 0.85rem;
  }
}

/* ---- Footer ---- */

.site-footer {
  background: var(--accent);
  color: #fff;
}

.ft-inner {
  position: relative;
  max-width: 1440px;
  height: 335px;
  margin: 0 auto;
}

/* フッターキャラクター非表示 */
.ft-walker-top {
  display: none;
  position: absolute;
  left: 47px;
  top: 40px;
  width: 78.965px;
  height: 148.58px;
  object-fit: cover;
  transform-origin: center center;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform;
  animation-name: decoFlipY;
  animation-duration: 37.4s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-delay: -14.4s;
}

.ft-tagline {
  position: absolute;
  left: 131px;
  top: 53px;
}

.ft-tagline p {
  margin: 0;
  border-bottom: 1px dashed var(--line);
  color: #fff;
  font: 700 22.902px/47.713px "Kaisei Decol", serif;
  white-space: nowrap;
}

.ft-brand {
  position: absolute;
  left: 50%;
  top: 54px;
  transform: translateX(-50%);
  display: flex;
  align-items: center;
  gap: 8px;
}

.ft-brand img {
  width: 55px;
  height: 59px;
  object-fit: cover;
}

.ft-brand span {
  color: #fff;
  font: 400 40px/20px "Sansation", "Montserrat", sans-serif;
  letter-spacing: -0.1504px;
  white-space: nowrap;
}

.ft-social {
  position: absolute;
  left: 62px;
  top: 209px;
  display: flex;
  align-items: center;
  gap: 18px;
}

.ft-social a {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-decoration: none;
}

.ft-social a img {
  max-width: 100%;
  max-height: 100%;
  object-fit: contain;
}

.ft-social-icon {
  display: block;
  transition: opacity 0.2s;
}

.ft-social a:hover .ft-social-icon {
  opacity: 0.7;
}

.ft-walker-bottom {
  display: none;
  position: absolute;
  left: 393px;
  top: 177.59px;
  width: 84.55px;
  height: 157.407px;
  object-fit: cover;
  transform-origin: center center;
  transform-style: preserve-3d;
  backface-visibility: hidden;
  will-change: transform;
  animation-name: decoFlipX;
  animation-duration: 49.3s;
  animation-timing-function: ease-in-out;
  animation-iteration-count: infinite;
  animation-delay: -30.2s;
}

@media (prefers-reduced-motion: reduce) {
  body.page-enter {
    opacity: 1 !important;
    transform: none !important;
    transition: none !important;
  }

  .deco,
  .hero-deco,
  .na-bg,
  .na-card,
  .ap-area-name,
  .ap-card,
  .na-media img,
  .ft-walker-top,
  .ft-walker-bottom {
    animation: none !important;
  }

  .na-card,
  .ap-card,
  .na-media img {
    transform: none !important;
    box-shadow: none !important;
  }

  .ap-card {
    transition: none !important;
    opacity: 1 !important;
    filter: none !important;
  }

  .seq-reveal-target {
    transition: none !important;
    opacity: 1 !important;
    transform: none !important;
    filter: none !important;
  }

  .se-main-more.seq-reveal-target {
    transform: translateX(-50%) !important;
  }
}

.ft-links {
  position: absolute;
  inset: 0;
  pointer-events: none;
}

.ft-links a,
.ft-links p,
.ft-links h4 {
  pointer-events: auto;
}

.ft-col {
  position: absolute;
  top: 145px;
}

.ft-col-about {
  left: 543px;
}

.ft-col-estate {
  left: 777px;
}

.ft-col-other {
  left: 996px;
}

.ft-col h4 {
  margin: 0 0 14px;
  color: #fff;
  font: 600 20px/20px "Montserrat", sans-serif;
  letter-spacing: -0.1504px;
  white-space: nowrap;
}

.ft-col p {
  margin: 0;
  color: #fff;
  font: 400 16px/31px "Noto Sans JP", sans-serif;
  letter-spacing: -0.1504px;
  white-space: nowrap;
}

@media (min-width: 1441px) {

  /* Keep the 1440px composition while extending section backgrounds to viewport edges. */
  .site-header {
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
    overflow: visible;
  }

  .site-header::before {
    content: "";
    position: absolute;
    inset: 0 -100vmax;
    z-index: -1;
    background: #fff;
  }

  .header-nav-wrap {
    position: relative;
    border-top-color: transparent;
    box-shadow: none;
  }

  .header-nav-wrap::before {
    content: "";
    position: absolute;
    top: 0;
    bottom: 0;
    left: -100vmax;
    right: -100vmax;
    background: #fff;
    border-top: 2px solid var(--line);
    box-shadow: 0 4px 4px rgba(0, 0, 0, 0.1);
    z-index: 0;
  }

  .header-nav-wrap>* {
    position: relative;
    z-index: 1;
  }

  .hero-wrap,
  .section-blue,
  .area-picks,
  section.search {
    clip-path: inset(0 -100vmax);
  }

  .hero-wrap {
    overflow: visible;
  }

  .pickup-swiper {
    width: 100%;
    max-width: 1394px;
  }

  .section-blue {
    box-shadow: 0 0 0 100vmax #e8f2fa;
  }

  .area-picks {
    box-shadow: 0 0 0 100vmax #fff;
  }

  section.search {
    box-shadow: 0 0 0 100vmax #fdfacd;
  }
}

@media (max-width: 1360px) {
  .ft-inner {
    height: auto;
    padding: 26px 24px 30px;
    display: flex;
    flex-direction: column;
    gap: 16px;
  }

  .ft-walker-top,
  .ft-walker-bottom {
    display: none;
  }

  .ft-brand {
    position: static;
    transform: none;
    align-self: flex-start;
  }

  .ft-tagline {
    position: static;
  }

  .ft-social {
    position: static;
  }

  .ft-links {
    position: static;
    display: grid;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 24px;
    margin-top: 2px;
  }

  .ft-col {
    position: static;
  }

  .ft-col h4 {
    font-size: 18px;
    line-height: 1.1;
  }

  .ft-col p {
    font-size: 14px;
    line-height: 1.8;
    white-space: normal;
  }

  .area-picks {
    min-height: auto;
    padding: 24px 28px 60px;
  }

  .ap-rail {
    display: none;
  }

  .ap-grid {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .ap-card {
    width: 100%;
    height: 415px;
  }

  .ap-card::before {
    left: 4px;
    top: 4px;
    width: calc(100% - 4px);
    height: calc(100% - 4px);
  }

  .ap-card::after {
    width: calc(100% - 4px);
    height: calc(100% - 4px);
  }

  .ap-content {
    left: 72px;
    top: 20px;
    width: calc(100% - 92px);
  }

  .ap-item {
    padding: 10px;
    border-radius: 16px;
    gap: 10px;
  }

  .ap-item img {
    width: 86px;
    height: 86px;
  }

  .ap-item-body h3 {
    font-size: 14px;
    line-height: 1.55;
  }

  .ap-item-meta time {
    font-size: 14px;
    line-height: 1;
  }

  .ap-item-tag {
    height: 20px;
    border-radius: 10px;
    padding: 0 10px;
    font-size: 12px;
    line-height: 1;
  }

  .ap-divider {
    left: -52px;
    top: 278px;
    width: calc(100% + 40px);
  }

  .ap-more {
    left: -38px;
    top: 300px;
    height: 34px;
    border-radius: 17px;
    padding: 0 22px;
    font-size: 14px;
    line-height: 1;
  }

  .ap-area-name {
    left: 14px;
    top: 104px;
    padding: 10px 12px;
    border-radius: 8px;
    font-size: 20px;
    line-height: 25px;
  }

  .ap-card-aoyama .ap-area-name,
  .ap-card:nth-child(4) .ap-area-name {
    top: 84px;
  }

  section.search {
    min-height: auto;
    padding: 24px 28px 60px;
  }

  .se-title {
    position: static;
    font-size: 120px;
    line-height: 0.88;
    margin: 0 0 18px;
  }

  .se-rail {
    display: none;
  }

  .se-chip-list {
    position: static;
    width: 100%;
    grid-template-columns: repeat(3, minmax(0, 1fr));
    gap: 16px;
  }

  .se-chip {
    height: 62px;
    border-radius: 16px;
  }

  .se-chip span:first-child {
    font-size: 26px;
  }

  .se-chip span:last-child {
    font-size: 16px;
  }

  .se-main-more {
    position: static;
    transform: none;
    display: block;
    margin: 18px auto 0;
    width: 140px;
    height: 44px;
    border-radius: 22px;
    font-size: 16px;
    line-height: 1;
  }

  .se-article-grid {
    position: static;
    width: 100%;
    margin-top: 38px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .se-box {
    border-radius: 24px;
    padding: 20px 16px 16px;
    gap: 14px;
  }

  .se-box-head {
    padding: 6px 0 12px;
  }

  .se-box-head span {
    font-size: 28px;
    width: 28px;
  }

  .se-box-head h3 {
    font-size: 22px;
  }

  .se-list-item {
    padding: 10px;
    gap: 10px;
  }

  .se-list-item img {
    width: 86px;
    height: 86px;
  }

  .se-list-body p {
    font-size: 14px;
    line-height: 1.5;
  }

  .se-list-meta {
    margin-top: 6px;
    gap: 6px;
  }

  .se-list-meta span {
    height: 20px;
    border-radius: 10px;
    padding: 0 10px;
    font-size: 11px;
    line-height: 1;
  }

  .se-list-meta time {
    font-size: 12px;
    line-height: 1;
  }

  .se-box-more {
    height: 32px;
    border-radius: 16px;
    padding: 0 20px;
    font-size: 13px;
    line-height: 1;
  }

  .se-bottom-cta {
    position: static;
    width: 100%;
    margin-top: 34px;
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 24px;
  }

  .se-bottom-cta button,
  .se-bottom-cta .se-bottom-btn {
    height: 72px;
    border-radius: 16px;
    font-size: 18px;
    line-height: 1.2;
  }

  .new-articles {
    min-height: auto;
    padding: 72px 28px 80px;
  }

  .na-rail,
  .na-new-badge {
    display: none;
  }

  .new-articles-inner {
    width: 100%;
  }

  .na-featured-col {
    flex: 0 0 calc((100% - 38.889px) * 0.4568);
  }

  .na-grid-col {
    flex: 0 0 calc((100% - 38.889px) * 0.5432);
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media (max-width: 900px) {
  .ft-inner {
    padding: 18px 16px 24px;
    gap: 12px;
  }

  .ft-brand {
    gap: 6px;
  }

  .ft-brand img {
    width: 42px;
    height: 45px;
  }

  .ft-brand span {
    font-size: 32px;
    line-height: 1;
  }

  .ft-tagline p {
    font-size: 18px;
    line-height: 2;
  }

  .ft-social {
    gap: 12px;
  }

  .ft-social-icon {
    width: 24px;
    height: 24px;
  }

  .ft-social-youtube {
    width: 30px;
    height: 21px;
  }


  .ft-links {
    grid-template-columns: 1fr;
    gap: 14px;
  }

  .ft-col h4 {
    margin-bottom: 6px;
    font-size: 17px;
  }

  .ft-col p {
    font-size: 14px;
    line-height: 1.7;
  }

  .topline {
    top: 10px;
    font-size: 15px;
    line-height: 1.8;
    max-width: calc(100% - 24px);
    overflow: hidden;
    text-overflow: ellipsis;
  }

  .header-top {
    height: 136px;
  }

  .header-brand {
    top: 62px;
  }

  .header-brand span {
    font-size: 30px;
  }

  .deco {
    display: none;
  }

  .header-icons {
    right: 12px;
    top: 14px;
    gap: 6px;
  }

  .header-nav-wrap {
    height: 64px;
    gap: 10px;
    padding: 0 10px;
  }

  .nav-arrow {
    display: none;
  }

  .chip-nav {
    overflow-x: auto;
    gap: 10px;
    padding: 10px 0;
  }

  .chip-nav button,
  .chip-nav a {
    font-size: 16px;
    line-height: 1.4;
    padding: 8px 10px;
    color: var(--line) !important;
  }

  .grid {
    margin-left: 28px;
  }

  section.search {
    padding: 16px 16px 36px;
  }

  .se-title {
    font-size: 72px;
    line-height: 0.9;
    margin: 0 0 14px;
  }

  .se-chip-list {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 10px;
  }

  .se-chip {
    height: 54px;
    border-radius: 14px;
    gap: 6px;
  }

  .se-chip span:first-child {
    font-size: 22px;
  }

  .se-chip span:last-child {
    font-size: 13px;
    line-height: 1.2;
  }

  .se-main-more {
    margin-top: 14px;
    width: 128px;
    height: 40px;
    border-radius: 20px;
    font-size: 14px;
  }

  .se-article-grid {
    grid-template-columns: 1fr;
    gap: 16px;
    margin-top: 24px;
  }

  .se-box {
    border-radius: 20px;
    padding: 14px 12px 12px;
    gap: 12px;
  }

  .se-box-head {
    padding: 4px 0 10px;
    gap: 8px;
  }

  .se-box-head span {
    font-size: 24px;
    width: 24px;
  }

  .se-box-head h3 {
    font-size: 20px;
  }

  .se-list-item {
    padding: 8px;
    gap: 8px;
  }

  .se-list-item img {
    width: 72px;
    height: 72px;
  }

  .se-list-body p {
    font-size: 12px;
    line-height: 1.45;
  }

  .se-list-meta span {
    height: 18px;
    border-radius: 9px;
    padding: 0 8px;
    font-size: 10px;
  }

  .se-list-meta time {
    font-size: 10px;
  }

  .se-box-more {
    height: 28px;
    border-radius: 14px;
    padding: 0 16px;
    font-size: 12px;
  }

  .se-bottom-cta {
    grid-template-columns: 1fr;
    gap: 10px;
    margin-top: 20px;
  }

  .se-bottom-cta button,
  .se-bottom-cta .se-bottom-btn {
    height: 56px;
    border-radius: 12px;
    font-size: 16px;
  }

  .area-picks {
    padding: 20px 16px 40px;
  }

  .ap-grid {
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .ap-card {
    height: 390px;
  }

  .ap-content {
    left: 62px;
    top: 14px;
    width: calc(100% - 76px);
  }

  .ap-item {
    padding: 8px;
    border-radius: 12px;
    gap: 8px;
  }

  .ap-item img {
    width: 72px;
    height: 72px;
    border-radius: 8px;
  }

  .ap-item-body h3 {
    font-size: 13px;
    line-height: 1.5;
  }

  .ap-item-meta {
    margin-top: 6px;
    gap: 6px;
  }

  .ap-item-tag {
    height: 18px;
    border-radius: 9px;
    padding: 0 8px;
    font-size: 10px;
  }

  .ap-item-meta time {
    font-size: 12px;
  }

  .ap-divider {
    left: -46px;
    top: 262px;
    width: calc(100% + 30px);
  }

  .ap-more {
    left: -36px;
    top: 282px;
    height: 32px;
    border-radius: 16px;
    padding: 0 18px;
    font-size: 13px;
  }

  .ap-area-name {
    left: 10px;
    top: 102px;
    padding: 8px 9px;
    border-radius: 7px;
    font-size: 18px;
    line-height: 22px;
  }

  .ap-card-aoyama .ap-area-name,
  .ap-card:nth-child(4) .ap-area-name {
    top: 72px;
  }

  .new-articles {
    min-height: auto;
    padding: 36px 16px 48px;
  }

  .na-bg,
  .na-rail,
  .na-new-badge {
    display: none;
  }

  .new-articles-inner {
    width: 100%;
    display: block;
  }

  .na-featured-col {
    gap: 20px;
  }

  .na-grid-col {
    margin-top: 20px;
    display: grid;
    grid-template-columns: 1fr;
    gap: 20px;
  }

  .na-card {
    border-width: 1.5px 4px 4px 1.5px;
    border-radius: 20px;
  }

  .na-card-featured .na-media {
    height: min(63vw, 320px);
    min-height: 210px;
  }

  .na-card-small .na-media {
    height: min(54vw, 250px);
    min-height: 180px;
  }

  .na-tag {
    font-size: 12px;
    line-height: 1;
  }

  .na-tag-primary,
  .na-tag-secondary {
    height: 32px;
    padding: 7px 12px;
  }

  .na-tag-secondary,
  .na-tag-single {
    border-top-right-radius: 10px;
  }

  .na-tag-single {
    padding: 8px 12px;
  }

  .na-body-featured,
  .na-body-small {
    padding: 12px 14px 16px;
  }

  .na-date-featured,
  .na-date-small {
    font-size: 12px;
    line-height: 18px;
  }

  .na-title-featured {
    font-size: 16px;
    line-height: 1.55;
  }

  .na-title-small {
    font-size: 15px;
    line-height: 1.55;
  }

  .na-read-more {
    width: 140px;
    height: 46px;
    margin-top: 28px;
    border-radius: 23px;
    font-size: 16px;
    line-height: 1;
  }

  .hero-deco {
    display: none;
  }

  .hero-wrap {
    min-height: auto;
    padding: 10px 0 30px;
  }

  .pickup-title {
    transform: rotate(-6deg);
    margin: 12px auto 10px;
    gap: 8px;
  }

  .pickup {
    font-size: 24px;
  }

  .pickup-line-left {
    width: 34px;
  }

  .pickup-line-right {
    width: 30px;
  }

  .pickup-swiper {
    padding: 6px 0 52px;
  }

  .pickup-swiper .swiper-slide,
  .pickup-swiper .swiper-slide-prev,
  .pickup-swiper .swiper-slide-next,
  .pickup-swiper .swiper-slide-active {
    width: min(92vw, 460px);
    margin-top: 0;
    transform: none;
    opacity: 1;
  }

  .hero-card,
  .pickup-swiper .swiper-slide-prev.hero-card,
  .pickup-swiper .swiper-slide-next.hero-card,
  .pickup-swiper .swiper-slide-active.hero-card {
    border-radius: 24px;
  }

  .pill,
  .pickup-swiper .swiper-slide-prev.hero-card .pill,
  .pickup-swiper .swiper-slide-next.hero-card .pill,
  .pickup-swiper .swiper-slide-active.hero-card .pill {
    --pill-size: 12px;
    --pill-v-pad: 6px;
    --pill-h-pad: 14px;
    top: 68.5%;
  }

  .hero-meta {
    padding: 14px 16px 12px;
  }

  .hero-meta time,
  .pickup-swiper .swiper-slide-prev.hero-card .hero-meta time,
  .pickup-swiper .swiper-slide-next.hero-card .hero-meta time,
  .pickup-swiper .swiper-slide-active.hero-card .hero-meta time {
    font-size: 12px;
  }

  .hero-meta h1,
  .pickup-swiper .swiper-slide-prev.hero-card .hero-meta h1,
  .pickup-swiper .swiper-slide-next.hero-card .hero-meta h1,
  .pickup-swiper .swiper-slide-active.hero-card .hero-meta h1 {
    font-size: 14px;
    line-height: 1.35;
  }
}

/* =============================================
   Subpage Styles
   ============================================= */

/* --- Global reset for subpages --- */

.header-brand a {
  display: flex;
  align-items: center;
  gap: 8px;
  text-decoration: none;
  color: inherit;
}

/* --- Layout --- */

.harao-content {
  max-width: 780px;
  margin: 0 auto;
  padding: 36px 20px 64px;
}

/* --- Breadcrumb + Title --- */

.harao-content .page-header {
  margin-bottom: 28px;
}

.harao-content .entry-sub-title {
  font-size: 0.8rem;
  font-weight: 400;
  color: #999;
  margin: 0 0 12px;
  line-height: 1.6;
}

.harao-content .entry-sub-title #crumbs {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
}

.harao-content .entry-sub-title a {
  color: var(--accent);
  text-decoration: none;
}

.harao-content .entry-sub-title a:hover {
  text-decoration: underline;
}

.harao-content .entry-sub-title .current {
  color: #666;
}

.harao-content .page-header .entry-title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.7;
  color: var(--line);
  margin: 30px 0 0;
  padding: 24px 20px;
  background: #f7f7f7;
  border-bottom: 2px solid #333;
border-top: 2px solid #333;
}

/* --- Article reset --- */

.harao-content article {
  border: none;
  margin: 0;
  padding: 0;
}

/* --- Header comment (matome intro) --- */

.harao-content .header-comment {
  font-size: 16px;
  line-height: 2.05;
  color: var(--line);
  margin-bottom: 24px;
}

.harao-content .header-comment a {
  color: var(--accent);
  text-decoration: none;
}

.harao-content .header-comment a:hover {
  text-decoration: underline;
}

/* --- MetaSlider --- */

.harao-content .metaslider {
  max-width: 100% !important;
  margin: 20px auto;
  border-radius: 10px;
  overflow: hidden;
}

.harao-content .metaslider img {
  width: 100%;
  height: auto;
  display: block;
}

.harao-content .metaslider .caption-wrap {
  background: rgba(0, 0, 0, 0.5);
  padding: 8px 14px;
}

.harao-content .metaslider .caption {
  color: #fff;
  font-size: 0.8rem;
  line-height: 1.5;
}

.harao-content .flexslider .flex-direction-nav a {
  opacity: 0.7;
}

.harao-content .flex-control-paging li a {
  background: #ccc;
}

.harao-content .flex-control-paging li a.flex-active {
  background: var(--accent);
}

/* --- Entry thumbnail (main image) --- */

.harao-content .content-single.entry-thumbnail {
  margin: 24px 0;
}

.harao-content .content-single.entry-thumbnail img {
  width: 100%;
  height: auto;
  border-radius: 10px;
  display: block;
}

.harao-content .content-single.matome.entry-thumbnail img {
  max-width: 560px;
  margin: 0 auto;
}

/* --- Entry meta --- */

.harao-content .entry-meta {
  display: flex;
  flex-wrap: wrap;
  gap: 0 12px;
  margin-bottom: 20px;
  font-size: 0.78rem;
  color: #888;
}

.harao-content .entry-meta span {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  margin: 0;
  padding: 0;
  border: none;
  line-height: 1.6;
}

.harao-content .entry-meta span a,
.harao-content .entry-meta span i {
  font-size: 0.78rem;
  color: #888;
}

.harao-content .entry-meta span a:hover {
  color: var(--accent);
}

.harao-content .entry-meta .cat-links a {
  background: var(--cream);
  color: var(--line);
  padding: 2px 8px;
  border-radius: 4px;
  font-size: 0.75rem;
  text-decoration: none;
}

.harao-content .entry-meta .cat-links a:hover {
  background: var(--accent);
  color: #fff;
}

/* --- Posted date --- */

.harao-content .posted-on {
  display: block;
  font-size: 0.82rem;
  color: #999;
  margin-bottom: 12px;
}

/* --- Entry content (main body) --- */

.harao-content .entry-content {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 16px;
  line-height: 2.05;
  color: var(--line);
}

.harao-content .entry-content p {
  margin: 0 0 1.5em;
  font-size: 16px;
}

/* h2 */
.harao-content .entry-content h2 {
  font-size: 1.25rem;
  font-weight: 700;
  line-height: 1.6;
  margin: 2.2em 0 0.8em;
  padding: 12px 16px;
  background: #f5f5f5;
  border-left: 4px solid #333;
  border-radius: 0 4px 4px 0;
}

/* h3 */
.harao-content .entry-content h3 {
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.6;
  margin: 2em 0 0.6em;
  padding: 0;
}

/* h4 */
.harao-content .entry-content h4 {
  font-size: 1rem;
  font-weight: 700;
  line-height: 1.6;
  margin: 1.8em 0 0.5em;
  padding-left: 12px;
  border-left: 3px solid #aaa;
}

/* h5 */
.harao-content .entry-content h5 {
  font-size: 0.95rem;
  font-weight: 700;
  line-height: 1.6;
  margin: 1.5em 0 0.4em;
  color: #555;
}

/* h6 */
.harao-content .entry-content h6 {
  font-size: 0.88rem;
  font-weight: 700;
  line-height: 1.6;
  margin: 1.3em 0 0.3em;
  color: #777;
  letter-spacing: 0.03em;
  text-transform: uppercase;
}

/* --- Inline decorations --- */

.harao-content .entry-content strong {
  font-weight: 700;
}

.harao-content .entry-content em {
  font-style: italic;
}

.harao-content .entry-content s,
.harao-content .entry-content del {
  text-decoration: line-through;
  color: #999;
}

.harao-content .entry-content mark {
  background: linear-gradient(transparent 60%, #fdf0a0 60%);
  padding: 0 2px;
}

.harao-content .entry-content code {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 0.85em;
  background: #f0f0f0;
  padding: 2px 6px;
  border-radius: 3px;
  color: #d14;
}

.harao-content .entry-content pre {
  font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
  font-size: 0.85em;
  background: #2b2b2b;
  color: #e6e6e6;
  padding: 16px 20px;
  border-radius: 6px;
  overflow-x: auto;
  margin: 1.5em 0;
  line-height: 1.6;
}

.harao-content .entry-content pre code {
  background: none;
  padding: 0;
  color: inherit;
  font-size: inherit;
}

.harao-content .entry-content abbr[title] {
  text-decoration: underline dotted;
  cursor: help;
}

.harao-content .entry-content sub,
.harao-content .entry-content sup {
  font-size: 0.75em;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
}

.harao-content .entry-content sup {
  top: -0.5em;
}

.harao-content .entry-content sub {
  bottom: -0.25em;
}

.harao-content .entry-content small {
  font-size: 0.82em;
  color: #777;
}

/* --- Links --- */

.harao-content .entry-content a {
  color: var(--accent);
  text-decoration: none;
  box-shadow: 0 1px 2px rgb(116 31 59 / 28%)
}

.harao-content .entry-content a:hover {
  text-decoration: underline;
}

/* --- Images / figures --- */

.harao-content .entry-content img {
  max-width: 100%;
  height: auto;
  border-radius: 8px 0 0 8px;
}

.harao-content .entry-content figure {
  margin: 1.5em 0;
}

.harao-content .entry-content figcaption {
  font-size: 0.8rem;
  color: #999;
  text-align: center;
  margin-top: 6px;
}

/* --- Blockquote --- */

.harao-content .entry-content blockquote {
  margin: 1.5em 0;
  padding: 16px 20px;
  background: #f7f7f7;
  border-left: 3px solid #bbb;
  border-radius: 0 6px 6px 0;
  color: #555;
  font-size: 0.9rem;
}

.harao-content .entry-content blockquote p:last-child {
  margin-bottom: 0;
}

.harao-content .entry-content blockquote cite {
  display: block;
  margin-top: 8px;
  font-size: 0.8rem;
  color: #999;
  font-style: normal;
}

/* --- Lists --- */

.harao-content .entry-content ul,
.harao-content .entry-content ol {
  margin: 1em 0;
  padding-left: 1.5em;
}

.harao-content .entry-content li {
  margin-bottom: 0.4em;
}

.harao-content .entry-content ul li::marker {
  color: #999;
}

.harao-content .entry-content ol li::marker {
  color: #666;
  font-weight: 600;
}

/* --- Table --- */

.harao-content .entry-content table {
  width: 100%;
  border-collapse: collapse;
  margin: 1.2em 0;
  font-size: 0.9rem;
}

.harao-content .entry-content th,
.harao-content .entry-content td {
  padding: 10px 14px;
  border: 1px solid #ddd;
}

.harao-content .entry-content th {
  background: #f5f5f5;
  font-weight: 700;
  text-align: left;
}

.harao-content .entry-content tr:nth-child(even) td {
  background: #fafafa;
}

/* --- Horizontal rule --- */

.harao-content .entry-content hr {
  border: none;
  border-top: 1px solid #ddd;
  margin: 2.2em 0;
}

/* --- Definition list --- */

.harao-content .entry-content dt {
  font-weight: 700;
  margin-top: 1em;
}

.harao-content .entry-content dd {
  margin: 0.3em 0 0 1.5em;
  color: #555;
}

/* --- Embedded content (wp-embedded-content) --- */

.harao-content .entry-content iframe.wp-embedded-content {
  max-width: 100%;
  border-radius: 8px;
  border: 1px solid #e8e8e8;
  margin: 12px 0;
}

/* --- Map area --- */

.harao-content .map-area button {
  display: inline-block;
  padding: 8px 20px;
  font-size: 0.85rem;
  font-weight: 600;
  font-family: "Noto Sans JP", sans-serif;
  color: var(--accent);
  background: #fff;
  border: 1.5px solid var(--accent);
  border-radius: 6px;
  cursor: pointer;
  transition: background 0.2s, color 0.2s;
}

.harao-content .map-area button:hover {
  background: var(--accent);
  color: #fff;
}

.harao-content #map-canvas {
  border-radius: 8px;
  margin-top: 12px;
}

.harao-content #map-canvas.open {
  height: 350px;
}

.harao-content #map-canvas.close {
  display: none;
}

/* --- Table of contents (matome) --- */

.harao-content .shop-indexes {
  margin: 28px 0;
  background: linear-gradient(135deg, #f5f7f8 0%, #eef1f3 100%);
  border: none;
  border-radius: 12px;
  overflow: hidden;
}

.harao-content .shop-indexes details {
  margin: 0;
}

.harao-content .shop-indexes-title {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 16px 20px;
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--accent);
  cursor: pointer;
  list-style: none;
  border: none;
  background: linear-gradient(90deg, rgba(182, 190, 194, 0.10) 0%, transparent 100%);
  transition: background 0.15s;
}

.harao-content .shop-indexes-title::-webkit-details-marker {
  display: none;
}

.harao-content .shop-indexes-title::before {
  content: "";
  display: inline-block;
  width: 20px;
  height: 20px;
  background: var(--accent);
  mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='8' y1='6' x2='21' y2='6'/%3E%3Cline x1='8' y1='12' x2='21' y2='12'/%3E%3Cline x1='8' y1='18' x2='21' y2='18'/%3E%3Cline x1='3' y1='6' x2='3.01' y2='6'/%3E%3Cline x1='3' y1='12' x2='3.01' y2='12'/%3E%3Cline x1='3' y1='18' x2='3.01' y2='18'/%3E%3C/svg%3E") no-repeat center / contain;
  -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='white' stroke-width='2.5' stroke-linecap='round' stroke-linejoin='round'%3E%3Cline x1='8' y1='6' x2='21' y2='6'/%3E%3Cline x1='8' y1='12' x2='21' y2='12'/%3E%3Cline x1='8' y1='18' x2='21' y2='18'/%3E%3Cline x1='3' y1='6' x2='3.01' y2='6'/%3E%3Cline x1='3' y1='12' x2='3.01' y2='12'/%3E%3Cline x1='3' y1='18' x2='3.01' y2='18'/%3E%3C/svg%3E") no-repeat center / contain;
  flex-shrink: 0;
}

.harao-content .shop-indexes-title::after {
  content: "";
  display: inline-block;
  width: 12px;
  height: 12px;
  margin-left: auto;
  border-right: 2.5px solid var(--accent);
  border-bottom: 2.5px solid var(--accent);
  transform: rotate(45deg);
  transition: transform 0.25s;
  flex-shrink: 0;
}

.harao-content .shop-indexes details[open] > .shop-indexes-title::after {
  transform: rotate(-135deg);
}

.harao-content .shop-indexes-title:hover {
  background: linear-gradient(90deg, rgba(182, 190, 194, 0.18) 0%, transparent 100%);
}

.harao-content .shop-indexes-list {
  list-style: none;
  margin: 0;
  padding: 4px 20px 18px;
  counter-reset: toc-counter;
}

.harao-content .shop-indexes-list .shop-index {
  counter-increment: toc-counter;
  margin: 0;
  border-bottom: 1px dashed rgba(182, 190, 194, 0.25);
}

.harao-content .shop-indexes-list .shop-index:last-child {
  border-bottom: none;
}

.harao-content .shop-indexes-list .shop-index a {
  display: flex;
  align-items: baseline;
  gap: 10px;
  padding: 11px 6px;
  font-size: 0.85rem;
  line-height: 1.6;
  color: var(--line);
  text-decoration: none;
  transition: color 0.15s, background 0.15s;
  border-radius: 6px;
}

.harao-content .shop-indexes-list .shop-index a::before {
  content: counter(toc-counter);
  display: flex;
  align-items: center;
  justify-content: center;
  min-width: 24px;
  height: 24px;
  font-size: 0.72rem;
  font-weight: 700;
  font-family: "Montserrat", sans-serif;
  color: #fff;
  background: var(--accent);
  border-radius: 50%;
  flex-shrink: 0;
  line-height: 1;
}

.harao-content .shop-indexes-list .shop-index a:hover {
  color: var(--accent);
  background: rgba(182, 190, 194, 0.08);
}

/* --- Shop list (matome) --- */

.harao-content .shop-list .shop {
  margin: 24px 0;
  padding: 1rem 1.5rem 2.5rem 1.5rem;
  border-radius: 10px;
  box-shadow: 0 0 2px #8ba1aae0;
}

.harao-content .shop-list .shop .title h2 {
  font-size: 1.3rem;
  font-weight: 700;
  margin: 0 0 6px;
  padding: 0 1rem; 
  background: transparent;
  border-color: var(--accent);
}

.harao-content .shop-list .shop .title a {
  color: var(--accent);
  text-decoration: none;
}

.harao-content .shop-list .shop .title a:hover {
  text-decoration: underline;
}

.harao-content .shop-list .shop .address {
  font-size: 0.82rem;
  color: #777;
  margin-bottom: 12px;
}

.harao-content .shop-list .shop .selling-point,
.harao-content .shop-list .shop .comment {
  font-size: 0.9rem;
  line-height: 1.8;
}

/* --- Summary article footer --- */

.harao-content .summary-article-footer {
  margin-top: 32px;
  padding-top: 20px;
  border-top: 1px solid #eee;
  font-size: 0.8rem;
  color: #999;
  line-height: 1.7;
}

/* Related article link card */
.harao-content .sa-footer-card {
  display: flex;
  align-items: stretch;
  gap: 0;
  margin: 24px 0;
  border-radius: 10px;
  overflow: hidden;
  text-decoration: none;
  color: inherit;
  background: linear-gradient(135deg, #f5f7f8 0%, #eef1f3 100%);
  box-shadow: 0 2px 8px rgba(182, 190, 194, 0.12);
  transition: box-shadow 0.25s, transform 0.25s;
}

.harao-content .sa-footer-card:hover {
  box-shadow: 0 6px 20px rgba(182, 190, 194, 0.22);
  transform: translateY(-3px);
}

.harao-content .sa-footer-card-thumb {
  flex-shrink: 0;
  width: 160px;
  overflow: hidden;
  background: #f0f0f0;
  border-radius: 10px 0 0 10px;
}

.harao-content .sa-footer-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s;
}

.harao-content .sa-footer-card:hover .sa-footer-card-thumb img {
  transform: scale(1.05);
}

.harao-content .sa-footer-card-noimg {
  width: 100%;
  height: 100%;
  min-height: 80px;
  background: linear-gradient(135deg, #e8ecee 0%, #d5dce0 100%);
}

.harao-content .sa-footer-card-body {
  flex: 1;
  display: flex;
  flex-direction: column;
  justify-content: center;
  gap: 8px;
  padding: 16px 20px;
  min-width: 0;
}

.harao-content .sa-footer-card-label {
  display: inline-block;
  width: fit-content;
  font-size: 0.7rem;
  font-weight: 700;
  color: #fff;
  background: var(--accent);
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: 0.05em;
}

.harao-content .sa-footer-card-title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.92rem;
  font-weight: 700;
  color: var(--line);
  line-height: 1.6;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.harao-content .sa-footer-card:hover .sa-footer-card-title {
  color: var(--accent);
}

@media (max-width: 600px) {
  .harao-content .sa-footer-card-thumb {
    width: 110px;
  }

  .harao-content .sa-footer-card-body {
    padding: 12px 14px;
  }

  .harao-content .sa-footer-card-title {
    font-size: 0.82rem;
  }
}

/* --- Tags --- */

.harao-content .tags {
  margin-top: 28px;
  padding-top: 16px;
  border-top: 1px solid #eee;
  font-size: 0.8rem;
  color: #aaa;
}

.harao-content .tags a {
  display: inline-block;
  padding: 4px 12px;
  margin: 3px 4px 3px 0;
  font-size: 0.78rem;
  color: var(--accent);
  border: 1px solid var(--accent);
  border-radius: 20px;
  text-decoration: none;
  transition: background 0.15s, color 0.15s;
}

.harao-content .tags a:hover {
  background: var(--accent);
  color: #fff;
}

/* --- Post navigation --- */

.harao-content .post-navigation {
  margin-top: 40px;
}

.harao-content .post-navigation .screen-reader-text {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip: rect(0, 0, 0, 0);
}

.harao-content .nav-links {
  display: flex;
  gap: 16px;
}

.harao-content .nav-links .nav-previous,
.harao-content .nav-links .nav-next {
  flex: 1;
}

.harao-content .nav-links a {
  display: block;
  padding: 16px 18px;
  background: #f7f7f7;
  border-radius: 8px;
  font-size: 0.85rem;
  color: var(--line);
  text-decoration: none;
  line-height: 1.6;
  transition: background 0.2s;
}

.harao-content .nav-links a:hover {
  background: #eee;
}

.harao-content .nav-links .nav-previous a::before {
  content: "← 前の記事";
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  color: #999;
  margin-bottom: 6px;
  letter-spacing: 0.03em;
}

.harao-content .nav-links .nav-next a {
  text-align: right;
}

.harao-content .nav-links .nav-next a::after {
  content: "次の記事 →";
  display: block;
  font-size: 0.72rem;
  font-weight: 600;
  color: #999;
  margin-top: 6px;
  letter-spacing: 0.03em;
}

/* --- pagination (numbered) --- */

.harao-content .pagination {
  display: flex;
  justify-content: center;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 36px 0 24px;
  font-family: "Montserrat", sans-serif;
}

.harao-content .pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  height: 40px;
  padding: 0 10px;
  border-radius: 20px;
  font-size: 0.85rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--line);
  background: #f5f5f5;
  border: 1.5px solid #e0e0e0;
  transition: background 0.25s, color 0.25s, border-color 0.25s, transform 0.25s;
}

.harao-content .pagination .page-numbers.current {
  background: var(--accent);
  color: #fff;
  border-color: var(--accent);
}

.harao-content .pagination .page-numbers:not(.current):not(.dots):hover {
  background: #fff;
  border-color: var(--accent);
  color: var(--accent);
  transform: translateY(-2px);
}

.harao-content .pagination .page-numbers.dots {
  border: none;
  background: transparent;
  min-width: 24px;
  cursor: default;
}

.harao-content .pagination .next,
.harao-content .pagination .prev {
  padding: 0 16px;
  font-size: 0.8rem;
  letter-spacing: 0.03em;
}

/* --- default-wp-page nav (← →) --- */

.harao-content .default-wp-page {
  display: flex;
  justify-content: center;
  list-style: none;
  padding: 0;
  margin: 36px 0 24px;
  gap: 12px;
  font-family: "Montserrat", sans-serif;
}

.harao-content .default-wp-page li {
  flex: none;
}

.harao-content .default-wp-page a {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 24px;
  border-radius: 25px;
  font-size: 0.85rem;
  font-weight: 500;
  text-decoration: none;
  color: var(--line);
  background: #f5f5f5;
  border: 1.5px solid #e0e0e0;
  transition: background 0.25s, color 0.25s, border-color 0.25s, transform 0.25s, box-shadow 0.25s;
}

.harao-content .default-wp-page a:hover {
  background: #fff;
  border-color: var(--accent);
  color: var(--accent);
  transform: translateY(-2px);
  box-shadow: 0 4px 12px rgba(182, 190, 194, 0.15);
}

.harao-content .default-wp-page .meta-nav {
  font-size: 0.9em;
}

/* --- 404 --- */

.harao-content .error-404 {
  text-align: center;
  padding: 60px 0;
}

.harao-content .error-wrap .num-404 {
  font-family: "Montserrat", sans-serif;
  font-size: 5rem;
  font-weight: 700;
  color: var(--accent);
  line-height: 1;
}

.harao-content .error-wrap .error {
  font-family: "Montserrat", sans-serif;
  font-size: 1.3rem;
  font-weight: 600;
  color: var(--line);
  margin-bottom: 20px;
}

.harao-content .page-not-found .page-title {
  font-size: 1.1rem;
  margin-bottom: 10px;
}

.harao-content .message {
  color: #777;
  margin-bottom: 20px;
}

/* --- Search form --- */

.harao-content .search-form,
.harao-content .searchform {
  display: flex;
  gap: 8px;
  max-width: 400px;
  margin: 0 auto;
}

.harao-content .search-field {
  flex: 1;
  padding: 10px 14px;
  border: 1.5px solid #ddd;
  border-radius: 6px;
  font-size: 0.9rem;
  font-family: "Noto Sans JP", sans-serif;
  outline: none;
  transition: border-color 0.2s;
}

.harao-content .search-field:focus {
  border-color: var(--accent);
}

.harao-content .searchsubmit,
.harao-content .search-submit {
  padding: 10px 18px;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  cursor: pointer;
}

.harao-content .searchsubmit:hover,
.harao-content .search-submit:hover {
  opacity: 0.85;
}

/* --- Path nav (archive/category/area breadcrumb) --- */

.harao-content .page-header-path-nav {
  margin-bottom: 24px;
}

.harao-content .path-nav {
  margin: 0;
  padding: 0;
}

.harao-content .path-nav .entry-sub-title {
  font-size: 0.8rem;
  font-weight: 400;
  color: #999;
  margin: 0 0 12px;
  line-height: 1.6;
}

.harao-content .path-nav .entry-sub-title a {
  color: var(--accent);
  text-decoration: none;
}

.harao-content .path-nav .entry-sub-title a:hover {
  text-decoration: underline;
}

.harao-content .path-nav .entry-sub-title span {
  color: #999;
}

.harao-content .path-nav .entry-title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 1.5rem;
  font-weight: 700;
  line-height: 1.7;
  color: var(--line);
  margin: 1rem 0 2rem;
  padding: 24px 20px;
  background: #f7f7f7;
  border-bottom: 2px solid #333;
}

.harao-content .path-nav .entry-title span:empty {
  display: none;
}

.harao-content .path-nav .entry-title:has(span:empty) {
  display: none;
}

/* --- Archive search box --- */

.harao-content #archive-search-box {
  margin: 8px 0 40px;
  background: linear-gradient(135deg, #f5f7f8 0%, #eef1f3 100%);
  border-radius: 12px;
  overflow: hidden;
}

.harao-content .archive-search-header {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 14px 20px;
  background: linear-gradient(90deg, rgba(182, 190, 194, 0.13) 0%, transparent 100%);
}

.harao-content .archive-search-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  background: var(--accent);
  color: #fff;
  border-radius: 50%;
  flex-shrink: 0;
}

.harao-content .archive-search-label {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.95rem;
  font-weight: 700;
  color: var(--accent);
}

.harao-content .archive-search-filters {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 12px 16px;
  padding: 16px 20px 20px;
}

.harao-content #archive-search-box dl {
  margin: 0;
}

.harao-content #archive-search-box dt {
  font-size: 0.75rem;
  font-weight: 700;
  color: var(--accent);
  margin-bottom: 5px;
  letter-spacing: 0.03em;
}

.harao-content #archive-search-box select {
  width: 100%;
  padding: 9px 12px;
  border: 1.5px solid #cdd4d8;
  border-radius: 8px;
  font-size: 0.85rem;
  font-family: "Noto Sans JP", sans-serif;
  background: #fff;
  color: var(--line);
  cursor: pointer;
  transition: border-color 0.2s, box-shadow 0.2s;
  appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%23fe6d9e' stroke-width='3' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 12px center;
  padding-right: 32px;
}

.harao-content #archive-search-box select:focus {
  border-color: var(--accent);
  box-shadow: 0 0 0 3px rgba(182, 190, 194, 0.15);
  outline: none;
}

.harao-content #archive-search-box select:hover {
  border-color: var(--accent);
}

@media (max-width: 600px) {
  .harao-content .archive-search-filters {
    grid-template-columns: 1fr;
    gap: 10px;
  }
}

/* --- Archive article list (card grid) --- */

.harao-content .article-list {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px;
}

/* Card */
.harao-content .article-list .arc-card {
  border: none;
  border-radius: 12px;
  overflow: hidden;
  background: #fff;
  box-shadow: 0 1px 4px rgba(0, 0, 0, 0.06);
  transition: box-shadow 0.25s, transform 0.25s;
}

.harao-content .article-list .arc-card:hover {
  box-shadow: 0 6px 16px rgba(0, 0, 0, 0.10);
  transform: translateY(-3px);
}

.harao-content .article-list .arc-card-link {
  display: block;
  text-decoration: none;
  color: inherit;
}

/* Thumbnail */
.harao-content .article-list .arc-card-thumb {
  position: relative;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  background: #f0f0f0;
}

.harao-content .article-list .arc-card-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
  transition: transform 0.3s;
}

.harao-content .article-list .arc-card:hover .arc-card-thumb img {
  transform: scale(1.04);
}

.harao-content .article-list .arc-card-noimg {
  width: 100%;
  height: 100%;
  background: linear-gradient(135deg, #f5f5f5 0%, #e8e8e8 100%);
}

/* Category pill on image */
.harao-content .article-list .arc-card-cat {
  position: absolute;
  bottom: 8px;
  left: 8px;
  padding: 3px 10px;
  font-size: 0.7rem;
  font-weight: 600;
  color: #fff;
  background: var(--accent);
  border-radius: 20px;
  line-height: 1.5;
  letter-spacing: 0.02em;
}

/* Body */
.harao-content .article-list .arc-card-body {
  padding: 14px 16px 18px;
}

.harao-content .article-list .arc-card-date {
  display: block;
  font-size: 0.72rem;
  color: #aaa;
  margin-bottom: 6px;
  font-family: "Montserrat", sans-serif;
  font-weight: 500;
  letter-spacing: 0.03em;
}

.harao-content .article-list .arc-card-title {
  font-family: "Noto Sans JP", sans-serif;
  font-size: 0.9rem;
  font-weight: 700;
  line-height: 1.6;
  color: var(--line);
  margin: 0;
  padding: 0;
  background: none;
  border: none;
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}

.harao-content .article-list .arc-card-link:hover .arc-card-title {
  color: var(--accent);
}

/* --- Comments --- */

.harao-content .comments-area {
  margin-top: 36px;
  padding-top: 24px;
  border-top: 1px solid #eee;
}

.harao-content .comment-list {
  list-style: none;
  padding: 0;
}

.harao-content .comment-body {
  padding: 16px 0;
  border-bottom: 1px solid #f0f0f0;
  font-size: 0.9rem;
  line-height: 1.8;
}

.harao-content .comment-form textarea,
.harao-content .comment-form input[type="text"],
.harao-content .comment-form input[type="email"],
.harao-content .comment-form input[type="url"] {
  width: 100%;
  padding: 10px 14px;
  border: 1.5px solid #ddd;
  border-radius: 6px;
  font-size: 0.9rem;
  font-family: "Noto Sans JP", sans-serif;
}

.harao-content .comment-form textarea:focus,
.harao-content .comment-form input:focus {
  border-color: var(--accent);
  outline: none;
}

.harao-content .comment-form .submit {
  padding: 10px 24px;
  background: var(--accent);
  color: #fff;
  border: none;
  border-radius: 6px;
  font-size: 0.9rem;
  font-weight: 600;
  cursor: pointer;
}

.harao-content .comment-form .submit:hover {
  opacity: 0.85;
}

/* --- Responsive --- */

@media (max-width: 600px) {
  .harao-content {
    padding: 24px 16px 48px;
  }

  .harao-content .page-header .entry-title {
    font-size: 1.25rem;
  }

  .harao-content .nav-links {
    flex-direction: column;
    gap: 10px;
  }

  .harao-content .nav-links .nav-next {
    text-align: left;
  }

  .harao-content .pagination {
    gap: 4px;
    margin: 24px 0 16px;
  }

  .harao-content .pagination .page-numbers {
    min-width: 36px;
    height: 36px;
    font-size: 0.78rem;
    padding: 0 8px;
  }

  .harao-content .pagination .next,
  .harao-content .pagination .prev {
    padding: 0 12px;
  }

  .harao-content .default-wp-page {
    flex-direction: column;
    align-items: center;
    gap: 8px;
    margin: 24px 0 16px;
  }

  .harao-content .default-wp-page a {
    padding: 8px 20px;
    font-size: 0.8rem;
  }

  .harao-content .article-list {
    grid-template-columns: 1fr;
    gap: 16px;
  }

  .harao-content .article-list .arc-card-title {
    font-size: 0.85rem;
  }

  .harao-content .error-wrap .num-404 {
    font-size: 3.5rem;
  }
}