/* Paolino's Illustrated Heritage v2.0 — public product catalog.
   Scoped to catalog routes; QR-first mobile design, no additional plugins. */
.catalog-hero{position:relative;isolation:isolate;overflow:hidden;background-color:var(--parchment)}
.catalog-hero__inner{position:relative;display:flex;align-items:center;min-height:clamp(330px,30vw,455px);padding-block:clamp(120px,10vw,165px) clamp(65px,7vw,105px)}
.catalog-hero__copy{position:relative;z-index:1;max-width:850px}
.catalog-hero__copy h1,.catalog-detail__intro h1{font:400 clamp(54px,7vw,109px)/.97 var(--display);letter-spacing:-.06em;color:var(--ink);margin:23px 0 23px}
.catalog-hero__copy h1 em,.catalog-detail__intro h1 em,.catalog-list__heading h2 em,.catalog-facts__heading h2 em,.catalog-detail__return h2 em,.catalog-detail__description h2 em{color:var(--burgundy);font-family:var(--display);font-style:italic;font-weight:400;letter-spacing:-.035em}
.catalog-hero__copy>p:last-child{max-width:640px;font-size:clamp(16px,1.2vw,19px);line-height:1.65;color:var(--muted)}
.catalog-hero__ornament{position:absolute;right:3.5%;top:14%;width:clamp(155px,18vw,290px);height:75%;opacity:.22;transform:rotate(-17deg);pointer-events:none}
.catalog-list{padding:clamp(38px,4.4vw,70px) 0 clamp(90px,9vw,145px);background-color:var(--paper)}
.catalog-filter{display:flex;align-items:flex-start;gap:clamp(20px,3vw,44px);margin-bottom:clamp(66px,7vw,104px)}
.catalog-filter__label{display:block;font:700 var(--type-label)/1.5 var(--sans);letter-spacing:var(--tracking-label);color:var(--burgundy-deep);padding-top:12px;flex:0 0 108px}
.catalog-filter__links{display:flex;flex-wrap:wrap;gap:9px 10px}
.catalog-filter__link{display:inline-flex;align-items:center;justify-content:center;padding:10px 17px;min-height:44px;border:1px solid rgba(128,32,42,.30);color:var(--burgundy-deep);background:transparent;font:700 var(--type-action)/1.35 var(--sans);letter-spacing:var(--tracking-action);transition:background-color .17s ease,color .17s ease,border-color .17s ease}
.catalog-filter__link:hover,.catalog-filter__link:focus-visible{border-color:var(--burgundy)}
.catalog-filter__link.is-active{background:var(--burgundy);color:#fff5e8;border-color:var(--burgundy)}
.catalog-list__heading{display:grid;grid-template-columns:minmax(0,1fr) minmax(190px,370px);align-items:end;gap:clamp(25px,5vw,85px);margin-bottom:clamp(35px,4vw,60px)}
.catalog-list__heading h2{font:400 clamp(37px,3.9vw,62px)/1.08 var(--display);letter-spacing:-.048em;margin:14px 0 0;color:var(--ink)}
.catalog-list__heading>p{font-size:clamp(14px,1.05vw,17px);line-height:1.7;color:var(--muted);max-width:380px;padding-bottom:5px}
.catalog-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));column-gap:clamp(18px,2.35vw,38px);row-gap:clamp(50px,5vw,83px)}
.catalog-card{min-width:0;display:flex;flex-direction:column;gap:0}
.catalog-card__visual{display:block;aspect-ratio:1.33/1;width:100%;overflow:hidden}
.catalog-card__visual>img{width:100%;height:100%;object-fit:cover;transition:transform .35s ease}
.catalog-card__visual:hover>img{transform:scale(1.045)}
.catalog-card__visual:has(.catalog-card__placeholder){background:#edcdb0}
.catalog-card__placeholder{position:absolute;inset:0;display:flex;align-items:center;justify-content:center;background:radial-gradient(circle at 50% 50%, #f8e8d2, #d7a5a0)}
.catalog-card__placeholder img{width:45%;height:65%;object-fit:contain;opacity:.48;filter:none}
.catalog-card__info{display:flex;flex:1;flex-direction:column;padding-top:22px}
.catalog-card__category{font:700 var(--type-label)/1.5 var(--sans);color:var(--burgundy);letter-spacing:var(--tracking-label);text-transform:uppercase;margin-bottom:10px}
.catalog-card__title{font:400 clamp(25px,2.1vw,36px)/1.11 var(--display);letter-spacing:-.035em;color:var(--ink)}
.catalog-card__title a:hover{color:var(--burgundy)}
.catalog-card__subtitle{font:italic 400 clamp(16px,1.25vw,21px)/1.3 var(--display);color:var(--burgundy);margin-top:8px}
.catalog-card__excerpt{font:400 var(--type-small)/var(--line-body) var(--sans);color:var(--muted);margin-top:13px;max-width:440px}
.catalog-card__bottom{display:flex;flex-wrap:wrap;align-items:center;gap:14px 22px;justify-content:space-between;margin-top:auto;padding-top:25px}
.catalog-card__more{display:inline-flex;align-items:center;gap:13px;min-height:44px;color:var(--burgundy-deep);font:700 var(--type-action)/1.3 var(--sans);letter-spacing:var(--tracking-action);text-transform:uppercase}
.catalog-card__more:hover{text-decoration:underline;text-underline-offset:4px}
.catalog-card__more svg{width:24px;height:18px;display:block}
.catalog-card__price{font:700 14px/1.4 var(--display);color:var(--burgundy-deep)}
.catalog-pagination{margin-top:65px}
.catalog-pagination .nav-links{display:flex;gap:9px;flex-wrap:wrap;align-items:center}
.catalog-pagination .page-numbers{display:inline-flex;min-width:43px;min-height:43px;align-items:center;justify-content:center;padding:8px 13px;font-size:14px;border:1px solid rgba(128,32,42,.3)}
.catalog-pagination .page-numbers.current{background:var(--burgundy);border-color:var(--burgundy);color:#fff5e8}
.catalog-list__notice{font-size:13px;line-height:1.6;color:var(--muted);max-width:740px;margin-top:60px}
.catalog-empty{text-align:center;background:#f5e7d3;padding:clamp(42px,5vw,75px) 24px;max-width:850px;margin-inline:auto}
.catalog-empty>img{width:90px;height:115px;object-fit:contain;opacity:.55;margin-bottom:21px}
.catalog-empty h3{font:400 clamp(32px,4vw,50px)/1.15 var(--display);margin-bottom:12px}
.catalog-empty p{font-size:15px;line-height:1.6;max-width:460px;margin:auto}
.catalog-back{display:inline-flex;align-items:center;gap:13px;color:var(--burgundy);font-weight:700;font-size:13px;margin-top:23px}
.catalog-back svg{width:25px;height:18px}
/* Single product: prominent photo, fast direct navigation to ingredient facts. */
.catalog-detail__breadcrumb{display:flex;gap:12px;align-items:center;min-height:73px;font-size:13px;color:var(--muted);overflow-wrap:anywhere}
.catalog-detail__breadcrumb>a{color:var(--burgundy);font-weight:700;text-decoration:underline;text-underline-offset:3px}
.catalog-detail__breadcrumb>span:last-child{display:block;overflow:hidden;white-space:nowrap;text-overflow:ellipsis}
.catalog-detail__hero{background-color:var(--parchment)}
.catalog-detail__hero-inner{display:grid;grid-template-columns:minmax(0,.89fr) minmax(0,1.11fr);min-height:clamp(500px,40vw,680px)}
.catalog-detail__intro{display:flex;flex-direction:column;align-items:flex-start;justify-content:center;padding:clamp(68px,7vw,120px) clamp(36px,5vw,86px) clamp(72px,7vw,100px) 0;min-width:0}
.catalog-detail__intro h1{font-size:clamp(48px,5.4vw,88px);margin:24px 0 12px;overflow-wrap:break-word}
.catalog-detail__subtitle{font:italic 400 clamp(23px,2.5vw,39px)/1.25 var(--display);color:var(--burgundy);margin-bottom:25px}
.catalog-detail__summary{font:400 clamp(15px,1.25vw,19px)/1.7 var(--sans);color:var(--muted);max-width:490px}
.catalog-detail__price{display:flex;gap:18px;align-items:center;margin-top:27px;color:var(--ink)}
.catalog-detail__price span{font-size:12px;letter-spacing:.1em;text-transform:uppercase;color:var(--muted)}
.catalog-detail__price strong{font:700 21px/1.3 var(--display)}
.catalog-detail__jump{margin-top:34px;display:inline-flex;align-items:center;gap:16px;min-height:47px;color:var(--burgundy-deep);font-weight:700;font-size:12px;text-transform:uppercase;letter-spacing:.05em}
.catalog-detail__jump svg{width:27px;height:18px;transform:rotate(90deg)}
.catalog-detail__jump:hover{text-decoration:underline;text-underline-offset:4px}
.catalog-detail__visual{position:relative;align-self:stretch;min-height:500px;margin-right:calc(-1 * var(--gutter))}
.catalog-detail__visual>img:not(.catalog-detail__ornament){position:absolute;inset:0;width:100%;height:100%;object-fit:cover}
.catalog-detail__visual--empty{background:#e9d0b7;display:flex;align-items:center;justify-content:center}
.catalog-detail__visual .catalog-detail__ornament{width:45%;height:65%;object-fit:contain;opacity:.42}
.catalog-detail__description{padding-block:clamp(70px,8vw,125px);max-width:1050px}
.catalog-detail__description h2{font:400 clamp(39px,4.3vw,68px)/1.12 var(--display);letter-spacing:-.045em;margin-top:14px}
.catalog-detail__story{font-size:clamp(16px,1.18vw,19px);line-height:1.78;margin-top:33px;color:var(--muted)}
.catalog-detail__description .catalog-detail__story.paolinos-content.entry-content{width:100%;max-width:none;margin:33px 0 0;padding:0;overflow-wrap:break-word}
.catalog-detail__description .catalog-detail__story.paolinos-content.entry-content > *{margin-left:0;margin-right:0;padding-left:0;max-width:790px}
.catalog-detail__story>p{max-width:790px}
.catalog-detail__story>:last-child{margin-bottom:0}
.catalog-facts{background-color:#f6e7cd;scroll-margin-top:40px;padding:clamp(75px,7vw,120px) 0 clamp(80px,8vw,125px)}
.catalog-facts__heading h2{font:400 clamp(42px,4.8vw,75px)/1.06 var(--display);letter-spacing:-.05em;margin:18px 0 17px}
.catalog-facts__heading>p:last-child{font-size:clamp(15px,1.1vw,18px);color:var(--muted);line-height:1.6;max-width:660px}
.catalog-facts__columns{display:grid;grid-template-columns:1fr 1fr;gap:clamp(45px,7vw,120px);margin-top:clamp(52px,6vw,88px)}
.catalog-facts__group h3{font:400 clamp(31px,3vw,47px)/1.2 var(--display);margin-bottom:25px}
.catalog-ingredients{list-style:none;padding:0;margin:0;display:flex;flex-wrap:wrap;gap:0}
.catalog-ingredients li{font-size:16px;line-height:1.85}
.catalog-ingredients li:not(:last-child)::after{content:",";padding-right:.38em}
.catalog-ingredients strong{font-weight:700;color:var(--burgundy-deep)}
.catalog-ingredients__labels{font-size:.82em;color:var(--burgundy-deep)}
.catalog-facts__caption{font-size:13px;line-height:1.6;color:var(--muted);margin-top:22px}
.catalog-allergens{display:flex;flex-wrap:wrap;list-style:none;padding:0;margin:0;gap:9px}
.catalog-allergens li{border:1px solid rgba(120,26,39,.35);padding:10px 15px;font:700 13px/1.35 var(--sans);color:var(--burgundy-deep);background:rgba(255,248,237,.4)}
.catalog-facts__group>p{font-size:15px;line-height:1.75;color:var(--muted)}
.catalog-facts__pending{margin-top:17px;color:var(--burgundy-deep)!important}
.catalog-facts__traces{margin-top:29px;padding:15px 0;border-top:1px solid rgba(120,26,39,.25)}
.catalog-facts__traces strong{color:var(--burgundy-deep)}
.catalog-facts__footer{display:flex;justify-content:space-between;gap:24px;align-items:flex-start;margin-top:clamp(55px,6vw,85px);padding-top:22px;border-top:1px solid rgba(120,26,39,.26);color:var(--muted);font-size:13px;line-height:1.65}
.catalog-facts__footer p:first-child{max-width:540px}
.catalog-detail__return{background-color:var(--paper);padding:clamp(60px,6vw,100px) 0}
.catalog-detail__return-inner{display:flex;justify-content:space-between;gap:32px;align-items:center}
.catalog-detail__return h2{font:400 clamp(31px,3.5vw,52px)/1.12 var(--display);letter-spacing:-.035em;margin-top:13px;max-width:700px}
.catalog-detail__return .button{gap:24px;white-space:normal;flex:0 0 auto}
.catalog-detail__return .button svg{width:27px;height:18px;flex-shrink:0}
@media(max-width:1020px){
 .catalog-grid{grid-template-columns:repeat(2,minmax(0,1fr))}
 .catalog-detail__hero-inner{grid-template-columns:minmax(0,1fr) minmax(0,1fr)}
 .catalog-detail__intro{padding-right:30px}
 .catalog-detail__intro h1{font-size:clamp(42px,6vw,68px)}
}
@media(max-width:780px){
 .catalog-hero__inner{padding-block:120px 70px;min-height:325px}
 .catalog-hero__ornament{right:-30px;opacity:.13}
 .catalog-hero__copy h1{font-size:clamp(47px,9vw,75px)}
 .catalog-list__heading{grid-template-columns:1fr;gap:16px}
 .catalog-list__heading>p{max-width:560px}
 .catalog-detail__hero-inner{display:flex;flex-direction:column}
 .catalog-detail__intro{padding:72px 0 54px}
 .catalog-detail__visual{min-height:0;height:clamp(320px,56vw,480px);margin-left:calc(-1 * var(--gutter))}
 .catalog-detail__intro h1{font-size:clamp(47px,8vw,76px)}
 .catalog-facts__columns{gap:45px}
}
@media(max-width:600px){
 .catalog-hero__inner{padding-block:113px 61px;min-height:295px}
 .catalog-hero__copy h1{font-size:clamp(45px,11vw,62px);margin:19px 0 20px}
 .catalog-hero__copy>p:last-child{font-size:15px}
 .catalog-filter{flex-direction:column;gap:15px;margin-bottom:64px}
 .catalog-filter__label{flex:initial;padding:0}
 .catalog-filter__links{gap:8px}
 .catalog-filter__link{padding:10px 13px;font-size:12px}
 .catalog-grid{grid-template-columns:1fr;gap:49px}
 .catalog-card__visual{aspect-ratio:1.47/1}
 .catalog-card__info{padding-top:18px}
 .catalog-card__title{font-size:30px}
 .catalog-card__excerpt{font-size:14px}
 .catalog-card__bottom{padding-top:18px}
 .catalog-list__heading h2{font-size:clamp(37px,9vw,51px)}
 .catalog-detail__breadcrumb{min-height:59px;font-size:12px}
 .catalog-detail__intro{padding:59px 0 45px}
 .catalog-detail__intro h1{font-size:clamp(46px,11vw,64px)}
 .catalog-detail__subtitle{font-size:26px}
 .catalog-detail__visual{height:300px}
 .catalog-facts__columns{grid-template-columns:1fr;gap:51px;margin-top:52px}
 .catalog-facts__heading h2{font-size:clamp(41px,10vw,58px)}
 .catalog-facts__footer{flex-direction:column;gap:8px}
 .catalog-detail__return-inner{flex-direction:column;align-items:flex-start}
 .catalog-detail__return .button{width:100%;justify-content:space-between}
}
@media print{
 .site-header,.site-footer,.catalog-detail__return,.catalog-detail__jump,.catalog-detail__breadcrumb{display:none!important}
 .catalog-detail__hero-inner{min-height:0;display:block}
 .catalog-detail__intro{padding:15px 0!important}
 .catalog-detail__visual{display:none}
 .catalog-facts{padding:15px 0;background:white}
 .catalog-facts__columns{gap:35px}
}
/* The offset logo must never cover the breadcrumb (desktop or phone). */
.catalog-detail__breadcrumb{padding-top:85px;min-height:148px}
@media(max-width:780px){.catalog-detail__breadcrumb{padding-top:61px;min-height:114px}}
@media(max-width:540px){.catalog-detail__breadcrumb{padding-top:53px;min-height:103px}}
@media(max-width:360px){.catalog-detail__breadcrumb{padding-top:49px;min-height:96px}}

/* Product gallery – theme presentation only; Core retains ownership of images. */
.catalog-gallery{position:relative;width:100%;height:100%;min-height:500px;display:flex;flex-direction:column;background:#e9d0b7}
.catalog-gallery__main{display:block;flex:1;min-height:320px;width:100%;padding:0;border:0;background:transparent;cursor:zoom-in;overflow:hidden}
.catalog-gallery__main img{width:100%;height:100%;max-height:650px;object-fit:cover;display:block}
.catalog-gallery__controls{display:flex;justify-content:space-between;align-items:center;padding:8px 16px;background:#f6e7cd;color:var(--burgundy-deep);font:700 13px var(--sans)}
.catalog-gallery__controls button,.catalog-lightbox button{cursor:pointer;min-width:44px;min-height:44px;border:0;background:transparent;color:inherit;font-size:24px}
.catalog-gallery__thumbs{display:flex;gap:8px;overflow-x:auto;padding:10px;background:#f6e7cd;scrollbar-width:thin}
.catalog-gallery__thumb{flex:0 0 72px;height:72px;padding:0;border:2px solid transparent;background:transparent;cursor:pointer}
.catalog-gallery__thumb[aria-pressed=true]{border-color:var(--burgundy)}
.catalog-gallery__thumb img{display:block;width:100%;height:100%;object-fit:cover}
.catalog-gallery button:focus-visible,.catalog-lightbox button:focus-visible{outline:3px solid #bb6649;outline-offset:3px}
.catalog-lightbox{position:fixed;inset:0;width:100vw;max-width:none;height:100vh;max-height:none;margin:0;padding:20px;border:0;background:#17110fed;color:white}
.catalog-lightbox::backdrop{background:#120d0be8}
.catalog-lightbox__toolbar{display:flex;align-items:center;justify-content:flex-end;gap:24px;max-width:1200px;margin:auto}
.catalog-lightbox__stage{display:grid;grid-template-columns:48px minmax(0,1fr) 48px;align-items:center;gap:8px;height:calc(100% - 65px);max-width:1200px;margin:auto}
.catalog-lightbox__stage img{max-width:100%;max-height:100%;width:100%;height:100%;object-fit:contain}
.catalog-availability{font:700 12px/1.5 var(--sans);letter-spacing:.04em;color:var(--burgundy-deep);margin-top:14px}
.catalog-detail__inquiry{margin-top:22px}
@media(max-width:780px){.catalog-gallery{min-height:0;height:100%}.catalog-gallery__main{min-height:260px}.catalog-gallery__main img{max-height:430px}.catalog-detail__visual:has(.catalog-gallery){height:auto;min-height:0}.catalog-lightbox{padding:8px}.catalog-lightbox__stage{grid-template-columns:40px minmax(0,1fr) 40px;gap:0}}
@media print{.catalog-gallery__thumbs,.catalog-gallery__controls,.catalog-lightbox{display:none!important}}
@media(prefers-reduced-motion:reduce){.catalog-gallery *, .catalog-lightbox *{scroll-behavior:auto!important;transition:none!important}}
