/* Small editorial details for the public Hoffmann portfolio preview. */
.site-header{background:#f6f3eb;backdrop-filter:none}
.hero-image{background-image:url('assets/hero.webp')}
.hero .eyebrow{letter-spacing:.2em}
.hero-actions .button{box-shadow:0 10px 30px rgba(0,0,0,.16)}
.quick-mark{color:#a33c34}
.assortment{background:#fcfaf4}
.section-heading .eyebrow:before{content:"✳";font-size:17px;line-height:0;color:#b2332e}
.category-card{border:1px solid rgba(255,255,255,.22);box-shadow:inset 0 0 0 7px rgba(255,255,255,.055)}
.category-card:after{opacity:.4}
.category-card.wine{background:radial-gradient(circle at 80% 30%,#8b4a4b,#5e2d34 75%)}
.category-card.food{background:radial-gradient(circle at 82% 26%,#819267,#576a48 78%)}
.category-card.delicacy{background:radial-gradient(circle at 82% 24%,#ce8060,#ac634a 78%)}
.category-card.frozen{background:radial-gradient(circle at 80% 24%,#728b8c,#526a70 78%)}
.category-card.coffee{background:radial-gradient(circle at 80% 25%,#987a62,#695241 78%)}
.category-card.nonfood{background:radial-gradient(circle at 80% 25%,#536a51,#304a3a 78%)}
.category-art{position:absolute;top:21px;right:16px;width:clamp(118px,15vw,175px);height:auto;opacity:.52;transform:rotate(-8deg);pointer-events:none;transition:transform .3s ease,opacity .3s ease}
.category-card:nth-child(even) .category-art{transform:rotate(7deg)}
.category-card:hover .category-art{transform:rotate(0) translateY(-5px);opacity:.7}
.category-card .category-number,.category-card .category-bottom{z-index:1}
.category-number{font-weight:700;opacity:.8}
.category-tag{color:#fff3df;opacity:1}
.category-card strong{text-shadow:0 2px 10px rgba(0,0,0,.12)}
.category-arrow{background:rgba(255,255,255,.12)}
.product-image-button{position:relative;isolation:isolate;display:flex;align-items:center;justify-content:center;flex:none;min-width:0;overflow:hidden;background:radial-gradient(ellipse at 48% 24%,#fffdfa 0%,#f4f0e7 58%,#eae5db 100%);border-bottom:1px solid #e4ded2}
.product-image-button:before,.dialog-visual:before{content:"";position:absolute;left:17%;bottom:5%;width:66%;height:25%;border-radius:50%;background:radial-gradient(ellipse at center,rgba(39,41,29,.18),rgba(39,41,29,0) 72%);pointer-events:none}
.product-image-button img{position:relative;z-index:1;display:block;flex:none;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;object-position:center;filter:contrast(1.07) saturate(1.08);transition:transform .25s ease}
.product-card-content{position:relative;z-index:1;background:var(--paper)}
.product-card{box-shadow:0 6px 20px rgba(38,43,29,.045);transition:box-shadow .25s ease,border-color .25s ease}
.product-card:hover{border-color:#d6c8b5;box-shadow:0 15px 32px rgba(38,43,29,.11)}
.dialog-visual{position:relative;isolation:isolate;overflow:hidden;background:radial-gradient(ellipse at 48% 26%,#fffdfa 0%,#f2eee5 64%,#e7e2d7 100%)}
.dialog-visual:before{bottom:7%;height:30%}
.dialog-visual img{position:relative;z-index:1;filter:contrast(1.07) saturate(1.08)}
.subcategory img,.wishlist-row img{padding:6px;background:#f4f0e7;border:1px solid #e6e0d4;box-shadow:0 6px 15px rgba(38,43,29,.08);filter:contrast(1.05) saturate(1.06)}
.market-photos:after{content:"Con amore · aus Himmelstadt";position:absolute;left:10px;bottom:28px;font-family:Pompiere,cursive;font-size:30px;letter-spacing:.03em;color:var(--olive);transform:rotate(-5deg)}
.market-main,.market-detail,.editorial-grid img,.gallery-grid img{filter:contrast(1.045) saturate(1.045);box-shadow:0 14px 34px rgba(31,40,26,.13)}
.gastro-image img{filter:contrast(1.04) saturate(1.04)}
.visit-card{border-top:3px solid var(--olive);transition:transform .2s ease,box-shadow .2s ease}
.visit-card:hover{transform:translateY(-3px);box-shadow:0 13px 35px rgba(48,65,45,.08)}
.floating-call{position:fixed;right:24px;bottom:24px;z-index:80;display:flex;align-items:center;gap:12px;min-width:236px;padding:10px 12px 10px 10px;background:#b3322d;color:#fff;border:1px solid rgba(255,255,255,.24);box-shadow:0 12px 32px rgba(25,32,20,.25);transition:transform .2s ease,box-shadow .2s ease}
.floating-call:hover{transform:translateY(-3px);box-shadow:0 17px 35px rgba(25,32,20,.3)}
.floating-call-icon{display:grid;place-items:center;flex:none;width:42px;height:42px;border:1px solid rgba(255,255,255,.4);border-radius:50%;font-size:23px;line-height:1}
.floating-call-copy{display:grid;line-height:1.22}.floating-call-copy small{font-size:9px;letter-spacing:.08em;text-transform:uppercase;opacity:.86}.floating-call-copy strong{font-size:15px;letter-spacing:.01em}.floating-call-arrow{margin-left:auto;font-size:19px}
.contact-hero{display:grid;grid-template-columns:1fr .9fr;align-items:center;gap:clamp(35px,6vw,90px);padding-top:72px;padding-bottom:72px}
.contact-hero h1,.designer-page h1{font-family:Pompiere,cursive;font-size:clamp(70px,8vw,118px);font-weight:400;line-height:.87;color:var(--olive);margin:0 0 32px}.contact-hero h1 em,.designer-page h1 em{font-style:normal;color:var(--red)}
.contact-hero>div:first-child>p:not(.eyebrow){max-width:500px;font-size:16px;line-height:1.85;color:#596052}.contact-hero-actions{display:flex;align-items:center;gap:24px;flex-wrap:wrap;margin-top:30px}
.contact-hero-photo{position:relative}.contact-hero-photo img{width:100%;height:440px;object-fit:cover;filter:contrast(1.045) saturate(1.045);box-shadow:0 18px 38px rgba(31,40,26,.14)}.contact-hero-photo span{position:absolute;left:-17px;bottom:20px;background:var(--red);color:#fff;padding:12px 18px;font-family:Pompiere,cursive;font-size:25px;transform:rotate(-5deg)}
.contact-demo-note{display:flex;gap:20px;align-items:center;margin-bottom:70px;padding:16px 20px;background:#e9eee4;border-left:3px solid var(--olive);font-size:12px}.contact-demo-note strong{min-width:190px;color:var(--olive)}.contact-demo-note p{margin:0}.contact-demo-note a{color:var(--red);text-decoration:underline}
.contact-facts{display:grid;grid-template-columns:1fr 1fr;gap:18px;padding-bottom:100px}.contact-fact{background:var(--paper);border:1px solid var(--line);padding:38px 42px}.contact-fact-number{display:block;margin-bottom:22px;font-size:10px;font-weight:700;letter-spacing:.13em;text-transform:uppercase;color:var(--red)}.contact-fact h2{font-size:clamp(44px,4.8vw,65px);margin-bottom:26px}.contact-fact address{font-style:normal;font-size:16px;line-height:1.9;color:var(--olive)}.contact-fact p{font-size:12px;line-height:1.8;color:var(--muted)}.contact-fact-link{display:inline-flex;justify-content:space-between;gap:22px;min-width:230px;margin-top:18px;padding:11px 0;border-bottom:1px solid var(--red);font-size:12px;font-weight:700;color:var(--olive)}.contact-fact-link:hover{color:var(--red)}
.contact-hours{margin:0 0 20px}.contact-hours div{display:flex;justify-content:space-between;gap:12px;padding:13px 0;border-bottom:1px solid var(--line);font-size:12px}.contact-hours dt{color:var(--muted)}.contact-hours dd{margin:0;text-align:right;font-weight:700;color:var(--olive)}
.contact-designer{background:var(--olive);color:#f6f3eb}.contact-designer-inner{display:grid;grid-template-columns:1.25fr .75fr;gap:clamp(45px,7vw,110px);align-items:center;padding-top:90px;padding-bottom:90px}.contact-designer h2{color:#fff}.contact-designer h2 em{color:#dce6b9}.contact-designer-inner>div:first-child>p:not(.eyebrow){max-width:620px;font-size:14px;line-height:1.9;color:#e1e8d8}.contact-designer-disclaimer{font-size:11px!important;opacity:.8}
.contact-designer-card{display:flex;flex-direction:column;align-items:flex-start;padding:30px;background:#f6f3eb;color:var(--olive);box-shadow:0 20px 45px rgba(0,0,0,.13)}.designer-monogram{display:grid;place-items:center;width:54px;height:54px;margin-bottom:22px;background:var(--olive);color:white;font-family:Pompiere,cursive;font-size:28px}.contact-designer-card strong{font-family:Pompiere,cursive;font-size:36px;font-weight:400;line-height:1}.contact-designer-card small{margin:6px 0 26px;font-size:10px;letter-spacing:.08em;text-transform:uppercase;color:var(--muted)}.contact-designer-card>a{display:flex;justify-content:space-between;width:100%;gap:15px;padding:12px 0;border-top:1px solid var(--line);font-size:12px;font-weight:700}.contact-designer-card>a:hover{color:var(--red)}.contact-designer-card p{font-size:10px;line-height:1.6;color:var(--muted)}.contact-designer-card .contact-portfolio-link{color:var(--red)}
.designer-page{min-height:65vh;padding-top:85px;padding-bottom:100px}.designer-page>p:not(.eyebrow){max-width:680px;color:var(--muted);line-height:1.8}.designer-page .contact-designer-card{max-width:430px;margin-top:35px}
@media(max-width:680px){.category-art{width:116px;right:10px;top:15px}.category-card{box-shadow:inset 0 0 0 5px rgba(255,255,255,.055)}.market-photos:after{display:none}}
@media(max-width:900px){.contact-hero{grid-template-columns:1fr 1fr;gap:30px}.contact-hero-photo img{height:360px}.contact-designer-inner{gap:32px}}
@media(max-width:680px){body{padding-bottom:80px}.floating-call{left:12px;right:12px;bottom:12px;min-width:0;padding:8px 12px}.floating-call-icon{width:39px;height:39px}.contact-hero{display:block;padding-top:50px;padding-bottom:45px}.contact-hero h1{font-size:clamp(66px,14vw,88px)}.contact-hero-photo{margin-top:45px}.contact-hero-photo img{height:300px}.contact-hero-photo span{left:-7px;font-size:21px}.contact-demo-note{display:block;margin-bottom:40px}.contact-demo-note strong{display:block;margin-bottom:8px}.contact-facts{grid-template-columns:1fr;gap:12px;padding-bottom:65px}.contact-fact{padding:28px 25px}.contact-designer-inner{grid-template-columns:1fr;padding-top:65px;padding-bottom:65px}.contact-designer-card{padding:25px}.designer-page{padding-top:55px}.designer-page h1{font-size:clamp(62px,13vw,86px)}}
@media(hover:hover){.product-card:hover .product-image-button img{transform:scale(1.045)}}
@media(prefers-reduced-motion:reduce){.category-art,.visit-card,.product-card,.product-image-button img,.floating-call{transition:none}}

/* Product images with white source backgrounds blend into this neutral studio stage. */
.product-image-button,.dialog-visual{background:#fff}
.product-image-button.photo-stage{padding:13px}
.product-image-button.photo-stage:before,.dialog-visual.is-photo:before{display:none}
.product-image-button.photo-stage img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain;mix-blend-mode:normal;border:1px solid #e7e3da;box-shadow:0 8px 24px rgba(38,43,29,.13)}
.dialog-visual.is-photo img{width:auto;max-width:100%;max-height:420px;mix-blend-mode:normal;border:1px solid #e7e3da;box-shadow:0 13px 28px rgba(38,43,29,.15)}
@media(max-width:680px){.footer-bottom>span{display:block}}

/* A small, accessible call shortcut replaces the wide floating banner. */
.floating-call{right:20px;bottom:20px;display:grid;place-items:center;width:54px;height:54px;min-width:0;padding:0;border-radius:50%;background:var(--olive);border:1px solid rgba(255,255,255,.65);box-shadow:0 8px 24px rgba(25,32,20,.22)}
.floating-call:hover,.floating-call:focus-visible{background:var(--red);transform:translateY(-2px);box-shadow:0 12px 28px rgba(25,32,20,.27)}
.floating-call-icon{display:block;width:23px;height:23px;border:0;border-radius:0;font-size:inherit}
@media(min-width:681px){.floating-call:after{content:"Hoffmann anrufen · 09364 89057";position:absolute;right:calc(100% + 12px);top:50%;padding:9px 13px;transform:translate(5px,-50%);white-space:nowrap;background:var(--olive);color:#fff;font-size:11px;font-weight:700;letter-spacing:.02em;box-shadow:0 6px 18px rgba(25,32,20,.15);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .18s ease,transform .18s ease,visibility .18s ease}.floating-call:hover:after,.floating-call:focus-visible:after{opacity:1;visibility:visible;transform:translate(0,-50%)}}
@media(max-width:680px){body{padding-bottom:0}.footer{padding-bottom:40px}.floating-call{left:auto;right:14px;bottom:14px;width:52px;height:52px;min-width:0;padding:0}.floating-call-icon{width:22px;height:22px}}
