    :root {
      color-scheme: light;
      --page: #DDEBDD;
      --page-deep: #cfe0cf;
      --paper: #f8fbf6;
      --paper-warm: #eef5ec;
      --ink: #20372a;
      --muted: #687c6c;
      --green: #2f6545;
      --green-dark: #204b32;
      --orange: #d87945;
      --forest: #022C22;
      --forest-rgb: 2, 44, 34;
      --emerald: #16A34A;
      --line: #dce3d8;
      --shadow: 0 18px 50px rgba(39, 66, 46, .09);
      --font-display: 'Outfit', sans-serif;
      --font-ui: 'Poppins', sans-serif;
      --serif: var(--font-ui);
      --sans: var(--font-ui);
    }
    * { box-sizing: border-box; }
    html { scroll-behavior: smooth; background: var(--page); }
    body { min-height: 100vh; margin: 0; background: var(--page); color: var(--ink); font-family: var(--sans); line-height: 1.6; }
    a { color: inherit; text-decoration: none; }
    button, input { font: inherit; }
    .site-header { position: sticky; top: 12px; z-index: 10; width: calc(100% - 40px); max-width: 1200px; margin: 20px auto; border: 1px solid rgba(255,255,255,.1); border-radius: 50px; background: rgba(var(--forest-rgb),.85); backdrop-filter: blur(12px); -webkit-backdrop-filter: blur(12px); box-shadow: 0 10px 30px rgba(0,0,0,.15); font-family: var(--font-ui); }
    .header-inner { min-height: 76px; margin: auto; padding: 0 27px; display: flex; align-items: center; gap: 24px; }
    .brand { display: inline-flex; align-items: center; gap: 11px; flex: 0 0 auto; }
    .brand-mark { position: relative; width: 44px; height: 44px; flex: 0 0 44px; border: 1px solid rgba(235,255,237,.8); border-radius: 14px; display: grid; place-items: center; overflow: hidden; background: radial-gradient(circle at 28% 18%, rgba(177,235,167,.42), transparent 42%), linear-gradient(145deg, #4d9a60, #205333 78%); color: #fff; box-shadow: 0 0 0 3px rgba(70,145,83,.14), 0 0 24px rgba(66,157,80,.48), 0 7px 17px rgba(26,68,39,.25), inset 0 1px 0 rgba(255,255,255,.42); transition: box-shadow .2s ease, transform .2s ease; }
    .brand:hover .brand-mark { transform: translateY(-1px); box-shadow: 0 0 0 4px rgba(70,145,83,.16), 0 0 30px rgba(66,157,80,.62), 0 9px 20px rgba(26,68,39,.28), inset 0 1px 0 rgba(255,255,255,.48); }
    .brand-mark svg { width: 25px; height: 25px; filter: drop-shadow(0 0 5px rgba(255,218,145,.75)); }
    .brand-image { display: block; width: 100%; height: 100%; padding: 7px; border-radius: inherit; object-fit: contain; filter: brightness(0) invert(1) drop-shadow(0 0 5px rgba(220,255,202,.9)); }
    .logo-site { display: inline-flex; align-items: center; flex: 1 1 0; min-width: 46px; color: inherit; text-decoration: none; }
    .logo-icon-wrapper { position: relative; display: flex; width: 45px; height: 45px; flex: 0 0 45px; align-items: center; justify-content: center; }
    .logo-circle { width: 45px; height: 45px; border-radius: 50%; background: #16a34a; display: flex; align-items: center; justify-content: center; position: relative; z-index: 2; font-size: 22px; color: #fff; border: 1px solid rgba(255,255,255,.3); box-shadow: 0 4px 10px rgba(22,163,74,.4); transition: transform .3s ease; }
    .logo-image { display: block; width: 26px; height: 26px; object-fit: contain; filter: brightness(0) invert(1); }
    .logo-glow { position: absolute; inset: -6px; z-index: 1; border-radius: 50%; background: radial-gradient(circle, rgba(22,163,74,.42) 0%, rgba(22,163,74,0) 72%); animation: pulsoLuz 2.8s infinite alternate ease-in-out; }
    @keyframes pulsoLuz { 0% { transform: scale(.9); opacity: .22; } 100% { transform: scale(1.22); opacity: .06; } }
    .logo-icon-wrapper:hover .logo-circle { transform: scale(1.08) rotate(-5deg); }
    .brand-name { font-size: 14px; line-height: 1.15; font-weight: 700; letter-spacing: -.2px; }
    .brand-name span { display: block; margin-top: 4px; color: var(--muted); font-size: 10px; letter-spacing: 1.6px; text-transform: uppercase; font-weight: 600; }
    .main-nav { flex: 0 1 auto; }
    .nav-links { display: flex; align-items: center; justify-content: center; gap: clamp(13px, 1.7vw, 23px); padding: 0; margin: 0; list-style: none; white-space: nowrap; }
    .nav-links a { position: relative; padding: 9px 0; color: rgba(255,255,255,.8); font-size: .85rem; font-weight: 400; letter-spacing: 1.5px; text-transform: uppercase; transition: color .22s ease; }
    .nav-links a::after { position: absolute; right: 0; bottom: 2px; left: 0; height: 1px; background: #fff; content: ''; transform: scaleX(0); transform-origin: center; transition: transform .22s ease; }
    .nav-links a:hover, .nav-links a.active { color: #fff; }
    .nav-links a:hover::after, .nav-links a.active::after { transform: scaleX(1); }
    .social-links { display: flex; flex: 1 1 0; align-items: center; justify-content: flex-end; gap: 9px; }
    .social-links a { display: grid; width: 35px; height: 35px; place-items: center; border: 1px solid rgba(255,255,255,.08); border-radius: 50%; background: rgba(255,255,255,.1); color: #fff; transition: background-color .22s ease, transform .22s ease, border-color .22s ease; }
    .social-links svg { display: block; width: 17px; height: 17px; }
    .social-links a:hover { transform: scale(1.1); border-color: #16a34a; background: #16a34a; }
    .nav-links a:focus-visible, .social-links a:focus-visible, .logo-site:focus-visible { outline: 2px solid #16a34a; outline-offset: 4px; border-radius: 4px; }
    .hero-banner { display: flex; width: calc(100% - 48px); max-width: 1200px; min-height: 470px; margin: 20px auto 40px; overflow: hidden; border: 1px solid rgba(255,255,255,.1); border-radius: 40px; background: var(--forest); color: #fff; box-shadow: var(--shadow); }
    .hero-content { position: relative; z-index: 2; display: flex; flex: 0 0 50%; flex-direction: column; justify-content: center; width: 50%; padding: 60px 50px; background: var(--forest); font-family: var(--font-ui); }
    .hero-badge { display: inline-flex; align-items: center; gap: 11px; margin-bottom: 17px; color: rgba(255,255,255,.72); font-family: var(--font-ui); font-size: .8rem; font-weight: 500; letter-spacing: 2px; text-transform: uppercase; }
    .hero-badge::before { content: ''; width: 24px; height: 1px; flex: 0 0 24px; background: var(--emerald); }
    h1, h2, h3, p { margin-top: 0; }
    .hero-content h1 { max-width: 540px; margin-bottom: 0; font-family: var(--font-display); font-size: 3.5rem; line-height: 1.04; letter-spacing: -1.5px; font-weight: 800; }
    .hero-content h1 .highlight { color: var(--emerald); }
    .hero-desc { max-width: 500px; margin: 18px 0 35px; color: rgba(255,255,255,.8); font-family: var(--font-ui); font-size: 1.05rem; font-weight: 400; }
    .hero-desc strong { color: #fff; font-weight: 700; }
    .search-form { display: flex; align-items: center; gap: 8px; width: 100%; max-width: 560px; height: 55px; max-height: 55px; padding: 6px 7px 6px 20px; border: 0; border-radius: 50px; background: #fff; box-shadow: 0 15px 35px rgba(0,0,0,.1); }
    .search-icon { display: grid; place-items: center; width: 36px; flex: 0 0 36px; color: #9CA3AF; }
    .search-icon svg { width: 20px; height: 20px; }
    .search-input { min-width: 0; flex: 1; padding: 8px 0; border: 0; outline: none; background: transparent; color: #333; font-family: var(--font-ui); font-size: .9rem; }
    .search-input::placeholder { color: #9CA3AF; }
    .search-button { padding: 10px 25px; border: 0; border-radius: 40px; background: var(--emerald); color: #fff; font-family: var(--font-ui); font-size: .9rem; font-weight: 600; cursor: pointer; white-space: nowrap; transition: filter .2s, transform .2s, box-shadow .2s; }
    .search-button:hover { filter: brightness(.93); transform: scale(1.05); box-shadow: 0 8px 20px rgba(22,163,74,.35); }
    .hero-image-wrapper { position: relative; flex: 1 1 50%; min-width: 0; min-height: 470px; overflow: hidden; background: var(--forest); }
    .hero-image-wrapper::before { position: absolute; inset: 0; z-index: 1; background: linear-gradient(90deg, var(--forest) 0%, rgba(var(--forest-rgb),.82) 12%, rgba(var(--forest-rgb),.38) 34%, rgba(var(--forest-rgb),0) 68%); content: ''; pointer-events: none; }
    .hero-image { position: absolute; inset: 0; display: block; width: 100%; height: 100%; object-fit: cover; object-position: center; }
    .content { max-width: 1320px; margin: 0 auto; padding: 14px 32px 78px; }
    .category-bar { display: flex; max-width: 1320px; align-items: center; flex-direction: column; gap: 27px; margin: 34px auto 58px; padding: 16px 30px; border: 0; border-radius: 0; background: transparent; box-shadow: none; }
    .category-label { margin: 0; color: var(--forest); font-family: var(--font-display); font-size: clamp(1.35rem,2.4vw,1.9rem); font-weight: 700; letter-spacing: .015em; text-align: center; text-transform: none; }
    .category-buttons { display: grid; width: 100%; min-width: 0; grid-template-columns: repeat(4,minmax(0,1fr)); justify-items: center; gap: clamp(16px,3vw,38px); }
    .category-buttons::-webkit-scrollbar { display: none; }
    .btn-category { position: relative; display: block; width: clamp(170px,18vw,248px); aspect-ratio: 1; overflow: hidden; padding: 0; border: 2px solid rgba(255,255,255,.9); border-radius: 50%; background: var(--forest); color: #fff; box-shadow: 0 12px 28px rgba(19,55,36,.2); isolation: isolate; transition: transform .38s cubic-bezier(.2,.75,.25,1), box-shadow .38s ease, border-color .38s ease; }
    .btn-category::after { position: absolute; inset: 0; z-index: 1; background: radial-gradient(ellipse at center,rgba(3,17,11,.28) 0%,rgba(3,17,11,.32) 40%,rgba(3,17,11,.57) 100%); content: ''; transition: background .35s ease; }
    .btn-category img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .65s cubic-bezier(.2,.7,.2,1), filter .35s ease; }
    .btn-category span { position: absolute; inset: 0; z-index: 2; display: grid; place-items: center; padding: 18px; color: #fff; font-family: var(--font-display); font-size: clamp(1rem,1.45vw,1.3rem); font-weight: 800; letter-spacing: .015em; line-height: 1.15; text-align: center; text-shadow: 0 0 7px rgba(46,204,113,.85),0 0 17px rgba(46,204,113,.58),0 2px 8px rgba(0,0,0,.85); }
    .btn-category:hover { transform: translateY(-8px) scale(1.045); border-color: #d5b56d; box-shadow: 0 20px 38px rgba(18,74,45,.28),0 0 0 5px rgba(213,181,109,.16),0 0 28px rgba(46,204,113,.32); }
    .btn-category:hover::after { background: radial-gradient(ellipse at center,rgba(3,17,11,.12) 0%,rgba(3,17,11,.28) 62%,rgba(3,17,11,.5) 100%); }
    .btn-category:hover img { transform: scale(1.12); filter: saturate(1.12); }
    .btn-category:focus-visible { outline: 3px solid var(--emerald); outline-offset: 5px; }
    .section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 24px; }
    .section-kicker { margin-bottom: 6px; color: var(--orange); font-size: 10px; font-weight: 700; letter-spacing: 1.7px; text-transform: uppercase; }
    h2 { margin-bottom: 0; font-family: var(--serif); font-size: clamp(30px, 3.5vw, 42px); line-height: 1.2; letter-spacing: -.7px; }
    .section-description { margin: 8px 0 0; color: var(--muted); font-size: 14px; }
    .text-link { padding-bottom: 4px; color: var(--green); font-size: 13px; font-weight: 700; white-space: nowrap; }
    .text-link span { margin-left: 6px; transition: margin .2s; }
    .text-link:hover span { margin-left: 10px; }
    .recipe-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 20px; }
    .recipe-card { min-width: 0; overflow: hidden; border: 1px solid rgba(49,92,67,.1); border-radius: 19px; background: var(--paper); box-shadow: 0 7px 22px rgba(39,66,46,.045); transition: transform .25s, box-shadow .25s; }
    .recipe-card:hover { transform: translateY(-5px); box-shadow: var(--shadow); }
    .card-image { position: relative; height: 205px; overflow: hidden; background: var(--page-deep); }
    .card-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s; }
    .recipe-card:hover .card-image img { transform: scale(1.045); }
    .rating { position: absolute; top: 12px; right: 12px; display: inline-flex; align-items: center; gap: 5px; padding: 6px 9px; border-radius: 999px; background: rgba(255,253,247,.94); color: #70573b; font-size: 11px; font-weight: 700; }
    .rating span { color: var(--orange); }
    .card-body { padding: 17px 17px 15px; }
    .card-tag { margin-bottom: 7px; color: var(--green); font-size: 10px; font-weight: 700; letter-spacing: 1.1px; text-transform: uppercase; }
    h3 { min-height: 52px; margin-bottom: 14px; font-family: var(--serif); font-size: 18px; line-height: 1.4; font-weight: 600; }
    .card-meta { display: flex; align-items: center; justify-content: space-between; gap: 8px; padding-top: 12px; border-top: 1px solid #edf0e8; color: var(--muted); font-size: 11px; }
    .card-meta span { display: inline-flex; align-items: center; gap: 5px; }
    .newsletter { display: flex; align-items: center; justify-content: space-between; gap: 24px; margin-top: 66px; padding: 29px 34px; border-radius: 20px; background: var(--page-deep); }
    .newsletter h2 { font-size: 25px; }
    .newsletter p { margin: 6px 0 0; color: var(--muted); font-size: 13px; }
    .newsletter .text-link { padding: 12px 17px; border: 1px solid rgba(49,92,67,.24); border-radius: 999px; background: var(--paper); }
    .footer { padding: 80px 5% 30px; background: #022C22; color: rgba(255,255,255,.7); font-family: var(--font-ui); }
    .footer-inner { max-width: 1320px; margin: auto; }
    .footer-main { display: grid; grid-template-columns: 1.5fr 1fr 1fr; gap: 48px; padding-bottom: 34px; }
    .footer-brand-link { display: inline-flex; align-items: center; gap: 12px; color: #fff; }
    .footer-logo-icon { display: grid; width: 44px; height: 44px; flex: 0 0 44px; place-items: center; border: 1px solid rgba(255,255,255,.28); border-radius: 50%; background: var(--emerald); color: #fff; box-shadow: 0 0 18px rgba(22,163,74,.38); font-size: 21px; }
    .footer-logo-icon img { display: block; width: 26px; height: 26px; object-fit: contain; filter: brightness(0) invert(1); }
    .footer-logo-name { color: #fff; font-size: 1.2rem; font-weight: 700; }
    .footer-logo-name span { color: var(--emerald); }
    .footer-copy { max-width: 340px; margin: 18px 0 20px; color: rgba(255,255,255,.7); font-size: .9rem; line-height: 1.6; }
    .footer-socials { display: flex; align-items: center; gap: 10px; }
    .footer-socials a { display: grid; width: 35px; height: 35px; place-items: center; border-radius: 50%; background: rgba(255,255,255,.05); color: #fff; transition: background-color .3s ease, transform .3s ease; }
    .footer-socials svg { display: block; width: 16px; height: 16px; }
    .footer-socials a:hover { transform: translateY(-3px); background: var(--emerald); }
    .footer-col h3 { min-height: 0; margin: 5px 0 20px; color: #fff; font-family: var(--font-ui); font-size: .95rem; font-weight: 600; letter-spacing: 1px; text-transform: uppercase; }
    .footer-col ul { display: grid; gap: 12px; padding: 0; margin: 0; list-style: none; color: rgba(255,255,255,.7); font-size: .9rem; }
    .footer-col a { display: inline-block; transition: color .3s ease, transform .3s ease; }
    .footer-col a:hover { transform: translateX(5px); color: var(--emerald); }
    .footer-bottom { display: flex; justify-content: space-between; gap: 16px; margin-top: 40px; padding-top: 20px; border-top: 1px solid rgba(255,255,255,.1); color: rgba(255,255,255,.58); font-size: .8rem; }
    .footer-bottom .cookie-preferences-link { padding: 0; border: 0; background: none; color: inherit; font: inherit; text-decoration: underline; text-underline-offset: 3px; cursor: pointer; }
    .footer-bottom .cookie-preferences-link:hover { color: var(--emerald); }
    .cookie-banner { position: fixed; right: 20px; bottom: 20px; left: 20px; z-index: 9999; display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: center; gap: 16px; width: min(600px, calc(100% - 40px)); margin: 0 auto; padding: 20px; border: 1px solid rgba(2,44,34,.1); border-radius: 20px; background: #fff; box-shadow: 0 18px 55px rgba(0,0,0,.2); color: #26352b; font-family: var(--font-ui); }
    .cookie-banner[hidden] { display: none; }
    .cookie-banner-icon { font-size: 1.5rem; line-height: 1; }
    .cookie-banner-copy { margin: 0; font-size: .85rem; line-height: 1.6; }
    .cookie-banner-copy a { color: #147d3a; font-weight: 600; text-decoration: underline; text-underline-offset: 2px; }
    .cookie-banner-actions { display: flex; align-items: center; justify-content: flex-end; gap: 8px; }
    .cookie-banner-button { min-height: 38px; padding: 8px 15px; border: 1px solid transparent; border-radius: 999px; font: 500 .8rem var(--font-ui); white-space: nowrap; cursor: pointer; transition: background-color .2s ease, color .2s ease, transform .2s ease; }
    .cookie-banner-button:hover { transform: translateY(-1px); }
    .cookie-banner-reject { border-color: rgba(2,44,34,.14); background: #fff; color: var(--forest); }
    .cookie-banner-reject:hover { background: #eef5ec; }
    .cookie-banner-accept { background: var(--emerald); color: #fff; }
    .cookie-banner-accept:hover { background: #12843c; }
    @media (max-width: 1000px) {
      .site-header { width: calc(100% - 32px); margin: 16px auto; }
      .header-inner { min-height: 0; flex-wrap: wrap; gap: 10px 18px; padding: 10px 24px; }
      .logo-site, .social-links { flex: 1 1 0; }
      .main-nav { order: 3; flex: 1 0 100%; width: 100%; }
      .nav-links { justify-content: center; gap: 18px; }
      .nav-links a { font-size: .78rem; letter-spacing: 1.2px; }
      .recipe-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
    }
    @media (max-width: 900px) {
      .hero-banner { flex-direction: column; }
      .hero-content { width: 100%; flex-basis: auto; padding: 48px 42px 42px; }
      .hero-content h1 { font-size: clamp(2.7rem, 7vw, 3.4rem); }
      .hero-image-wrapper { flex: 0 0 320px; width: 100%; min-height: 320px; height: 320px; }
      .hero-image-wrapper::before { background: linear-gradient(180deg, var(--forest) 0%, rgba(var(--forest-rgb),.55) 13%, rgba(var(--forest-rgb),0) 58%); }
    }
    @media (max-width: 720px) {
      .site-header { width: calc(100% - 20px); margin: 10px auto; border-radius: 32px; }
      .header-inner { gap: 8px 14px; padding: 9px 15px; }
      .logo-icon-wrapper { flex-basis: 42px; }
      .nav-links { justify-content: center; gap: 14px; padding: 3px 0 5px; }
      .nav-links a { font-size: .7rem; letter-spacing: .9px; }
      .social-links { flex: 1 1 0; gap: 6px; }
      .social-links a { width: 33px; height: 33px; }
      .nav-links li { flex: 0 0 auto; }
      .hero-banner { width: calc(100% - 28px); min-height: 0; margin: 14px auto 28px; flex-direction: column; border-radius: 28px; }
      .hero-content { width: 100%; flex-basis: auto; padding: 38px 26px 34px; }
      .hero-content h1 { font-size: clamp(2.4rem, 9vw, 3.2rem); }
      .hero-desc { margin: 16px 0 25px; font-size: 1rem; }
      .hero-image-wrapper { flex: 0 0 290px; width: 100%; min-height: 290px; height: 290px; }
      .hero-image-wrapper::before { background: linear-gradient(180deg, var(--forest) 0%, rgba(var(--forest-rgb),.58) 12%, rgba(var(--forest-rgb),0) 58%); }
      .search-form { gap: 3px; padding: 6px 6px 6px 13px; }
      .search-icon { width: 34px; flex-basis: 34px; }
      .search-input { font-size: 12px; }
      .search-button { padding: 10px 13px; font-size: 11px; }
      .content { padding: 8px 18px 52px; }
      .category-bar { align-items: center; gap: 20px; margin: 24px 0 38px; padding: 12px 0; border-radius: 0; }
      .category-label { flex: 0 0 auto; font-size: 1.35rem; letter-spacing: .01em; }
      .category-buttons { width: 100%; grid-template-columns: repeat(2,minmax(0,1fr)); justify-content: center; gap: 18px; }
      .btn-category { width: clamp(138px,34vw,210px); }
      .section-heading { align-items: flex-start; flex-direction: column; gap: 12px; }
      .card-image { height: 175px; }
      .card-body { padding: 14px; }
      h3 { font-size: 16px; }
      .newsletter { align-items: flex-start; flex-direction: column; margin-top: 45px; padding: 24px; }
      .footer { padding: 56px 6% 24px; }
      .footer-main { grid-template-columns: 1fr; gap: 32px; }
      .footer-brand { grid-column: auto; }
      .footer-bottom { flex-direction: column; gap: 8px; }
      .cookie-banner { right: 12px; bottom: 12px; left: 12px; grid-template-columns: auto minmax(0, 1fr); gap: 10px 12px; width: calc(100% - 24px); padding: 17px; }
      .cookie-banner-actions { grid-column: 1 / -1; justify-content: flex-end; }
      .cookie-banner-button { flex: 1; }
    }
    @media (max-width: 420px) {
      .hero-content { padding: 32px 20px 28px; }
      .hero-content h1 { font-size: clamp(2.15rem, 10vw, 2.7rem); }
      .hero-image-wrapper { flex-basis: 240px; min-height: 240px; height: 240px; }
      .hero-image { min-height: 240px; }
      .header-inner { padding-right: 12px; padding-left: 12px; }
      .header-inner { padding-right: 14px; padding-left: 14px; }
      .main-nav { overflow: hidden; }
      .nav-links { justify-content: flex-start; gap: 18px; overflow-x: auto; padding: 4px 1px 8px; }
      .nav-links a { font-size: 11px; }
      .social-links { gap: 4px; }
      .social-links a { width: 32px; height: 32px; }
      .social-links svg { width: 18px; height: 18px; }
      .recipe-grid { grid-template-columns: 1fr; }
      .card-image { height: 220px; }
      .recipe-card h3 { min-height: 0; }
      .footer-main { grid-template-columns: 1fr; }
      .footer-brand { grid-column: auto; }
      .footer-bottom { flex-direction: column; }
    }
    @media (prefers-reduced-motion: reduce) { *, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; animation-duration: .01ms !important; animation-iteration-count: 1 !important; } }

    /* Ajustes comunes para cabecera, redes y navegación en pantallas táctiles. */
    .site-header { width: min(1200px, calc(100% - 32px)); }
    .header-inner { min-width: 0; }
    .social-links { flex: 0 0 auto; gap: 8px; }
    .social-links a, .footer-socials a { width: 42px; height: 42px; flex: 0 0 42px; }
    .social-links svg { width: 19px; height: 19px; }
    .social-links a { border-color: rgba(255,255,255,.16); background: rgba(255,255,255,.09); box-shadow: inset 0 1px 0 rgba(255,255,255,.08); }
    .social-links a:hover { transform: translateY(-2px); }
    .social-links a[href*="instagram"]:hover, .footer-socials a[href*="instagram"]:hover { border-color: #d64b78; background: #d64b78; }
    .social-links a[href*="tiktok"]:hover, .footer-socials a[href*="tiktok"]:hover { border-color: #111; background: #111; }
    .social-links a[href*="youtube"]:hover, .footer-socials a[href*="youtube"]:hover { border-color: #e62117; background: #e62117; }
    .social-links a[href*="pinterest"]:hover, .footer-socials a[href*="pinterest"]:hover { border-color: #bd081c; background: #bd081c; }
    .social-links a:focus-visible, .footer-socials a:focus-visible { outline: 3px solid #b9e7c3; outline-offset: 3px; }
    .footer-socials a { background: rgba(255,255,255,.09); }
    img, video, iframe { max-width: 100%; }
    @media (max-width: 720px) {
      .site-header { position: sticky; top: 6px; width: calc(100% - 16px); margin: 8px auto; border-radius: 23px; }
      .header-inner { display: grid; grid-template-columns: minmax(0, 1fr) auto; grid-template-rows: auto auto; gap: 7px 12px; padding: 9px 13px 8px; }
      .logo-site { grid-column: 1; grid-row: 1; min-width: 0; margin: 0; }
      .logo-icon-wrapper, .logo-circle { width: 42px; height: 42px; }
      .logo-icon-wrapper { flex-basis: 42px; }
      .logo-image { width: 24px; height: 24px; }
      .social-links { grid-column: 2; grid-row: 1; gap: 6px; }
      .social-links a, .footer-socials a { width: 42px; height: 42px; flex-basis: 42px; }
      .main-nav { grid-column: 1 / -1; grid-row: 2; order: 0; width: 100%; min-width: 0; overflow: visible; }
      .nav-links { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); justify-content: stretch; gap: 2px 6px; padding: 2px 0 0; overflow: visible; white-space: normal; }
      .nav-links li { min-width: 0; }
      .nav-links a { display: block; min-height: 34px; padding: 7px 2px; font-size: clamp(.59rem, 2.2vw, .7rem); letter-spacing: .25px; line-height: 1.25; text-align: center; white-space: normal; overflow-wrap: anywhere; }
      .nav-links a::after { bottom: 2px; right: 18%; left: 18%; }
      .footer-socials { flex-wrap: wrap; gap: 9px; }
      .footer { padding-top: 48px; }
      .footer-main { gap: 26px; }
      .footer-bottom { overflow-wrap: anywhere; }
      .category-landing { margin: 22px 14px 48px; padding: 38px 20px; border-radius: 24px; }
      .category-landing h1 { font-size: clamp(2.1rem, 9vw, 3.25rem); }
    }
    @media (max-width: 380px) {
      .header-inner { padding-right: 10px; padding-left: 10px; }
      .social-links { gap: 5px; }
      .social-links a { width: 40px; height: 40px; flex-basis: 40px; }
      .nav-links { column-gap: 3px; }
      .nav-links a { font-size: .59rem; }
      .cookie-banner { right: 8px; bottom: max(8px, env(safe-area-inset-bottom)); left: 8px; width: calc(100% - 16px); padding: 14px; }
    }
    @media (max-width: 600px) {
      .hero-banner { width: calc(100% - 24px); margin-top: 12px; border-radius: 23px; }
      .hero-content { padding: 31px 22px 28px; }
      .hero-content h1 { line-height: 1.06; }
      .hero-desc { margin-bottom: 20px; }
      .hero-image-wrapper { flex-basis: 220px; min-height: 220px; height: 220px; }
      .hero-image { min-height: 220px; }
      .search-form { min-height: 50px; height: auto; padding-left: 10px; }
      .search-button { padding: 10px 12px; }
      .content { padding-right: 14px; padding-left: 14px; }
      .category-bar { width: 100%; }
      .recipes-content { width: 100%; padding-right: 14px; padding-left: 14px; }
      .recipe-catalog .recipe-grid { gap: 16px; }
      .recipe-catalog .recipe-card { max-width: none; }
      .category-landing { max-width: none; }
      .legal-container { overflow-wrap: anywhere; }
    }
    @media (max-width: 360px) {
      .site-header { width: calc(100% - 12px); }
      .header-inner { column-gap: 8px; }
      .social-links { gap: 4px; }
      .social-links a { width: 38px; height: 38px; flex-basis: 38px; }
      .nav-links { column-gap: 1px; }
      .nav-links a { font-size: .56rem; }
      .hero-content { padding-right: 17px; padding-left: 17px; }
      .search-form { gap: 2px; }
      .search-button { padding-inline: 9px; font-size: .72rem; }
    }

/* Footer editorial compartido */
.site-footer {
  position: relative;
  overflow: hidden;
  padding: clamp(52px,7vw,84px) max(5%,calc((100% - 1320px)/2)) 26px;
  border-top: 1px solid rgba(255,255,255,.09);
  background: linear-gradient(180deg,#071a12 0%,#040f0a 100%);
  color: rgba(255,255,255,.74);
}
.gourmet-body .site-footer { background: linear-gradient(180deg,#10100f 0%,#080808 100%); }
.footer-container { width: 100%; max-width: 1320px; margin-inline: auto; }
.site-footer .footer-main { grid-template-columns: minmax(240px,1.65fr) repeat(3,minmax(145px,1fr)); gap: clamp(26px,4.2vw,62px); padding-bottom: 38px; }
.site-footer .footer-brand { min-width: 0; }
.site-footer .footer-brand-link { gap: 13px; text-decoration: none; }
.site-footer .footer-logo-icon { width: 50px; height: 50px; flex-basis: 50px; border-color: rgba(197,160,89,.55); background: linear-gradient(145deg,#183d2d,#0d241a); box-shadow: 0 0 24px rgba(197,160,89,.12); }
.site-footer .footer-logo-icon img { width: 31px; height: 31px; }
.site-footer .footer-logo-name { font-size: 1.22rem; letter-spacing: -.035em; }
.site-footer .footer-logo-name span { color: #d0ad68; }
.site-footer .footer-copy { max-width: 340px; margin: 20px 0 23px; color: rgba(255,255,255,.68); font-size: .89rem; line-height: 1.75; }
.site-footer .footer-col h3 { min-height: 0; margin: 4px 0 20px; color: #c5a059; font-family: var(--font-ui); font-size: .72rem; font-weight: 700; letter-spacing: 1.5px; line-height: 1.4; text-transform: uppercase; }
.site-footer .footer-col ul { gap: 13px; color: rgba(255,255,255,.73); font-size: .84rem; }
.site-footer .footer-col a { color: inherit; transition: color .3s ease,transform .3s ease; }
.site-footer .footer-col a:hover { transform: translateX(3px); color: #fff; }
.footer-socials { display: flex; align-items: center; gap: 9px; }
.social-icon-btn { display: inline-grid; width: 39px; height: 39px; flex: 0 0 39px; place-items: center; border: 1px solid rgba(255,255,255,.13); border-radius: 50%; background: rgba(255,255,255,.045); color: rgba(255,255,255,.82); transition: transform .25s ease,border-color .25s ease,background .25s ease,color .25s ease,box-shadow .25s ease; }
.social-icon-btn:hover { transform: translateY(-3px); border-color: rgba(197,160,89,.75); background: rgba(197,160,89,.17); color: #f3d28e; box-shadow: 0 0 18px rgba(197,160,89,.22); }
.social-icon-btn:focus-visible,.site-footer a:focus-visible,.site-footer button:focus-visible { outline: 2px solid #d7b66c; outline-offset: 3px; }
.social-icon-btn svg { display: block; width: 17px; height: 17px; fill: none; stroke: currentColor; stroke-width: 1.7; stroke-linecap: round; stroke-linejoin: round; }
.social-icon-btn .social-icon-fill { fill: currentColor; stroke: none; }
.site-footer .footer-bottom { display: flex; align-items: center; justify-content: space-between; gap: 14px 24px; margin-top: 0; padding-top: 21px; border-top: 1px solid rgba(255,255,255,.09); color: rgba(255,255,255,.5); font-size: .74rem; line-height: 1.6; }
.footer-dedication { color: rgba(255,255,255,.62); text-align: center; }
.site-footer .cookie-preferences-link { color: rgba(255,255,255,.68); }
.site-footer .cookie-preferences-link:hover { color: #e3c27d; }
@media (max-width: 980px) {
  .site-footer .footer-main { grid-template-columns: minmax(220px,1.4fr) repeat(2,minmax(160px,1fr)); }
  .site-footer .footer-brand { grid-column: 1 / -1; }
}
@media (max-width: 640px) {
  .site-footer { padding: 48px 22px 22px; }
  .site-footer .footer-main { grid-template-columns: repeat(2,minmax(0,1fr)); gap: 30px 20px; padding-bottom: 30px; }
  .site-footer .footer-brand { grid-column: 1 / -1; }
  .site-footer .footer-copy { max-width: 38ch; }
  .site-footer .footer-col h3 { margin-bottom: 14px; font-size: .66rem; }
  .site-footer .footer-col ul { gap: 11px; font-size: .79rem; }
  .site-footer .footer-bottom { align-items: flex-start; flex-direction: column; gap: 7px; }
  .footer-dedication { text-align: left; }
}
.site-footer .footer-socials a:hover { border-color: rgba(197,160,89,.75); background: rgba(197,160,89,.17); color: #f3d28e; box-shadow: 0 0 18px rgba(197,160,89,.22); }
.site-footer { margin-top: clamp(56px,8vw,104px); }
.site-footer .footer-logo-name { font-family: "DM Serif Display", Georgia, serif; font-size: 1.48rem; font-weight: 400; letter-spacing: .005em; line-height: 1; }
.site-footer .footer-logo-name span { margin-left: 3px; color: #d0ad68; }
.site-footer .footer-main { align-items: start; }
.site-footer .footer-col ul { line-height: 1.55; }
@media (max-width:640px) { .site-footer .footer-logo-name { font-size: 1.38rem; } }

/* Footer simplificado: marca más las dos columnas alineadas con la navegación superior. */
.site-footer .footer-main { grid-template-columns: minmax(250px,1.55fr) repeat(2,minmax(180px,1fr)); gap: clamp(30px,6vw,88px); }
.site-footer .footer-logo-icon { border-color: rgba(22,163,74,.68); background: #16a34a; box-shadow: 0 0 18px rgba(22,163,74,.35); }
.site-footer .footer-logo-icon img { filter: brightness(0) invert(1) drop-shadow(0 0 7px rgba(46,204,113,.42)); }
.site-footer .footer-logo-name { color: #16a34a; font-family: var(--font-ui); font-size: 1.22rem; font-weight: 700; letter-spacing: -.035em; text-shadow: 0 0 10px rgba(46,204,113,.4),0 0 20px rgba(46,204,113,.2); filter: drop-shadow(0 0 6px rgba(46,204,113,.18)); }
.site-footer .footer-logo-name span { margin-left: 3px; color: #16a34a; }
@media (max-width:980px) { .site-footer .footer-main { grid-template-columns: repeat(2,minmax(160px,1fr)); } .site-footer .footer-brand { grid-column: 1 / -1; } }

/* Formulario editorial para compartir recetas desde el inicio. */
.submit-recipe-section { position: relative; isolation: isolate; width: min(1200px,calc(100% - 40px)); margin: clamp(58px,8vw,100px) auto 0; padding: clamp(30px,5vw,62px); overflow: hidden; border: 1px solid rgba(46,204,113,.25); border-radius: 28px; background: radial-gradient(ellipse at 88% 8%,rgba(22,163,74,.16),transparent 35%),linear-gradient(140deg,#0b2118,#07130e 72%); color: #f5f5ef; box-shadow: 0 25px 70px rgba(4,25,15,.2),inset 0 1px rgba(255,255,255,.06); }
.submit-recipe-section::before { position:absolute; z-index:-1; top:-140px; right:-90px; width:330px; height:330px; border:1px solid rgba(197,160,89,.13); border-radius:50%; content:""; box-shadow:0 0 0 32px rgba(197,160,89,.025),0 0 0 66px rgba(197,160,89,.018); pointer-events:none; }
.submit-recipe-inner { width:min(100%,980px); margin:0 auto; }
.submit-recipe-intro { max-width:790px; }
.submit-recipe-eyebrow { margin:0 0 12px; color:#d2b46f; font:700 .72rem/1.4 var(--font-ui); letter-spacing:.19em; }
.submit-recipe-intro h2 { max-width:24ch; margin:0; color:#fffdf5; font:700 clamp(2rem,4.3vw,3.35rem)/1.08 var(--font-display); letter-spacing:-.045em; }
.submit-recipe-lead { max-width:61ch; margin:17px 0 0; color:rgba(244,247,239,.75); font:400 .96rem/1.75 var(--font-ui); }
.submit-recipe-toggle { display:inline-flex; min-height:52px; align-items:center; gap:12px; margin-top:25px; padding:0 21px; border:1px solid rgba(197,160,89,.68); border-radius:999px; background:linear-gradient(120deg,#1a4932,#123625); color:#fff9e9; font:600 .84rem/1 var(--font-ui); cursor:pointer; box-shadow:0 10px 26px rgba(0,0,0,.2),inset 0 1px rgba(255,255,255,.1); transition:transform .22s ease,border-color .22s ease,background .22s ease,box-shadow .22s ease; }
.submit-recipe-toggle:hover { transform:translateY(-2px); border-color:#e5c77c; background:linear-gradient(120deg,#23623e,#16452f); box-shadow:0 13px 30px rgba(0,0,0,.24),0 0 20px rgba(46,204,113,.16); }
.submit-recipe-toggle svg { width:17px; height:17px; fill:none; stroke:currentColor; stroke-width:1.8; stroke-linecap:round; stroke-linejoin:round; transition:transform .25s ease; }
.submit-recipe-toggle[aria-expanded="true"] svg { transform:rotate(180deg); }
.submit-recipe-toggle:focus-visible,.recipe-form-submit:focus-visible { outline:3px solid #2ecc71; outline-offset:3px; }
.recipe-form-container { display:grid; grid-template-rows:0fr; margin-top:0; opacity:0; visibility:hidden; transition:grid-template-rows .55s ease,opacity .32s ease,margin-top .35s ease,visibility .4s ease; }
.recipe-form-container.is-open { grid-template-rows:1fr; margin-top:34px; opacity:1; visibility:visible; }
.recipe-form-clip { min-height:0; overflow:hidden; }
.recipe-submission-form { display:grid; gap:17px; }
.recipe-form-card { padding:clamp(19px,3vw,29px); border:1px solid rgba(255,255,255,.13); border-radius:20px; background:linear-gradient(140deg,rgba(255,255,255,.075),rgba(255,255,255,.035)); box-shadow:inset 0 1px rgba(255,255,255,.045),0 12px 30px rgba(0,0,0,.13); backdrop-filter:blur(12px); }
.recipe-form-card-heading { display:flex; align-items:center; gap:13px; margin:0 0 22px; }
.recipe-form-card-heading>span { display:grid; width:35px; height:35px; flex:0 0 35px; place-items:center; border:1px solid rgba(46,204,113,.35); border-radius:50%; background:rgba(46,204,113,.09); color:#74e69b; font:600 .68rem/1 var(--font-ui); }
.recipe-form-card-heading p { margin:0 0 3px; color:#cfb775; font:600 .63rem/1.4 var(--font-ui); letter-spacing:.12em; text-transform:uppercase; }
.recipe-form-card-heading h3 { min-height:0; margin:0; color:#fffdf5; font:600 1.13rem/1.3 var(--font-display); }
.recipe-form-grid { display:grid; gap:17px; }
.recipe-form-grid-two { grid-template-columns:repeat(2,minmax(0,1fr)); }
.recipe-field { display:grid; min-width:0; gap:8px; color:rgba(255,255,255,.83); font:500 .76rem/1.4 var(--font-ui); }
.recipe-field>span b { color:#73e39a; }
.recipe-field small { color:rgba(255,255,255,.52); font-size:.69rem; font-weight:400; }
.recipe-field-wide { grid-column:1/-1; }
.recipe-field input,.recipe-field select,.recipe-field textarea { width:100%; min-width:0; border:1px solid rgba(255,255,255,.15); border-radius:11px; outline:0; background:rgba(4,15,10,.58); color:#fff; font:400 .83rem/1.55 var(--font-ui); transition:border-color .2s ease,box-shadow .2s ease,background .2s ease; }
.recipe-field input,.recipe-field select { min-height:48px; padding:0 14px; }
.recipe-field textarea { min-height:105px; padding:12px 14px; resize:vertical; }
.recipe-field textarea[name="instructions"] { min-height:165px; }
.recipe-field input::placeholder,.recipe-field textarea::placeholder { color:rgba(239,244,236,.4); }
.recipe-field select { color-scheme:dark; }
.recipe-field input:focus,.recipe-field select:focus,.recipe-field textarea:focus { border-color:#2ecc71; background:rgba(4,15,10,.8); box-shadow:0 0 0 3px rgba(46,204,113,.13),0 0 16px rgba(46,204,113,.11); }
.recipe-consent { display:flex; align-items:flex-start; gap:13px; color:rgba(255,255,255,.76); font:400 .77rem/1.7 var(--font-ui); cursor:pointer; }
.recipe-consent input { width:19px; height:19px; flex:0 0 19px; margin:2px 0 0; accent-color:#16a34a; }
.recipe-form-submit-row { display:flex; align-items:center; flex-wrap:wrap; gap:14px 20px; padding-top:3px; }
.recipe-form-submit { display:inline-flex; min-height:50px; align-items:center; justify-content:center; gap:10px; padding:0 20px; border:1px solid rgba(197,160,89,.7); border-radius:999px; background:linear-gradient(120deg,#1b8d4b,#116b39); color:#fff; font:650 .81rem/1 var(--font-ui); cursor:pointer; box-shadow:0 9px 22px rgba(0,0,0,.2); transition:transform .2s ease,filter .2s ease,box-shadow .2s ease; }
.recipe-form-submit:hover { transform:translateY(-2px); filter:brightness(1.09); box-shadow:0 11px 25px rgba(0,0,0,.24),0 0 18px rgba(46,204,113,.16); }
.recipe-form-submit-row .recipe-form-note { margin:0; color:rgba(255,255,255,.5); font:400 .7rem/1.5 var(--font-ui); }
.recipe-form-status { margin:0; padding:14px 16px; border:1px solid rgba(226,190,111,.3); border-radius:12px; background:rgba(197,160,89,.09); color:#f1dfb4; font:.8rem/1.65 var(--font-ui); }
.recipe-form-status[hidden] { display:none; }
@media (max-width:700px) { .submit-recipe-section { width:calc(100% - 28px); padding:30px 20px; border-radius:22px; }.submit-recipe-intro h2 { font-size:clamp(1.9rem,8vw,2.65rem); }.submit-recipe-lead { font-size:.85rem; }.recipe-form-grid-two { grid-template-columns:minmax(0,1fr); gap:14px; }.recipe-field-wide { grid-column:auto; }.recipe-form-card { padding:19px 16px; }.recipe-form-submit-row { align-items:flex-start; flex-direction:column; }.recipe-form-submit { width:100%; } }
@media (prefers-reduced-motion:reduce) { .submit-recipe-toggle,.submit-recipe-toggle svg,.recipe-form-container,.recipe-field input,.recipe-field select,.recipe-field textarea,.recipe-form-submit { transition:none; } }

.submit-recipe-section-name { margin:0 0 10px; color:#8fe3ad; font:600 .68rem/1.4 var(--font-ui); letter-spacing:.12em; text-transform:uppercase; }

/* Hero de inicio: contenido abierto con fotografía destacada en una esquina. */
.hero-banner { position:relative; display:block; width:100%; max-width:none; min-height:470px; margin:20px 0 40px; overflow:hidden; border:0; border-radius:0; background:linear-gradient(110deg,#022c22 0%,#073c2c 65%,#0b4934 100%); box-shadow:none; isolation:isolate; }
.hero-image-wrapper { position:absolute; z-index:0; top:0; right:0; bottom:0; left:auto; width:min(46%,680px); height:100%; min-height:0; overflow:hidden; background:transparent; }
.hero-image-wrapper::before { background:linear-gradient(90deg,#073c2c 0%,rgba(7,60,44,.72) 13%,rgba(7,60,44,.2) 42%,rgba(7,60,44,0) 72%),linear-gradient(0deg,#073c2c 0%,rgba(7,60,44,.12) 22%,transparent 52%),linear-gradient(180deg,#073c2c 0%,rgba(7,60,44,.08) 20%,transparent 48%); }
.hero-image { object-position:center; }
.hero-content { width:min(100%,1320px); min-height:470px; margin:0 auto; padding:clamp(58px,8vw,96px) clamp(26px,6vw,82px); background:transparent; }
.hero-content h1 { max-width:650px; font-size:clamp(3rem,5.4vw,5rem); text-wrap:balance; text-shadow:0 3px 24px rgba(0,0,0,.25); }
.hero-desc { max-width:560px; color:rgba(255,255,255,.88); text-shadow:0 2px 12px rgba(0,0,0,.3); }
.search-form { position:relative; z-index:4; border:1px solid rgba(255,255,255,.72); background:rgba(255,255,255,.95); box-shadow:0 14px 38px rgba(0,0,0,.22); }
.home-recipe-suggestions { position:absolute; top:calc(100% + 10px); right:0; left:0; z-index:20; max-height:310px; overflow-y:auto; margin:0; padding:7px; border:1px solid rgba(2,44,34,.1); border-radius:16px; background:#fff; box-shadow:0 16px 38px rgba(0,0,0,.24); color:var(--forest); list-style:none; }
.home-recipe-suggestions[hidden] { display:none; }
.home-recipe-suggestions li+li { border-top:1px solid rgba(2,44,34,.07); }
.home-recipe-suggestions a { display:block; padding:11px 13px; border-radius:10px; color:var(--forest); font-size:.86rem; font-weight:500; text-decoration:none; transition:background-color .18s ease,color .18s ease; }
.home-recipe-suggestions a:hover,.home-recipe-suggestions a:focus-visible,.home-recipe-suggestions a[aria-selected="true"] { outline:0; background:rgba(22,163,74,.1); color:var(--emerald); }
@media (max-width:900px) {
  .hero-banner { min-height:490px; }
  .hero-content { width:100%; min-height:490px; padding:72px clamp(28px,7vw,68px); background:transparent; }
  .hero-content h1,.hero-desc,.search-form { max-width:min(65%,560px); }
  .hero-image-wrapper { position:absolute; top:0; right:0; bottom:0; left:auto; width:48%; height:100%; min-height:0; }
  .hero-image-wrapper::before { background:linear-gradient(90deg,#073c2c 0%,rgba(7,60,44,.68) 18%,rgba(7,60,44,.12) 52%,transparent 82%),linear-gradient(0deg,#073c2c 0%,rgba(7,60,44,.18) 24%,transparent 58%),linear-gradient(180deg,#073c2c 0%,rgba(7,60,44,.08) 18%,transparent 46%); }
}
@media (max-width:720px) {
  .hero-banner { width:100%; min-height:590px; margin:14px 0 28px; flex-direction:initial; border:0; border-radius:0; }
  .hero-content { width:100%; min-height:590px; flex-basis:auto; justify-content:flex-start; padding:55px 26px 270px; }
  .hero-content h1 { max-width:620px; font-size:clamp(2.55rem,10vw,3.5rem); }
  .hero-desc,.search-form { max-width:560px; }
  .hero-image-wrapper { top:auto; right:0; bottom:0; left:auto; width:min(78%,430px); height:255px; min-height:0; flex-basis:auto; }
  .hero-image-wrapper::before { background:linear-gradient(180deg,#073c2c 0%,rgba(7,60,44,.72) 14%,rgba(7,60,44,.12) 43%,transparent 72%),linear-gradient(90deg,#073c2c 0%,rgba(7,60,44,.12) 28%,transparent 62%),linear-gradient(0deg,#073c2c 0%,rgba(7,60,44,.08) 22%,transparent 54%); }
}
@media (max-width:420px) {
  .hero-banner,.hero-content { min-height:570px; }
  .hero-content { padding:48px 21px 245px; }
  .hero-image-wrapper { right:0; bottom:0; left:auto; width:86%; height:235px; flex-basis:auto; min-height:0; }
}
@media (max-width:820px) {
  .category-buttons { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .btn-category { width:clamp(145px,32vw,220px); }
}

/* Paleta salvia limitada al inicio, catálogo general y atlas culinario. */
.sage-theme {
  --page:#C4D8C5;
  --page-deep:#B3CCB7;
  --emerald:#2F6545;
  --green:#2F6545;
  --green-dark:#204B32;
  --forest:#173D2A;
  --forest-rgb:23,61,42;
}
html.sage-theme { background:var(--page); }
.sage-theme .site-header { border-color:rgba(255,255,255,.12); background:rgba(var(--forest-rgb),.9); box-shadow:0 10px 30px rgba(0,0,0,.16); }
.sage-theme .nav-links a { color:rgba(255,255,255,.84); font-weight:400; }
.sage-theme .nav-links a::after { height:1px; background:#fff; }
.sage-theme .nav-links a:hover,.sage-theme .nav-links a.active { color:#fff; }
.sage-theme .social-links a { border-color:rgba(255,255,255,.12); background:rgba(255,255,255,.1); color:#fff; }
.sage-theme .social-links a:hover { border-color:#2F6545; background:#2F6545; color:#fff; }
.sage-theme .logo-circle { background:#2F6545; box-shadow:0 4px 10px rgba(47,101,69,.28); }
.sage-theme .logo-glow { background:radial-gradient(circle,rgba(47,101,69,.32) 0%,rgba(47,101,69,0) 72%); }
.sage-theme .site-footer { border-top-color:rgba(255,255,255,.12); background:linear-gradient(180deg,#173D2A 0%,#0d281b 100%); color:rgba(255,255,255,.76); }
.sage-theme .site-footer .footer-copy { color:rgba(255,255,255,.68); }
.sage-theme .site-footer .footer-col h3 { color:#c5a059; }
.sage-theme .site-footer .footer-col ul,.sage-theme .site-footer .footer-dedication { color:rgba(255,255,255,.7); }
.sage-theme .site-footer .footer-col a,.sage-theme .site-footer .cookie-preferences-link { color:rgba(255,255,255,.78); }
.sage-theme .site-footer .footer-col a:hover,.sage-theme .site-footer .cookie-preferences-link:hover { color:#fff; }
.sage-theme .site-footer .footer-bottom { border-top-color:rgba(255,255,255,.12); color:rgba(255,255,255,.55); }
.sage-theme .site-footer .footer-logo-icon { border-color:rgba(197,160,89,.55); background:linear-gradient(145deg,#28543a,#173d2a); box-shadow:0 0 20px rgba(197,160,89,.14); }
.sage-theme .site-footer .footer-logo-name,.sage-theme .site-footer .footer-logo-name span { color:#8cc99d; text-shadow:0 0 10px rgba(47,101,69,.32); filter:none; }
.sage-theme .social-icon-btn { border-color:rgba(255,255,255,.15); background:rgba(255,255,255,.05); color:rgba(255,255,255,.84); }
.sage-theme .social-icon-btn:hover { border-color:rgba(197,160,89,.75); background:rgba(197,160,89,.17); color:#f3d28e; box-shadow:0 0 18px rgba(197,160,89,.22); }
.sage-theme .social-icon-btn:focus-visible,.sage-theme .site-footer a:focus-visible,.sage-theme .site-footer button:focus-visible { outline-color:#d7b66c; }
.sage-theme .search-button { background:#2F6545; }
.sage-theme .search-button:hover { box-shadow:0 8px 20px rgba(47,101,69,.25); }
.sage-theme .btn-category:hover { box-shadow:0 20px 38px rgba(32,75,50,.24),0 0 0 5px rgba(213,181,109,.16),0 0 24px rgba(47,101,69,.24); }
.sage-theme .btn-category span { text-shadow:0 0 7px rgba(47,101,69,.9),0 0 17px rgba(47,101,69,.68),0 2px 8px rgba(0,0,0,.85); }
.sage-theme .recipes-kicker,.sage-theme .shelf-kicker,.sage-theme .category-browser-kicker { color:#2F6545; }
.sage-theme .advanced-search-bar:focus-within { border-color:rgba(47,101,69,.55); box-shadow:0 12px 30px rgba(22,53,35,.1),0 0 0 3px rgba(47,101,69,.12); }
.sage-theme .filters-toggle:hover,.sage-theme .filters-toggle[aria-expanded="true"],.sage-theme .filter-chip:hover,.sage-theme .filter-chip[aria-pressed="true"],.sage-theme .category-browser-reset:hover,.sage-theme .category-browser-reset[aria-pressed="true"],.sage-theme .category-choice[aria-pressed="true"] { border-color:#2F6545; background:#2F6545; }
.sage-theme .category-choice:hover { border-color:#9fbea6; color:#204B32; }
.sage-theme .atlas-country-shape.is-available { fill:#7ea98a; }
.sage-theme .atlas-country-shape.is-available:hover,.sage-theme .atlas-country-shape.is-available:focus-visible { fill:#4f805e; stroke:#204B32; }
.sage-theme .atlas-country-shape.is-selected { fill:#245c3a; stroke:#2F6545; }
.sage-theme .atlas-country-shape:focus-visible { stroke:#2F6545; }
.sage-theme .atlas-legend-dot.is-selected { border-color:#2F6545; }
.sage-theme .category-bar { gap:clamp(58px,6vw,76px); }
.sage-theme .category-buttons { column-gap:clamp(24px,3.6vw,46px); }
.sage-theme .hero-banner { background:var(--page); color:var(--ink); }
.sage-theme .hero-content { color:var(--ink); }
.sage-theme .hero-badge { color:#45664d; }
.sage-theme .hero-badge::before { background:#2F6545; }
.sage-theme .hero-content h1 { color:#173D2A; text-shadow:none; }
.sage-theme .hero-content h1 .highlight { color:#2F6545; }
.sage-theme .hero-desc { color:#435b49; text-shadow:none; }
.sage-theme .hero-desc strong { color:#173D2A; }
.sage-theme .hero-image-wrapper { background:var(--page); }
.sage-theme .hero-image-wrapper::before { background:linear-gradient(90deg,var(--page) 0%,rgba(196,216,197,.82) 13%,rgba(196,216,197,.42) 40%,rgba(196,216,197,0) 76%),linear-gradient(0deg,var(--page) 0%,rgba(196,216,197,.12) 20%,transparent 52%),linear-gradient(180deg,var(--page) 0%,rgba(196,216,197,.08) 20%,transparent 48%); }
@media (max-width:900px) {
  .sage-theme .hero-image-wrapper::before { background:linear-gradient(90deg,var(--page) 0%,rgba(196,216,197,.82) 18%,rgba(196,216,197,.32) 52%,transparent 82%),linear-gradient(0deg,var(--page) 0%,rgba(196,216,197,.16) 24%,transparent 58%),linear-gradient(180deg,var(--page) 0%,rgba(196,216,197,.08) 18%,transparent 46%); }
}
@media (max-width:720px) {
  .sage-theme .hero-image-wrapper::before { background:linear-gradient(180deg,var(--page) 0%,rgba(196,216,197,.8) 14%,rgba(196,216,197,.16) 43%,transparent 72%),linear-gradient(90deg,var(--page) 0%,rgba(196,216,197,.14) 28%,transparent 62%),linear-gradient(0deg,var(--page) 0%,rgba(196,216,197,.08) 22%,transparent 54%); }
  .sage-theme .category-bar { gap:46px; }
}

/* Navegación y redes unificadas en todas las páginas. */
@media (min-width:1001px) {
  .header-inner { display:grid; grid-template-columns:minmax(0,1fr) auto minmax(0,1fr); }
  .logo-site { flex:none; justify-self:start; }
  .main-nav { justify-self:center; }
  .social-links { flex:none; justify-self:end; }
}
.nav-links { justify-content:center; }
.social-links a { width:32px; height:32px; flex-basis:32px; }
.social-links svg { width:15px; height:15px; }
.social-links a:hover,.social-links a[href*="instagram"]:hover,.social-links a[href*="tiktok"]:hover,.social-links a[href*="youtube"]:hover,.social-links a[href*="pinterest"]:hover,
.footer-socials a:hover,.footer-socials a[href*="instagram"]:hover,.footer-socials a[href*="tiktok"]:hover,.footer-socials a[href*="youtube"]:hover,.footer-socials a[href*="pinterest"]:hover {
  border-color:#2F6545; background:#2F6545; color:#fff; box-shadow:0 0 16px rgba(47,101,69,.28);
}
@media (max-width:1000px) {
  .header-inner { display:grid; grid-template-columns:minmax(0,1fr) auto; grid-template-rows:auto auto; align-items:center; }
  .logo-site { grid-column:1; grid-row:1; justify-self:start; flex:none; }
  .social-links { grid-column:2; grid-row:1; justify-self:end; flex:none; }
  .main-nav { grid-column:1/-1; grid-row:2; justify-self:stretch; order:0; width:100%; min-width:0; }
  .nav-links { justify-content:center; }
}
@media (max-width:600px) {
  .nav-links { display:flex; flex-wrap:wrap; justify-content:center; gap:2px 12px; overflow:visible; white-space:normal; }
  .nav-links li { flex:0 0 auto; }
  .nav-links a { text-align:center; }
}

/* Menú desplegable para teléfonos: mantiene logo, páginas y redes en un panel. */
.mobile-menu-panel { display:contents; }
.menu-toggle { display:none; }
@keyframes mobile-menu-enter { from { opacity:0; transform:translateY(-7px); } to { opacity:1; transform:translateY(0); } }
@media (max-width:760px) {
  .site-header { top:8px; width:calc(100% - 24px); margin:10px auto; border-radius:22px; }
  .header-inner { display:grid; grid-template-columns:minmax(0,1fr) 42px; grid-template-rows:auto; gap:0 10px; padding:10px 14px; }
  .header-inner > .logo-site,.header-inner > .brand { grid-column:1; grid-row:1; justify-self:start; }
  .menu-toggle { position:relative; display:grid; width:40px; height:40px; grid-column:2; grid-row:1; place-content:center; gap:5px; padding:0; border:1px solid rgba(255,255,255,.23); border-radius:13px; background:rgba(255,255,255,.09); color:#fff; cursor:pointer; transition:background-color .2s ease,border-color .2s ease,transform .2s ease; }
  .menu-toggle span { display:block; width:18px; height:2px; border-radius:2px; background:currentColor; transition:transform .22s ease,opacity .18s ease; }
  .menu-toggle:hover,.menu-toggle:focus-visible { border-color:rgba(255,255,255,.5); background:rgba(255,255,255,.16); }
  .menu-toggle:focus-visible { outline:2px solid #8cc99d; outline-offset:3px; }
  .mobile-menu-panel { display:none; grid-column:1/-1; grid-row:2; width:100%; margin-top:10px; padding:12px 0 2px; border-top:1px solid rgba(255,255,255,.13); }
  .site-header.is-menu-open .mobile-menu-panel { display:grid; gap:8px; animation:mobile-menu-enter .22s ease both; }
  .site-header.is-menu-open .menu-toggle span:first-child { transform:translateY(7px) rotate(45deg); }
  .site-header.is-menu-open .menu-toggle span:nth-child(2) { opacity:0; }
  .site-header.is-menu-open .menu-toggle span:last-child { transform:translateY(-7px) rotate(-45deg); }
  .mobile-menu-panel .main-nav { display:block; order:initial; width:100%; min-width:0; margin:0; overflow:visible; }
  .mobile-menu-panel .nav-links { display:grid; width:100%; grid-template-columns:1fr; justify-content:stretch; gap:3px; padding:0; overflow:visible; }
  .mobile-menu-panel .nav-links li { min-width:0; }
  .mobile-menu-panel .nav-links a { display:flex; min-height:42px; align-items:center; justify-content:center; padding:9px 12px; border-radius:12px; font-size:.78rem; letter-spacing:1px; line-height:1.3; text-align:center; }
  .mobile-menu-panel .nav-links a:hover,.mobile-menu-panel .nav-links a.active { background:rgba(255,255,255,.1); }
  .mobile-menu-panel .nav-links a::after { display:none; }
  .mobile-menu-panel .social-links { display:flex; width:100%; grid-column:auto; grid-row:auto; justify-content:center; gap:10px; margin:3px 0 1px; padding-top:10px; border-top:1px solid rgba(255,255,255,.1); }
  .mobile-menu-panel .social-links a { width:34px; height:34px; flex-basis:34px; }
  .mobile-menu-panel .social-links svg { width:16px; height:16px; }
  .sage-theme .menu-toggle { border-color:rgba(255,255,255,.23); background:rgba(255,255,255,.09); color:#fff; }
}
@media (prefers-reduced-motion:reduce) { .site-header.is-menu-open .mobile-menu-panel { animation:none; } }
.home-recipe-collections { display: grid; gap: 46px; margin: 14px 0 56px; }
.home-carousel { min-width: 0; }
.home-carousel-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin: 0 0 18px; }
.home-carousel-heading .section-kicker { margin-bottom: 5px; color: #a47b3e; }
.home-carousel-heading h2 { color: var(--forest); font-family: var(--font-display); font-size: clamp(1.45rem,2.8vw,2rem); letter-spacing: -.025em; }
.carousel-controls { display: flex; gap: 8px; flex: 0 0 auto; }
.carousel-controls button { display: grid; width: 42px; height: 42px; place-items: center; border: 1px solid rgba(2,44,34,.2); border-radius: 50%; background: rgba(255,255,255,.65); color: var(--forest); font-size: 1.6rem; line-height: 1; cursor: pointer; transition: color .2s, background .2s, transform .2s; }
.carousel-controls button:hover { transform: translateY(-2px); background: var(--forest); color: white; }
.carousel-controls button:focus-visible, .carousel-viewport:focus-visible { outline: 3px solid var(--emerald); outline-offset: 3px; }
.carousel-viewport { overflow: auto hidden; scrollbar-width: none; overscroll-behavior-x: contain; scroll-behavior: smooth; }
.carousel-viewport::-webkit-scrollbar { display: none; }
.carousel-track { display: flex; width: max-content; gap: 16px; padding: 4px 2px 16px; }
.recipe-card-mini { display: flex; width: clamp(260px,25vw,280px); flex: 0 0 clamp(260px,25vw,280px); flex-direction: column; overflow: hidden; border: 1px solid rgba(2,44,34,.12); border-radius: 18px; background: rgba(248,251,246,.92); box-shadow: 0 10px 28px rgba(20,55,37,.08); color: var(--ink); transition: transform .25s ease, box-shadow .25s ease; }
.recipe-card-mini:hover { transform: translateY(-4px); box-shadow: 0 16px 34px rgba(20,55,37,.15); }
.recipe-card-mini:focus-visible { outline: 3px solid var(--emerald); outline-offset: 3px; }
.recipe-card-mini-image { position: relative; height: 200px; margin: 9px 9px 0; overflow: hidden; border-radius: 14px; background: var(--page-deep); }
.recipe-card-mini-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.recipe-card-mini:hover img { transform: scale(1.045); }
.recipe-card-mini-time { position: absolute; top: 10px; left: 10px; padding: 6px 10px; border: 1px solid rgba(255,255,255,.3); border-radius: 999px; background: rgba(5,28,19,.78); color: #fff; font-size: .72rem; font-weight: 600; backdrop-filter: blur(8px); }
.recipe-card-mini-body { display: flex; flex: 1; flex-direction: column; align-items: flex-start; padding: 14px 15px 15px; }
.recipe-card-mini-body h3 { min-height: 0; margin: 0 0 4px; color: var(--forest); font: 700 1.02rem/1.3 var(--font-display); }
.recipe-card-mini-subtitle { margin: 0 0 13px; color: var(--muted); font-size: .76rem; }
.recipe-card-mini-link { margin-top: auto; color: var(--green); font-size: .78rem; font-weight: 700; }
.recipe-card-mini-link span { display: inline-block; transition: transform .2s; }
.recipe-card-mini:hover .recipe-card-mini-link span { transform: translate(3px,-2px); }
@media (max-width: 700px) { .home-recipe-collections { gap: 34px; margin-bottom: 42px; } .home-carousel-heading { align-items: center; } .home-carousel-heading h2 { font-size: 1.35rem; } .carousel-controls button { width: 38px; height: 38px; } .recipe-card-mini { width: 260px; flex-basis: 260px; } .recipe-card-mini-image { height: 185px; } }

/* Inicio: formulario y cierre aclarados para integrarse con el tema sage. */
.sage-theme .submit-recipe-section { border-color: rgba(22,102,61,.18); background: radial-gradient(ellipse at 88% 8%,rgba(197,160,89,.13),transparent 35%),linear-gradient(140deg,#edf4eb,#dfece0 72%); color: #20372a; box-shadow: 0 18px 46px rgba(30,67,40,.09),inset 0 1px rgba(255,255,255,.9); }
.sage-theme .submit-recipe-section::before { border-color: rgba(22,102,61,.13); box-shadow: 0 0 0 32px rgba(22,102,61,.025),0 0 0 66px rgba(197,160,89,.035); }
.sage-theme .submit-recipe-eyebrow { color: #99753c; }
.sage-theme .submit-recipe-section-name { color: #347650; }
.sage-theme .submit-recipe-intro h2 { color: #123d2a; }
.sage-theme .submit-recipe-lead { color: #536b59; }
.sage-theme .submit-recipe-toggle { border-color: rgba(22,102,61,.3); background: linear-gradient(120deg,#fffdf7,#eef5ed); color: #17452e; box-shadow: 0 8px 20px rgba(30,67,40,.1),inset 0 1px #fff; }
.sage-theme .submit-recipe-toggle:hover { border-color: #b29250; background: linear-gradient(120deg,#e8f2e8,#dcebdd); box-shadow: 0 11px 24px rgba(30,67,40,.14); }
.sage-theme .recipe-form-card { border-color: rgba(25,78,48,.12); background: rgba(255,255,255,.76); box-shadow: 0 8px 22px rgba(30,67,40,.06),inset 0 1px #fff; backdrop-filter: blur(10px); }
.sage-theme .recipe-form-card-heading>span { border-color: rgba(22,120,66,.22); background: rgba(22,163,74,.08); color: #247444; }
.sage-theme .recipe-form-card-heading p { color: #92713b; }
.sage-theme .recipe-form-card-heading h3 { color: #173d2a; }
.sage-theme .recipe-field { color: #365441; }
.sage-theme .recipe-field>span b { color: #168443; }
.sage-theme .recipe-field small { color: #78877a; }
.sage-theme .recipe-field input,.sage-theme .recipe-field select,.sage-theme .recipe-field textarea { border-color: rgba(29,74,46,.17); background: rgba(255,255,255,.85); color: #20372a; color-scheme: light; }
.sage-theme .recipe-field input::placeholder,.sage-theme .recipe-field textarea::placeholder { color: #87968a; }
.sage-theme .recipe-field input:focus,.sage-theme .recipe-field select:focus,.sage-theme .recipe-field textarea:focus { border-color: #279456; background: #fff; box-shadow: 0 0 0 3px rgba(46,204,113,.12),0 0 14px rgba(46,204,113,.08); }
.sage-theme .recipe-consent { color: #526b58; }
.sage-theme .recipe-form-submit-row .recipe-form-note { color: #718073; }
.sage-theme .recipe-form-status { border-color: rgba(160,123,51,.25); background: rgba(197,160,89,.1); color: #594a2d; }
.sage-theme .site-footer { border-top: 1px solid rgba(22,75,46,.12); background: linear-gradient(180deg,#d3e4d4 0%,#cbded0 100%); color: #405b48; }
.sage-theme .site-footer .footer-brand-link { color: #123d2a; }
.sage-theme .site-footer .footer-logo-icon { border-color: rgba(22,102,61,.22); background: #176b40; }
.sage-theme .site-footer .footer-logo-name,.sage-theme .site-footer .footer-logo-name span { color: #176b40; text-shadow: none; filter: none; }
.sage-theme .site-footer .footer-copy { color: #526b58; }
.sage-theme .site-footer .footer-col h3 { color: #8c6a33; }
.sage-theme .site-footer .footer-col ul,.sage-theme .site-footer .footer-col a { color: #526b58; }
.sage-theme .site-footer .footer-col a:hover { color: #176b40; }
.sage-theme .site-footer .footer-socials a { border: 1px solid rgba(22,102,61,.13); background: rgba(255,255,255,.48); color: #176b40; }
.sage-theme .site-footer .footer-socials a:hover { border-color: #176b40; background: #176b40; color: #fff; }
.sage-theme .site-footer .footer-bottom { border-color: rgba(22,75,46,.15); color: #718073; }
.sage-theme .site-footer .footer-dedication,.sage-theme .site-footer .cookie-preferences-link { color: #5c745f; }
.sage-theme .site-footer .cookie-preferences-link:hover { color: #176b40; }

/* Carruseles del inicio: misma tarjeta editorial del catálogo y jerarquía coherente. */
.home-carousel-heading > div:first-child { min-width: 0; }
.home-carousel-heading .section-kicker { margin: 0 0 5px; color: #9a773d; font-size: .68rem; letter-spacing: 1.5px; }
.home-carousel-heading h2 { margin: 0; color: var(--forest); font-family: var(--font-display); font-size: clamp(1.45rem,2.8vw,2rem); }
.home-carousel-description { max-width: 58ch; margin: 6px 0 0; color: #65776a; font-size: .87rem; line-height: 1.55; }
.recipe-card-mini { width: clamp(260px,25vw,280px); flex-basis: clamp(260px,25vw,280px); border-color: rgba(49,92,67,.1); border-radius: 19px; background: var(--paper); box-shadow: 0 7px 22px rgba(39,66,46,.045); }
.recipe-card-mini > a { display: block; height: 100%; color: inherit; }
.recipe-card-mini .card-image { height: 200px; margin: 0; border-radius: 0; }
.recipe-card-mini .card-body { display: flex; min-height: 203px; flex-direction: column; padding: 15px 16px 16px; }
.recipe-card-mini .card-tag { margin: 0 0 7px; color: var(--emerald); font-size: .67rem; letter-spacing: .5px; }
.recipe-card-mini .card-body h3 { display: -webkit-box; height: 2.9em; min-height: 0; overflow: hidden; margin: 0 0 10px; color: var(--forest); font-family: var(--font-ui); font-size: 1rem; font-weight: 600; line-height: 1.42; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.recipe-card-mini .card-description { display: -webkit-box; min-height: 2.8em; overflow: hidden; margin: 0 0 10px; color: #69796e; font-family: var(--font-ui); font-size: .75rem; line-height: 1.45; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.recipe-card-mini .recipe-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: auto; }
.recipe-card-mini .recipe-tags span { display: inline-flex; align-items: center; padding: 4px 8px; border-radius: 20px; font-family: var(--font-ui); font-size: .62rem; font-weight: 500; line-height: 1.35; white-space: nowrap; }
.recipe-card-mini .tag-origin { background: #e8f2eb; color: #145b35; }
.recipe-card-mini .tag-ingredient { background: #e9f4f0; color: #17634b; }
.recipe-card-mini .tag-meal { background: #f4f0e8; color: #75613c; }
.recipe-card-mini .tag-method { background: #edf1f3; color: #52636b; }
.recipe-card-mini .tag-type { background: #f0edf7; color: #62517e; }
.recipe-card-mini .tag-profile { background: #f6edf0; color: #805064; }
.recipe-card-mini-link { display: inline-block; margin-top: 11px; color: var(--green); font-size: .75rem; font-weight: 700; }
@media (max-width:700px) { .home-carousel-heading { align-items: flex-end; } .home-carousel-description { max-width: 38ch; font-size: .8rem; } .recipe-card-mini { width: 260px; flex-basis: 260px; } }
.home-recipe-collections .carousel-viewport { overflow: hidden; cursor: grab; touch-action: pan-y; }
.home-recipe-collections .carousel-viewport:active { cursor: grabbing; }
.home-recipe-collections .carousel-track { transition: none; will-change: transform; }
@media (prefers-reduced-motion: reduce) { .home-recipe-collections .carousel-track { transform: none !important; } }

.home-carousel-heading { align-items: flex-start; }
.home-carousel-heading .section-kicker { display: inline-flex; align-items: center; gap: 8px; margin: 0 0 10px; padding: 7px 12px; border: 1px solid rgba(157,121,57,.24); border-radius: 999px; background: linear-gradient(120deg,rgba(197,160,89,.12),rgba(22,163,74,.075)); box-shadow: inset 0 1px rgba(255,255,255,.7); color: #82612e; font-size: .66rem; font-weight: 700; letter-spacing: 1.35px; line-height: 1; }
.home-carousel-heading .section-kicker::before { width: 15px; height: 2px; flex: 0 0 15px; border-radius: 2px; background: #39905a; content: ''; }
.home-carousel-heading h2 { line-height: 1.15; }
.home-carousel-description { margin-top: 8px; }
.carousel-controls { padding-top: 4px; }
@media (max-width:700px) { .home-carousel-heading { align-items: flex-start; } .home-carousel-heading .section-kicker { max-width: 100%; font-size: .61rem; letter-spacing: 1px; } }
.recipe-card-mini-placeholder { position: relative; display: grid; place-items: center; isolation: isolate; overflow: hidden; }
.recipe-card-mini-placeholder::before { position: absolute; z-index: -1; width: 126px; height: 126px; border: 1px solid rgba(255,255,255,.36); border-radius: 50%; background: radial-gradient(circle,rgba(255,255,255,.18) 0 37%,transparent 38%); box-shadow: 0 0 0 13px rgba(255,255,255,.07),0 0 0 27px rgba(255,255,255,.045); content: ''; }
.recipe-placeholder-label { padding: 8px 12px; border: 1px solid rgba(255,255,255,.38); border-radius: 999px; background: rgba(15,42,29,.68); color: #fff; font: 600 .68rem/1.2 var(--font-ui); letter-spacing: .07em; text-transform: uppercase; backdrop-filter: blur(7px); }
.placeholder-easy { background: radial-gradient(ellipse at 30% 20%,rgba(255,255,255,.4),transparent 37%),linear-gradient(135deg,#a8c8a7,#4b825b); }
.placeholder-korean { background: radial-gradient(ellipse at 70% 25%,rgba(241,220,171,.58),transparent 35%),linear-gradient(135deg,#506c51,#183d36); }
.placeholder-halloween { background: radial-gradient(ellipse at 50% 48%,rgba(242,123,39,.7),transparent 36%),linear-gradient(135deg,#34243f,#170f24 72%); }
.placeholder-halloween::before { border-color: rgba(255,184,104,.5); box-shadow: 0 0 0 13px rgba(239,131,50,.15),0 0 0 27px rgba(255,255,255,.05); }
.recipe-card-mini .tag-upcoming { background: #f7eee0; color: #8a5c21; }
.recipe-card-mini.is-upcoming { border-style: dashed; border-color: rgba(157,121,57,.32); }
.recipe-card-mini.is-upcoming .recipe-card-mini-link { color: #8a6a36; font-size: .71rem; }

/* Acentos dorados con brillo LED para etiquetas y acciones de los carruseles. */
.home-carousel-heading .section-kicker { position: relative; isolation: isolate; overflow: visible; padding: 8px 14px; border: 1px solid rgba(180,139,59,.8); background: linear-gradient(110deg,#8d6a2e,#c3a058 48%,#e1c579 72%,#aa843c); color: #fffdf5; text-shadow: 0 0 7px rgba(255,238,182,.55); box-shadow: 0 0 0 1px rgba(197,160,89,.15),0 0 13px rgba(197,160,89,.34),0 4px 13px rgba(73,53,20,.14),inset 0 1px rgba(255,255,255,.35); animation: carouselGoldLed 3s ease-in-out infinite alternate; }
.home-carousel-heading .section-kicker::before { display: none; }
@keyframes carouselGoldLed { from { box-shadow: 0 0 0 1px rgba(197,160,89,.14),0 0 10px rgba(197,160,89,.25),0 4px 13px rgba(73,53,20,.12),inset 0 1px rgba(255,255,255,.35); } to { box-shadow: 0 0 0 1px rgba(197,160,89,.26),0 0 20px rgba(197,160,89,.52),0 5px 16px rgba(73,53,20,.16),inset 0 1px rgba(255,255,255,.48); } }
.recipe-card-mini .card-tag { display: inline-flex; align-self: flex-start; padding: 5px 9px; border: 1px solid rgba(185,145,67,.27); border-radius: 999px; background: linear-gradient(110deg,rgba(197,160,89,.14),rgba(238,224,185,.62)); color: #765a27; font-size: .62rem; letter-spacing: .55px; }
.recipe-card-mini-time { border-color: rgba(239,207,128,.65); background: rgba(27,35,27,.82); box-shadow: 0 0 12px rgba(197,160,89,.22); }
.recipe-card-mini-link { display: inline-flex; align-items: center; gap: 7px; padding: 8px 12px; border: 1px solid rgba(197,160,89,.58); border-radius: 999px; background: linear-gradient(110deg,#1d5b3b,#12462e); color: #fff9e9; box-shadow: 0 3px 12px rgba(20,70,44,.15),inset 0 1px rgba(255,255,255,.14); transition: transform .2s ease,background .2s ease,box-shadow .2s ease; }
.recipe-card-mini-link span { color: #f0cf82; }
.recipe-card-mini:hover .recipe-card-mini-link { transform: translateY(-1px); border-color: #d7b86d; background: linear-gradient(110deg,#b38b3c,#96702c); color: #fff; box-shadow: 0 0 15px rgba(197,160,89,.38); }
.recipe-card-mini.is-upcoming .recipe-card-mini-link { border-color: rgba(185,145,67,.35); background: #f1e7ce; color: #715523; box-shadow: 0 2px 9px rgba(132,100,40,.12); }
.recipe-card-mini.is-upcoming .tag-upcoming { border: 1px solid rgba(197,160,89,.5); background: linear-gradient(110deg,#a77c31,#d0ad60); color: white; text-shadow: 0 0 6px rgba(255,238,182,.5); box-shadow: 0 0 10px rgba(197,160,89,.28); }

/* Shared preview-card information order: image metadata, title, description, official tags. */
.recipe-card .card-image { position: relative; }
.recipe-card:not(.recipe-card-mini) .card-meta-badges { position: absolute; top: 12px; left: 12px; z-index: 2; display: flex; flex-wrap: wrap; gap: 6px; max-width: calc(100% - 68px); }
.recipe-card:not(.recipe-card-mini) .card-meta-badge { display: inline-flex; align-items: center; padding: 6px 9px; border: 1px solid rgba(255,255,255,.72); border-radius: 999px; background: rgba(255,255,255,.93); box-shadow: 0 2px 8px rgba(0,0,0,.08); color: #173c2a; font: 600 .68rem/1.2 var(--font-ui); backdrop-filter: blur(8px); }
.recipe-card:not(.recipe-card-mini) .card-meta-difficulty { background: rgba(23,75,55,.94); color: #fff; }
.recipe-card-mini .card-meta-badges { position: absolute; top: 12px; left: 12px; z-index: 2; display: flex; flex-wrap: wrap; gap: 6px; max-width: calc(100% - 24px); }
.recipe-card-mini .card-meta-badge { display: inline-flex; align-items: center; padding: 6px 9px; border: 1px solid rgba(255,255,255,.72); border-radius: 999px; background: rgba(255,255,255,.93); box-shadow: 0 2px 8px rgba(0,0,0,.08); color: #173c2a; font: 600 .68rem/1.2 var(--font-ui); backdrop-filter: blur(8px); }
.recipe-card-mini .card-meta-difficulty { background: rgba(23,75,55,.94); color: #fff; }
.recipe-card-mini .card-image { position: relative; height: 180px; margin: 0; overflow: hidden; border-radius: 0; }
.recipe-card-mini .card-image img { display: block; width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.recipe-card-mini:hover .card-image img { transform: scale(1.045); }
.recipe-card-mini .card-body { min-height: 203px; padding: 15px; }
.recipe-card-mini .card-body h3 { height: 3.15em; margin: 0 0 9px; }
.recipe-card-mini .card-description { min-height: 2.8em; margin: 0 0 11px; }
.recipe-card-mini .recipe-tags { margin-top: auto; }
.recipe-card-mini .recipe-tags .recipe-tag { border: 1px solid rgba(22,163,74,.12); border-radius: 999px; }
.recipe-card-mini .recipe-tags .tag-event { border-color: rgba(205,171,101,.38); background: #174b37; color: #f5dda2; }
.recipe-card .recipe-tags .recipe-tag:nth-child(n+5) { display: none; }
.recipe-card .recipe-tags:has(.recipe-tag:nth-child(5))::after { display: inline-flex; align-items: center; padding: 4px 8px; border: 1px dashed rgba(22,163,74,.28); border-radius: 999px; background: rgba(255,255,255,.72); color: #65796b; content: "+ más"; font: 500 .62rem/1.35 var(--font-ui); }

/* One shared recipe preview card, regardless of the page that renders it. */
.recipe-card { display: flex; min-width: 0; flex-direction: column; }
.recipe-card-link { display: flex; height: 100%; min-width: 0; flex-direction: column; color: inherit; text-decoration: none; }
.recipe-card .card-image { position: relative; width: auto; height: auto !important; aspect-ratio: 3 / 2; flex: 0 0 auto; margin: 8px 8px 0; overflow: hidden; border-radius: 14px; background: var(--page-deep); }
.recipe-card .card-image img { display: block; width: 100%; height: 100%; object-fit: cover; }
.recipe-card .card-meta-badges { position: absolute; top: 10px; left: 10px; z-index: 2; display: flex; flex-wrap: wrap; gap: 6px; max-width: calc(100% - 20px); }
.recipe-card .card-meta-badge { display: inline-flex; align-items: center; padding: 6px 9px; border: 1px solid rgba(255,255,255,.72); border-radius: 999px; background: rgba(255,255,255,.94); box-shadow: 0 2px 8px rgba(0,0,0,.08); color: #173c2a; font: 600 .68rem/1.2 var(--font-ui); backdrop-filter: blur(8px); }
.recipe-card .card-meta-difficulty { background: rgba(23,75,55,.94); color: #fff; }
.recipe-card .rating { display: none; }
.recipe-card .card-body { display: flex; min-height: 0; flex: 1; flex-direction: column; padding: 14px 15px 15px; }
.recipe-card .card-body h3 { display: -webkit-box; height: 2.84em; min-height: 0; overflow: hidden; margin: 0 0 7px; color: var(--forest); font: 700 1rem/1.42 var(--font-ui); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.recipe-card .card-description { display: -webkit-box; min-height: 2.7em; overflow: hidden; margin: 0 0 10px; color: #69796e; font: 400 .75rem/1.42 var(--font-ui); -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.recipe-card .recipe-tags { display: flex; flex-wrap: wrap; gap: 5px; margin-top: auto; }
.recipe-card .recipe-tags .recipe-tag { display: inline-flex; align-items: center; padding: 4px 8px; border: 1px solid rgba(22,163,74,.12); border-radius: 999px; font: 500 .62rem/1.35 var(--font-ui); white-space: nowrap; }
.recipe-card .recipe-tags .recipe-tag:nth-child(n+5) { display: none; }
.recipe-card .recipe-tags:has(.recipe-tag:nth-child(5))::after { display: inline-flex; align-items: center; padding: 4px 8px; border: 1px dashed rgba(22,163,74,.28); border-radius: 999px; background: rgba(255,255,255,.72); color: #65796b; content: "+ más"; font: 500 .62rem/1.35 var(--font-ui); }
.recipe-card .recipe-card-placeholder { display: grid; place-items: center; background: linear-gradient(135deg,#254f3a,#946f3f); color: #fff8e7; }
.recipe-card .recipe-card-placeholder::after { content: 'Imagen próximamente'; font: 600 .75rem var(--font-ui); }
.recipe-card:focus-within { outline: 3px solid var(--emerald); outline-offset: 3px; }
.recipe-card-mini { width: clamp(260px,25vw,280px); flex: 0 0 clamp(260px,25vw,280px); }
.recipe-card-mini.is-upcoming { border-style: dashed; border-color: rgba(157,121,57,.32); }
.recipe-card-mini.is-upcoming .recipe-card-placeholder { background: linear-gradient(135deg,#234f39,#ab8747); }
.carousel-controls button { border-color: rgba(169,130,58,.5); background: linear-gradient(145deg,#fffdf6,#f1ead8); color: #8b692e; box-shadow: 0 0 12px rgba(197,160,89,.17); }
.carousel-controls button:hover { border-color: #d4b36b; background: linear-gradient(140deg,#a9853d,#856326); color: #fff; box-shadow: 0 0 17px rgba(197,160,89,.44); }
@media (prefers-reduced-motion: reduce) { .home-carousel-heading .section-kicker { animation: none; } }

.recipe-submission-form[hidden] { display:none !important; }
.recipe-submission-catalog-link { display:inline-flex; width:fit-content; align-items:center; gap:8px; margin-top:16px; padding:12px 18px; border:1px solid rgba(197,160,89,.55); border-radius:999px; background:#174b37; color:#fff9e9; font:600 .9rem/1.2 var(--font-ui); text-decoration:none; }
.recipe-submission-catalog-link:hover { background:#23623e; }
.recipe-submission-catalog-link:focus-visible { outline:3px solid #2ecc71; outline-offset:3px; }