/* --- Modern Ingredient Detective Stylesheet --- */ :root { --font-main: 'Inter', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif; --font-heading: 'Inter', 'Segoe UI', 'Helvetica Neue', Arial, sans-serif; --color-bg: #f7fbff; --color-primary: #1769aa; --color-accent: #1db954; --color-warning: #ffb800; --color-danger: #e53e3e; --color-border: #e0e7ef; --color-card: #fff; --color-muted: #888; --color-heading: #14213d; --color-link-hover: #1769aa; --color-focus: #ffe066; } html, body { font-family: var(--font-main); background: var(--color-bg); color: #222; margin: 0; padding: 0; min-height: 100vh; font-size: 18px; line-height: 1.7; } h1, h2, h3, h4, h5, h6 { font-family: var(--font-heading); color: var(--color-heading); margin-top: 0; font-weight: 800; letter-spacing: -0.5px; } h1 { font-size: 2.2rem; margin-bottom: 0.5em; } h2 { font-size: 1.5rem; margin-bottom: 0.5em; } h3 { font-size: 1.15rem; margin-bottom: 0.25em; } header { background: #fff; box-shadow: 0 1px 12px rgba(30,80,160,0.06); padding: 1.2rem 0 0.7rem 0; margin-bottom: 1.2rem; text-align: center; } header h1 { margin: 0.2em 0 0.1em 0; } header nav { margin-top: 0.5em; } header a { color: var(--color-primary); font-weight: 600; text-decoration: none; margin: 0 0.7em; padding: 0.2em 0.5em; border-radius: 0.3em; transition: background 0.15s, color 0.15s; } header a:hover, header a:focus { background: var(--color-primary); color: #fff; outline: none; } footer { font-size: 1rem; background: #f6fafd; color: var(--color-muted); padding: 1.5rem 0 0.8rem 0; text-align: center; border-top: 1px solid #e0e7ef; } main { max-width: 900px; margin: 0 auto; padding: 2rem 1.5rem 1.5rem 1.5rem; display: block; } .hero-section { text-align: center; align-items: center !important; justify-content: center !important; } .hero-section > div { text-align: center !important; } .grid, .grid > * { justify-content: center !important; align-items: center !important; } .feature-card { text-align: center; margin-left: auto; margin-right: auto; max-width: 420px; width: 100%; box-sizing: border-box; } main > section { margin-left: auto; margin-right: auto; margin-bottom: 3rem; max-width: 100%; width: 100%; box-sizing: border-box; } .analyzer-section, .blog-preview { margin-left: auto; margin-right: auto; max-width: 700px; width: 100%; text-align: center; } .grid { display: grid; grid-template-columns: 1fr; gap: 2rem; justify-items: center; } @media (min-width: 768px) { .grid { grid-template-columns: 1fr 1fr; } .feature-card { max-width: 420px; } main > section { padding-left: 0; padding-right: 0; } } @media (max-width: 600px) { main { padding-left: 0.5rem; padding-right: 0.5rem; } .feature-card { padding: 1.2rem 0.7rem; } .analyzer-section, .blog-preview { padding: 1.2rem 0.7rem; } } .blog-preview { text-align: center; } @media (min-width: 768px) { .hero-section > div { text-align: center !important; } } section { background: var(--color-card); border-radius: 1.2rem; box-shadow: 0 4px 16px rgba(30,80,160,0.07); margin-bottom: 2.5rem; padding: 2.5rem 2rem; border: 1px solid var(--color-border); } ul, ol { padding-left: 2rem; } li { margin-bottom: 0.7em; } button, .btn { font-family: var(--font-main); background: var(--color-primary); color: #fff; border: none; border-radius: 0.5rem; padding: 0.6rem 1.5rem; font-size: 1.1rem; cursor: pointer; font-weight: 600; box-shadow: 0 1px 3px rgba(30,80,160,0.04); transition: background 0.15s, box-shadow 0.15s; outline: none; } button:hover, .btn:hover, button:focus, .btn:focus { background: var(--color-accent); color: #fff; box-shadow: 0 2px 8px rgba(30,80,160,0.10); } button:focus-visible, .btn:focus-visible { outline: 2px solid var(--color-focus); outline-offset: 2px; } input[type="text"], input[type="search"], select, textarea { font-family: var(--font-main); font-size: 1rem; padding: 0.6rem; border: 1px solid var(--color-border); border-radius: 0.5rem; margin-bottom: 0.7rem; background: #f9fbfd; transition: border 0.15s; } input:focus, textarea:focus, select:focus { border-color: var(--color-primary); outline: 2px solid var(--color-focus); } .explainer { color: #444; font-size: 1.06rem; margin-bottom: 1.2rem; background: #f6fafd; border-left: 4px solid var(--color-primary); padding: 0.7em 1.1em; border-radius: 0.4em; } .taxo-cards { display: flex; flex-wrap: wrap; gap: 2rem; justify-content: center; margin: 2.5rem 0; } .taxo-card { background: #fafdff; border-radius: 1.2rem; box-shadow: 0 2px 10px rgba(30,80,160,0.08); padding: 2.2rem 1.7rem; min-width: 220px; max-width: 340px; flex: 1 0 220px; text-align: center; border: 1px solid #e0e7ef; transition: box-shadow 0.2s, border-color 0.2s; position: relative; } .taxo-card:hover, .taxo-card:focus-within { box-shadow: 0 6px 24px rgba(30,80,160,0.14); border-color: var(--color-primary); z-index: 2; } .taxo-card h3 { font-size: 1.35rem; margin-bottom: 0.6rem; } .taxo-card p { font-size: 1.05rem; color: #444; margin-bottom: 0.5rem; } .error { background: #fff4f4; border: 1px solid var(--color-danger); color: var(--color-danger); font-weight: bold; border-radius: 0.5em; padding: 1em 1.2em; margin: 2em 0 1.5em 0; text-align: center; } @media (max-width: 900px) { main { padding: 1rem 0.5rem 1rem 0.5rem; } section { padding: 1.2rem 0.7rem; } .taxo-cards { flex-direction: column; gap: 1.3rem; } } @media (max-width: 500px) { h1 { font-size: 1.3rem; } h2 { font-size: 1.05rem; } section { padding: 0.7rem 0.2rem; } .taxo-card { padding: 1.1rem 0.7rem; } } /* --- Modern Homepage Redesign --- */ .modern-nav { background: #fff; box-shadow: 0 2px 16px rgba(30,80,160,0.07); position: sticky; top: 0; z-index: 100; padding: 0.5rem 0; } .nav-content { display: flex; align-items: center; justify-content: space-between; max-width: 1200px; margin: 0 auto; padding: 0 2rem; } .brand { display: flex; align-items: center; gap: 0.8rem; text-decoration: none; } .logo { border-radius: 0.6rem; background: #eaf6ff; box-shadow: 0 2px 8px rgba(30,80,160,0.07); } .brand-name { font-size: 1.5rem; font-weight: 900; color: var(--color-primary); letter-spacing: -1px; } .nav-links { display: flex; gap: 1.5rem; } .nav-links a { color: var(--color-heading); font-weight: 600; font-size: 1.1rem; text-decoration: none; border-radius: 0.4em; padding: 0.3em 0.8em; transition: background 0.15s, color 0.15s; } .nav-links a:hover, .nav-links a:focus { background: var(--color-primary); color: #fff; } @media (max-width: 700px) { .nav-content { flex-direction: column; gap: 0.7rem; padding: 0 0.7rem; } .nav-links { gap: 0.7rem; flex-wrap: wrap; justify-content: center; } .brand-name { font-size: 1.1rem; } } .modern-hero { background: linear-gradient(120deg, #eaf6ff 60%, #e8f9f0 100%); border-radius: 2rem; margin: 2.5rem auto 2.5rem auto; max-width: 1200px; box-shadow: 0 8px 36px rgba(30,80,160,0.09); padding: 3.5rem 2.5rem 2.5rem 2.5rem; display: flex; align-items: center; justify-content: center; } .hero-content { display: flex; align-items: center; gap: 3rem; width: 100%; } .hero-text { flex: 1 1 0%; min-width: 260px; } .hero-title { font-size: 2.8rem; font-weight: 900; color: var(--color-primary); margin-bottom: 0.6em; letter-spacing: -1.5px; line-height: 1.15; } .hero-subtitle { color: #205070; font-size: 1.3rem; margin-bottom: 2em; font-weight: 400; } .hero-cta-group { display: flex; gap: 1.2rem; flex-wrap: wrap; } .btn { display: inline-block; font-family: var(--font-main); font-weight: bold; border-radius: 0.7rem; padding: 0.85em 2.3em; font-size: 1.2rem; border: none; cursor: pointer; transition: background 0.15s, color 0.15s, box-shadow 0.15s; box-shadow: 0 2px 8px rgba(30,80,160,0.07); text-decoration: none; } .btn-primary { background: var(--color-primary); color: #fff; } .btn-primary:hover, .btn-primary:focus { background: var(--color-accent); color: #fff; } .btn-secondary { background: #fff; color: var(--color-primary); border: 2px solid var(--color-primary); } .btn-secondary:hover, .btn-secondary:focus { background: var(--color-primary); color: #fff; } .btn-lg { font-size: 1.25rem; padding: 1em 2.8em; } .hero-image { flex: 1 1 0%; display: flex; justify-content: center; align-items: center; } .hero-graphic { max-width: 340px; width: 100%; height: auto; border-radius: 1.1rem; box-shadow: 0 4px 24px rgba(30,80,160,0.11); } @media (max-width: 1000px) { .modern-hero { flex-direction: column; padding: 2.2rem 0.7rem; } .hero-content { flex-direction: column; gap: 2.2rem; } } @media (max-width: 600px) { .modern-hero { margin: 1rem 0.1rem; padding: 1.2rem 0.2rem; } .hero-title { font-size: 1.5rem; } .hero-subtitle { font-size: 1rem; } } .features-section { max-width: 1200px; margin: 0 auto 2.5rem auto; padding: 0; } .features-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 2.5rem; margin: 0 auto; } .feature-card { background: #fff; border: 1.5px solid var(--color-border); border-radius: 1.4rem; box-shadow: 0 2px 14px rgba(30,80,160,0.08); padding: 2.2rem 1.7rem; display: flex; flex-direction: column; align-items: center; transition: box-shadow 0.18s, border-color 0.18s; min-height: 320px; } .feature-card:hover, .feature-card:focus-within { box-shadow: 0 8px 32px rgba(30,80,160,0.15); border-color: var(--color-primary); z-index: 2; } .feature-icon { font-size: 2.5rem; margin-bottom: 1.1rem; } .feature-card h2 { font-size: 1.3rem; font-weight: 800; margin-bottom: 0.5rem; color: var(--color-primary); } .feature-card p { color: #3b4d5c; font-size: 1.07rem; margin-bottom: 1.2rem; } /* Modern Footer */ .modern-footer { background: #f7fbff; border-top: 1.5px solid var(--color-border); padding: 2.2rem 0 1.2rem 0; margin-top: 2.5rem; } .footer-content { max-width: 1200px; margin: 0 auto; display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: 2rem; font-size: 1rem; } .footer-brand { display: flex; align-items: center; gap: 0.7rem; font-weight: 700; color: var(--color-primary); } .footer-logo { height: 2rem; width: auto; border-radius: 0.5rem; background: #eaf6ff; } .footer-links { display: flex; gap: 1.2rem; } .footer-links a { color: var(--color-muted); text-decoration: none; font-weight: 600; transition: color 0.13s; } .footer-links a:hover, .footer-links a:focus { color: var(--color-primary); } .footer-social { display: flex; gap: 1rem; } .footer-social img { height: 1.6rem; width: 1.6rem; filter: grayscale(0.5) brightness(0.9); transition: filter 0.15s; } .footer-social img:hover, .footer-social img:focus { filter: none; } @media (max-width: 900px) { .footer-content { flex-direction: column; gap: 1.2rem; align-items: flex-start; } } /* --- End modern stylesheet --- */