/* Original footer destinations, using native WordPress menus and Elementor content. */
.site-footer .footer-main.twc-footer-main { grid-template-columns:minmax(0,1.8fr) repeat(3,minmax(0,1fr)); }
.site-footer .twc-footer-main .footer-brand>.button { display:inline-flex; width:auto; padding:12px 16px; min-height:50px; border-radius:var(--twc-button-radius); align-items:center; justify-content:center; }
.site-footer .footer-brand .twc-newsletter-copy { max-width:469px; margin:16px 0; font-size:16px; line-height:1.5; }
.site-footer .footer-brand .newsletter-form { width:100%; max-width:469px; height:50px; margin:16px 0 0; }
.site-footer .newsletter-form input { padding:12px 16px; box-shadow:none; }
.site-footer .newsletter-form:focus-within { border-color:#ab876c; }
.site-footer .newsletter-form :is(input,button):focus-visible { outline:none; }
.site-footer .newsletter-form button { flex-shrink:0; border:1px solid transparent; border-radius:0; padding:11px 15px; font-weight:600; cursor:pointer; transition:background-color .15s,color .15s,border-color .15s; }
.site-footer .newsletter-form button:is(:hover,:focus-visible):not(:disabled) { background:var(--twc-button-ink); color:var(--twc-button-cream); border-left-color:var(--twc-button-cream); }
@media(prefers-reduced-motion:reduce) { .site-footer .newsletter-form button { transition:none; } }
.site-footer .newsletter-form :disabled { cursor:not-allowed; }
.site-footer .footer-brand .twc-newsletter-privacy { max-width:469px; margin:16px 0 0; color:#9a9592; font-size:12px; line-height:1.5; }
.site-footer .footer-brand .twc-newsletter-privacy a { color:#49a9ff; }
.site-footer .twc-newsletter-amount { color:#ff0000; }
.site-footer .twc-newsletter-trap { position:absolute; left:-5000px; }
.site-footer .footer-brand .twc-newsletter-referral { display:flex; width:220px; max-width:100%; margin:16px 0 0; padding:4px 0; background:transparent; border-radius:4px; }
.site-footer .footer-brand .twc-newsletter-referral img { display:block; width:220px; height:40px; max-width:100%; object-fit:contain; object-position:left center; }
.site-footer .footer-brand .newsletter-status { margin:12px 0 0; color:#9a9592; font-size:14px; line-height:1.5; }
.twc-footer-links { list-style:none; margin:0; padding:0; }
.twc-footer-links li { margin:0; padding:0; }
.footer-bottom .twc-footer-links { display:flex; flex-wrap:wrap; gap:16px; }
.footer-bottom .twc-footer-links a { margin:0; }
.site-footer .footer-bottom>div { flex-wrap:wrap; }
.site-footer .footer-main .twc-cookie-settings { display:none; }
.site-footer .footer-bottom .twc-cookie-settings { border:0; padding:0; background:transparent; color:inherit; font:inherit; cursor:pointer; }
.site-footer .footer-bottom .twc-cookie-settings:is(:hover,:focus-visible) { color:#fff; text-decoration:underline; text-underline-offset:3px; }
.twc-source-page { color:#160c04; }
/* Width, padding, spacing and columns come from editable native Elementor settings. */
.twc-source-page .twc-source-section { max-width:none; }
.twc-source-section .elementor-heading-title { font:400 32px/1.4 Prata,Georgia,serif; color:#160c04; overflow-wrap:anywhere; }
.twc-source-section .elementor-widget-text-editor { font:400 18px/1.6 Urbanist,sans-serif; color:#555; overflow-wrap:anywhere; }
.twc-source-section :is(p,ul,ol) { margin:0 0 16px; }
.twc-source-section a { color:#160c04; text-decoration:underline; text-underline-offset:3px; }
.twc-source-section .elementor-widget-image img { width:100%; max-height:540px; object-fit:cover; border-radius:12px; }
.twc-source-gallery .elementor-widget-image { min-width:0; width:100%; }
.twc-source-gallery .elementor-widget-image img { height:360px; }
.twc-source-legal .elementor-widget-heading h1 { font:400 48px/1.3 'DM Serif Display',Georgia,serif; }
.twc-source-legal .elementor-widget-heading h2 { font:600 24px/1.4 Urbanist,sans-serif; }
.twc-source-legal .elementor-widget-text-editor { font-size:16px; }
.twc-source-section .twc-editorial { max-width:none; padding:0; }
/* Plain legal reading column on the normal page background. */
.twc-source-legal>.e-con-inner { padding-block:40px 64px; }
.twc-source-legal .elementor-widget-heading:has(h1) { margin-bottom:16px; }
.twc-source-legal .elementor-widget-heading h1 { color:#160c04; margin:0; overflow-wrap:anywhere; }
.twc-source-legal .elementor-widget-text-editor { color:#51453b; line-height:1.75; }
.twc-source-legal .elementor-widget-text-editor :is(p,ul,ol):last-child { margin-bottom:0; }
.twc-source-legal strong { font-weight:600; }
.twc-source-legal a:focus-visible { outline:2px solid #8d693f; outline-offset:4px; }
/* The hours page keeps its shared live widgets and editable holiday rows. */
.twc-opening-hours-page { color:#160c04; }
.twc-opening-hours-page>.e-con { padding-block:24px; }
.twc-opening-hours-page>.e-con:first-child { padding-block:48px; background:#e3d7ce; }
.twc-opening-hours-page .elementor-widget.elementor-widget-heading h1.elementor-heading-title { margin:0; color:#ab1741; font:400 clamp(32px,4.5vw,64px)/1.2 'DM Serif Display',Georgia,serif; overflow-wrap:anywhere; }
.twc-opening-hours-page .elementor-widget.elementor-widget-heading h2.elementor-heading-title { margin:0; font:400 28px/1.4 Prata,Georgia,serif; overflow-wrap:anywhere; }
.twc-opening-hours-page>.e-con:has(.twc-shared-hours)>.e-con-inner { display:grid; grid-template-columns:minmax(140px,.6fr) minmax(0,1fr); gap:32px; padding:24px; border:1px solid #e3d7ce; border-radius:16px; }
.twc-opening-hours-page p { margin:0; line-height:1.6; }
.twc-opening-hours-page .twc-shared-hours p { display:flex; flex-wrap:wrap; justify-content:space-between; gap:8px 24px; padding:12px 0; border-bottom:1px solid #e3d7ce; }
.twc-opening-hours-page .twc-shared-hours p:first-child { padding-top:0; }
.twc-opening-hours-page .twc-shared-hours p:last-child { border:0; padding-bottom:0; }
.twc-opening-hours-page .twc-hours-value { font-weight:600; }
.twc-opening-hours-page .elementor-widget-text-editor p { display:flex; flex-wrap:wrap; gap:8px 16px; padding:12px 0; border-bottom:1px solid #e3d7ce; }
.twc-opening-hours-page .elementor-widget-text-editor strong { flex:1 1 160px; font-weight:600; }
/* Reuse the existing producer grid and its real catalogue destinations. */
.producer-list .demo-panel { display:grid; grid-template-columns:minmax(0,1fr) 40px; gap:16px; align-content:space-between; border-color:#e3d7ce; }
.producer-list .demo-panel h2 { grid-column:1/-1; margin:0; color:#160c04; }
.producer-list .demo-panel p { margin:0; align-self:center; color:#51453b; }
.producer-list .demo-panel>svg { width:40px; height:40px; padding:10px; border-radius:50%; background:#e3d7ce; }
.producer-list .demo-panel:is(:hover,:focus-visible) { border-color:#8d693f; background:#faf8f5; }
.producer-list .demo-panel:focus-visible { outline:2px solid #8d693f; outline-offset:4px; }
@media(max-width:760px) {
  .twc-source-legal>.e-con-inner { padding-block:24px 40px; }
  .twc-opening-hours-page>.e-con:first-child { padding-block:32px; }
  .twc-opening-hours-page>.e-con:has(.twc-shared-hours)>.e-con-inner { grid-template-columns:minmax(0,1fr); gap:20px; padding:20px; }
  .twc-opening-hours-page .elementor-widget.elementor-widget-heading h2.elementor-heading-title { font-size:24px; }
  .site-footer:not(.dynamic-footer) { padding:0; }
  .site-footer>.container { width:100%; padding-inline:16px; }
  .site-footer .footer-contact { padding:32px 0; }
  .site-footer h2 { line-height:1.4; }
  .site-footer .contact-columns { max-width:280px; margin-inline:auto; gap:32px; }
  .site-footer .contact-columns>div { display:flex; flex-direction:column; align-items:center; gap:8px; text-align:center; }
  .site-footer .contact-columns h3 { font-size:16px; line-height:1.3; margin:0; }
  .site-footer .contact-columns p { margin:0; line-height:1.5; }
  .site-footer .contact-columns .button { min-height:44px; }
  .site-footer .footer-hours { padding-bottom:32px; }
  .site-footer .hours-columns { margin-top:32px; gap:32px; text-align:center; }
  .site-footer .hours-columns h3 { margin:0 0 16px; }
  .site-footer .hours-columns dt { line-height:1.5; margin:0 0 4px; }
  .site-footer .hours-columns dd { line-height:1.5; margin:0 0 16px; }
  .site-footer .hours-columns dd:last-child { margin-bottom:0; }
  .site-footer .footer-main.twc-footer-main { grid-template-columns:repeat(2,minmax(0,1fr)); gap:40px 16px; padding:40px 0; text-align:center; }
  .site-footer .footer-brand { grid-column:1/-1; text-align:center; }
  .site-footer .footer-brand img { width:226px; max-width:100%; }
  .site-footer .footer-brand p { margin:24px auto; }
  .site-footer .footer-brand .twc-newsletter-copy { margin:24px auto; font-size:14px; }
  .site-footer .footer-brand .newsletter-form { height:48px; margin:24px auto 0; }
  .site-footer .footer-brand .twc-newsletter-privacy { margin:16px auto 0; font-size:14px; }
  .site-footer .twc-footer-main h4 { font-weight:600; line-height:1.4; letter-spacing:.11em; margin-bottom:8px; overflow-wrap:anywhere; }
  .site-footer .twc-footer-main .twc-footer-links a { justify-content:center; min-height:32px; margin:0; line-height:1.5; overflow-wrap:anywhere; }
  .site-footer .twc-footer-main>div:last-child:not(.footer-brand) { grid-column:1/-1; }
  .site-footer .twc-footer-main>div:last-child .twc-footer-links { display:flex; flex-wrap:wrap; justify-content:center; gap:8px 24px; }
  .site-footer .footer-bottom { flex-direction:column-reverse; gap:16px; padding:24px 0 40px; line-height:1.5; }
  .site-footer .footer-bottom>div { display:flex; flex-direction:column; align-items:center; gap:8px; width:100%; }
  .site-footer .footer-bottom .twc-footer-links { flex-wrap:wrap; justify-content:center; gap:4px 20px; width:100%; }
  .site-footer .footer-bottom .twc-footer-links a,.site-footer .footer-bottom .twc-cookie-settings { display:inline-flex; align-items:center; justify-content:center; min-height:44px; max-width:100%; text-align:center; text-decoration:underline; text-underline-offset:3px; }
  .twc-source-section .elementor-heading-title { font-size:24px; }
  .twc-source-section .elementor-widget-text-editor { font-size:16px; }
  .twc-source-gallery .elementor-widget-image img { height:auto; }
  .twc-source-legal .elementor-widget-heading h1 { font-size:28px; hyphens:auto; }
}
