/* Taquería Lupita: shared seasonal announcement, catering/SEO and story refinements. */
.holiday-banner{position:sticky;top:104px;z-index:9;max-width:100%;height:172px;display:grid;grid-template-columns:minmax(165px,35%) 1fr;overflow:hidden;background:#2b0e27;color:#fff;border-bottom:3px solid #f0b845;box-shadow:0 5px 15px #32103226}
.holiday-banner[hidden]{display:none!important}
.holiday-banner-photo{background:url('/assets/chalet-marche-noel-cannes.webp') center 38%/cover no-repeat;position:relative;min-width:0}
.holiday-banner-photo:after{content:"";position:absolute;inset:0;background:linear-gradient(90deg,transparent 78%,#2b0e27 100%)}
.holiday-banner-body{background:radial-gradient(circle at 30% 20%,#6d2747 0%,transparent 45%),linear-gradient(115deg,#32112f,#220b24);padding:15px clamp(18px,3.5vw,66px);display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center;gap:3px;min-width:0;position:relative}
.holiday-banner-body:before,.holiday-banner-body:after{content:'✦';position:absolute;color:#eab449;font-size:20px;top:10px}.holiday-banner-body:before{left:10px}.holiday-banner-body:after{right:10px}
.holiday-banner-title{font:600 clamp(18px,2.05vw,31px)/1.2 'Playfair Display',Georgia,serif;color:#fff;margin:0;letter-spacing:0}
.holiday-banner-title strong{color:#ffc846;font-weight:700}
.holiday-banner-date{font:600 clamp(13px,1.25vw,20px)/1.35 'DM Sans',Arial,sans-serif;color:#fff1ca;margin:0}
.holiday-banner-rest{font:700 clamp(14px,1.35vw,20px)/1.35 'DM Sans',Arial,sans-serif;color:#ffc846;margin:3px 0 0}
.holiday-banner-rule{display:block;width:min(320px,60%);height:1px;background:#efb84e;margin:4px auto}
.family-photo{max-width:295px!important;justify-self:center;width:100%;border-radius:95px 16px 16px 16px!important}
.family-photo img{max-height:410px;object-fit:cover}
.story-layout{grid-template-columns:minmax(220px,.6fr) minmax(0,1.4fr)!important;gap:32px!important}
.site-catering-link{text-align:center;margin-top:8px}
.catering-landing .catering-lead{background:linear-gradient(130deg,#fff5dd,#fffaf0);padding:66px 5vw 52px;text-align:center}
.catering-landing .catering-lead .eyebrow{color:#f75c28}
.catering-landing .catering-lead h1{max-width:950px;margin:0 auto 22px;color:#55277f;font-size:clamp(42px,5vw,72px)}
.catering-landing .catering-lead p{max-width:830px;margin:0 auto;font-size:18px}
.catering-landing .services{max-width:1150px;margin:0 auto;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px;padding:48px 24px}
.catering-landing .service-card{border-radius:18px;background:white;box-shadow:0 5px 24px #60308a0f;border:1px solid #66339f2a;padding:30px 24px}
.catering-landing .service-card h2{font-size:27px;color:#562482;margin-bottom:12px}
.catering-landing .service-card p{margin:0;line-height:1.6}
.catering-landing .catering-gallery-wide{background:#fff7e4;padding:40px 5vw 58px;text-align:center}
.catering-landing .catering-gallery-wide h2{color:#562482}
.catering-landing .photo-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:15px;max-width:1260px;margin:25px auto 0}
.catering-landing .photo-grid img{width:100%;height:280px;object-fit:cover;border-radius:15px}
.catering-landing .catering-quote{padding:56px 5vw 72px;text-align:center}
.catering-landing .catering-quote h2{color:#562482}
.catering-landing .catering-quote p{max-width:740px;margin:0 auto 25px}
.catering-landing .catering-actions{display:flex;justify-content:center;flex-wrap:wrap;gap:12px}
.catering-section .catering-gallery img{object-position:center}
@media(max-width:900px){.holiday-banner{top:105px;height:150px;grid-template-columns:30% 1fr}.story-layout{grid-template-columns:minmax(190px,.55fr) minmax(0,1.45fr)!important}.catering-landing .services{grid-template-columns:1fr 1fr}.catering-landing .photo-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:760px){.holiday-banner{top:135px;height:150px;grid-template-columns:25% 1fr}.holiday-banner-body{padding:9px 14px}.holiday-banner-title{font-size:17px;line-height:1.17}.holiday-banner-date,.holiday-banner-rest{font-size:12px;line-height:1.25}.holiday-banner-rule{margin:2px}.family-photo{max-width:245px!important}.story-layout{grid-template-columns:1fr!important}.nav-main .nav-about{display:none}.catering-landing .services{grid-template-columns:1fr}.catering-landing .catering-lead{padding:40px 5vw}.catering-landing .photo-grid img{height:180px}}
@media(max-width:390px){.holiday-banner{top:133px;height:163px;grid-template-columns:22% 1fr}.holiday-banner-title{font-size:15px}.holiday-banner-date,.holiday-banner-rest{font-size:11px}.holiday-banner-body{padding:8px 8px}}
@media(prefers-reduced-motion:reduce){.holiday-banner{scroll-behavior:auto}}


/* Working quote and call interactions: browser-independent fallback for desktop. */
.catering-landing .catering-actions{align-items:flex-start}
.catering-landing .catering-actions details{max-width:100%}
.catering-landing .catering-actions summary{cursor:pointer;display:inline-flex;align-items:center;justify-content:center;list-style:none;user-select:none}
.catering-landing .catering-actions summary::-webkit-details-marker{display:none}
.catering-landing .catering-actions summary:focus-visible,.catering-landing .catering-actions button:focus-visible,.catering-landing .catering-actions a:focus-visible{outline:3px solid #e7a719;outline-offset:3px}
.catering-landing .quote-disclosure[open]{width:100%;order:2}
.catering-landing .quote-panel{margin:25px auto 0;border:1px solid #ded1e8;background:#fff;padding:clamp(18px,3vw,40px);border-radius:20px;max-width:850px;text-align:left;box-shadow:0 14px 30px #24112913}
.catering-landing .quote-panel h3{color:#55277f;text-align:center;margin:0 0 25px;font-size:clamp(22px,2.5vw,32px)}
.catering-landing .quote-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:20px 18px;margin-bottom:25px}
.catering-landing .quote-fields label{display:flex;flex-direction:column;align-items:stretch;gap:8px;font-weight:650;color:#45205d}
.catering-landing .quote-fields input,.catering-landing .quote-fields select,.catering-landing .quote-fields textarea{box-sizing:border-box;min-width:0;width:100%;font:inherit;border:1px solid #b5a0c6;border-radius:11px;padding:12px 13px;background:white;color:#321d39}
.catering-landing .quote-fields :is(input,select,textarea):focus-visible{outline:2px solid #7539a2;outline-offset:2px}
.catering-landing .quote-fields .quote-wide{grid-column:1/-1}
.catering-landing .quote-panel .quote-notice{font-size:13px;margin:20px 0 0;color:#675d6d}
.catering-landing .quote-send[hidden]{display:none}
.catering-landing .quote-send{margin:25px 0 0;border-top:1px solid #e1d4e9;padding-top:15px}
.catering-landing .quote-send>p{text-align:left;margin:0 0 15px}
.catering-landing .quote-send-options,.catering-landing .call-choices{display:flex;gap:10px;flex-wrap:wrap}
.catering-landing .quote-copy-preview{width:100%;box-sizing:border-box;border:1px solid #d2c5d7;border-radius:10px;margin-top:12px;padding:12px;background:#f8f6fa;font:14px/1.5 monospace}
.catering-landing .quote-feedback{font-weight:600;color:#55277f;margin:10px 0}
.catering-landing .call-disclosure{position:relative}
.catering-landing .call-panel{padding:24px;border-radius:16px;border:1px solid #ded1e8;background:#fff;max-width:370px;margin-top:18px;text-align:center;box-shadow:0 14px 30px #24112913}
.catering-landing .call-panel h3{font-size:23px;color:#55277f;margin:0 0 14px}
.catering-landing .call-panel .call-number{display:block;color:#542486;font-size:clamp(24px,2.6vw,33px);font-weight:700;white-space:nowrap;margin:0 0 10px}
.catering-landing .call-panel p{font-size:14px;margin:8px auto 18px}
.catering-landing .call-panel .call-choices{justify-content:center}
@media(max-width:640px){.catering-landing .quote-fields{grid-template-columns:1fr}.catering-landing .call-disclosure[open]{width:100%}.catering-landing .call-panel{margin:12px auto}.catering-landing .quote-send-options{flex-direction:column}.catering-landing .quote-send-options .button{width:100%}}
