/* 01. デザイントークン */
.hidamari {
  --color-bg: #F7F9F8;
  --color-card: #FFFFFF;
  --color-text: #24332D;
  --color-accent: #286B50;
  --color-tint: #EDF2EF;
  --color-border: #D5DFD9;
  --color-muted: #596B61;
  --color-tag: #E5EFE8;
  --color-on-accent: #FFFFFF;
  --color-accent-hover: #1D523D;
  --font-body: "Noto Sans JP", "Yu Gothic", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
  --text-xs: .75rem;
  --text-sm: .875rem;
  --text-base: 1rem;
  --text-card: 1.125rem;
  --text-heading: 1.875rem;
  --space-1: .5rem;
  --space-2: .75rem;
  --space-3: 1rem;
  --space-4: 1.5rem;
  --space-5: 2rem;
  --space-6: 3rem;
  --space-section: 6rem;
  --width-site: 1320px;
  --width-article: 760px;
  --gutter: 24px;
  --radius-card: 3px;
}/* 02. ベース・アクセシビリティ */
.hidamari * { box-sizing: border-box; }
.hidamari { color-scheme: light; margin: 0; color: var(--color-text); background: var(--color-bg); font-family: var(--font-body); font-size: var(--text-base); line-height: 1.85; overflow-wrap: anywhere; }
.hidamari h1, .hidamari h2, .hidamari h3, .hidamari p, .hidamari ul, .hidamari ol, .hidamari figure { margin: 0; }
.hidamari h1, .hidamari h2, .hidamari h3 { line-height: 1.55; font-weight: 700; }
.hidamari h2 { font-size: var(--text-heading); }
.hidamari a { color: inherit; text-decoration: none; }
.hidamari a:hover { color: var(--color-accent); text-decoration: underline; text-underline-offset: .25em; }
.hidamari a:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 5px; border-radius: 2px; }
.hidamari img { display: block; max-width: 100%; height: auto; }
.hidamari section, .hidamari main { scroll-margin-top: var(--space-5); }
.hidamari .skip-link { position: absolute; top: -100px; left: var(--space-3); z-index: 10; padding: var(--space-2); background: var(--color-bg); }
.hidamari .skip-link:focus { top: var(--space-2); }
.hidamari .container { width: min(var(--width-site), calc(100% - var(--gutter) * 2)); margin-inline: auto; }
.hidamari .eyebrow { font-size: .6875rem; letter-spacing: .14em; line-height: 1.6; color: var(--color-muted); margin-bottom: var(--space-1); }
.hidamari .accent, .hidamari .text-link { color: var(--color-accent); }
.hidamari .text-link { font-size: var(--text-sm); font-weight: 700; }
.hidamari .muted { color: var(--color-muted); }/* 03. 共通ヘッダー */
.hidamari .site-header { border-bottom: 1px solid var(--color-border); }
.hidamari .header-inner { min-height: 64px; display: flex; align-items: center; justify-content: space-between; gap: var(--space-4); padding-block: var(--space-2); }
.hidamari .brand { display: inline-flex; align-items: center; gap: var(--space-2); font-weight: 700; white-space: nowrap; }
.hidamari .brand-mark { display: grid; place-items: center; width: 29px; height: 30px; border-radius: 2px; background: var(--color-accent); color: var(--color-on-accent); font-size: var(--text-sm); }
.hidamari .nav-list { display: flex; flex-wrap: wrap; gap: var(--space-1) var(--space-4); padding: 0; list-style: none; font-size: var(--text-xs); font-weight: 700; }
.hidamari .nav-list a { display: inline-block; padding-block: var(--space-1); }/* 04. ヒーロー：コピー／写真／説明。モバイルはDOM順に配置 */
.hidamari .hero { padding-block: clamp(40px, 5vw, 72px) 0; border-bottom: 1px solid var(--color-border); }
.hidamari .hero-grid { display: grid; grid-template-columns: minmax(0, .85fr) minmax(0, 1.15fr); grid-template-rows: auto 1fr; column-gap: clamp(24px, 4vw, 56px); row-gap: 28px; align-items: start; }
.hidamari .hero-heading { grid-column: 1; grid-row: 1; padding-top: 20px; }
.hidamari .hero .eyebrow { font-family: Inter, Helvetica, Arial, sans-serif; letter-spacing: .16em; margin-bottom: 24px; display: flex; align-items: center; gap: 12px; }
.hidamari .hero .eyebrow::before { content: ""; width: 28px; height: 2px; background: var(--color-accent); }
.hidamari .hero h1 { font-size: clamp(40px, 4.8vw, 64px); line-height: 1.3; letter-spacing: -.045em; font-weight: 600; }
.hidamari .hero-visual { grid-column: 2; grid-row: 1 / 3; min-width: 0; align-self: stretch; display: flex; flex-direction: column; }
.hidamari .hero-image { width: 100%; flex: 1; min-height: 0; height: 460px; object-fit: cover; object-position: 70% center; border-radius: 0; clip-path: polygon(0 0, 100% 0, 100% calc(100% - 26px), calc(100% - 26px) 100%, 0 100%); }
.hidamari .hero-visual figcaption { display: flex; justify-content: space-between; gap: 16px; padding-top: 12px; font-size: 11px; }
.hidamari .hero-detail { grid-column: 1; grid-row: 2; min-width: 0; }
.hidamari .hero-description { font-size: 15px; color: var(--color-muted); line-height: 2; }
.hidamari .hero-actions { display: flex; flex-wrap: wrap; gap: 12px; margin-top: 28px; }
.hidamari .button { min-height: 48px; padding: 12px 18px; display: inline-flex; justify-content: space-between; align-items: center; gap: 20px; border: 1px solid var(--color-border); border-radius: 2px; font-size: 14px; font-weight: 500; }
.hidamari .button-primary { background: var(--color-accent); color: var(--color-on-accent); border-color: var(--color-accent); }
.hidamari .button-primary:hover { background: var(--color-accent-hover); color: var(--color-on-accent); text-decoration: none; }
.hidamari .button-secondary:hover { border-color: var(--color-accent); text-decoration: none; }
.hidamari .hero-tools { font-family: Inter, Helvetica, Arial, sans-serif; color: var(--color-muted); font-size: 12px; margin-top: 22px; letter-spacing: .04em; }
.hidamari .hero-bottom { display: flex; justify-content: space-between; gap: 16px; margin-top: 40px; padding-block: 22px; border-top: 1px solid var(--color-border); font-size: 13px; }
.hidamari .hero-bottom p:last-child { color: var(--color-muted); }/* 05. セクション・記事カード */
.hidamari .section { padding-block: var(--space-section); }
.hidamari .section-tint { background: var(--color-tint); }
.hidamari .section-heading { display: flex; align-items: end; justify-content: space-between; gap: var(--space-4); margin-bottom: var(--space-5); }
.hidamari .featured-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: var(--space-4); }
.hidamari .featured-side { display: grid; gap: var(--space-4); }
.hidamari .card { min-width: 0; border: 1px solid var(--color-border); border-radius: var(--radius-card); background: var(--color-card); display: flex; flex-direction: column; }
.hidamari .card-image { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: calc(var(--radius-card) - 1px) calc(var(--radius-card) - 1px) 0 0; }
.hidamari .card-body { padding: var(--space-4); flex: 1; display: flex; flex-direction: column; align-items: start; }
.hidamari .tag { display: inline-block; padding: .2rem .6rem; border-radius: 2px; background: var(--color-tag); color: var(--color-muted); font-size: .6875rem; font-weight: 700; line-height: 1.8; }
.hidamari .card h3 { margin-top: var(--space-2); font-size: var(--text-card); }
.hidamari .card-body > p:not(.meta) { margin-top: var(--space-1); color: var(--color-muted); font-size: var(--text-sm); }
.hidamari .card .meta { margin-top: auto; padding-top: var(--space-4); }
.hidamari .meta { display: flex; flex-wrap: wrap; gap: var(--space-4); font-size: var(--text-xs); color: var(--color-muted); }
.hidamari .card-featured .card-body { padding: var(--space-5); }
.hidamari .card-featured h3 { font-size: clamp(1.4rem, 2.3vw, 1.85rem); line-height: 1.65; }
.hidamari .latest-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: var(--space-4); }/* 06. テーマ一覧・About */
.hidamari .topic-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: var(--space-2); padding: 0; list-style: none; }
.hidamari .topic-grid a { display: flex; height: 100%; flex-direction: column; gap: var(--space-1); padding: var(--space-4); border: 1px solid var(--color-border); border-radius: 3px; background: var(--color-bg); font-size: var(--text-sm); }
.hidamari .topic-grid span { font-size: var(--text-xs); color: var(--color-muted); }
.hidamari .about-grid { display: grid; grid-template-columns: 1.5fr 1fr; gap: var(--space-6); align-items: center; }
.hidamari .about-grid h2 { margin-top: var(--space-4); font-size: 1.25rem; }
.hidamari .about-grid > p { font-size: var(--text-sm); }/* 07. 共通フッター */
.hidamari .site-footer { border-top: 1px solid var(--color-border); padding-block: var(--space-5); font-size: var(--text-xs); color: var(--color-muted); }
.hidamari .footer-inner { display: flex; justify-content: space-between; gap: var(--space-4); }
.hidamari .site-footer small { font-size: inherit; }/* 08. 記事ページ */
.hidamari .article-shell { width: min(var(--width-article), calc(100% - var(--gutter) * 2)); margin-inline: auto; padding-block: var(--space-5) var(--space-section); }
.hidamari .breadcrumbs { color: var(--color-muted); font-size: var(--text-xs); margin-bottom: var(--space-6); }
.hidamari .breadcrumbs ol { display: flex; flex-wrap: wrap; gap: var(--space-2); list-style: none; padding: 0; }
.hidamari .breadcrumbs li + li::before { content: "/"; margin-right: var(--space-2); color: var(--color-border); }
.hidamari .article-header h1 { font-size: clamp(1.75rem, 3.5vw, 2.5rem); line-height: 1.6; letter-spacing: -.025em; }
.hidamari .article-meta { display: flex; align-items: center; flex-wrap: wrap; gap: var(--space-3); margin-top: var(--space-4); font-size: var(--text-xs); color: var(--color-muted); }
.hidamari .lead { margin-top: var(--space-5); color: var(--color-muted); }
.hidamari .article-figure { margin-block: var(--space-5); }
.hidamari .article-figure img { width: 100%; aspect-ratio: 16 / 9; object-fit: cover; border-radius: var(--radius-card); }
.hidamari figcaption { margin-top: var(--space-1); font-size: var(--text-xs); color: var(--color-muted); }
.hidamari .toc, .hidamari .note { background: var(--color-tint); border: 1px solid var(--color-border); border-radius: 3px; padding: var(--space-4) var(--space-5); }
.hidamari .toc h2 { font-size: var(--text-card); margin-bottom: var(--space-2); }
.hidamari .toc ol, .hidamari .note ul { padding-left: 1.5em; }
.hidamari .toc a { text-decoration: underline; text-decoration-color: var(--color-border); text-underline-offset: .2em; }
.hidamari .toc li + li { margin-top: var(--space-1); }
.hidamari .entry-content section { margin-top: var(--space-6); }
.hidamari .entry-content h2 { padding-bottom: var(--space-2); border-bottom: 1px solid var(--color-border); margin-bottom: var(--space-4); }
.hidamari .entry-content p + p { margin-top: var(--space-3); }
.hidamari .entry-content blockquote { margin: var(--space-4) 0; padding: var(--space-4); border-left: 3px solid var(--color-accent); background: var(--color-tint); font-size: .9375rem; }
.hidamari .note { margin-block: var(--space-4); }
.hidamari .related { margin-top: var(--space-section); padding-top: var(--space-5); border-top: 1px solid var(--color-border); }
.hidamari .related > p:not(.eyebrow) { margin-top: var(--space-3); font-size: var(--text-sm); }
.hidamari .related-list { list-style: none; padding: 0; margin-block: var(--space-4); }
.hidamari .related-list li { border-bottom: 1px solid var(--color-border); padding-block: var(--space-3); }
/* 09. タブレット・スマートフォン */
@media (max-width: 900px) {
.hidamari .featured-grid, .hidamari .about-grid { grid-template-columns: 1fr; }
.hidamari .latest-grid, .hidamari .topic-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.hidamari .card-featured h3 { font-size: var(--text-heading); }
}
@media (max-width: 600px) {
.hidamari { --gutter: 20px; --space-section: 3rem; --text-heading: 1.3rem; }
.hidamari .header-inner { align-items: flex-start; flex-direction: column; gap: .25rem; }
.hidamari .nav-list { gap: .25rem var(--space-3); }
.hidamari .about-grid { gap: var(--space-5); }
.hidamari .section-heading { align-items: flex-start; flex-direction: column; gap: var(--space-2); }
.hidamari .latest-grid, .hidamari .topic-grid { grid-template-columns: 1fr; }
.hidamari .card-featured .card-body { padding: var(--space-4); }
.hidamari .footer-inner { flex-direction: column; }
.hidamari .toc, .hidamari .note { padding: var(--space-4); }
.hidamari .breadcrumbs { margin-bottom: var(--space-5); }
}/* 10. ライトテーマの共通調整とヒーローのモバイル配置 */
.hidamari .nav-list a { min-height: 44px; display: inline-flex; align-items: center; }
.hidamari .topic-grid a, .hidamari .card { transition: border-color 200ms ease; }
.hidamari .topic-grid a:hover, .hidamari .card:focus-within, .hidamari .card:hover { border-color: var(--color-accent); }/* 写真の自然な明るさを保持する。 */
.hidamari .toc a { text-decoration-color: var(--color-muted); }
.hidamari .entry-content { line-height: 2; }
@media (max-width: 900px) {
.hidamari .hero-grid { grid-template-columns: 1fr; grid-template-rows: auto; gap: 28px; }
.hidamari .hero-heading, .hidamari .hero-visual, .hidamari .hero-detail { grid-column: auto; grid-row: auto; }
.hidamari .hero-heading { padding-top: 0; }
.hidamari .hero-image { flex: none; height: auto; aspect-ratio: 16 / 9; clip-path: none; }
.hidamari .hero h1 { font-size: clamp(40px, 7vw, 64px); }
}
@media (max-width: 600px) {
.hidamari .hero-bottom { flex-direction: column; gap: 4px; margin-top: 28px; }
.hidamari .hero-actions { flex-direction: column; }
.hidamari .hero-description br { display: none; }
.hidamari .hero-visual figcaption { flex-wrap: wrap; gap: 4px 16px; }
}
@media (prefers-reduced-motion: reduce) {
.hidamari *, .hidamari *::before, .hidamari *::after { transition: none !important; animation: none !important; }
}


/* Standard block wrappers: preserve the static site's layout in both editors. */
.hidamari { max-width: none; width: 100%; margin: 0; }
.hidamari .wp-block-group, .hidamari .wp-block-columns, .hidamari .wp-block-image { margin-block: 0; }
.hidamari .wp-block-group.section-heading { margin-bottom: var(--space-5); }
.hidamari .wp-block-group.hero-bottom { margin-top: 40px; }
.hidamari .wp-block-group.related { margin-top: var(--space-section); }
.hidamari .wp-block-group.note { margin-block: var(--space-4); }
.hidamari .wp-block-group > *, .hidamari .wp-block-column > * { max-width: none; }
.hidamari .wp-block-heading { background: none; border-left: 0; padding: 0; color: inherit; }
.hidamari .wp-block-columns.about-grid { display: grid; }
.hidamari .hero-visual img { width: 100%; height: 460px; object-fit: cover; object-position: 70% center; }
.hidamari figure.hero-visual { clip-path: none; }
.hidamari .card-image { height: auto; flex: none; }
.hidamari .card-image img { width: 100%; height: auto; aspect-ratio: 16 / 9; object-fit: cover; }
.hidamari .brand-mark { display: inline-grid; vertical-align: middle; margin-right: 8px; }
.hidamari .hero-actions { gap: 12px; }
.hidamari .wp-block-button__link { display: flex; align-items: center; justify-content: space-between; gap: 20px; min-height: 48px; padding: 12px 18px; border: 1px solid var(--color-border); border-radius: 2px; font-size: 14px; text-decoration: none; background: transparent; color: var(--color-text); }
.hidamari .button-primary .wp-block-button__link { color: var(--color-on-accent); background: var(--color-accent); border-color: var(--color-accent); }
.hidamari .button-primary .wp-block-button__link:hover { background: var(--color-accent-hover); }
.hidamari .button-secondary .wp-block-button__link:hover { color: var(--color-accent); border-color: var(--color-accent); }
.hidamari .entry-content h2 { padding-bottom: var(--space-2); border-bottom: 1px solid var(--color-border); margin-bottom: var(--space-4); }
.hidamari .article-figure { margin-block: var(--space-5); }
.hidamari .wp-block-image figcaption { color: var(--color-muted); font-size: var(--text-xs); }
@media(max-width:900px) { .hidamari .hero-visual img { height: auto; aspect-ratio:16/9; } }

/* 11. Editor canvas and front end: respond to the actual content width. */
.hidamari.wp-block-group { container: hidamari-layout / inline-size; }
.hidamari .skip-link {
  position: fixed; top: 12px; left: 16px; z-index: 100000;
  width: auto; height: auto; margin: 0; padding: 10px 16px;
  transform: translateY(calc(-100% - 24px));
  background: var(--color-card); border: 1px solid var(--color-border);
}
.hidamari .skip-link:focus { top: 12px; }
.hidamari .skip-link:focus-visible { transform: translateY(0); }
.hidamari > p:has(> .skip-link) { margin: 0; padding: 0; height: 0; }
.hidamari .header-inner { padding-block: 12px; min-height: 64px; }
.hidamari .header-inner p, .hidamari .nav-list, .hidamari .nav-list li { margin: 0; }
.hidamari .hero-grid {
  grid-template-columns: minmax(0, 1fr) minmax(0, 1.2fr);
  column-gap: clamp(24px, 3cqi, 44px); row-gap: 24px;
}
.hidamari .hero h1.wp-block-heading {
  font-size: clamp(32px, 4.7cqi, 60px); line-height: 1.35;
  word-break: keep-all; overflow-wrap: normal; letter-spacing: -.04em;
  margin: 0;
}
.hidamari .hero-heading { padding-top: 8px; grid-column: 1; grid-row: 1; }
.hidamari .hero-visual { grid-column: 2; grid-row: 1 / 3; }
.hidamari .hero-detail { grid-column: 1; grid-row: 2; }
.hidamari .hero-visual.wp-block-image { width: 100%; max-width: none; margin: 0; }
.hidamari .hero-visual.wp-block-image img {
  display: block; width: 100%; max-width: 100%;
  height: clamp(330px, 38cqi, 470px); object-fit: cover; object-position: 72% center;
}
.hidamari .hero-description { max-width: 34em; text-wrap: pretty; }
.hidamari .hero-description br { display: none; }
.hidamari .hero-actions.wp-block-buttons { margin-top: 24px; }
.hidamari .topic-grid.wp-block-list {
  grid-auto-rows: 1fr; align-items: stretch; margin: 0; padding: 0;
}
.hidamari .topic-grid > li {
  display: flex; min-width: 0; margin: 0; padding: 0; list-style: none;
}
.hidamari .topic-grid > li > a {
  flex: 1; width: 100%; min-width: 0; min-height: 116px; height: auto;
  padding: 20px; justify-content: flex-start;
}
.hidamari .topic-grid strong { line-height: 1.6; }
.hidamari .topic-grid span { line-height: 1.8; overflow-wrap: normal; }
@container hidamari-layout (max-width: 1000px) {
  .hidamari .topic-grid.wp-block-list { grid-template-columns: repeat(2, minmax(0, 1fr)); }
  .hidamari .hero .eyebrow { margin-bottom: 18px; }
  .hidamari .hero-visual figcaption { flex-wrap: wrap; gap: 4px 12px; }
}
@container hidamari-layout (max-width: 700px) {
  .hidamari .hero-grid { grid-template-columns: 1fr; grid-template-rows: auto; gap: 24px; }
  .hidamari .hero-heading, .hidamari .hero-visual, .hidamari .hero-detail { grid-column: auto; grid-row: auto; }
  .hidamari .hero h1.wp-block-heading { font-size: clamp(32px, 7.5cqi, 48px); }
  .hidamari .hero-visual.wp-block-image img { height: auto; aspect-ratio: 3 / 2; }
  .hidamari .header-inner { flex-direction: column; align-items: flex-start; gap: 8px; }
  .hidamari .nav-list { gap: 4px 16px; }
  .hidamari .featured-grid, .hidamari .latest-grid, .hidamari .about-grid { grid-template-columns: 1fr; }
  .hidamari .section-heading { flex-direction: column; align-items: flex-start; gap: 12px; }
}
@container hidamari-layout (max-width: 420px) {
  .hidamari .topic-grid.wp-block-list { grid-template-columns: 1fr; }
  .hidamari .hero-actions.wp-block-buttons { flex-direction: column; align-items: stretch; }
  .hidamari .hero-actions .wp-block-button { width: 100%; }
}



/* Imported note posts */
.hidamari .note-import-content > h2 { margin-top: 48px; }
.hidamari .note-import-content > .wp-block-image { margin-block: 32px; }
.hidamari .note-import-content > .wp-block-image img { width: 100%; height: auto; }
.hidamari .note-import-content > p { line-height: 2; }

/* Information pages, native archives and search — shared site palette */
.hidamari .info-page { width: min(900px, calc(100% - 48px)); margin: 0 auto; padding-block: 64px 80px; overflow-wrap: anywhere; }
.hidamari .info-page > h1 { font-size: clamp(28px, 4vw, 42px); line-height: 1.5; margin: 0 0 32px; }
.hidamari .info-page > h2 { font-size: 24px; margin: 48px 0 16px; line-height: 1.6; }
.hidamari .info-page p, .hidamari .info-page li { line-height: 1.95; }
.hidamari .info-page p { margin-block: 16px; }
.hidamari .info-page > .wp-block-list { padding-left: 1.5em; list-style: disc; }
.hidamari .info-page a { text-decoration: underline; text-underline-offset: 4px; }
.hidamari .audit-query { margin-block: 32px; }
.hidamari .audit-query .wp-block-post-template { display: grid; grid-template-columns: repeat(2,minmax(0,1fr)); gap: 20px; padding: 0; list-style: none; }
.hidamari .audit-query .wp-block-post, .hidamari .archive-results article { padding: 24px; border: 1px solid var(--color-border); border-radius: 8px; background: var(--color-card); margin: 0; }
.hidamari .audit-query h2, .hidamari .archive-results h2 { margin: 0 0 16px; font-size: 20px; line-height: 1.65; }
.hidamari .audit-query .wp-block-post-date, .hidamari .post-meta { color: var(--color-muted); font-size: 13px; }
.hidamari .archive-results { display: grid; gap: 20px; }
.hidamari .wp-block-query-pagination { display: flex; flex-wrap: wrap; gap: 20px; margin-block: 24px; }
.hidamari .footer-inner { flex-wrap: wrap; gap: 20px; }
.hidamari .site-footer .nav-list { flex-wrap: wrap; font-size: 13px; }
.hidamari .site-search { margin-top: 48px; }
.hidamari .site-search label { display: block; margin-bottom: 8px; font-weight: 700; }
.hidamari .site-search > div { display: flex; gap: 8px; }
.hidamari .site-search input { flex: 1; min-width: 0; border: 1px solid var(--color-muted); border-radius: 4px; padding: 12px; background: var(--color-card); color: var(--color-text); font: inherit; }
.hidamari .site-search button { background: var(--color-accent); color: var(--color-card); padding: 12px 20px; border: 0; border-radius: 4px; font: inherit; cursor: pointer; }
.hidamari a:focus-visible, .hidamari input:focus-visible, .hidamari button:focus-visible { outline: 3px solid var(--color-accent); outline-offset: 4px; }
@media (max-width: 650px) {
 .hidamari .info-page { width: calc(100% - 32px); padding-block: 36px 56px; }
 .hidamari .audit-query .wp-block-post-template { grid-template-columns: 1fr; }
 .hidamari .footer-inner { align-items: flex-start; flex-direction: column; }
}
