/* Shared homepage layout patterns for Project100 skin themes */
.p100-lead { font-size: 1.15rem; color: var(--p100-muted, #64748b); }
.p100-sub { color: var(--p100-muted, #64748b); max-width: 42rem; }
.p100-kicker { font-size: 0.75rem; text-transform: uppercase; letter-spacing: 0.08em; color: var(--p100-accent, #2563eb); font-weight: 600; }
.p100-meta { font-size: 0.85rem; color: var(--p100-muted, #64748b); }
.p100-section-title { font-size: 1.1rem; margin: 2rem 0 1rem; }

.p100-hero--mag { display: grid; gap: 2rem; margin-bottom: 2.5rem; }
@media (min-width: 900px) { .p100-hero--mag { grid-template-columns: 1fr 1.2fr; align-items: start; } }
.p100-hero__feature { display: grid; gap: 1rem; }
.p100-hero__img img, .p100-card__img img { width: 100%; height: auto; border-radius: var(--p100-radius, 8px); display: block; }
.p100-grid__cards { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }
.p100-card { border: 1px solid var(--p100-border, #e2e8f0); border-radius: var(--p100-radius, 8px); overflow: hidden; }
.p100-card__body { padding: 1rem; }
.p100-card h3 { margin: 0.25rem 0; font-size: 1rem; }
.p100-card h3 a { color: inherit; text-decoration: none; }

.p100-home-min__list { list-style: none; padding: 0; margin: 2rem 0; }
.p100-home-min__list li { padding: 1.25rem 0; border-bottom: 1px solid var(--p100-border, #e2e8f0); }
.p100-home-min__list a { font-size: 1.35rem; font-weight: 600; color: inherit; text-decoration: none; }
.p100-home-min__list a:hover { color: var(--p100-accent, #2563eb); }

.p100-hero--bold { padding: 3rem 0 2rem; }
.p100-hero--bold h1 { font-size: clamp(2.5rem, 6vw, 4rem); line-height: 1.05; margin: 0.5rem 0; }
.p100-cta { display: inline-block; margin-top: 1.5rem; font-weight: 600; color: var(--p100-accent, #2563eb); }
.p100-split-list { display: grid; gap: 1.5rem; }
@media (min-width: 768px) { .p100-split-list { grid-template-columns: 1fr 1fr; } }
.p100-split-item h2 { margin: 0 0 0.35rem; font-size: 1.25rem; }
.p100-split-item h2 a { color: inherit; text-decoration: none; }

.p100-mosaic { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); }
.p100-mosaic__tile { position: relative; min-height: 200px; border-radius: var(--p100-radius, 8px); overflow: hidden; background: var(--p100-surface, #f1f5f9); }
.p100-mosaic__img { display: block; min-height: 120px; background-size: cover; background-position: center; }
.p100-mosaic__body { padding: 0.75rem 1rem; }
.p100-mosaic__body h2 { margin: 0; font-size: 0.95rem; }
.p100-mosaic__body a { color: inherit; text-decoration: none; }

.p100-feed__row { display: grid; gap: 1rem; grid-template-columns: 120px 1fr; padding: 1.25rem 0; border-bottom: 1px solid var(--p100-border, #e2e8f0); }
.p100-feed__thumb img { width: 120px; height: 80px; object-fit: cover; border-radius: 6px; }
.p100-feed__row h2 { margin: 0 0 0.35rem; font-size: 1.15rem; }
.p100-feed__row h2 a { color: inherit; text-decoration: none; }

.p100-news-layout { display: grid; gap: 2rem; }
@media (min-width: 900px) { .p100-news-layout { grid-template-columns: 1.4fr 1fr; } }
.p100-news-lead h2 { font-size: 1.75rem; margin: 0 0 0.5rem; }
.p100-news-lead h2 a { color: inherit; text-decoration: none; }
.p100-news-rail article { padding: 0.75rem 0; border-top: 1px solid var(--p100-border, #e2e8f0); }
.p100-news-rail h3 { margin: 0; font-size: 1rem; }
.p100-news-rail h3 a { color: inherit; text-decoration: none; }

.p100-skin-wrapper { --p100-accent: #2563eb; }

/* Theme-specific homepage blocks (audited layouts) */
.p100-band { margin: 2.5rem 0; }
.p100-band__head { display: flex; justify-content: space-between; align-items: baseline; margin-bottom: 1rem; }
.p100-band__head a { font-size: 0.9rem; color: var(--p100-accent); text-decoration: none; }

.p100-hype__featured { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 280px), 1fr)); }
.p100-hype__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(min(100%, 220px), 1fr)); }

.p100-sense__manifesto { max-width: 40rem; margin-bottom: 2rem; }
.p100-sense__list { list-style: none; padding: 0; }
.p100-sense__list li { padding: 1.5rem 0; border-bottom: 1px solid var(--p100-border); }
.p100-sense__list time { display: block; font-size: 0.85rem; color: var(--p100-muted); margin-bottom: 0.35rem; }
.p100-sense__list a { font-size: 1.4rem; font-weight: 600; color: inherit; text-decoration: none; }

.p100-homa__carousel { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); margin-bottom: 2rem; }
.p100-homa__slide img { width: 100%; aspect-ratio: 16/10; object-fit: cover; border-radius: var(--p100-radius); }

.p100-news-trending { list-style: none; padding: 0; margin: 0; }
.p100-news-trending li { display: flex; gap: 0.75rem; padding: 0.65rem 0; border-top: 1px solid var(--p100-border); }
.p100-rank { font-weight: 700; color: var(--p100-accent); min-width: 1.5rem; }
.p100-news-headlines h3 { margin: 0.5rem 0; font-size: 1rem; }

.p100-pine__intro { background: var(--p100-accent); color: var(--p100-accent-contrast, #fff); padding: 2.5rem 2rem; border-radius: var(--p100-radius); }
.p100-pine__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.5rem 0; }
.p100-pine__tags a { padding: 0.35rem 0.75rem; border: 1px solid var(--p100-border); border-radius: 999px; font-size: 0.85rem; text-decoration: none; color: inherit; }
.p100-pine__list { list-style: none; padding: 0; }
.p100-pine__list-item { display: grid; grid-template-columns: 120px 1fr; gap: 1rem; padding: 1rem 0; border-bottom: 1px solid var(--p100-border); }
.p100-pine__list-item img { width: 120px; height: 80px; object-fit: cover; border-radius: 6px; }

.p100-glide__bio { max-width: 42rem; margin-bottom: 2rem; }
.p100-glide__grid { display: grid; gap: 2rem; }
@media (min-width: 768px) { .p100-glide__grid { grid-template-columns: 1fr 1fr; } }

.p100-split { display: grid; min-height: 70vh; }
@media (min-width: 900px) { .p100-split { grid-template-columns: 320px 1fr; } }
.p100-split__aside { background: var(--p100-sidebar-bg, #0e1013); color: var(--p100-sidebar-text, #fff); padding: 2rem; }
.p100-split__aside nav { display: flex; flex-direction: column; gap: 0.5rem; margin-top: 1.5rem; }
.p100-split__aside a { color: inherit; text-decoration: none; opacity: 0.85; }
.p100-split__main { padding: 2rem; }

.p100-crimson__ticker { display: flex; gap: 1.5rem; overflow-x: auto; padding: 0.75rem 0; border-bottom: 2px solid var(--p100-accent); font-size: 0.9rem; margin-bottom: 1.5rem; }
.p100-crimson__hero { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); margin-bottom: 2rem; }
.p100-crimson__editors { background: var(--p100-band-bg, #161616); color: var(--p100-band-text, #999); padding: 2rem; margin-top: 2rem; }
.p100-crimson__editors a { color: #fff; }

.p100-colorgrid__hero { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); margin: 1.5rem 0; }

.p100-gazet__top h1 { font-size: clamp(2rem, 5vw, 3.25rem); line-height: 1.1; margin: 0.5rem 0; }
.p100-gazet__secondary { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); margin: 2rem 0; }
.p100-gazet__column { margin-top: 1.5rem; }
.p100-gazet__column ul { list-style: none; padding: 0; }

.p100-feed-layout { display: grid; gap: 2rem; }
@media (min-width: 960px) { .p100-feed-layout { grid-template-columns: 1fr 280px; } }
.p100-feed-sidebar { border-left: 1px solid var(--p100-border); padding-left: 1.5rem; }
.p100-feed-sidebar a { display: inline-block; margin: 0.25rem 0.5rem 0.25rem 0; font-size: 0.85rem; }

.p100-marsa__banner { background: var(--p100-banner-bg, var(--p100-accent)); color: var(--p100-banner-text, #fff); padding: 2.5rem 2rem; border-radius: var(--p100-radius); }

.p100-kate__top { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); margin-bottom: 2rem; }
.p100-kate__layout { display: grid; gap: 2rem; }
@media (min-width: 900px) { .p100-kate__layout { grid-template-columns: 1fr 280px; } }

.p100-neue__hero { text-align: center; padding: 3rem 1rem; max-width: 40rem; margin: 0 auto 2rem; }
.p100-neue__grid { display: grid; gap: 1.25rem; grid-template-columns: repeat(auto-fill, minmax(200px, 1fr)); }

.p100-woords__tags { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(180px, 1fr)); margin: 2rem 0; }
.p100-woords__tags a { display: block; padding: 1rem; border: 1px solid var(--p100-border); text-decoration: none; color: inherit; }

.p100-tozan__display h1 { font-size: clamp(2rem, 5vw, 3.5rem); }
.p100-tozan__pills { display: flex; flex-wrap: wrap; gap: 0.5rem; margin: 1.5rem 0; }
.p100-tozan__pills a { padding: 0.4rem 0.9rem; background: var(--p100-surface); border-radius: 999px; text-decoration: none; font-size: 0.85rem; }
.p100-tozan__pick { padding: 1.25rem; border: 2px solid var(--p100-accent); border-radius: var(--p100-radius); margin-bottom: 2rem; }

.p100-thoughts__lead { padding-bottom: 2rem; margin-bottom: 2rem; border-bottom: 1px solid var(--p100-border); }
.p100-thoughts__lead h1 { font-size: 2rem; margin: 0 0 1rem; }
.p100-thoughts__lead h1 a { color: inherit; text-decoration: none; }

.p100-deigo__hero { text-align: center; padding: 3rem 1rem; }
.p100-deigo__hero h1 { font-size: clamp(2.5rem, 6vw, 4rem); line-height: 1.05; }
.p100-deigo__carousel { display: flex; gap: 1rem; overflow-x: auto; scroll-snap-type: x mandatory; padding-bottom: 1rem; margin-bottom: 2rem; }
.p100-deigo__carousel article { flex: 0 0 280px; scroll-snap-align: start; }
.p100-deigo__carousel img { width: 100%; aspect-ratio: 4/3; object-fit: cover; border-radius: var(--p100-radius); }
.p100-deigo__grid { display: grid; gap: 1rem; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); }

.p100-feature__hero { margin-bottom: 2rem; }
.p100-feature__carousel { display: flex; gap: 1rem; overflow-x: auto; margin: 1.5rem 0; }
.p100-feature__compact { list-style: none; padding: 0; margin: 1.5rem 0; }
.p100-feature__compact li { display: flex; justify-content: space-between; padding: 0.5rem 0; border-bottom: 1px solid var(--p100-border); }
.p100-feature__tags { display: flex; flex-wrap: wrap; gap: 0.5rem; margin-bottom: 2rem; }
.p100-feature__tags a { padding: 0.35rem 0.75rem; border: 1px solid var(--p100-border); border-radius: 999px; text-decoration: none; font-size: 0.85rem; }

.p100-newsletter { margin: 3rem 0; padding: 2rem; background: var(--p100-surface); border-radius: var(--p100-radius); text-align: center; }
.p100-cta { display: inline-block; margin-top: 1rem; padding: 0.6rem 1.25rem; background: var(--p100-accent); color: var(--p100-accent-contrast, #fff); text-decoration: none; border-radius: var(--p100-radius); font-weight: 600; }
