.ifgl-page { background: var(--wp--preset--color--base); padding: 36px 20px 104px; }
.ifgl-main { margin: 0 auto; max-width: 1120px; }
.ifgl-page-header { border-bottom: 2px solid var(--wp--preset--color--primary); margin-bottom: 32px; max-width: 760px; padding: 20px 0 28px; }
.ifgl-eyebrow { color: var(--wp--preset--color--accent); font-size: 12px; font-weight: 700; letter-spacing: .12em; line-height: 1; margin: 0 0 15px; }
.ifgl-page-header h1, .ifgl-term-header h1 { color: var(--wp--preset--color--text); font-family: var(--wp--preset--font-family--serif, serif); font-size: clamp(34px, 5vw, 58px); line-height: 1.2; margin: 0; text-box: trim-both cap alphabetic; }
.ifgl-page-header > p:last-child { color: var(--wp--preset--color--text-light); font-size: 16px; line-height: 1.9; margin: 18px 0 -0.45em; max-width: 43em; }
.ifgl-search { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); margin: 0 0 28px; max-width: 760px; padding: 20px; }
.ifgl-search__label { color: var(--wp--preset--color--text); display: block; font-size: 14px; font-weight: 700; line-height: 1.4; margin-bottom: 10px; }
.ifgl-search__controls { display: grid; gap: 8px; grid-template-columns: minmax(0, 1fr) auto; }
.ifgl-search__controls input { appearance: none; background: var(--wp--preset--color--base); border: 1px solid var(--wp--preset--color--border); border-radius: 0; color: var(--wp--preset--color--text); font: inherit; min-height: 48px; min-width: 0; padding: 10px 14px; width: 100%; }
.ifgl-search__controls input::placeholder { color: var(--wp--preset--color--text-light); opacity: .85; }
.ifgl-search__controls input:focus-visible { border-color: var(--wp--preset--color--primary); outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }
.ifgl-search__controls button { background: var(--wp--preset--color--primary); border: 1px solid var(--wp--preset--color--primary); border-radius: 0; color: var(--wp--preset--color--white); cursor: pointer; font: inherit; font-size: 14px; font-weight: 700; min-height: 48px; padding: 10px 22px; }
.ifgl-search__controls button:hover, .ifgl-search__controls button:focus-visible { opacity: .85; }
.ifgl-search__controls button:focus-visible { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 2px; }
.ifgl-search__help, .ifgl-search__result { color: var(--wp--preset--color--text-light); font-size: 13px; line-height: 1.65; margin: 9px 0 0; }
.ifgl-search__result { align-items: baseline; border-top: 1px solid var(--wp--preset--color--border); display: flex; flex-wrap: wrap; gap: 6px 16px; justify-content: space-between; margin-top: 14px; padding-top: 13px; }
.ifgl-search__result span { color: var(--wp--preset--color--text); font-weight: 700; }
.ifgl-search__result a:hover, .ifgl-search__result a:focus-visible { opacity: .65; text-decoration: none; }
.ifgl-empty { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); max-width: 760px; padding: 40px; }
.ifgl-empty h2 { color: var(--wp--preset--color--text); font-family: var(--wp--preset--font-family--serif, serif); font-size: 24px; line-height: 1.3; margin: 0 0 10px; }
.ifgl-empty p { color: var(--wp--preset--color--text-light); line-height: 1.8; margin: 0 0 16px; }
.ifgl-type-nav { border-bottom: 1px solid var(--wp--preset--color--border); margin-bottom: 62px; padding-bottom: 20px; }
.ifgl-type-nav ul, .ifgl-index-nav ul, .ifgl-term-grid, .ifgl-term-relations ul, .ifgl-related-shops ul, .ifgl-sources ul, .ifgl-chip-list { list-style: none; margin: 0; padding: 0; }
.ifgl-type-nav ul { display: flex; flex-wrap: wrap; gap: 8px; }
.ifgl-type-nav a { border: 1px solid var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); display: block; font-size: 14px; font-weight: 700; padding: 9px 13px; text-decoration: none; }
.ifgl-type-nav a:hover, .ifgl-type-nav a:focus-visible, .ifgl-type-nav a[aria-current="page"] { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--white); opacity: 1; text-decoration: none; }
.ifgl-type-section + .ifgl-type-section { border-top: 1px solid var(--wp--preset--color--border); margin-top: 74px; padding-top: 74px; }
.ifgl-type-section__header { margin-bottom: 22px; }
.ifgl-type-section__header h2, .ifgl-term-relations h2, .ifgl-related-shops h2, .ifgl-sources h2 { color: var(--wp--preset--color--text); font-family: var(--wp--preset--font-family--serif, serif); font-size: clamp(25px, 3vw, 36px); line-height: 1.3; margin: 0; }
.ifgl-type-section__header h2 span { color: var(--wp--preset--color--accent); font-family: inherit; font-size: 14px; font-weight: 700; margin-left: 12px; vertical-align: middle; }
.ifgl-type-section__header p { color: var(--wp--preset--color--text-light); line-height: 1.8; margin: 10px 0 -0.4em; }
.ifgl-index-nav { background: var(--wp--preset--color--surface); border: 1px solid var(--wp--preset--color--border); margin-bottom: 34px; padding: 14px; }
.ifgl-index-nav ul { display: grid; gap: 6px; grid-template-columns: repeat(11, minmax(0, 1fr)); }
.ifgl-index-nav a, .ifgl-index-nav span { align-items: center; display: flex; font-size: 13px; font-weight: 700; justify-content: center; min-height: 40px; padding: 6px; }
.ifgl-index-nav a { background: var(--wp--preset--color--base); color: var(--wp--preset--color--primary); text-decoration: none; }
.ifgl-index-nav a:hover, .ifgl-index-nav a:focus-visible { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--white); opacity: 1; text-decoration: none; }
.ifgl-index-nav span { color: var(--wp--preset--color--text-light); opacity: .55; }
.ifgl-group { border-top: 1px solid var(--wp--preset--color--border); display: grid; gap: 24px; grid-template-columns: 106px minmax(0, 1fr); padding: 30px 0 46px; scroll-margin-top: 32px; }
.ifgl-group h3 { color: var(--wp--preset--color--primary); font-family: var(--wp--preset--font-family--serif, serif); font-size: 22px; line-height: 1.3; margin: 0; }
.ifgl-term-grid { display: grid; gap: 1px; grid-template-columns: repeat(3, minmax(0, 1fr)); background: var(--wp--preset--color--border); border: 1px solid var(--wp--preset--color--border); }
.ifgl-term-card { background: var(--wp--preset--color--base); color: var(--wp--preset--color--text); display: flex; flex-direction: column; height: 100%; min-height: 178px; padding: 19px; text-decoration: none; transition: background .2s ease, color .2s ease; }
.ifgl-term-card:hover, .ifgl-term-card:focus-visible { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--white); opacity: 1; text-decoration: none; }
.ifgl-term-card__title { font-family: var(--wp--preset--font-family--serif, serif); font-size: 21px; font-weight: 700; line-height: 1.35; }
.ifgl-term-card__reading { color: var(--wp--preset--color--text-light); font-size: 12px; margin-top: 4px; }
.ifgl-term-card:hover .ifgl-term-card__reading, .ifgl-term-card:focus-visible .ifgl-term-card__reading { color: var(--wp--preset--color--surface); }
.ifgl-term-card__summary { display: -webkit-box; font-size: 13px; line-height: 1.7; margin-top: 10px; overflow: hidden; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.ifgl-term-card__action { color: var(--wp--preset--color--accent); font-size: 12px; font-weight: 700; margin-top: auto; padding-top: 15px; }
.ifgl-term-card:hover .ifgl-term-card__action, .ifgl-term-card:focus-visible .ifgl-term-card__action { color: var(--wp--preset--color--white); }
.ifgl-term-header { border-bottom: 2px solid var(--wp--preset--color--primary); padding: 20px 0 27px; }
.ifgl-term-header h1 { max-width: 16em; }
.ifgl-term-meta { display: flex; flex-wrap: wrap; gap: 12px 32px; margin: 20px 0 0; }
.ifgl-term-meta div { display: flex; gap: 10px; }
.ifgl-term-meta dt { color: var(--wp--preset--color--text-light); font-size: 12px; font-weight: 700; }
.ifgl-term-meta dd { font-size: 14px; margin: 0; }
.ifgl-article { margin: 0 auto; max-width: 760px; }
.ifgl-term-lead { border-left: 4px solid var(--wp--preset--color--accent); color: var(--wp--preset--color--text); font-family: var(--wp--preset--font-family--serif, serif); font-size: clamp(20px, 2.4vw, 27px); line-height: 1.65; margin: 36px 0 0; padding: 2px 0 2px 20px; }
.ifgl-term-content { color: var(--wp--preset--color--text); font-size: 16px; line-height: 2; margin-top: 32px; }
.ifgl-term-content > * { max-width: 45em; }
.ifgl-term-content h2 { font-family: var(--wp--preset--font-family--serif, serif); font-size: 26px; line-height: 1.4; margin: 52px 0 14px; }
.ifgl-term-content p { margin: 0 0 1.45em; }
.ifgl-term-relations, .ifgl-related-shops, .ifgl-sources { border-top: 1px solid var(--wp--preset--color--border); margin-top: 60px; padding-top: 28px; }
.ifgl-term-relations ul { display: grid; gap: 1px; grid-template-columns: repeat(2, minmax(0, 1fr)); background: var(--wp--preset--color--border); border: 1px solid var(--wp--preset--color--border); margin-top: 20px; }
.ifgl-term-relations a, .ifgl-related-shops a { background: var(--wp--preset--color--base); color: var(--wp--preset--color--text); display: block; min-height: 100%; padding: 17px; text-decoration: none; }
.ifgl-term-relations a:hover, .ifgl-term-relations a:focus-visible, .ifgl-related-shops a:hover, .ifgl-related-shops a:focus-visible { background: var(--wp--preset--color--surface); opacity: 1; text-decoration: none; }
.ifgl-term-relations span, .ifgl-related-shops span { display: block; font-family: var(--wp--preset--font-family--serif, serif); font-size: 18px; font-weight: 700; }
.ifgl-term-relations small, .ifgl-related-shops small { color: var(--wp--preset--color--text-light); display: block; font-size: 12px; line-height: 1.6; margin-top: 6px; }
.ifgl-related-shops ul, .ifgl-sources ul { border-bottom: 1px solid var(--wp--preset--color--border); margin-top: 18px; }
.ifgl-related-shops li, .ifgl-sources li { border-top: 1px solid var(--wp--preset--color--border); }
.ifgl-related-shops a { align-items: center; display: flex; justify-content: space-between; }
.ifgl-related-shops p, .ifgl-sources p { color: var(--wp--preset--color--text-light); line-height: 1.8; margin: 16px 0 -0.4em; }
.ifgl-sources a, .ifgl-back-link a, .ifgl-auto-term-link, .ifgl-search__result a, .ifgl-empty a { color: var(--wp--preset--color--primary); font-weight: 700; text-decoration-line: underline; text-decoration-color: var(--wp--preset--color--accent); text-decoration-thickness: .08em; text-underline-offset: .18em; }
.ifgl-sources li a { display: block; padding: 13px 0; }
.ifgl-sources p span { font-weight: 700; margin-right: 10px; }
.ifgl-back-link { margin: 54px 0 0; }
.ifgl-home { background: var(--wp--preset--color--surface); }
.ifgl-home__header { margin-bottom: 30px; }
.ifgl-chip-list { display: flex; flex-wrap: wrap; gap: 8px; }
.ifgl-chip-list a { border: 1px solid var(--wp--preset--color--primary); color: var(--wp--preset--color--primary); display: flex; font-size: 14px; font-weight: 700; gap: 18px; padding: 10px 13px; text-decoration: none; }
.ifgl-chip-list a:hover, .ifgl-chip-list a:focus-visible { background: var(--wp--preset--color--primary); color: var(--wp--preset--color--white); opacity: 1; text-decoration: none; }
.ifgl-type-nav a:focus-visible, .ifgl-index-nav a:focus-visible, .ifgl-term-card:focus-visible, .ifgl-term-relations a:focus-visible, .ifgl-related-shops a:focus-visible, .ifgl-sources a:focus-visible, .ifgl-back-link a:focus-visible, .ifgl-chip-list a:focus-visible, .ifgl-auto-term-link:focus-visible { outline: 3px solid var(--wp--preset--color--accent); outline-offset: 3px; }
@media (max-width: 767px) { .ifgl-page { padding: 24px 16px 72px; } .ifgl-page-header { padding-top: 10px; } .ifgl-search { padding: 16px; } .ifgl-search__controls button { padding-left: 16px; padding-right: 16px; } .ifgl-empty { padding: 28px 20px; } .ifgl-type-nav { margin-bottom: 42px; } .ifgl-index-nav ul { grid-template-columns: repeat(4, minmax(0, 1fr)); } .ifgl-type-section + .ifgl-type-section { margin-top: 52px; padding-top: 52px; } .ifgl-group { display: block; padding: 24px 0 36px; } .ifgl-group h3 { margin-bottom: 15px; } .ifgl-term-grid { grid-template-columns: 1fr; } .ifgl-term-card { min-height: 145px; } .ifgl-term-relations ul { grid-template-columns: 1fr; } }
@media (prefers-reduced-motion: reduce) { .ifgl-term-card { transition: none; } }
