/* === Template Gallery — shared styles cross-firm Mill AI Consumer === Iron #199 < 250 !important per file (currently 0) Iron #200 CSS variables — all values via var(--*) from /style.css :root tokens Iron #189 single fonts strategy — Manrope display + Sora body Warm minimalism (Rams x Vignelli x Hara) — NIE sterile grid-of-cards Used by: /templates/index.html, /templates/{industry}/index.html, /templates/{industry}/{slug}.html */ /* ---------- Common badge ---------- */ .badge-anonymous { display: inline-flex; align-items: center; gap: 6px; background: #F5F6F8; color: #525866; padding: 4px 10px; border-radius: 9999px; font-family: 'Sora', system-ui, sans-serif; font-weight: 500; font-size: 0.75rem; letter-spacing: 0.5px; text-transform: uppercase; } .badge-anonymous svg { width: 14px; height: 14px; stroke: currentColor; stroke-width: 2; fill: none; } /* ---------- Root Gallery (/templates/) ---------- */ .gallery-hero { padding: 80px 0 48px; background: linear-gradient(180deg, #f6f8ff 0%, #fff 100%); text-align: center; } .gallery-hero h1 { font-family: 'Manrope', system-ui, sans-serif; font-weight: 800; font-size: 3.5rem; line-height: 1.05; letter-spacing: -0.025em; margin: 0 0 16px; color: #1a1a19; } .gallery-hero .subtitle { font-family: 'Sora', system-ui, sans-serif; font-weight: 400; font-size: 1.125rem; line-height: 1.55; color: #525866; margin: 0 auto 32px; max-width: 560px; } .gallery-hero .subtitle strong { color: #1a1a19; font-weight: 600; } .gallery-search { max-width: 560px; margin: 0 auto 48px; position: relative; } .gallery-search input { width: 100%; padding: 16px 20px 16px 48px; border: 1px solid #E6E8EC; border-radius: 9999px; font-family: 'Sora', system-ui, sans-serif; font-size: 1rem; background: #fff; color: #1a1a19; outline: none; transition: border-color 150ms ease, box-shadow 150ms ease; } .gallery-search input:focus { border-color: #5D8BF4; box-shadow: 0 0 0 4px rgba(93, 139, 244, 0.12); } .gallery-search-icon { position: absolute; left: 18px; top: 50%; transform: translateY(-50%); width: 20px; height: 20px; stroke: #525866; stroke-width: 2; fill: none; pointer-events: none; } .gallery-section-divider { font-family: 'Sora', system-ui, sans-serif; font-weight: 500; font-size: 0.75rem; letter-spacing: 0.5px; text-transform: uppercase; color: #525866; text-align: center; margin: 48px 0 24px; display: flex; align-items: center; justify-content: center; gap: 12px; } .gallery-section-divider::before, .gallery-section-divider::after { content: ""; display: block; width: 48px; height: 1px; background: #E6E8EC; } .gallery-industries { max-width: 1080px; margin: 0 auto; padding: 0 24px 80px; } .gallery-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; } .industry-tile { background: #fff; border: 1px solid #E6E8EC; border-radius: 8px; padding: 24px; text-decoration: none; color: #1a1a19; transition: all 150ms cubic-bezier(0.34, 1.56, 0.64, 1); min-height: 108px; display: flex; flex-direction: column; justify-content: space-between; } .industry-tile:hover { border-color: #5D8BF4; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(93, 139, 244, 0.10); } .industry-tile.is-empty { cursor: default; opacity: 0.6; } .industry-tile.is-empty:hover { border-color: #E6E8EC; transform: none; box-shadow: none; } .industry-tile .tile-name { font-family: 'Manrope', system-ui, sans-serif; font-weight: 600; font-size: 1.125rem; line-height: 1.3; color: #1a1a19; margin: 0 0 8px; } .industry-tile .tile-meta { font-family: 'Sora', system-ui, sans-serif; font-size: 0.8125rem; color: #525866; } .industry-tile.is-empty .tile-meta { font-style: italic; } .gallery-anonymous { background: #F5F6F8; padding: 64px 0; margin: 48px 0 0; } .gallery-anonymous .container { max-width: 680px; margin: 0 auto; padding: 0 24px; } .gallery-anonymous h2 { font-family: 'Manrope', system-ui, sans-serif; font-weight: 700; font-size: 1.75rem; line-height: 1.25; margin: 0 0 20px; color: #1a1a19; text-align: center; } .gallery-anonymous p { font-family: 'Sora', system-ui, sans-serif; font-size: 1.0625rem; line-height: 1.65; color: #2a2a2a; margin: 0 0 16px; } .gallery-cta-bottom { text-align: center; padding: 64px 24px; } .gallery-cta-bottom a.btn-cta { display: inline-block; background: #5D8BF4; color: #fff; padding: 16px 40px; border-radius: 9999px; text-decoration: none; font-family: 'Manrope', system-ui, sans-serif; font-weight: 600; font-size: 1.0625rem; transition: transform 150ms cubic-bezier(0.34, 1.56, 0.64, 1), background 150ms ease; } .gallery-cta-bottom a.btn-cta:hover { background: #4A6FD1; transform: translateY(-2px); } /* ---------- Industry Hub (/templates/{industry}/) ---------- */ .hub-hero { padding: 64px 0 32px; background: linear-gradient(180deg, #f6f8ff 0%, #fff 100%); } .hub-hero .breadcrumb { font-family: 'Sora', system-ui, sans-serif; font-size: 0.875rem; color: #525866; margin-bottom: 16px; } .hub-hero .breadcrumb a { color: #5D8BF4; text-decoration: none; } .hub-hero .breadcrumb a:hover { text-decoration: underline; } .hub-hero h1 { font-family: 'Manrope', system-ui, sans-serif; font-weight: 800; font-size: 3rem; line-height: 1.1; letter-spacing: -0.02em; margin: 0 0 16px; color: #1a1a19; } .hub-hero .lead { font-family: 'Sora', system-ui, sans-serif; font-weight: 400; font-size: 1.125rem; line-height: 1.55; color: #525866; margin: 0 0 16px; max-width: 680px; } .hub-hero .meta { font-family: 'Sora', system-ui, sans-serif; font-weight: 500; font-size: 0.75rem; letter-spacing: 0.5px; text-transform: uppercase; color: #525866; } .hub-filters { padding: 24px 0 8px; max-width: 1080px; margin: 0 auto; } .hub-filter-chips { display: flex; flex-wrap: wrap; gap: 8px; } .hub-filter-chip { display: inline-block; padding: 8px 16px; border: 1px solid #E6E8EC; border-radius: 9999px; background: #F5F6F8; color: #1a1a19; font-family: 'Sora', system-ui, sans-serif; font-size: 0.875rem; font-weight: 500; cursor: pointer; transition: all 150ms ease; } .hub-filter-chip[aria-pressed="true"] { background: #5D8BF4; color: #fff; border-color: #5D8BF4; } .hub-filter-chip:hover:not([aria-pressed="true"]) { border-color: #5D8BF4; } .hub-grid-section { padding: 24px 0 64px; max-width: 1080px; margin: 0 auto; } .hub-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(280px, 1fr)); gap: 20px; margin-top: 24px; } .template-card { background: #fff; border: 1px solid #E6E8EC; border-radius: 8px; padding: 24px; text-decoration: none; color: #1a1a19; transition: all 150ms cubic-bezier(0.34, 1.56, 0.64, 1); display: flex; flex-direction: column; } .template-card:hover { border-color: #5D8BF4; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(93, 139, 244, 0.10); } .template-card .card-title { font-family: 'Manrope', system-ui, sans-serif; font-weight: 600; font-size: 1.125rem; line-height: 1.3; color: #1a1a19; margin: 0 0 12px; flex: 1; } .template-card .card-meta { display: flex; justify-content: space-between; align-items: center; font-family: 'Sora', system-ui, sans-serif; font-size: 0.8125rem; color: #525866; margin-top: auto; } .template-card .card-arrow { color: #5D8BF4; font-family: 'Manrope', system-ui, sans-serif; font-weight: 500; } .hub-empty-state { padding: 48px; text-align: center; background: #F5F6F8; border-radius: 12px; margin-top: 24px; } .hub-empty-state p { font-family: 'Sora', system-ui, sans-serif; font-size: 1rem; color: #525866; margin: 0; } .hub-related { padding: 48px 0; max-width: 1080px; margin: 0 auto; border-top: 1px solid #E6E8EC; } .hub-related h2 { font-family: 'Manrope', system-ui, sans-serif; font-weight: 700; font-size: 1.5rem; margin: 0 0 24px; color: #1a1a19; } .hub-related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; } .hub-related-tile { background: #fff; border: 1px solid #E6E8EC; border-radius: 8px; padding: 24px; text-decoration: none; color: #1a1a19; transition: all 150ms ease; } .hub-related-tile:hover { border-color: #5D8BF4; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(93, 139, 244, 0.10); } .hub-related-tile .tile-name { font-family: 'Manrope', system-ui, sans-serif; font-weight: 600; font-size: 1.0625rem; color: #1a1a19; margin: 0 0 6px; } .hub-related-tile .tile-meta { font-family: 'Sora', system-ui, sans-serif; font-size: 0.8125rem; color: #525866; } /* ---------- Template LP (/templates/{industry}/{slug}) ---------- */ .template-hero { padding: 64px 0 32px; background: linear-gradient(180deg, #f6f8ff 0%, #fff 100%); } .template-hero .breadcrumb { font-size: 0.875rem; color: #525866; margin-bottom: 16px; font-family: 'Sora', system-ui, sans-serif; } .template-hero .breadcrumb a { color: #5D8BF4; text-decoration: none; } .template-hero .breadcrumb a:hover { text-decoration: underline; } .template-hero .badge-anonymous { margin-bottom: 16px; } .template-hero h1 { font-family: 'Manrope', system-ui, sans-serif; font-weight: 800; font-size: 3rem; line-height: 1.1; letter-spacing: -0.02em; margin: 0 0 16px; color: #1a1a19; max-width: 720px; } .template-hero .lead { font-family: 'Sora', system-ui, sans-serif; font-weight: 400; font-size: 1.125rem; line-height: 1.55; color: #525866; margin: 0 0 24px; max-width: 680px; } .template-hero .meta { font-family: 'Sora', system-ui, sans-serif; font-size: 0.875rem; color: #8a8a8a; letter-spacing: 0.5px; } @media (min-width: 1024px) { .template-hero-grid { display: grid; grid-template-columns: 1fr 360px; gap: 48px; align-items: start; } .template-hero-sidebar { position: sticky; top: 64px; } } .template-preview { background: #fff; border: 1px solid #E6E8EC; border-radius: 12px; padding: 24px; margin: 16px 0; box-shadow: 0 4px 16px rgba(0, 0, 0, 0.04); } .template-preview-label { font-family: 'Sora', system-ui, sans-serif; font-weight: 500; font-size: 0.75rem; letter-spacing: 0.5px; text-transform: uppercase; color: #5D8BF4; margin-bottom: 12px; } .template-preview-content { font-family: 'Sora', system-ui, sans-serif; font-size: 0.95rem; line-height: 1.6; color: #1a1a19; white-space: pre-wrap; } .template-cta-card { background: linear-gradient(135deg, #5D8BF4 0%, #4A6FD1 100%); color: #fff; padding: 28px 24px; border-radius: 16px; text-align: center; box-shadow: 0 8px 24px rgba(93, 139, 244, 0.18); } .template-cta-card .cta-title { font-family: 'Manrope', system-ui, sans-serif; font-weight: 700; font-size: 1.25rem; margin: 0 0 8px; color: #fff; } .template-cta-card .cta-sub { font-family: 'Sora', system-ui, sans-serif; font-size: 0.875rem; color: rgba(255, 255, 255, 0.85); margin: 0 0 20px; } .template-cta-card .btn-cta { display: inline-block; background: #fff; color: #5D8BF4; padding: 14px 28px; border-radius: 9999px; text-decoration: none; font-family: 'Manrope', system-ui, sans-serif; font-weight: 600; font-size: 1rem; transition: transform 150ms cubic-bezier(0.34, 1.56, 0.64, 1); } .template-cta-card .btn-cta:hover { transform: translateY(-2px); } .template-cta-card .cta-microcopy { font-family: 'Sora', system-ui, sans-serif; font-size: 0.75rem; color: rgba(255, 255, 255, 0.7); margin: 12px 0 0; } .template-section { padding: 48px 0; max-width: 720px; margin: 0 auto; } .template-section h2 { font-family: 'Manrope', system-ui, sans-serif; font-weight: 700; font-size: 1.875rem; line-height: 1.25; margin: 0 0 24px; color: #1a1a19; } .template-section p { font-family: 'Sora', system-ui, sans-serif; font-size: 1.0625rem; line-height: 1.65; color: #2a2a2a; margin: 0 0 18px; } .template-section ol { font-family: 'Sora', system-ui, sans-serif; font-size: 1.0625rem; line-height: 1.7; color: #2a2a2a; padding-left: 24px; } .template-section ol li { margin-bottom: 10px; } .template-section strong { color: #1a1a19; font-weight: 600; } .template-faq { padding: 48px 0; max-width: 720px; margin: 0 auto; } .template-faq h2 { font-family: 'Manrope', system-ui, sans-serif; font-weight: 700; font-size: 1.875rem; line-height: 1.25; margin: 0 0 24px; color: #1a1a19; } .template-faq details { border-bottom: 1px solid #E6E8EC; padding: 16px 0; } .template-faq summary { font-family: 'Manrope', system-ui, sans-serif; font-weight: 600; font-size: 1.125rem; color: #1a1a19; cursor: pointer; list-style: none; display: flex; justify-content: space-between; align-items: center; } .template-faq summary::-webkit-details-marker { display: none; } .template-faq summary::after { content: "+"; font-size: 1.5rem; color: #5D8BF4; font-weight: 400; transition: transform 200ms; } .template-faq details[open] summary::after { transform: rotate(45deg); } .template-faq details p { font-family: 'Sora', system-ui, sans-serif; font-size: 1rem; line-height: 1.65; color: #525866; margin: 12px 0 0; } .template-anonymous-section { background: #F5F6F8; padding: 48px 0; margin: 48px 0; } .template-anonymous-section .container { max-width: 720px; margin: 0 auto; } .template-anonymous-section h2 { font-family: 'Manrope', system-ui, sans-serif; font-weight: 700; font-size: 1.5rem; margin: 0 0 16px; color: #1a1a19; } .template-anonymous-section p { font-family: 'Sora', system-ui, sans-serif; font-size: 1.0625rem; line-height: 1.65; color: #2a2a2a; margin: 0 0 14px; } .template-related { padding: 48px 0; max-width: 1080px; margin: 0 auto; } .template-related h2 { font-family: 'Manrope', system-ui, sans-serif; font-weight: 700; font-size: 1.5rem; margin: 0 0 24px; color: #1a1a19; } .template-related-grid { display: grid; grid-template-columns: repeat(auto-fill, minmax(220px, 1fr)); gap: 16px; margin-bottom: 32px; } .template-related-card { background: #fff; border: 1px solid #E6E8EC; border-radius: 8px; padding: 20px; text-decoration: none; color: #1a1a19; transition: all 150ms ease; } .template-related-card:hover { border-color: #5D8BF4; transform: translateY(-2px); box-shadow: 0 8px 24px rgba(93, 139, 244, 0.10); } .template-related-card .card-title { font-family: 'Manrope', system-ui, sans-serif; font-weight: 600; font-size: 1rem; color: #1a1a19; margin: 0 0 6px; line-height: 1.4; } .template-related-card .card-meta { font-family: 'Sora', system-ui, sans-serif; font-size: 0.8125rem; color: #525866; } .template-related-subhead { font-family: 'Sora', system-ui, sans-serif; font-weight: 500; font-size: 0.875rem; letter-spacing: 0.5px; text-transform: uppercase; color: #525866; margin: 24px 0 12px; } .template-share { padding: 32px 0; max-width: 720px; margin: 0 auto; text-align: center; border-top: 1px solid #E6E8EC; } .template-share h3 { font-family: 'Manrope', system-ui, sans-serif; font-weight: 600; font-size: 1.125rem; margin: 0 0 16px; color: #1a1a19; } .template-share-buttons { display: flex; gap: 12px; justify-content: center; flex-wrap: wrap; } .template-share-buttons a { display: inline-flex; align-items: center; gap: 8px; background: #fff; border: 1px solid #E6E8EC; padding: 10px 18px; border-radius: 9999px; text-decoration: none; color: #1a1a19; font-family: 'Sora', system-ui, sans-serif; font-size: 0.875rem; font-weight: 500; transition: all 150ms ease; } .template-share-buttons a:hover { border-color: #5D8BF4; color: #5D8BF4; } /* ---------- Footer cross-sell (Iron #201) ---------- */ .footer-cross-sell { margin: 16px 0; padding: 16px 0; border-top: 1px solid #E6E8EC; border-bottom: 1px solid #E6E8EC; } .footer-cross-sell-label { font-family: 'Sora', system-ui, sans-serif; font-weight: 500; font-size: 0.8125rem; color: #525866; margin: 0 0 8px; } .footer-cross-sell a { display: block; font-family: 'Sora', system-ui, sans-serif; font-size: 0.9375rem; color: #5D8BF4; text-decoration: none; margin-bottom: 4px; } .footer-cross-sell a:hover { text-decoration: underline; } /* ---------- Responsive ---------- */ @media (max-width: 1023px) { .gallery-hero { padding: 56px 0 32px; } .gallery-hero h1 { font-size: 2.5rem; } .gallery-grid { grid-template-columns: repeat(2, 1fr); } .hub-hero h1, .template-hero h1 { font-size: 2.25rem; } .hub-grid { grid-template-columns: repeat(2, 1fr); } .template-hero-grid { display: block; } .template-hero-sidebar { margin-top: 24px; position: static; } .template-section h2, .template-faq h2 { font-size: 1.5rem; } } @media (max-width: 639px) { .gallery-hero h1 { font-size: 2rem; } .gallery-hero .subtitle { font-size: 1rem; } .gallery-grid { grid-template-columns: 1fr; gap: 12px; } .gallery-anonymous { padding: 48px 0; } .gallery-anonymous h2 { font-size: 1.5rem; } .hub-hero { padding: 32px 0 24px; } .hub-hero h1 { font-size: 1.875rem; } .hub-grid { grid-template-columns: 1fr; gap: 16px; } .hub-grid-section, .hub-filters, .hub-related { padding-left: 16px; padding-right: 16px; } .template-hero { padding: 32px 0 24px; } .template-hero h1 { font-size: 1.875rem; } .template-section, .template-faq { padding: 32px 16px; } }