.layout-wrapper{display:flex;flex-direction:column;min-height:80vh;background-color:var(--bg-primary)}.main-content{flex:1;padding-top:var( --navbar-height, 80px )}@media (max-width: 768px){.main-content{padding-top:var(--navbar-height, 64px)}}@media (max-width: 480px){.main-content{padding-top:var(--navbar-height, 60px)}}.navbar{display:flex;justify-content:space-between;align-items:center;padding:0 clamp(1rem,5vw,3rem);background:#fdfcfafa;backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);color:var(--text-primary);box-shadow:0 2px 8px #1a181614;border-bottom:1px solid var(--border-medium);width:100%;position:fixed;top:0;left:0;z-index:1000;--navbar-height: 80px;height:var(--navbar-height);transition:box-shadow var(--transition-base)}.navbar:hover{box-shadow:0 4px 16px #1a18161f}.navbar-left{display:flex;align-items:center;flex-shrink:0}.navbar-right{display:flex;align-items:center;justify-content:flex-end;gap:var(--space-md);flex-shrink:0}.navbar-right.hide-for-cart .navbar-toggle-button,.navbar-right.hide-for-menu>:first-child,.navbar-right.hide-for-menu .cart-icon-wrapper{visibility:hidden!important;opacity:0!important;pointer-events:none!important;transition:opacity var(--transition-base)}.navbar-right.hide-for-cart .cart-icon-wrapper{pointer-events:auto}.navbar-brand{display:flex;align-items:center}.navbar-logo-link{display:flex;align-items:center;text-decoration:none;transition:transform var(--transition-base)}.navbar-logo-link:hover{transform:scale(1.02)}.navbar-logo-link:focus-visible{outline:3px solid rgba(90,107,77,.5);outline-offset:4px;border-radius:var(--radius-sm)}.navbar-logo{height:110px;width:auto;display:block;max-width:100%;transition:opacity var(--transition-base)}.navbar-logo:hover{opacity:.9}.navbar-toggle-button{background:#1a18160a;border:1px solid var(--border-light);width:48px;height:48px;cursor:pointer;display:flex;justify-content:center;align-items:center;padding:0;z-index:1003;position:relative;border-radius:var(--radius-md);transition:background-color var(--transition-base),transform var(--transition-fast),border-color var(--transition-base);overflow:visible;flex-shrink:0}.navbar-toggle-button:hover{background-color:#5a6b4d1a;border-color:#5a6b4d33}.navbar-toggle-button:active{transform:scale(.95)}.navbar-toggle-button:focus-visible{outline:3px solid rgba(90,107,77,.5);outline-offset:2px}.hamburger-icon{position:relative;width:26px;height:3px;background-color:var(--text-primary);border-radius:9999px;transition:background-color .3s ease,opacity .3s ease;display:block;pointer-events:none;z-index:1}.hamburger-icon:before,.hamburger-icon:after{content:"";position:absolute;left:0;width:26px;height:3px;background-color:var(--text-primary);border-radius:9999px;transition:transform .3s cubic-bezier(.25,.46,.45,.94),top .3s cubic-bezier(.25,.46,.45,.94),background-color .3s ease,opacity .3s ease;display:block;transform-origin:center center;z-index:2}.hamburger-icon:before{top:-8px}.hamburger-icon:after{top:8px}.navbar-toggle-button.open{background-color:#5a6b4d26;border-color:#5a6b4d4d}.navbar-toggle-button.open .hamburger-icon{background-color:transparent;opacity:1}.navbar-toggle-button.open .hamburger-icon:before{top:0;transform:rotate(45deg);background-color:var(--accent-primary);opacity:1}.navbar-toggle-button.open .hamburger-icon:after{top:0;transform:rotate(-45deg);background-color:var(--accent-primary);opacity:1}.navbar-backdrop{position:fixed;inset:0;background-color:#00000080;backdrop-filter:blur(4px);-webkit-backdrop-filter:blur(4px);z-index:1001;opacity:0;visibility:hidden;transition:opacity .3s ease,visibility .3s ease;cursor:pointer}.navbar-backdrop.open{opacity:1;visibility:visible}.navbar-overlay{position:fixed;top:0;right:0;width:380px;max-width:85vw;height:100vh;background-color:var(--bg-accent-light);color:var(--text-primary);z-index:1002;display:flex;flex-direction:column;justify-content:flex-start;align-items:flex-start;opacity:0;visibility:hidden;transform:translate(100%);transition:opacity .3s cubic-bezier(.25,.46,.45,.94),transform .3s cubic-bezier(.25,.46,.45,.94),visibility .3s;overflow-y:auto;-webkit-overflow-scrolling:touch;padding:var(--space-xl) var(--space-lg);box-shadow:-8px 0 24px #1a181626;border-left:1px solid var(--border-medium)}.navbar-overlay.open{opacity:1;visibility:visible;transform:translate(0)}.overlay-links{list-style:none;padding:0;margin:var(--space-lg) 0 var(--space-xl);display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-sm);width:100%;text-align:left}.overlay-links>li>a{font-family:var(--font-body);color:var(--text-secondary);text-decoration:none;font-size:clamp(.95rem,2vw,1.05rem);font-weight:var(--weight-medium);transition:color var(--transition-base),transform var(--transition-base);display:flex;align-items:center;padding:var(--space-sm) 0;letter-spacing:var(--letter-spacing-normal);min-height:48px}.overlay-links>li>a:hover{color:var(--accent-primary);transform:translate(4px)}.overlay-links>li>a.active{color:var(--accent-primary);font-weight:var(--weight-semibold)}.overlay-section-title{font-family:var(--font-heading);color:var(--accent-primary);font-size:clamp(1rem,2.2vw,1.15rem);font-weight:var(--weight-bold);margin-top:var(--space-lg);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);cursor:default;width:100%;padding:var(--space-xs) 0}.overlay-sub-links{list-style:none;padding:0 0 0 var(--space-md);margin:0 0 var(--space-md) 0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xxs);width:100%}.overlay-section-separator{width:100%;height:2px;background:linear-gradient(90deg,transparent 0%,var(--accent-primary) 20%,var(--accent-primary) 80%,transparent 100%);margin:var(--space-xl) 0;opacity:.3}.overlay-section-divider{width:100%;height:1px;background:linear-gradient(90deg,var(--border-medium) 0%,transparent 100%);margin:var(--space-lg) 0}.overlay-auth-status{display:flex;flex-direction:column;align-items:stretch;width:100%}.navbar-welcome{font-family:var(--font-heading);font-size:clamp(1.25rem,2.5vw,1.5rem);font-weight:var(--weight-semibold);color:var(--accent-primary);text-align:center;letter-spacing:var(--letter-spacing-tight);line-height:var(--leading-tight);margin-bottom:var(--space-sm);padding:var(--space-sm) 0;position:relative}.navbar-welcome:after{content:"";display:block;width:40px;height:2px;background:linear-gradient(90deg,transparent 0%,var(--accent-primary) 50%,transparent 100%);margin:var(--space-xs) auto 0;opacity:.6}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-10px)}to{opacity:1;transform:translateY(0)}}.navbar-welcome{animation:fadeSlideIn .5s ease-out}.overlay-auth-status .navbar-button{width:100%;text-align:center;padding:var(--space-sm) var(--space-md);font-size:clamp(.95rem,1.5vw,1.05rem);font-weight:var(--weight-semibold);justify-content:center;min-height:48px;border-radius:var(--radius-md);border:2px solid var(--accent-primary);background-color:transparent;color:var(--accent-primary);cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base),transform var(--transition-fast),border-color var(--transition-base);display:flex;align-items:center;text-decoration:none}.overlay-auth-status .navbar-button:hover{background-color:var(--accent-primary);color:#fff;transform:translateY(-2px);border-color:var(--accent-primary)}.overlay-auth-status .navbar-button:active{transform:translateY(0)}.navbar-button.logout{width:100%;text-align:center;padding:var(--space-sm) var(--space-md);font-size:clamp(.95rem,1.5vw,1.05rem);font-weight:var(--weight-semibold);justify-content:center;min-height:48px;border-radius:var(--radius-md);border:2px solid var(--color-error);background-color:transparent;color:var(--color-error);cursor:pointer;transition:background-color var(--transition-base),color var(--transition-base),transform var(--transition-fast),border-color var(--transition-base);display:flex;align-items:center;margin-top:var(--space-md)}.navbar-button.logout:hover{background-color:var(--color-error);color:#fff;transform:translateY(-2px);border-color:var(--color-error);box-shadow:var(--shadow-md)}.navbar-button.logout:active{transform:translateY(0)}.navbar-button.logout:focus-visible{outline:3px solid rgba(180,116,102,.5);outline-offset:2px}.overlay-social-links{display:flex;justify-content:flex-start;gap:var(--space-lg);margin-top:var(--space-lg);padding-bottom:var(--space-xl);width:100%}.overlay-social-links a{color:var(--text-secondary);font-size:clamp(1.6rem,2.5vw,1.8rem);transition:color var(--transition-base),transform var(--transition-base);padding:var(--space-xs);min-width:48px;min-height:48px;display:flex;align-items:center;justify-content:center;border-radius:var(--radius-sm)}.overlay-social-links a:hover{color:var(--accent-primary);background-color:#5a6b4d1a;transform:translateY(-3px) scale(1.1)}@media (max-width: 1024px){.navbar-logo{height:100px}}@media (max-width: 768px){.navbar{--navbar-height: 70px;height:var(--navbar-height);padding:0 var(--space-md)}.navbar-logo{height:90px}.navbar-toggle-button{width:44px;height:44px}.hamburger-icon,.hamburger-icon:before,.hamburger-icon:after{width:24px}.hamburger-icon:before{top:-7px}.hamburger-icon:after{top:7px}.navbar-overlay{width:320px;max-width:85vw;padding:var(--space-lg) var(--space-md)}}@media (max-width: 480px){.navbar{--navbar-height: 68px;height:var(--navbar-height);padding:0 var(--space-sm)}.navbar-logo{height:85px}.navbar-toggle-button{width:40px;height:40px}.hamburger-icon,.hamburger-icon:before,.hamburger-icon:after{width:20px;height:2px}.hamburger-icon:before{top:-6px}.hamburger-icon:after{top:6px}.navbar-overlay{width:85vw;max-width:320px}}@media (max-width: 375px){.navbar-logo{height:80px}.navbar{--navbar-height: 65px;height:var(--navbar-height)}}@media (prefers-contrast: high){.navbar{border-bottom:2px solid var(--border-dark)}.navbar-overlay{border-left:2px solid var(--border-dark)}.hamburger-icon,.hamburger-icon:before,.hamburger-icon:after{height:4px}.navbar-toggle-button.open .hamburger-icon:before,.navbar-toggle-button.open .hamburger-icon:after{background-color:var(--accent-primary);height:5px}.navbar-welcome{font-weight:var(--weight-bold)}}@media (prefers-reduced-motion: reduce){.navbar,.navbar-toggle-button,.hamburger-icon,.hamburger-icon:before,.hamburger-icon:after,.navbar-overlay,.navbar-backdrop,.overlay-links a,.overlay-social-links a,.navbar-logo-link,.navbar-logo,.navbar-button,.navbar-welcome{transition:none;animation:none}.overlay-links>li>a:hover,.overlay-sub-links li a:hover,.overlay-social-links a:hover,.navbar-logo-link:hover,.navbar-button:hover{transform:none}}.overlay-section-header{display:flex;align-items:center;gap:var(--space-sm);width:100%;background:transparent;border:none;padding:var(--space-sm) var(--space-md);cursor:pointer;font-family:var(--font-heading);font-size:clamp(1rem,2.2vw,1.15rem);font-weight:var(--weight-bold);color:var(--text-secondary);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);text-align:left;border-radius:var(--radius-sm);transition:background-color var(--transition-base),color var(--transition-base),border-left var(--transition-base),padding-left var(--transition-base);margin-top:var(--space-md)}.overlay-section-header:hover{background:linear-gradient(90deg,#5a6b4d14,#5a6b4d1f);color:var(--accent-primary)}.overlay-section-header.expanded{color:var(--accent-primary);background:#5a6b4d0d;border-left:4px solid var(--accent-primary);padding-left:calc(var(--space-md) - 4px)}.overlay-section-header:focus-visible{outline:3px solid rgba(90,107,77,.5);outline-offset:2px}.section-icon{font-size:.8em;display:inline-block;transition:transform .3s cubic-bezier(.4,0,.2,1);color:var(--accent-primary);flex-shrink:0}.section-icon.expanded{transform:rotate(90deg)}.section-title{flex:1}.overlay-sub-links{list-style:none;padding:0 0 0 calc(var(--space-md) + var(--space-sm));margin:0;display:flex;flex-direction:column;align-items:flex-start;gap:var(--space-xxs);width:100%;max-height:0;overflow:hidden;opacity:0;transform:translateY(-10px);transition:max-height .3s cubic-bezier(.4,0,.2,1),opacity .3s ease,transform .3s cubic-bezier(.4,0,.2,1)}.overlay-sub-links.expanded{max-height:600px;opacity:1;transform:translateY(0);margin-bottom:var(--space-md)}.overlay-sub-links.expanded li{animation:fadeSlideIn .3s ease-out forwards;opacity:0}.overlay-sub-links.expanded li:nth-child(1){animation-delay:0ms}.overlay-sub-links.expanded li:nth-child(2){animation-delay:50ms}.overlay-sub-links.expanded li:nth-child(3){animation-delay:.1s}.overlay-sub-links.expanded li:nth-child(4){animation-delay:.15s}.overlay-sub-links.expanded li:nth-child(5){animation-delay:.2s}.overlay-sub-links.expanded li:nth-child(6){animation-delay:.25s}@keyframes fadeSlideIn{0%{opacity:0;transform:translateY(-8px)}to{opacity:1;transform:translateY(0)}}.overlay-sub-links li a{font-family:var(--font-body);color:var(--text-secondary);text-decoration:none;font-size:clamp(.95rem,2vw,1.05rem);font-weight:var(--weight-normal);transition:color var(--transition-base),background-color var(--transition-base),transform var(--transition-base);padding:var(--space-sm) var(--space-sm);border-radius:var(--radius-sm);display:flex;align-items:center;width:100%;min-height:48px}.overlay-sub-links li a:hover{color:var(--accent-primary);background-color:#5a6b4d14;transform:translate(4px)}.overlay-sub-links li a.active{color:var(--accent-primary);background-color:#5a6b4d1f;font-weight:var(--weight-semibold)}.overlay-sub-links li:first-child a{font-weight:var(--weight-semibold);color:var(--text-primary)}.overlay-sub-links li:first-child a:hover{color:var(--accent-primary);background-color:#5a6b4d1f}.overlay-section-title-static{font-family:var(--font-heading);color:var(--accent-primary);font-size:clamp(1rem,2.2vw,1.15rem);font-weight:var(--weight-bold);margin-top:var(--space-lg);margin-bottom:var(--space-sm);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);cursor:default;width:100%;padding:var(--space-xs) 0}@media (prefers-reduced-motion: reduce){.section-icon,.overlay-sub-links,.overlay-section-header,.overlay-sub-links li,.overlay-sub-links li a{transition:none!important;animation:none!important}.overlay-sub-links.expanded{max-height:none;opacity:1;transform:none}.overlay-sub-links.expanded li{opacity:1;transform:none}}@media (max-width: 768px){.overlay-section-header{font-size:clamp(.95rem,2vw,1.05rem);padding:var(--space-xs) var(--space-sm)}.section-icon{font-size:.7em}.overlay-sub-links{padding-left:var(--space-lg)}.overlay-sub-links li a{font-size:clamp(.9rem,1.8vw,1rem);padding:var(--space-xs) var(--space-xs)}}@media (max-width: 480px){.overlay-section-header{font-size:clamp(.9rem,1.8vw,1rem)}.overlay-sub-links.expanded{max-height:500px}}.cart-icon-container{position:relative;cursor:pointer;display:flex;align-items:center;justify-content:center;padding:5px;min-width:40px;min-height:40px;transition:transform .2s ease-in-out}.cart-icon-container:hover{transform:scale(1.05)}.cart-icon{font-size:1.5rem;color:var(--color-primary);z-index:1000}.cart-quantity{position:absolute;top:-8px;right:-8px;background-color:var(--color-accent-red);color:var(--color-white);border-radius:50%;padding:2px 6px;font-size:.75rem;font-weight:700;line-height:1;min-width:20px;text-align:center;box-shadow:0 1px 3px #0003}.cart-quantity.loading{background-color:var(--color-grey-light);color:var(--color-text-light)}.cart-link-hidden-accessible{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0}.cart-drawer-overlay{position:fixed;top:0;left:0;width:100%;height:100%;background-color:#0009;z-index:1004}.cart-drawer{position:fixed;top:0;right:0;width:100%;max-width:400px;height:100%;background-color:var( --color-background-dark-secondary );box-shadow:-5px 0 15px #0006;z-index:1005;display:flex;flex-direction:column;padding:var(--spacing-lg);box-sizing:border-box;overflow-y:auto}.cart-drawer-header{display:flex;justify-content:space-between;align-items:center;padding-bottom:var(--spacing-md);margin-bottom:var(--spacing-md);border-bottom:1px solid var(--color-border-dark)}.cart-drawer-header h3{font-family:Playfair Display,serif;font-size:1.8em;color:var(--color-primary-light);margin:0}.close-drawer-button{background:none;border:none;font-size:2em;color:var(--color-text-medium-light);cursor:pointer;padding:0;line-height:1;transition:color .2s ease}.close-drawer-button:hover{color:var(--color-accent-red)}.cart-loading,.cart-error,.cart-empty-state{text-align:center;padding:var(--spacing-xl);font-size:1.1em;color:var(--color-text-medium-light)}.cart-error{color:var(--color-error);font-weight:700}.cart-empty-state .btn{margin-top:var(--spacing-lg)}.cart-items-list{list-style:none;padding:0;margin:0;flex-grow:1}.cart-item{display:flex;align-items:center;padding:var(--spacing-md) 0;border-bottom:1px solid var(--color-border-dark);position:relative}.cart-item:last-child{border-bottom:none}.cart-item-image-container{width:80px;height:80px;flex-shrink:0;border-radius:var(--border-radius-sm);overflow:hidden;margin-right:var(--spacing-md);background-color:var(--color-background-dark-tertiary);display:flex;justify-content:center;align-items:center}.cart-item-image{width:100%;height:100%;object-fit:cover}.cart-item-placeholder-image{font-size:.8em;color:var(--color-text-medium-light);text-align:center}.cart-item-details{flex-grow:1;display:flex;flex-direction:column;padding-right:var(--spacing-lg)}.cart-item-title{font-weight:600;color:var(--color-text-light-mode);font-size:1.1em;margin-bottom:var(--spacing-xs);text-decoration:none;transition:color .2s ease}.cart-item-title:hover{color:var(--color-primary);text-decoration:underline}.cart-item-variant{font-size:.9em;color:var(--color-text-medium-light);margin-bottom:var(--spacing-xs)}.cart-item-price{font-size:1em;font-weight:700;color:var(--color-secondary-light);margin-bottom:var(--spacing-sm)}.cart-item-quantity-controls{display:flex;align-items:center;gap:var(--spacing-xs)}.quantity-button{background-color:var(--color-background-dark-tertiary);color:var(--color-text-light-mode);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-sm);width:30px;height:30px;display:flex;justify-content:center;align-items:center;font-size:1.2em;cursor:pointer;transition:background-color .2s ease,border-color .2s ease}.quantity-button:hover:not(:disabled){background-color:var(--color-primary-hover);border-color:var(--color-primary)}.quantity-button:disabled{opacity:.5;cursor:not-allowed}.quantity-input{width:40px;padding:5px;text-align:center;border:1px solid var(--color-border-dark);border-radius:var(--border-radius-sm);background-color:var(--color-background-dark-primary);color:var(--color-text-light-mode);font-size:1em;appearance:textfield;-moz-appearance:textfield}.quantity-input::-webkit-inner-spin-button,.quantity-input::-webkit-outer-spin-button{-webkit-appearance:none;margin:0}.remove-item-button{background:none;border:none;color:var(--color-text-medium-light);font-size:1.5em;cursor:pointer;position:absolute;top:var(--spacing-md);right:0;transition:color .2s ease}.remove-item-button:hover{color:var(--color-accent-red)}.cart-summary{padding-top:var(--spacing-md);margin-top:var(--spacing-md);border-top:1px solid var(--color-border-dark)}.summary-row{display:flex;justify-content:space-between;margin-bottom:var(--spacing-sm);font-size:1.1em;color:var(--color-text-light-mode)}.summary-row.total{font-weight:700;font-size:1.3em;color:var(--color-primary)}.cart-actions{display:flex;flex-direction:column;gap:var(--spacing-md);margin-top:var(--spacing-xl)}.cart-actions .btn{width:100%;padding:var(--spacing-md);font-size:1.2em}.clear-cart-button{margin-top:var(--spacing-md);width:100%;padding:var(--spacing-sm);font-size:.9em;text-align:center}@media (max-width: 480px){.cart-drawer{width:100%;max-width:none}.cart-item-image-container{width:60px;height:60px}.cart-item-title{font-size:1em}.cart-item-price{font-size:.9em}.quantity-button,.quantity-input{width:28px;height:28px;font-size:1em}.quantity-input{width:35px}.remove-item-button{font-size:1.3em}.cart-drawer-header h3{font-size:1.5em}.summary-row{font-size:1em}.summary-row.total{font-size:1.2em}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:var(--spacing-sm);padding:clamp(.75rem,2vw,1rem) clamp(1.5rem,3vw,2rem);font-family:var(--font-body);font-size:clamp(.95rem,2vw,1.05rem);font-weight:var(--font-weight-semibold);line-height:1.2;text-decoration:none;text-align:center;white-space:nowrap;letter-spacing:var(--letter-spacing-wide);border-radius:var(--border-radius-md);border:none;cursor:pointer;user-select:none;-webkit-tap-highlight-color:transparent;transition:background-color var(--transition-base),color var(--transition-base),transform var(--transition-fast),box-shadow var(--transition-base),border-color var(--transition-base);min-height:44px;min-width:44px;position:relative;overflow:hidden}.btn:after{content:"";position:absolute;top:50%;left:50%;width:0;height:0;border-radius:50%;background:#ffffff80;transform:translate(-50%,-50%);opacity:0;transition:width .6s ease-out,height .6s ease-out,opacity .6s ease-out;pointer-events:none}.btn:active:after{width:300px;height:300px;opacity:1;transition:width 0s,height 0s,opacity 0s}.btn:active{transform:translateY(1px)}.btn-primary{background-color:var(--color-primary);color:var(--color-text-white);box-shadow:0 4px 12px #00000040,0 0 rgba(var(--color-primary-rgb),0)}.btn-primary:hover:not(:disabled){background-color:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--color-primary-rgb),.4),0 0 0 4px rgba(var(--color-primary-rgb),.1);color:var(--color-text-white);text-decoration:none}.btn-primary:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.btn-secondary{background-color:var(--color-secondary);color:var(--color-text-white);box-shadow:0 4px 12px #00000040,0 0 rgba(var(--color-secondary-rgb),0)}.btn-secondary:hover:not(:disabled){background-color:var(--color-secondary-hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--color-secondary-rgb),.4),0 0 0 4px rgba(var(--color-secondary-rgb),.1);color:var(--color-text-white);text-decoration:none}.btn-cta{background:var(--gradient-cta);color:var(--color-text-white);font-weight:var(--font-weight-bold);box-shadow:0 4px 14px rgba(var(--color-cta-rgb),.4),0 0 rgba(var(--color-cta-rgb),.5);animation:pulse-shadow 3s infinite}.btn-cta:hover:not(:disabled){background:linear-gradient(135deg,#d97706,#b45309);transform:translateY(-3px);box-shadow:0 8px 24px rgba(var(--color-cta-rgb),.5),0 0 0 4px rgba(var(--color-cta-rgb),.2);color:var(--color-text-white);text-decoration:none;animation:none}@keyframes pulse-shadow{0%,to{box-shadow:0 4px 14px rgba(var(--color-cta-rgb),.4),0 0 rgba(var(--color-cta-rgb),0)}50%{box-shadow:0 4px 14px rgba(var(--color-cta-rgb),.6),0 0 0 4px rgba(var(--color-cta-rgb),.2)}}.btn-outline{background-color:transparent;color:var(--color-primary);border:2px solid var(--color-primary);box-shadow:none}.btn-outline:hover:not(:disabled){background-color:rgba(var(--color-primary-rgb),.1);border-color:var(--color-primary-hover);color:var(--color-primary-hover);transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--color-primary-rgb),.2);text-decoration:none}.btn-ghost{background-color:transparent;color:var(--color-text-light-mode);border:none;box-shadow:none;padding:.75rem 1rem}.btn-ghost:hover:not(:disabled){background-color:#ffffff0d;color:var(--color-primary);transform:none;box-shadow:none;text-decoration:none}.btn-ghost:active{background-color:#ffffff14}.btn-link{background:none;color:var(--color-primary);border:none;padding:0;font-weight:var(--font-weight-semibold);box-shadow:none;text-decoration:underline;text-underline-offset:3px;text-decoration-thickness:2px;min-height:auto}.btn-link:hover:not(:disabled){color:var(--color-primary-hover);background:none;transform:none;box-shadow:none;text-decoration:underline}.btn-link:active{transform:none}.btn-accent-red{background-color:var(--color-accent-red);color:var(--color-text-white);box-shadow:0 4px 12px #00000040}.btn-accent-red:hover:not(:disabled){background-color:var(--color-accent-red-hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--color-accent-red-rgb),.4);color:var(--color-text-white);text-decoration:none}.btn-outline-red{background-color:transparent;color:var(--color-accent-red);border:2px solid var(--color-accent-red);box-shadow:none}.btn-outline-red:hover:not(:disabled){background-color:var(--color-accent-red);border-color:var(--color-accent-red);color:var(--color-text-white);transform:translateY(-2px);box-shadow:0 4px 12px rgba(var(--color-accent-red-rgb),.3);text-decoration:none}.btn-success{background-color:var(--color-accent-positive);color:var(--color-text-white);box-shadow:0 4px 12px #00000040}.btn-success:hover:not(:disabled){background-color:var(--color-accent-positive-hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--color-positive-rgb),.4);color:var(--color-text-white);text-decoration:none}.btn-warning{background-color:var(--color-accent-warning);color:var(--color-text-white);box-shadow:0 4px 12px #00000040}.btn-warning:hover:not(:disabled){background-color:var(--color-accent-warning-hover);transform:translateY(-2px);box-shadow:0 6px 20px rgba(var(--color-warning-rgb),.4);color:var(--color-text-white);text-decoration:none}.btn-icon{padding:.75rem;aspect-ratio:1;min-width:44px;min-height:44px;border-radius:var(--border-radius-md)}.btn-icon-sm{padding:.5rem;min-width:36px;min-height:36px}.btn-icon-lg{padding:1rem;min-width:56px;min-height:56px}.btn-lg{padding:clamp(1rem,2.5vw,1.25rem) clamp(2rem,4vw,2.5rem);font-size:clamp(1.05rem,2.5vw,1.15rem);min-height:56px}.btn-sm{padding:clamp(.5rem,1.5vw,.625rem) clamp(1rem,2vw,1.25rem);font-size:clamp(.85rem,1.5vw,.9rem);min-height:36px}.btn-group{display:inline-flex;gap:var(--spacing-sm);flex-wrap:wrap}.btn-group-vertical{display:inline-flex;flex-direction:column;gap:var(--spacing-sm)}.btn:disabled,.btn.disabled{opacity:.5;cursor:not-allowed;pointer-events:none;box-shadow:none;transform:none}.btn-loading{position:relative;color:transparent;pointer-events:none}.btn-loading:before{content:"";position:absolute;top:50%;left:50%;width:16px;height:16px;margin:-8px 0 0 -8px;border:2px solid transparent;border-top-color:currentColor;border-radius:50%;animation:btn-spin .6s linear infinite;color:var(--color-text-white)}@keyframes btn-spin{to{transform:rotate(360deg)}}.single-recipe-like-button{color:var(--color-accent-red);border-color:var(--color-accent-red)}.single-recipe-like-button:hover:not(:disabled){background-color:rgba(var(--color-accent-red-rgb),.1);color:var(--color-accent-red);border-color:var(--color-accent-red-hover);text-decoration:none}.single-recipe-like-button.btn-favorited{background-color:var(--color-accent-red);color:var(--color-text-white);box-shadow:0 4px 12px rgba(var(--color-accent-red-rgb),.3),0 0 rgba(var(--color-accent-red-rgb),0)}.single-recipe-like-button.btn-favorited:hover:not(:disabled){background-color:var(--color-accent-red-hover);color:var(--color-text-white);box-shadow:0 6px 20px rgba(var(--color-accent-red-rgb),.4),0 0 0 4px rgba(var(--color-accent-red-rgb),.1)}.single-recipe-print-button{color:var(--color-secondary);border-color:var(--color-secondary)}.single-recipe-print-button:hover:not(:disabled){background-color:rgba(var(--color-secondary-rgb),.1);color:var(--color-secondary);border-color:var(--color-secondary-hover);text-decoration:none}.single-recipe-share-button{color:#60a5fa;border-color:#60a5fa;background-color:#60a5fa0d}.single-recipe-share-button:hover:not(:disabled){background-color:#60a5fa26;color:#60a5fa;border-color:#3b82f6;text-decoration:none;box-shadow:0 4px 12px #60a5fa4d}.single-recipe-share-button:active{background-color:#60a5fa40}@media (max-width: 768px){.btn{width:100%;justify-content:center}.btn-sm,.btn-icon,.btn-ghost,.btn-link{width:auto}.btn-group{width:100%}.btn-group>.btn{flex:1}}@media (max-width: 480px){.btn{font-size:1rem;padding:.875rem 1.5rem}.btn-lg{font-size:1.1rem;padding:1rem 1.75rem}.btn-sm{font-size:.875rem;padding:.625rem 1rem}}.btn:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}@media (prefers-contrast: high){.btn{border-width:2px}.btn-primary,.btn-secondary,.btn-cta,.btn-accent-red,.btn-success,.btn-warning{border:2px solid currentColor}}@media (prefers-reduced-motion: reduce){.btn,.btn:after{transition:none;animation:none}.btn:hover{transform:none}.btn-cta{animation:none}}.pagination-controls .btn:after{display:none}.btn-outline-red{background-color:transparent;color:var(--color-error);border:1px solid var(--color-error)}.btn-outline-red:hover:not(:disabled){background-color:var(--color-error);color:#fff;border-color:var(--color-error);transform:translateY(-2px);box-shadow:0 4px 12px #b474664d}.btn-outline-red:active:not(:disabled){transform:translateY(-1px)}.btn-accent-red{background-color:var(--color-error);color:#fff;border:1px solid var(--color-error)}.btn-accent-red:hover:not(:disabled){background-color:#9a5c54;border-color:#9a5c54;transform:translateY(-2px);box-shadow:0 4px 12px #b4746666}.btn-accent-red:active:not(:disabled){transform:translateY(-1px)}.footer{background:#efebe6;color:#2c2926;padding:var(--spacing-xxl) var(--spacing-xl);font-family:var(--font-body);border-top:1px solid rgba(44,41,38,.1);box-shadow:0 -2px 8px #2c29260f;margin-top:var(--spacing-xxxl)}.footer-container{max-width:1400px;margin:0 auto;display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,280px),1fr));gap:var(--spacing-xxl);justify-content:space-between;text-align:left}.footer-column{margin-bottom:var(--spacing-lg)}.footer-logo-link{display:inline-block;margin-bottom:var(--space-md);transition:transform var(--transition-base)}.footer-logo-link:hover{transform:scale(1.02)}.footer-logo-link:focus-visible{outline:3px solid var(--focus-ring-color);outline-offset:4px;border-radius:var(--radius-sm)}.footer-logo{height:230px;width:auto;display:block;transition:opacity var(--transition-base)}.footer-logo:hover{opacity:.9}.footer-about-text{font-size:clamp(.9rem,1.5vw,1rem);line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-md);color:#5a5550}.footer-copyright{font-size:clamp(.8rem,1.2vw,.9rem);color:#8a8580;margin-top:var(--spacing-md)}.footer-heading{font-family:var(--font-heading);font-size:clamp(1.1rem,2vw,1.4rem);font-weight:var(--font-weight-semibold);color:#2c2926;margin-bottom:var(--spacing-md);letter-spacing:var(--letter-spacing-wide);position:relative;padding-bottom:var(--spacing-xs)}.footer-heading:after{content:"";position:absolute;left:0;bottom:0;width:40px;height:2px;background:linear-gradient(135deg,#6b7f5a,#5a6b4d);border-radius:var(--border-radius-pill)}.footer-links{list-style:none;padding:0;margin:0}.footer-links li{margin-bottom:var(--spacing-sm)}.footer-links a{color:#5a5550;text-decoration:none;font-size:clamp(.9rem,1.5vw,1rem);font-weight:var(--font-weight-normal);transition:color var(--transition-base),transform var(--transition-fast);display:inline-block}.footer-links a:hover{color:#6b7f5a;transform:translate(4px);text-decoration:none}.footer-social-icons{display:flex;gap:var(--spacing-lg);margin-bottom:var(--spacing-lg)}.footer-social-icons a{color:#2c2926;font-size:clamp(1.6rem,2.5vw,2rem);transition:color var(--transition-base),transform var(--transition-base);padding:var(--spacing-xs);display:flex;align-items:center;justify-content:center}.footer-social-icons a:hover{color:#6b7f5a;transform:translateY(-4px) scale(1.1)}.footer-newsletter-text{font-size:clamp(.9rem,1.5vw,1rem);margin-bottom:var(--spacing-md);color:#5a5550;line-height:var(--line-height-base)}@media (max-width: 1024px){.footer-logo{height:160px}}@media (max-width: 768px){.footer{padding:var(--spacing-xl) var(--spacing-md)}.footer-container{grid-template-columns:1fr;text-align:center;gap:var(--spacing-xl)}.footer-logo,.footer-heading{text-align:center}.footer-heading:after{left:50%;transform:translate(-50%)}.footer-social-icons{justify-content:center}.footer-links a{display:block}.footer-links a:hover{transform:none}.footer-logo{height:100px}}@media (max-width: 480px){.footer{padding:var(--spacing-lg) var(--spacing-sm)}.footer-container{gap:var(--spacing-lg)}.footer-social-icons{gap:var(--spacing-md)}.footer-newsletter-button{width:100%}.footer-logo{height:120px}}@media (max-width: 480px){.footer-logo{height:100px}}.footer-logo-link:focus-visible,.footer-links a:focus-visible,.footer-social-icons a:focus-visible,.footer-newsletter-input:focus-visible,.footer-newsletter-button:focus-visible{outline:var(--focus-ring-width) solid rgba(107,127,90,.5);outline-offset:var(--focus-ring-offset)}@media (prefers-contrast: high){.footer{border-top:2px solid rgba(44,41,38,.2)}.footer-newsletter-input,.footer-newsletter-button{border-width:3px}.footer-heading{font-weight:var(--font-weight-extrabold)}}@media (prefers-reduced-motion: reduce){.footer-links a,.footer-social-icons a,.footer-newsletter-button,.footer-logo-link,.footer-logo{transition:none}.footer-links a:hover,.footer-social-icons a:hover,.footer-newsletter-button:hover,.footer-logo-link:hover{transform:none}}.newsletter-signup-form{display:flex;flex-direction:column;gap:var(--space-sm);max-width:100%;margin:0 auto;padding:0;background-color:transparent;border-radius:0;box-shadow:none}.newsletter-signup-input{width:100%;padding:var(--space-md) var(--space-lg);font-size:clamp(.9375rem,2vw,1rem);font-family:var(--font-body);font-weight:var(--weight-normal);background-color:#fff;color:var(--text-primary);border:1px solid var(--border-light);border-radius:var(--radius-md);box-sizing:border-box;transition:all var(--transition-base);box-shadow:var(--shadow-sm)}.newsletter-signup-input::placeholder{color:var(--text-tertiary);opacity:.7}.newsletter-signup-input:hover:not(:disabled){border-color:var(--accent-primary);box-shadow:var(--shadow-md)}.newsletter-signup-input:focus{outline:none;border-color:var(--accent-primary);background-color:#fff;box-shadow:0 0 0 2px #5a6b4d26,var(--shadow-md)}.newsletter-signup-input:disabled{background-color:var(--bg-tertiary);cursor:not-allowed;opacity:.6}.newsletter-signup-button{width:100%;padding:var(--space-md) var(--space-xl);min-height:52px;font-size:clamp(.875rem,2vw,.9375rem);font-family:var(--font-body);font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);background-color:var(--accent-primary);color:#fff;border:none;border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);box-shadow:var(--shadow-md)}.newsletter-signup-button:hover:not(:disabled){background-color:var(--accent-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-lg)}.newsletter-signup-button:active:not(:disabled){transform:translateY(-1px)}.newsletter-signup-button:disabled{background-color:var(--border-medium);color:var(--text-tertiary);cursor:not-allowed;opacity:.6;transform:none;box-shadow:none}.newsletter-signup-button:focus-visible{outline:2px solid rgba(90,107,77,.5);outline-offset:2px}.email-status-message{width:100%;text-align:center;padding:var(--space-sm) var(--space-md);margin-top:var(--space-sm);border-radius:var(--radius-sm);font-size:clamp(.8125rem,1.8vw,.875rem);font-weight:var(--weight-medium);line-height:var(--leading-normal);transition:all var(--transition-base)}.email-status-message.success{color:var(--accent-primary);background-color:#5a6b4d14;border:1px solid rgba(90,107,77,.2);box-shadow:var(--shadow-xs)}.email-status-message.error{color:var(--color-error);background-color:#b4746614;border:1px solid rgba(180,116,102,.2);box-shadow:var(--shadow-xs)}@media (max-width: 768px){.newsletter-signup-input,.newsletter-signup-button{padding:var(--space-sm) var(--space-md);font-size:.9375rem}.newsletter-signup-button{min-height:48px}}@media (max-width: 480px){.newsletter-signup-input,.newsletter-signup-button{padding:.75rem 1rem;font-size:.875rem}.newsletter-signup-button{min-height:44px}.email-status-message{font-size:.8125rem}}@media (prefers-reduced-motion: reduce){.newsletter-signup-input,.newsletter-signup-button,.email-status-message{transition:none}.newsletter-signup-button:hover{transform:none}}@media (prefers-contrast: high){.newsletter-signup-input,.newsletter-signup-button{border-width:2px}.email-status-message{border-width:2px;font-weight:var(--weight-semibold)}}:root{--bg-primary: #f5f2ed;--bg-secondary: #eae6e0;--bg-tertiary: #dfd9d1;--bg-accent-light: #fdfcfa;--bg-accent-dark: #2d2a27;--color-background-dark-primary: #1a1816;--color-background-dark-secondary: #2d2a27;--color-background-dark-tertiary: #3a3632;--text-primary: #1a1816;--text-secondary: #3a3632;--text-tertiary: #5a5550;--text-white: #fdfcfa;--color-text-primary: #1a1816;--color-text-secondary: #3a3632;--color-text-tertiary: #5a5550;--color-text-white: #fdfcfa;--color-text-light-mode: #1a1816;--color-text-medium-light: #5a5550;--color-text-muted: #8a8580;--accent-primary: #5a6b4d;--accent-primary-hover: #4a5940;--color-primary: #5a6b4d;--color-primary-hover: #4a5940;--color-primary-rgb: 90, 107, 77;--accent-secondary: #b09970;--color-secondary: #b09970;--color-success: #6b7f5a;--color-warning: #b09970;--color-error: #9a7366;--color-info: #6b7b8a;--color-success-rgb: 107, 127, 90;--color-warning-rgb: 176, 153, 112;--color-error-rgb: 154, 115, 102;--color-info-rgb: 107, 123, 138;--color-positive: #6b7f5a;--color-positive-rgb: 107, 127, 90;--color-danger: #9a7366;--color-danger-rgb: 154, 115, 102;--color-accent-info: #6b7b8a;--border-light: rgba(42, 39, 36, .06);--border-medium: rgba(42, 39, 36, .12);--border-dark: rgba(42, 39, 36, .18);--color-border-light: rgba(42, 39, 36, .06);--color-border-medium: rgba(42, 39, 36, .12);--color-border-dark: rgba(42, 39, 36, .18);--shadow-xs: 0 1px 2px rgba(26, 24, 22, .06), 0 1px 1px rgba(26, 24, 22, .04);--shadow-sm: 0 1px 3px rgba(26, 24, 22, .08), 0 1px 2px rgba(26, 24, 22, .06);--shadow-md: 0 2px 8px rgba(26, 24, 22, .12), 0 4px 16px rgba(26, 24, 22, .06);--shadow-lg: 0 4px 12px rgba(26, 24, 22, .14), 0 8px 24px rgba(26, 24, 22, .08);--shadow-xl: 0 6px 20px rgba(26, 24, 22, .15), 0 12px 40px rgba(26, 24, 22, .08);--shadow-2xl: 0 10px 32px rgba(26, 24, 22, .18), 0 20px 60px rgba(26, 24, 22, .1);--color-shadow-light: rgba(26, 24, 22, .08);--color-shadow-dark: rgba(26, 24, 22, .12);--color-shadow-hover: rgba(26, 24, 22, .18);--color-shadow-glow: rgba(90, 107, 77, .3);--font-heading: "Cormorant", Georgia, serif;--font-body: "Inter", -apple-system, BlinkMacSystemFont, sans-serif;--text-xs: clamp(.6875rem, 1.5vw, .75rem);--text-sm: clamp(.8125rem, 2vw, .875rem);--text-base: clamp(.9375rem, 2.5vw, 1rem);--text-lg: clamp(1.0625rem, 3vw, 1.125rem);--text-xl: clamp(1.1875rem, 3.5vw, 1.25rem);--text-2xl: clamp(1.375rem, 4vw, 1.5rem);--text-3xl: clamp(1.625rem, 4.5vw, 2rem);--text-4xl: clamp(2rem, 5vw, 2.5rem);--text-5xl: clamp(2.5rem, 6vw, 3.5rem);--text-6xl: clamp(3rem, 7vw, 4.5rem);--font-size-xs: var(--text-xs);--font-size-sm: var(--text-sm);--font-size-base: var(--text-base);--font-size-lg: var(--text-lg);--font-size-xl: var(--text-xl);--font-size-2xl: var(--text-2xl);--font-size-3xl: var(--text-3xl);--font-size-4xl: var(--text-4xl);--font-size-5xl: var(--text-5xl);--font-size-6xl: var(--text-6xl);--weight-light: 300;--weight-normal: 400;--weight-medium: 500;--weight-semibold: 600;--weight-bold: 700;--weight-extrabold: 800;--font-weight-light: 300;--font-weight-normal: 400;--font-weight-medium: 500;--font-weight-semibold: 600;--font-weight-bold: 700;--font-weight-extrabold: 800;--leading-tight: 1.15;--leading-snug: 1.3;--leading-normal: 1.5;--leading-relaxed: 1.7;--line-height-tight: 1.15;--line-height-base: 1.5;--line-height-relaxed: 1.7;--letter-spacing-tighter: -.025em;--letter-spacing-tight: -.015em;--letter-spacing-normal: 0;--letter-spacing-wide: .02em;--letter-spacing-wider: .05em;--space-xs: 8px;--space-sm: 12px;--space-md: 20px;--space-lg: 32px;--space-xl: 48px;--space-2xl: 72px;--space-3xl: 104px;--spacing-xxs: 4px;--spacing-xs: 8px;--spacing-sm: 12px;--spacing-md: 20px;--spacing-lg: 32px;--spacing-xl: 48px;--spacing-xxl: 72px;--radius-sm: 6px;--radius-md: 12px;--radius-lg: 18px;--radius-xl: 24px;--radius-2xl: 32px;--radius-full: 9999px;--radius-pill: 9999px;--border-radius-sm: 6px;--border-radius-md: 12px;--border-radius-lg: 18px;--border-radius-xl: 24px;--border-radius-2xl: 32px;--border-radius-pill: 9999px;--transition-fast: .15s cubic-bezier(.4, 0, .2, 1);--transition-base: .25s cubic-bezier(.4, 0, .2, 1);--transition-slow: .4s cubic-bezier(.4, 0, .2, 1);--focus-ring-width: 2px;--focus-ring-color: rgba(90, 107, 77, .4);--focus-ring-offset: 2px;--glass-bg: rgba(253, 252, 250, .05);--glass-blur: blur(12px);--glass-border: rgba(255, 255, 255, .1);--gradient-primary: linear-gradient(135deg, #5a6b4d 0%, #4a5940 100%);--gradient-secondary: linear-gradient(135deg, #b09970 0%, #9a8660 100%);--color-tag-category-bg: linear-gradient(135deg, #10b981 0%, #059669 100%);--color-tag-category-text: #ffffff;--color-tag-category-shadow: rgba(16, 185, 129, .3);--color-tag-cuisine-bg: linear-gradient(135deg, #f59e0b 0%, #d97706 100%);--color-tag-cuisine-text: #ffffff;--color-tag-cuisine-shadow: rgba(245, 158, 11, .3);--color-tag-season-bg: linear-gradient(135deg, #3b82f6 0%, #2563eb 100%);--color-tag-season-text: #ffffff;--color-tag-season-shadow: rgba(59, 130, 246, .3);--color-tag-dietary-bg: linear-gradient(135deg, #ec4899 0%, #db2777 100%);--color-tag-dietary-text: #ffffff;--color-tag-dietary-shadow: rgba(236, 72, 153, .3);--color-tag-method-bg: linear-gradient(135deg, #8b5cf6 0%, #7c3aed 100%);--color-tag-method-text: #ffffff;--color-tag-method-shadow: rgba(139, 92, 246, .3);--color-tag-difficulty-bg: linear-gradient(135deg, #64748b 0%, #475569 100%);--color-tag-difficulty-text: #ffffff;--color-tag-difficulty-shadow: rgba(100, 116, 139, .3);--color-tag-occasion-bg: linear-gradient(135deg, #f43f5e 0%, #e11d48 100%);--color-tag-occasion-text: #ffffff;--color-tag-occasion-shadow: rgba(244, 63, 94, .3);--color-tag-main-ingredient-bg: linear-gradient( 135deg, #6366f1 0%, #4f46e5 100% );--color-tag-main-ingredient-text: #ffffff;--color-tag-main-ingredient-shadow: rgba(99, 102, 241, .3)}.mt-xxs{margin-top:var(--spacing-xxs)}.mt-xs{margin-top:var(--spacing-xs)}.mt-sm{margin-top:var(--spacing-sm)}.mt-md{margin-top:var(--spacing-md)}.mt-lg{margin-top:var(--spacing-lg)}.mt-xl{margin-top:var(--spacing-xl)}.mt-xxl{margin-top:var(--spacing-xxl)}.mb-xxs{margin-bottom:var(--spacing-xxs)}.mb-xs{margin-bottom:var(--spacing-xs)}.mb-sm{margin-bottom:var(--spacing-sm)}.mb-md{margin-bottom:var(--spacing-md)}.mb-lg{margin-bottom:var(--spacing-lg)}.mb-xl{margin-bottom:var(--spacing-xl)}.mb-xxl{margin-bottom:var(--spacing-xxl)}.ml-xxs{margin-left:var(--spacing-xxs)}.ml-xs{margin-left:var(--spacing-xs)}.ml-sm{margin-left:var(--spacing-sm)}.ml-md{margin-left:var(--spacing-md)}.ml-lg{margin-left:var(--spacing-lg)}.ml-xl{margin-left:var(--spacing-xl)}.mr-xxs{margin-right:var(--spacing-xxs)}.mr-xs{margin-right:var(--spacing-xs)}.mr-sm{margin-right:var(--spacing-sm)}.mr-md{margin-right:var(--spacing-md)}.mr-lg{margin-right:var(--spacing-lg)}.mr-xl{margin-right:var(--spacing-xl)}.pt-xxs{padding-top:var(--spacing-xxs)}.pt-xs{padding-top:var(--spacing-xs)}.pt-sm{padding-top:var(--spacing-sm)}.pt-md{padding-top:var(--spacing-md)}.pt-lg{padding-top:var(--spacing-lg)}.pt-xl{padding-top:var(--spacing-xl)}.pt-xxl{padding-top:var(--spacing-xxl)}.pb-xxs{padding-bottom:var(--spacing-xxs)}.pb-xs{padding-bottom:var(--spacing-xs)}.pb-sm{padding-bottom:var(--spacing-sm)}.pb-md{padding-bottom:var(--spacing-md)}.pb-lg{padding-bottom:var(--spacing-lg)}.pb-xl{padding-bottom:var(--spacing-xl)}.pb-xxl{padding-bottom:var(--spacing-xxl)}.pl-xxs{padding-left:var(--spacing-xxs)}.pl-xs{padding-left:var(--spacing-xs)}.pl-sm{padding-left:var(--spacing-sm)}.pl-md{padding-left:var(--spacing-md)}.pl-lg{padding-left:var(--spacing-lg)}.pl-xl{padding-left:var(--spacing-xl)}.pr-xxs{padding-right:var(--spacing-xxs)}.pr-xs{padding-right:var(--spacing-xs)}.pr-sm{padding-right:var(--spacing-sm)}.pr-md{padding-right:var(--spacing-md)}.pr-lg{padding-right:var(--spacing-lg)}.pr-xl{padding-right:var(--spacing-xl)}.p-xxs{padding:var(--spacing-xxs)}.p-xs{padding:var(--spacing-xs)}.p-sm{padding:var(--spacing-sm)}.p-md{padding:var(--spacing-md)}.p-lg{padding:var(--spacing-lg)}.p-xl{padding:var(--spacing-xl)}.p-xxl{padding:var(--spacing-xxl)}.text-center{text-align:center}.text-left{text-align:left}.text-right{text-align:right}.text-justify{text-align:justify}.text-uppercase{text-transform:uppercase}.text-lowercase{text-transform:lowercase}.text-capitalize{text-transform:capitalize}.font-bold{font-weight:var(--font-weight-bold)}.font-semibold{font-weight:var(--font-weight-semibold)}.font-medium{font-weight:var(--font-weight-medium)}.font-normal{font-weight:var(--font-weight-normal)}.text-xs{font-size:var(--font-size-xs)}.text-sm{font-size:var(--font-size-sm)}.text-base{font-size:var(--font-size-base)}.text-lg{font-size:var(--font-size-lg)}.text-xl{font-size:var(--font-size-xl)}.text-2xl{font-size:var(--font-size-2xl)}.line-height-tight{line-height:var(--line-height-tight)}.line-height-base{line-height:var(--line-height-base)}.line-height-relaxed{line-height:var(--line-height-relaxed)}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.line-clamp-2{display:-webkit-box;-webkit-line-clamp:2;-webkit-box-orient:vertical;overflow:hidden}.line-clamp-3{display:-webkit-box;-webkit-line-clamp:3;-webkit-box-orient:vertical;overflow:hidden}.text-primary{color:var(--color-primary)}.text-secondary{color:var(--color-secondary)}.text-success{color:var(--color-success)}.text-error{color:var(--color-error)}.text-warning{color:var(--color-warning)}.text-info{color:var(--color-info)}.text-white{color:var(--color-text-white)}.text-muted{color:var(--color-text-muted)}.text-medium{color:var(--color-text-medium-light)}.bg-primary{background-color:var(--color-primary)}.bg-secondary{background-color:var(--color-secondary)}.bg-dark{background-color:var(--color-background-dark-primary)}.bg-dark-secondary{background-color:var(--color-background-dark-secondary)}.bg-dark-tertiary{background-color:var(--color-background-dark-tertiary)}.flex{display:flex}.inline-flex{display:inline-flex}.flex-column{flex-direction:column}.flex-row{flex-direction:row}.flex-wrap{flex-wrap:wrap}.flex-nowrap{flex-wrap:nowrap}.items-center{align-items:center}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-stretch{align-items:stretch}.items-baseline{align-items:baseline}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.justify-around{justify-content:space-around}.justify-evenly{justify-content:space-evenly}.justify-start{justify-content:flex-start}.justify-end{justify-content:flex-end}.gap-xxs{gap:var(--spacing-xxs)}.gap-xs{gap:var(--spacing-xs)}.gap-sm{gap:var(--spacing-sm)}.gap-md{gap:var(--spacing-md)}.gap-lg{gap:var(--spacing-lg)}.gap-xl{gap:var(--spacing-xl)}.flex-1{flex:1}.flex-auto{flex:auto}.flex-none{flex:none}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.hidden{display:none}.card{background-color:var(--color-background-dark-secondary);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-lg);overflow:hidden;box-shadow:0 6px 18px var(--color-shadow-dark),0 0 0 0 var(--color-shadow-glow);display:flex;flex-direction:column;padding:0;transition:transform var(--transition-base),box-shadow var(--transition-base),border-color var(--transition-base)}.card-hover{position:relative}.card-hover:before{content:"";position:absolute;inset:-2px;background:linear-gradient(135deg,transparent 0%,rgba(var(--color-primary-rgb),.2) 50%,transparent 100%);border-radius:inherit;opacity:0;transition:opacity var(--transition-base);pointer-events:none;z-index:-1}.card-hover:hover{transform:translateY(-8px);box-shadow:0 12px 32px var(--color-shadow-hover),0 0 0 1px rgba(var(--color-primary-rgb),.3)}.card-hover:hover:before{opacity:1}.card-glass{background:var(--glass-bg);backdrop-filter:var(--glass-blur);-webkit-backdrop-filter:var(--glass-blur);border:1px solid var(--glass-border);box-shadow:0 8px 32px #0000004d,inset 0 1px #ffffff0d;padding:var(--spacing-lg)}.card-glass:hover{border-color:rgba(var(--color-primary-rgb),.3);box-shadow:0 12px 40px #0006,inset 0 1px #ffffff1a,0 0 0 1px rgba(var(--color-primary-rgb),.2)}.card-gradient-border{position:relative;background-color:var(--color-background-dark-secondary);border:none;padding:var(--spacing-lg)}.card-gradient-border:before{content:"";position:absolute;inset:0;border-radius:inherit;padding:2px;background:var(--gradient-primary);-webkit-mask:linear-gradient(#fff 0 0) content-box,linear-gradient(#fff 0 0);-webkit-mask-composite:xor;mask-composite:exclude;pointer-events:none}.content-section{max-width:1000px;margin:clamp(3rem,8vw,5rem) auto;padding:clamp(2rem,5vw,3.5rem);background-color:var(--color-background-dark-secondary);border:1px solid var(--color-border-dark);border-radius:var(--border-radius-xl);box-shadow:0 12px 40px var(--color-shadow-dark),0 0 0 1px rgba(var(--color-primary-rgb),.1);color:var(--color-text-light-mode);text-align:center;position:relative;transition:transform var(--transition-base),box-shadow var(--transition-base)}.content-section:hover{transform:translateY(-4px);box-shadow:0 16px 48px var(--color-shadow-hover),0 0 0 1px rgba(var(--color-primary-rgb),.2)}.content-section-wide{max-width:1200px}.content-section-narrow{max-width:800px}.content-section-static:hover{transform:none;box-shadow:0 12px 40px var(--color-shadow-dark),0 0 0 1px rgba(var(--color-primary-rgb),.1)}.container{max-width:1200px;margin:0 auto;padding:0 var(--spacing-md);width:100%}.container-sm{max-width:800px;margin:0 auto;padding:0 var(--spacing-md);width:100%}.container-lg{max-width:1400px;margin:0 auto;padding:0 var(--spacing-md);width:100%}.container-fluid{width:100%;padding:0 var(--spacing-md)}.loading-message,.error-message,.success-message,.warning-message,.info-message,.no-content-message{max-width:600px;margin:var(--space-2xl) auto;padding:var(--space-xl);text-align:center;font-family:var(--font-body);font-size:clamp(.9375rem,2vw,1rem);font-weight:var(--font-weight-normal);line-height:var(--leading-normal);border-radius:var(--radius-md);border:1px solid var(--border-light);display:flex;flex-direction:column;align-items:center;justify-content:center;gap:var(--space-sm);box-shadow:var(--shadow-sm)}.loading-message{color:var(--text-secondary);background-color:#fdfcfa80;border-color:var(--border-light)}.error-message{color:var(--color-error);background-color:#b4746614;border-color:#b4746633;box-shadow:var(--shadow-md)}.success-message{color:var(--color-success);background-color:#6b7f5a14;border-color:#6b7f5a33}.warning-message{color:var(--color-warning);background-color:#b0997014;border-color:#b0997033}.info-message{color:var(--color-info);background-color:#6b7b8a14;border-color:#6b7b8a33}.no-content-message{color:var(--text-secondary);background-color:#fdfcfa80;border-color:var(--border-light);font-style:italic}@media (max-width: 768px){.loading-message,.error-message,.success-message,.warning-message,.info-message,.no-content-message{padding:var(--space-lg);margin:var(--space-xl) var(--space-sm);font-size:.875rem}}@media (max-width: 480px){.loading-message,.error-message,.success-message,.warning-message,.info-message,.no-content-message{padding:var(--space-md);margin:var(--space-lg) var(--space-xs);font-size:.8125rem}}.form-input{width:100%;padding:var(--spacing-md);font-size:16px;font-family:var(--font-body);font-weight:var(--font-weight-normal);background-color:var(--color-background-dark-tertiary);color:var(--color-text-white);border:2px solid var(--color-border-dark);border-radius:var(--border-radius-md);transition:border-color var(--transition-base),box-shadow var(--transition-base),background-color var(--transition-base)}.form-input::placeholder{color:var(--color-text-muted);opacity:.7}.form-input:hover:not(:disabled){border-color:var(--color-text-muted)}.form-input:focus{outline:none;border-color:var(--color-primary);background-color:var(--color-background-dark-secondary);box-shadow:0 0 0 var(--focus-ring-width) var(--focus-ring-color),0 0 20px rgba(var(--color-primary-rgb),.15)}.form-input:disabled{opacity:.5;cursor:not-allowed;background-color:var(--color-background-dark-primary)}.form-input-group{position:relative;display:flex;align-items:center}.form-input-icon{position:absolute;left:var(--spacing-md);color:var(--color-text-muted);pointer-events:none}.form-input-group .form-input{padding-left:calc(var(--spacing-md) * 2.5)}.form-label{display:block;margin-bottom:var(--spacing-sm);font-size:var(--font-size-base);font-weight:var(--font-weight-semibold);color:var(--color-text-light-mode);letter-spacing:var(--letter-spacing-wide)}.form-label-required:after{content:" *";color:var(--color-error)}.tag{display:inline-flex;align-items:center;gap:var(--spacing-xs);padding:.35rem .75rem;border-radius:var(--border-radius-pill);font-size:var(--font-size-xs);font-weight:var(--font-weight-bold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);white-space:nowrap;transition:transform var(--transition-fast),box-shadow var(--transition-fast);cursor:default}.tag:hover{transform:translateY(-2px)}.tag-category{background:var(--color-tag-category-bg);color:var(--color-tag-category-text);box-shadow:0 2px 8px var(--color-tag-category-shadow)}.tag-category:hover{box-shadow:0 4px 12px var(--color-tag-category-shadow)}.tag-cuisine{background:var(--color-tag-cuisine-bg);color:var(--color-tag-cuisine-text);box-shadow:0 2px 8px var(--color-tag-cuisine-shadow)}.tag-cuisine:hover{box-shadow:0 4px 12px var(--color-tag-cuisine-shadow)}.tag-season{background:var(--color-tag-season-bg);color:var(--color-tag-season-text);box-shadow:0 2px 8px var(--color-tag-season-shadow)}.tag-season:hover{box-shadow:0 4px 12px var(--color-tag-season-shadow)}.tag-dietary{background:var(--color-tag-dietary-bg);color:var(--color-tag-dietary-text);box-shadow:0 2px 8px var(--color-tag-dietary-shadow)}.tag-dietary:hover{box-shadow:0 4px 12px var(--color-tag-dietary-shadow)}.tag-method{background:var(--color-tag-method-bg);color:var(--color-tag-method-text);box-shadow:0 2px 8px var(--color-tag-method-shadow)}.tag-method:hover{box-shadow:0 4px 12px var(--color-tag-method-shadow)}.tag-difficulty{background:var(--color-tag-difficulty-bg);color:var(--color-tag-difficulty-text);box-shadow:0 2px 8px var(--color-tag-difficulty-shadow)}.tag-difficulty:hover{box-shadow:0 4px 12px var(--color-tag-difficulty-shadow)}.tag-occasion{background:var(--color-tag-occasion-bg);color:var(--color-tag-occasion-text);box-shadow:0 2px 8px var(--color-tag-occasion-shadow)}.tag-occasion:hover{box-shadow:0 4px 12px var(--color-tag-occasion-shadow)}.tag-main-ingredient{background:var(--color-tag-main-ingredient-bg);color:var(--color-tag-main-ingredient-text);box-shadow:0 2px 8px var(--color-tag-main-ingredient-shadow)}.tag-main-ingredient:hover{box-shadow:0 4px 12px var(--color-tag-main-ingredient-shadow)}.tag-group{display:flex;flex-wrap:wrap;gap:var(--spacing-sm)}.grid{display:grid;gap:var(--spacing-lg)}.grid-cols-1{grid-template-columns:repeat(1,1fr)}.grid-cols-2{grid-template-columns:repeat(2,1fr)}.grid-cols-3{grid-template-columns:repeat(3,1fr)}.grid-cols-4{grid-template-columns:repeat(4,1fr)}@media (max-width: 1024px){.grid-cols-4{grid-template-columns:repeat(3,1fr)}.grid-cols-3{grid-template-columns:repeat(2,1fr)}}@media (max-width: 768px){.grid-cols-4,.grid-cols-3,.grid-cols-2{grid-template-columns:repeat(1,1fr)}}.w-full{width:100%}.w-auto{width:auto}.w-screen{width:100vw}.h-full{height:100%}.h-auto{height:auto}.h-screen{height:100vh}.max-w-xs{max-width:20rem}.max-w-sm{max-width:24rem}.max-w-md{max-width:28rem}.max-w-lg{max-width:32rem}.max-w-xl{max-width:36rem}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.border{border:1px solid var(--color-border-dark)}.border-2{border:2px solid var(--color-border-dark)}.border-t{border-top:1px solid var(--color-border-dark)}.border-b{border-bottom:1px solid var(--color-border-dark)}.border-l{border-left:1px solid var(--color-border-dark)}.border-r{border-right:1px solid var(--color-border-dark)}.border-primary{border-color:var(--color-primary)}.border-secondary{border-color:var(--color-secondary)}.rounded-none{border-radius:0}.rounded-sm{border-radius:var(--border-radius-sm)}.rounded{border-radius:var(--border-radius-md)}.rounded-lg{border-radius:var(--border-radius-lg)}.rounded-xl{border-radius:var(--border-radius-xl)}.rounded-full{border-radius:var(--border-radius-pill)}.shadow-none{box-shadow:none}.shadow-sm{box-shadow:0 2px 8px var(--color-shadow-light)}.shadow{box-shadow:0 4px 16px var(--color-shadow-dark)}.shadow-lg{box-shadow:0 8px 32px var(--color-shadow-dark)}.shadow-xl{box-shadow:0 12px 48px var(--color-shadow-hover)}.shadow-glow{box-shadow:0 4px 16px var(--color-shadow-dark),0 0 24px rgba(var(--color-primary-rgb),.3)}.cursor-pointer{cursor:pointer}.cursor-default{cursor:default}.cursor-not-allowed{cursor:not-allowed}.cursor-move{cursor:move}.cursor-grab{cursor:grab}.cursor-grabbing{cursor:grabbing}.opacity-0{opacity:0}.opacity-25{opacity:.25}.opacity-50{opacity:.5}.opacity-75{opacity:.75}.opacity-100{opacity:1}.relative{position:relative}.absolute{position:absolute}.fixed{position:fixed}.sticky{position:sticky}.top-0{top:0}.right-0{right:0}.bottom-0{bottom:0}.left-0{left:0}.inset-0{inset:0}.z-0{z-index:0}.z-10{z-index:10}.z-20{z-index:20}.z-30{z-index:30}.z-40{z-index:40}.z-50{z-index:50}.overflow-hidden{overflow:hidden}.overflow-auto{overflow:auto}.overflow-scroll{overflow:scroll}.overflow-visible{overflow:visible}.overflow-x-hidden{overflow-x:hidden}.overflow-y-hidden{overflow-y:hidden}.overflow-x-auto{overflow-x:auto}.overflow-y-auto{overflow-y:auto}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}.animate-fade-in{animation:fadeIn var(--transition-base) ease-in}@keyframes slideUp{0%{opacity:0;transform:translateY(20px)}to{opacity:1;transform:translateY(0)}}.animate-slide-up{animation:slideUp var(--transition-base) ease-out}@keyframes scaleIn{0%{opacity:0;transform:scale(.9)}to{opacity:1;transform:scale(1)}}.animate-scale-in{animation:scaleIn var(--transition-base) ease-out}@keyframes pulse{0%,to{opacity:1}50%{opacity:.5}}.animate-pulse{animation:pulse 2s cubic-bezier(.4,0,.6,1) infinite}@keyframes spin{to{transform:rotate(360deg)}}.animate-spin{animation:spin 1s linear infinite}@keyframes bounce{0%,to{transform:translateY(0)}50%{transform:translateY(-10px)}}.animate-bounce{animation:bounce 1s ease-in-out infinite}.not-sr-only{position:static;width:auto;height:auto;padding:0;margin:0;overflow:visible;clip:auto;white-space:normal}@media (max-width: 768px){.hidden-mobile{display:none!important}}@media (min-width: 769px){.visible-mobile-only{display:none!important}}@media (max-width: 1024px){.hidden-tablet{display:none!important}}@media (min-width: 1025px){.visible-tablet-only{display:none!important}}@media (prefers-reduced-motion: reduce){.animate-fade-in,.animate-slide-up,.animate-scale-in,.animate-pulse,.animate-spin,.animate-bounce,.card-hover,.tag{animation:none;transition:none}.card-hover:hover,.tag:hover{transform:none}}*,*:before,*:after{box-sizing:border-box;margin:0;padding:0}html{height:100%;overflow-y:auto;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;scroll-behavior:smooth;font-size:16px}body{height:100%;margin:0;padding:0;font-family:var(--font-body);font-size:var(--font-size-base);line-height:var(--line-height-base);font-weight:var(--font-weight-normal);color:var(--text-primary);background-color:var(--color-bg-secondary)}#root{display:flex;flex-direction:column;min-height:100vh;width:100%}h1,h2,h3,h4,h5,h6{font-family:var(--font-heading);font-weight:var(--font-weight-bold);line-height:var(--line-height-tight);color:var(--color-text-light-mode);margin-bottom:var(--spacing-md);letter-spacing:var(--letter-spacing-tight)}h1{font-size:clamp(2.5rem,5vw + 1rem,var(--font-size-6xl));margin-bottom:var(--spacing-lg);letter-spacing:-.02em}h2{font-size:clamp(2rem,4vw + 1rem,var(--font-size-5xl));margin-bottom:var(--spacing-lg)}h3{font-size:clamp(1.75rem,3vw + .5rem,var(--font-size-4xl))}h4{font-size:clamp(1.5rem,2.5vw + .5rem,var(--font-size-3xl))}h5{font-size:clamp(1.25rem,2vw + .25rem,var(--font-size-2xl));font-weight:var(--font-weight-semibold)}h6{font-size:clamp(1.125rem,1.5vw + .25rem,var(--font-size-xl));font-weight:var(--font-weight-semibold);letter-spacing:var(--letter-spacing-normal)}p{margin-bottom:var(--spacing-md);line-height:var(--line-height-base);color:var(--color-text-light-mode)}.prose p{line-height:var(--line-height-relaxed);margin-bottom:var(--spacing-lg)}.lead{font-size:var(--font-size-lg);line-height:var(--line-height-relaxed);font-weight:var(--font-weight-normal);color:var(--color-text-medium-light)}small,.text-small{font-size:var(--font-size-sm);line-height:var(--line-height-base)}a{color:var(--color-primary);text-decoration:none;transition:color var(--transition-base);cursor:pointer}a:hover{color:var(--color-primary-hover);text-decoration:underline}a:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset);border-radius:var(--border-radius-sm);text-decoration:none}p a,.prose a{font-weight:var(--font-weight-semibold);text-decoration-thickness:2px;text-underline-offset:3px}ul,ol{margin-bottom:var(--spacing-md);padding-left:var(--spacing-xl)}li{margin-bottom:var(--spacing-xs);line-height:var(--line-height-base)}ul ul,ol ol,ul ol,ol ul{margin-top:var(--spacing-xs);margin-bottom:var(--spacing-xs)}.list-none{list-style:none;padding-left:0}strong,b{font-weight:var(--font-weight-bold);color:var(--color-text-light-mode)}em,i{font-style:italic}blockquote{margin:var(--spacing-lg) 0;padding:var(--spacing-md) var(--spacing-lg);border-left:4px solid var(--color-primary);background-color:var(--color-background-dark-secondary);border-radius:var(--border-radius-md);font-style:italic}blockquote p:last-child{margin-bottom:0}blockquote cite{display:block;margin-top:var(--spacing-sm);font-size:var(--font-size-sm);font-style:normal;color:var(--color-text-medium-light)}code,kbd,samp{font-family:Monaco,Courier New,monospace;font-size:.9em;padding:.2em .4em;background-color:var(--color-background-dark-tertiary);border-radius:var(--border-radius-sm);color:var(--color-accent-info)}pre{margin:var(--spacing-lg) 0;padding:var(--spacing-md);background-color:var(--color-background-dark-tertiary);border-radius:var(--border-radius-md);overflow-x:auto;line-height:var(--line-height-base)}pre code{padding:0;background:none;font-size:var(--font-size-sm)}hr{margin:var(--spacing-xl) 0;border:none;border-top:1px solid var(--color-border-dark)}img{max-width:100%;height:auto;display:block}::selection{background-color:rgba(var(--color-primary-rgb),.3);color:var(--color-text-white)}::-moz-selection{background-color:rgba(var(--color-primary-rgb),.3);color:var(--color-text-white)}*:focus-visible{outline:var(--focus-ring-width) solid var(--focus-ring-color);outline-offset:var(--focus-ring-offset)}.skip-link{position:absolute;top:-100px;left:0;background-color:var(--color-primary);color:var(--color-text-white);padding:var(--spacing-md) var(--spacing-lg);text-decoration:none;font-weight:var(--font-weight-semibold);z-index:10000;border-radius:0 0 var(--border-radius-md) 0}.skip-link:focus{top:0;outline:var(--focus-ring-width) solid var(--color-text-white);outline-offset:-3px}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.sr-only-focusable:focus,.sr-only-focusable:active{position:static;width:auto;height:auto;overflow:visible;clip:auto;white-space:normal}@media (prefers-reduced-motion: reduce){*,*:before,*:after{animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important;scroll-behavior:auto!important}}@media (prefers-contrast: high){:root{--color-border-dark: #666666;--color-shadow-dark: rgba(0, 0, 0, .9)}a{text-decoration:underline}button,.btn{border:2px solid currentColor}}@media print{*,*:before,*:after{background:transparent!important;color:#000!important;box-shadow:none!important;text-shadow:none!important}a,a:visited{text-decoration:underline}a[href]:after{content:" (" attr(href) ")"}abbr[title]:after{content:" (" attr(title) ")"}a[href^="#"]:after,a[href^="javascript:"]:after{content:""}img{page-break-inside:avoid}h1,h2,h3{page-break-after:avoid}p,h2,h3{orphans:3;widows:3}thead{display:table-header-group}tr,img{page-break-inside:avoid}}@media print{@page{margin:.5in;size:letter portrait}html{font-size:12pt!important}body{width:100%!important;margin:0!important;padding:0!important;background:#fff!important;color:#000!important}header,nav,footer,aside,.navbar,.sidebar,.back-to-recipes-button,.back-to-journal-button,.top-back-button{display:none!important}button,.btn,.print-icon-button,.share-icon-button,.favorite-icon-button,.single-recipe-action-buttons,.single-journal-action-buttons{display:none!important}.recipe-ratings-section,.single-journal-comments-section,.comments-section,.single-recipe-section:has(.comment-header),.single-recipe-tags-grid,.single-journal-tags-section{display:none!important}.search-input-wrapper,.search-controls,.filter-controls,.pagination-controls,.journal-controls,.active-filter-badge,.serving-multiplier-controls,.cookie-consent-banner,.modal,.popup,.tooltip{display:none!important}.single-recipe-container,.single-journal-container,.single-resource-container{display:block!important;width:100%!important;max-width:100%!important;margin:0!important;padding:0!important}.single-recipe-main-content,.single-journal-main-content{display:block!important;width:100%!important;padding:0!important}.single-recipe-section{display:block!important;page-break-inside:avoid;margin-bottom:12pt}.single-recipe-title-section,.single-journal-title-section{margin-top:0!important;padding-top:0!important;margin-bottom:12pt!important}h1,.single-recipe-header,.single-journal-header{display:block!important;font-size:22pt!important;font-weight:700!important;color:#000!important;margin:0 0 12pt!important;padding:0 0 8pt!important;border-bottom:2pt solid black!important;page-break-after:avoid}h2,.single-recipe-section-header{display:block!important;font-size:16pt!important;font-weight:700!important;color:#000!important;margin:16pt 0 8pt!important;padding:0 0 4pt!important;border-bottom:1pt solid #666!important;page-break-after:avoid}h3,.instruction-section-title{display:block!important;font-size:13pt!important;font-weight:700!important;color:#000!important;margin:12pt 0 6pt!important;padding:0!important}p{display:block!important;font-size:11pt!important;line-height:1.6!important;color:#000!important;margin-bottom:8pt!important}.recipe-time-metadata-inline{display:block!important;margin-bottom:12pt!important;font-size:10pt!important;color:#333!important}.time-meta-item{display:inline-block!important;margin-right:10pt!important}.single-recipe-hero-media,.single-journal-hero-media{display:block!important;max-width:100%!important;max-height:250pt!important;margin:12pt 0!important;page-break-inside:avoid}.single-recipe-hero-image,img{display:block!important;max-width:100%!important;height:auto!important}.single-recipe-description{display:block!important;font-size:11pt!important;line-height:1.6!important;margin-bottom:12pt!important;color:#222!important}.ingredient-section-group{display:block!important;margin-bottom:12pt!important;page-break-inside:avoid}.single-recipe-ingredient-list{display:block!important;list-style:none!important;padding-left:0!important;margin-bottom:12pt!important}.single-recipe-ingredient-item{display:list-item!important;font-size:11pt!important;line-height:1.6!important;color:#000!important;margin-bottom:4pt!important}.single-recipe-ingredient-item:before{content:"☐ ";margin-right:8pt;font-weight:700;color:#333}.instruction-content{display:block!important;font-size:11pt!important;line-height:1.6!important}.instruction-content p{display:block!important;margin-bottom:8pt!important}.instruction-content ol,.instruction-content ul{display:block!important;padding-left:20pt!important;margin-bottom:8pt!important}.instruction-content li{display:list-item!important;margin-bottom:6pt!important}h1,h2,h3,h4,h5,h6{page-break-after:avoid}.ingredient-section-group,.single-recipe-section{page-break-inside:avoid}a{color:#000!important;text-decoration:none!important}a[href^=http]:after,a[href^="#"]:after,a[href^="/"]:after{content:""!important}.single-recipe-container:after,.single-journal-container:after{content:"Kolt's Table"!important;display:block!important;margin-top:20pt!important;padding-top:10pt!important;border-top:1pt solid #ccc!important;font-size:9pt!important;color:#999!important;text-align:center!important;font-weight:400!important;letter-spacing:.5pt!important}*{box-shadow:none!important;text-shadow:none!important;animation:none!important;transition:none!important;transform:none!important}}.cookie-consent-banner{position:fixed;bottom:0;left:0;width:100%;z-index:2000;background:linear-gradient(180deg,#eae6e0fa,#f5f2edfa);backdrop-filter:blur(12px);-webkit-backdrop-filter:blur(12px);border-top:1px solid rgba(90,107,77,.15);box-shadow:0 -4px 20px #1a181614;border-top-left-radius:var(--radius-2xl);border-top-right-radius:var(--radius-2xl);display:flex;justify-content:center;align-items:center;padding:var(--space-xl) var(--space-lg)}.cookie-consent-content{max-width:900px;width:100%;display:flex;flex-direction:column;align-items:center;gap:var(--space-md);text-align:center}.cookie-consent-message{margin:0;font-size:.9375rem;font-weight:var(--weight-normal);color:var(--text-secondary);line-height:var(--leading-normal)}.cookie-consent-message a{color:var(--accent-primary);text-decoration:underline;font-weight:var(--weight-semibold);transition:color var(--transition-base)}.cookie-consent-message a:hover{color:var(--accent-primary-hover)}.cookie-consent-preferences{display:flex;flex-wrap:wrap;gap:var(--space-sm);justify-content:center}.cookie-consent-preferences label{display:flex;align-items:center;gap:var(--space-xs);padding:.5rem .875rem;background-color:#fdfcfacc;border:1px solid var(--border-medium);border-radius:var(--radius-sm);font-size:.875rem;font-weight:var(--weight-medium);color:var(--text-primary);cursor:pointer;white-space:nowrap;transition:all var(--transition-base)}.cookie-consent-preferences label:hover{background-color:#fff;border-color:var(--accent-primary);box-shadow:var(--shadow-sm)}.cookie-consent-preferences input[type=checkbox]{width:18px;height:18px;accent-color:var(--accent-primary);cursor:pointer}.cookie-consent-preferences input[type=checkbox]:disabled{cursor:not-allowed;opacity:.6}.cookie-consent-actions{display:flex;flex-wrap:wrap;justify-content:center;gap:var(--space-sm);margin-top:var(--space-sm)}.cookie-consent-actions button{padding:.625rem 1.5rem;min-height:44px;font-size:.875rem;font-weight:var(--weight-semibold);text-transform:uppercase;letter-spacing:var(--letter-spacing-wider);border-radius:var(--radius-md);cursor:pointer;transition:all var(--transition-base);white-space:nowrap;border:1px solid transparent}.btn-decline{background-color:transparent;color:var(--color-error);border-color:var(--color-error)}.btn-decline:hover{background-color:var(--color-error);color:#fff;transform:translateY(-2px);box-shadow:0 0 8px #b4746633}.btn-save-preferences{background-color:#fdfcfacc;color:var(--text-primary);border-color:var(--border-medium)}.btn-save-preferences:hover{background-color:#fff;border-color:var(--accent-primary);color:var(--accent-primary);transform:translateY(-2px);box-shadow:var(--shadow-sm)}.btn-accept-all{background-color:var(--accent-primary);color:#fff;border-color:var(--accent-primary);box-shadow:var(--shadow-sm)}.btn-accept-all:hover{background-color:var(--accent-primary-hover);border-color:var(--accent-primary-hover);transform:translateY(-2px);box-shadow:var(--shadow-md)}@media (max-width: 768px){.cookie-consent-banner{padding:var(--space-lg) var(--space-md)}.cookie-consent-content{gap:var(--space-sm)}.cookie-consent-message{font-size:.875rem}.cookie-consent-preferences{flex-direction:column;align-items:stretch;width:100%;max-width:320px}.cookie-consent-actions{flex-direction:column;width:100%;max-width:320px}.cookie-consent-actions button{width:100%}}@media (max-width: 480px){.cookie-consent-banner{padding:var(--space-md) var(--space-sm)}.cookie-consent-message{font-size:.8125rem}.cookie-consent-preferences label{font-size:.8125rem;padding:.375rem .75rem}.cookie-consent-actions button{font-size:.8125rem;padding:.5rem 1.25rem;min-height:40px}}@media (prefers-reduced-motion: reduce){.cookie-consent-actions button,.cookie-consent-preferences label{transition:none}.cookie-consent-actions button:hover,.btn-decline:hover,.btn-save-preferences:hover,.btn-accept-all:hover{transform:none}}.error-boundary-fallback{display:flex;justify-content:center;align-items:center;min-height:100vh;padding:2rem;background:linear-gradient(135deg,#f5f7fa,#c3cfe2)}.error-boundary-content{max-width:600px;background:#fff;padding:3rem;border-radius:12px;box-shadow:0 8px 24px #0000001a;text-align:center}.error-boundary-title{font-size:2rem;color:#2c3e50;margin-bottom:1rem}.error-boundary-message{font-size:1.1rem;color:#7f8c8d;margin-bottom:2rem;line-height:1.6}.error-boundary-actions{display:flex;gap:1rem;justify-content:center;margin-bottom:2rem}.error-boundary-details{margin-top:2rem;text-align:left;padding:1rem;background:#f8f9fa;border-radius:8px;border:1px solid #dee2e6}.error-boundary-details summary{cursor:pointer;font-weight:600;color:#e74c3c;margin-bottom:1rem}.error-boundary-stack{font-family:Monaco,Courier New,monospace;font-size:.85rem;background:#2c3e50;color:#ecf0f1;padding:1rem;border-radius:4px;overflow-x:auto;white-space:pre-wrap}
