/*
Theme Name: Puzzles Brilon
Author: Puzzles Brilon
Description: Bildorientiertes Kneipen-Theme mit Fotoplatzhaltern, Customizer und optionaler Integration von The Events Calendar.
Version: 1.4.5
Tested up to: 7.1
Requires at least: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: puzzles-brilon
Tags: custom-logo, custom-menu, featured-images, theme-options
*/
:root{--pub-green:#234d43;--pub-gold:#d8b970;--pub-cream:#f5f1e8;--pub-ink:#172e28;--pub-width:1180px}
*{box-sizing:border-box}html{scroll-behavior:smooth;scroll-padding-top:24px}body{margin:0;background:var(--pub-cream);color:var(--pub-ink);font:16px/1.65 system-ui,-apple-system,BlinkMacSystemFont,"Segoe UI",sans-serif}img{max-width:100%;height:auto}a{color:inherit;text-underline-offset:5px}button,input,textarea,select{font:inherit}button,a{-webkit-tap-highlight-color:transparent}a:focus-visible,button:focus-visible,input:focus-visible,textarea:focus-visible,select:focus-visible{outline:3px solid #b47910;outline-offset:5px}[hidden]{display:none!important}h1,h2,h3{font-family:Georgia,"Times New Roman",serif;font-weight:400;line-height:1.12;margin-top:0;overflow-wrap:anywhere}h1{font-size:clamp(48px,7vw,94px);letter-spacing:-2px}h2{font-size:clamp(32px,4vw,52px);letter-spacing:-1px}h3{font-size:26px}p{margin:0 0 20px}section[id]{scroll-margin-top:24px}.skip-link{position:absolute;left:20px;top:10px;transform:translateY(-180%);background:#fff;padding:12px 18px;z-index:10000}.skip-link:focus{transform:none}
.site-header{background:var(--pub-cream)}.header-inner{max-width:var(--pub-width);padding:20px 32px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:24px}.brand a{text-decoration:none;font:bold 34px/1 Georgia,serif;letter-spacing:-1px}.custom-logo-link{display:block}.brand .custom-logo{display:block;width:auto;max-width:240px;max-height:70px}.menu{list-style:none;display:flex;gap:28px;margin:0;padding:0;align-items:center}.menu a{text-decoration:none;font-size:14px;padding:12px 0;display:block}.menu a:hover{text-decoration:underline}.menu .sub-menu{list-style:none;margin:0;padding:0 0 0 14px}.menu .sub-menu a{font-size:12px;padding:4px 0}.menu-toggle{border:1px solid var(--pub-green);background:transparent;border-radius:2px;padding:8px 16px;min-height:44px;color:var(--pub-ink)}
.hero{background:#243e36;color:#faf4e6;position:relative;isolation:isolate;min-height:540px;display:flex;align-items:center;overflow:hidden}.hero:before{content:'';position:absolute;inset:0;background:repeating-linear-gradient(135deg,transparent 0,transparent 28px,#ffffff05 28px,#ffffff05 29px);z-index:-1}.hero:after{content:'';position:absolute;inset:0;background:linear-gradient(90deg,#0b1916d9,#0b19166b 65%,#0b191621);z-index:-1}.hero-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;z-index:-2}.hero-inner{width:100%;max-width:var(--pub-width);margin:auto;padding:70px 32px 92px}.eyebrow{text-transform:uppercase;letter-spacing:2px;font-size:12px;color:var(--pub-gold);margin-bottom:20px}.hero h1{margin-bottom:24px;max-width:850px}.hero h1 span{color:var(--pub-gold)}.hero-text{font-size:19px;line-height:1.6;max-width:500px;margin-bottom:28px}.actions{display:flex;gap:14px;flex-wrap:wrap}.button{display:inline-flex;align-items:center;justify-content:center;gap:20px;padding:14px 22px;min-height:48px;text-decoration:none;background:var(--pub-gold);border:1px solid var(--pub-gold);color:#20332b;font-size:14px;font-weight:600;border-radius:2px}.button:hover{filter:brightness(1.08)}.button-outline{background:transparent;color:#faf4e6;border-color:#a1b5aa}.hero-placeholder{position:absolute;right:32px;bottom:22px;font-size:13px;text-align:right;color:#e3e9df}.hero-placeholder small{display:block;color:#b8c8bd;font-size:12px}.info-strip{display:flex;justify-content:center;gap:16px 38px;flex-wrap:wrap;padding:18px 24px;border-bottom:1px solid #dedace;font-size:14px}.info-strip a{text-decoration:none}
.section{max-width:var(--pub-width);margin:auto;padding:52px 32px}.section-heading{display:flex;align-items:center;justify-content:space-between;gap:24px;margin-bottom:28px}.section-heading h2{margin:0}.text-link{font-size:14px}.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.event-cover{display:block;position:relative;aspect-ratio:3/2;overflow:hidden;text-decoration:none;background:#e1e1d8}.pub-image{display:block;width:100%;height:100%;object-fit:cover}.event-card h3{margin:18px 0 8px;font-size:25px}.event-card h3 a{text-decoration:none}.event-card h3 a:hover{text-decoration:underline}.event-meta{font-size:14px;color:#536458}.date-badge{position:absolute;left:14px;top:14px;padding:9px 14px;background:var(--pub-green);color:#fff8e8;font:28px/1 Georgia,serif}.date-badge small{display:block;font:12px/1.4 system-ui,sans-serif;text-transform:uppercase;margin-top:5px}.photo-placeholder{display:flex;flex-direction:column;align-items:center;justify-content:center;gap:8px;text-align:center;min-height:180px;height:100%;padding:24px 14px;background:repeating-linear-gradient(135deg,transparent 0,transparent 24px,#53635709 24px,#53635709 25px),#e1e1d8;color:#4c6156;font-size:14px}.photo-placeholder small{font-size:12px;color:#637368}.photo-symbol{font:34px/1 Georgia,serif;opacity:.7}.event-empty{padding:28px;background:#e8e6dc}.event-empty p{margin-bottom:12px}.photo{position:relative;overflow:hidden;min-width:0;min-height:0}.gallery-section{background:var(--pub-green);color:#faf4e6}.gallery-inner{max-width:var(--pub-width);margin:auto;padding:52px 32px;display:grid;grid-template-columns:.85fr 1.6fr;gap:48px;align-items:center}.gallery-copy h2{margin-bottom:0}.gold-line{display:block;width:46px;height:3px;background:var(--pub-gold);margin:24px 0}.gallery-copy p{max-width:320px;color:#e2e9de}.gallery-mosaic{display:grid;grid-template-columns:1fr 1fr;grid-template-rows:230px 230px;gap:12px}.gallery-mosaic .photo-placeholder{background:repeating-linear-gradient(135deg,transparent 0,transparent 24px,#ffffff07 24px,#ffffff07 25px),#365d51;color:#edf1e5;min-height:0}.gallery-mosaic .photo-placeholder small{color:#c3d5c7}.photo-tall{grid-row:span 2}.gallery-mini{display:grid;grid-template-columns:1fr 1fr;gap:12px;min-width:0}.gallery-mini .photo-placeholder{padding:14px 8px}
.split-section{display:grid;grid-template-columns:1.25fr 1fr;gap:52px;align-items:center;padding-top:40px;padding-bottom:40px}.split-section>.photo{aspect-ratio:4/3}.split-section h2{margin-bottom:0}.split-section p{max-width:460px}.team-section{border-top:1px solid #dedace}.visit-section{display:grid;grid-template-columns:1fr 1fr 1fr;gap:32px;border-top:1px solid #dedace}.visit-section .eyebrow{color:#526458}.visit-section h3{font-size:26px}.visit-section p{font-size:15px}.site-footer{background:var(--pub-green);color:#f5f1e8}.footer-inner{max-width:var(--pub-width);padding:30px 32px;margin:auto;display:flex;align-items:center;justify-content:space-between;gap:18px 24px;flex-wrap:wrap}.footer-title{font:32px/1.2 Georgia,serif;text-decoration:none}.footer-inner>span{font-size:14px}.footer-inner nav{display:flex;gap:16px;flex-wrap:wrap}.footer-inner nav a{font-size:13px}.footer-inner>small{width:100%;color:#d0ddcf;font-size:12px;text-align:right}
.content-shell{max-width:920px;margin:0 auto;padding:60px 32px}.content-shell h1{font-size:clamp(38px,5vw,62px)}.entry-content{overflow-wrap:anywhere}.entry-content>*{max-width:100%}.entry-content figure{margin-left:0;margin-right:0}.entry-content .alignwide{width:100%}.entry-content iframe{max-width:100%}.entry-content table{display:block;overflow-x:auto;max-width:100%;border-collapse:collapse}.entry-content td,.entry-content th{padding:10px;border-bottom:1px solid #c9cabe}.post-entry{margin-bottom:48px}.post-entry .post-thumbnail{margin:24px 0}.post-entry .post-thumbnail img{height:auto}.post-meta{font-size:14px;color:#526458}.pagination{margin:30px 0}.pagination .nav-links{display:flex;gap:16px;flex-wrap:wrap}.comment-list{padding-left:24px}.comment-form label{display:block}.comment-form input:not([type=checkbox]),.comment-form textarea,.search-form input{max-width:100%;padding:10px;border:1px solid #87998a;background:#fffdf7;color:var(--pub-ink)}.comment-form textarea{width:100%}.comment-form .submit,.search-submit{min-height:44px}.screen-reader-text{position:absolute;width:1px;height:1px;overflow:hidden;clip-path:inset(50%);white-space:nowrap}.wp-caption-text{font-size:13px}.sticky{border-top:3px solid var(--pub-gold)}.gallery-caption{font-size:13px}.bypostauthor{font-weight:600}
@media(max-width:960px){.gallery-inner{gap:28px}.gallery-mosaic{grid-template-rows:180px 180px}.visit-section{grid-template-columns:1fr 1fr}.visit-section>div:last-child{grid-column:1/-1}.split-section{gap:32px}}
@media(max-width:760px){.header-inner{padding:18px 24px;flex-wrap:wrap}.brand a{font-size:29px}.brand .custom-logo{max-width:180px;max-height:54px}.site-nav{width:100%}.menu{gap:0;align-items:stretch;flex-direction:column}.menu a{padding:12px 0;min-height:44px}.hero{min-height:460px}.hero-inner{padding:44px 24px 96px}.hero h1{letter-spacing:-1.5px}.hero-text{font-size:17px}.hero-placeholder{left:24px;right:auto;text-align:left}.info-strip{justify-content:flex-start;padding:16px 24px;gap:8px 24px}.section{padding:36px 24px}.section-heading{align-items:flex-start;flex-wrap:wrap;gap:12px}.event-grid{grid-template-columns:1fr}.event-cover{aspect-ratio:16/9}.event-card h3{font-size:26px}.gallery-inner{grid-template-columns:1fr;padding:36px 24px;gap:24px}.gallery-copy p{max-width:100%}.gallery-mosaic{grid-template-rows:180px 180px;gap:10px}.gallery-mini{gap:10px}.split-section{grid-template-columns:1fr;gap:28px}.split-section>.photo{aspect-ratio:4/3}.visit-section{grid-template-columns:1fr;gap:24px}.visit-section>div:last-child{grid-column:auto}.footer-inner{padding:28px 24px;align-items:flex-start;flex-direction:column}.footer-inner>small{text-align:left}.content-shell{padding:40px 24px}.site-nav .menu .sub-menu{padding-left:16px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Keep plugin-owned event views aligned with the site shell. */
#tribe-events-pg-template{max-width:var(--pub-width);margin:auto;padding:48px 32px}#tribe-events-content .tribe-events-single-event-title{font-family:Georgia,"Times New Roman",serif;font-weight:400;color:var(--pub-ink)}.tribe-events{--tec-color-text-primary:var(--pub-ink);--tec-color-background:var(--pub-cream);--tec-color-accent-primary:var(--pub-green);--tec-color-link-primary:var(--pub-green)}
@media(max-width:760px){#tribe-events-pg-template{padding:32px 24px}}

/* Full original copy: comfortable measure, natural heights, no hidden text. */
.gallery-inner{grid-template-columns:1fr 1.2fr;align-items:start}.gallery-copy p{max-width:none}.activities-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px}.activity-card .photo{aspect-ratio:3/2}.activity-copy{padding-top:22px}.activity-copy h2{font-size:32px;letter-spacing:-.5px}.activity-copy p{font-size:15px;line-height:1.8}.partners-section{border-top:1px solid #dedace}.partners-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px}.partners-grid h3{font-size:26px}.partners-grid p{font-size:15px}.visit-section{grid-template-columns:.9fr 1fr 1.3fr}.visit-section h3{line-height:1.25}
@media(max-width:960px){.activities-grid{grid-template-columns:1fr}.activity-card{display:grid;grid-template-columns:1fr 1.5fr;gap:24px;align-items:start}.activity-copy{padding-top:0}.visit-section{grid-template-columns:1fr 1fr}.visit-section>div:last-child{grid-column:1/-1}.partners-grid{gap:20px}}
@media(max-width:760px){.gallery-inner{grid-template-columns:1fr}.activities-grid,.partners-grid,.visit-section{grid-template-columns:1fr}.activity-card{display:block}.activity-copy{padding-top:22px}.partners-grid article+article{border-top:1px solid #dedace;padding-top:24px}.visit-section>div:last-child{grid-column:auto}}

/* Original complete logo; preserve the puzzle pieces and the address line. */
.brand{flex-shrink:0}.brand .original-logo,.brand .custom-logo{display:block;width:150px;height:auto;max-width:150px;max-height:none}.header-inner{padding-top:16px;padding-bottom:16px}
@media(max-width:760px){.brand .original-logo,.brand .custom-logo{width:120px;max-width:120px}.header-inner{align-items:center;padding-top:14px;padding-bottom:14px}}

/* Builder layouts stay full width; photos use native Elementor media controls. */
.elementor-theme-content{width:100%;margin:0;padding:0}.puzzles-elementor-photo{width:100%;position:relative;overflow:hidden}.puzzles-elementor-photo .pub-image{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.puzzles-elementor-photo .photo-placeholder{width:100%;height:100%;min-height:0}.pub-elementor-dark .photo-placeholder{background:repeating-linear-gradient(135deg,transparent 0,transparent 24px,#ffffff07 24px,#ffffff07 25px),#365d51;color:#edf1e5}.pub-elementor-dark .photo-placeholder small{color:#c3d5c7}.elementor .elementor-heading-title{line-height:1.15}.elementor .elementor-button{min-height:44px;display:inline-flex;align-items:center;justify-content:center}.elementor .elementor-widget-text-editor{overflow-wrap:anywhere}

.puzzles-menu-text{color:#faf7ef}.puzzles-menu-text summary{cursor:pointer;font-weight:700;padding:18px 0;text-decoration:underline;min-height:44px}.puzzles-menu-categories{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:24px}.puzzles-menu-categories h3{color:#d8b970;font-size:28px}.puzzles-menu-categories dl{margin:0}.puzzles-menu-categories dl>div{display:grid;grid-template-columns:minmax(0,1fr) auto;gap:6px 16px;border-bottom:1px solid #ffffff30;padding:16px 0}.puzzles-menu-categories dt{font-weight:700}.puzzles-menu-categories dd{margin:0}.puzzles-menu-price{white-space:nowrap}.puzzles-menu-description{grid-column:1/-1;font-size:15px}@media(max-width:767px){.puzzles-menu-categories{grid-template-columns:1fr}}

/* Wider menu images with balanced horizontal spacing. */
#karte.e-con{padding-left:24px;padding-right:24px}
#karte.e-con-boxed>.e-con-inner{max-width:1280px;width:100%}
#karte .elementor-widget-image img{width:100%;height:auto}
@media(max-width:767px){#karte.e-con{padding-left:16px;padding-right:16px}}

/* Drinks menu, editable Elementor images and accessible price tables. */
#getraenke{max-width:1280px;margin-inline:auto;padding-inline:24px;color:var(--pub-cream)}
#getraenke .puzzles-drinks-image{width:calc((100% - 48px)/3)!important;align-self:flex-start}
#getraenke .puzzles-drinks-image img{display:block;width:100%;height:auto}
.puzzles-drinks-text{width:100%;border-top:1px solid #ffffff44;padding-top:20px}
.puzzles-drinks-text summary{cursor:pointer;font-weight:600;padding:12px 0;color:var(--pub-gold)}
.puzzles-drinks-groups{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:32px;margin-top:24px}
.puzzles-drinks-groups h3{color:var(--pub-gold);font-size:28px;margin:0 0 16px}
.puzzles-drinks-groups table{width:100%;border-collapse:collapse;table-layout:fixed;font-size:15px}
.puzzles-drinks-groups th,.puzzles-drinks-groups td{text-align:left;vertical-align:top;padding:10px 6px;border-bottom:1px solid #ffffff33;overflow-wrap:anywhere}
.puzzles-drinks-groups th:first-child{width:44%}.puzzles-drinks-groups th:nth-child(2){width:24%}.puzzles-drinks-groups th:last-child{width:32%}
.puzzles-drinks-groups p{font-size:14px;margin-top:16px}
@media(max-width:767px){#getraenke{padding-inline:16px}#getraenke .puzzles-drinks-image{width:100%!important}.puzzles-drinks-groups{grid-template-columns:1fr}.puzzles-drinks-groups table{font-size:14px}}

/* Compact card previews; complete content remains available in lightbox and text. */
#karte.e-con,#getraenke.e-con{max-width:none;width:100%;margin-inline:0;padding-top:36px;padding-bottom:36px;background:var(--pub-green)}
#karte .elementor-element-menurow{max-width:340px;width:100%;gap:18px;flex-direction:row;align-items:flex-start}
#karte .elementor-element-menucol1,#karte .elementor-element-menucol2{width:calc((100% - 18px)/2);flex:1;padding:0}
#karte .elementor-widget-image img{display:block;width:auto;max-height:220px;object-fit:contain}
#getraenke.e-con-boxed>.e-con-inner{display:grid;grid-template-columns:repeat(6,minmax(0,1fr));gap:20px;max-width:1280px;width:100%;align-items:start}
#getraenke .elementor-element-drnkrow0,#getraenke .elementor-element-drnkrow1{display:contents}
#getraenke .elementor-element-drnkttl,#getraenke .elementor-element-drnkint,#getraenke .elementor-element-drnktxt{grid-column:1/-1}
#getraenke .puzzles-drinks-image{width:100%!important;margin:0}
#getraenke .puzzles-drinks-image img{height:180px;width:auto;max-width:100%;object-fit:contain;margin-inline:auto}
#getraenke .elementor-element-drnkint p{margin-bottom:4px}
@media(max-width:767px){
 #karte.e-con,#getraenke.e-con{padding-top:28px;padding-bottom:28px}
 #karte .elementor-element-menurow{max-width:270px;flex-direction:row!important}
 #karte .elementor-widget-image img{max-height:170px}
 #getraenke.e-con-boxed>.e-con-inner{grid-template-columns:repeat(3,minmax(0,1fr));gap:16px}
 #getraenke .puzzles-drinks-image img{height:135px}
}

#karte.e-con-boxed>.e-con-inner,#getraenke.e-con-boxed>.e-con-inner{padding-top:0;padding-bottom:0}

.puzzles-calendar-subscribe{margin-top:32px;padding:28px;background:#e8e6dc;border-left:4px solid var(--pub-gold)}
.puzzles-calendar-subscribe h3{font-size:30px;margin:0 0 12px;color:var(--pub-green)}
.puzzles-calendar-subscribe p{max-width:720px;margin:0 0 20px;color:var(--pub-ink);font-size:16px}
.puzzles-calendar-links{display:flex;flex-wrap:wrap;gap:12px}
.puzzles-calendar-links .button{font-size:14px;padding:12px 18px}
@media(max-width:767px){.puzzles-calendar-subscribe{padding:20px;margin-top:24px}.puzzles-calendar-subscribe h3{font-size:26px}.puzzles-calendar-links .button{flex:1 1 140px}}

/* Photos participate in normal layout instead of overlapping following widgets. */
.elementor .elementor-widget-puzzles_photo{height:auto!important;flex-shrink:0}
.elementor .elementor-widget-puzzles_photo>.elementor-widget-container{height:auto!important}
.elementor .puzzles-elementor-photo .pub-image{position:static;display:block;width:100%;height:auto;aspect-ratio:inherit;object-fit:cover}
@media(max-width:767px){
 .elementor-theme-content .elementor>.e-con{padding-left:20px!important;padding-right:20px!important;--padding-left:20px;--padding-right:20px}
 .elementor-theme-content .elementor>.e-con>.e-con-inner{padding-top:32px;padding-bottom:32px;gap:24px}
 .elementor-theme-content .e-con,.elementor-theme-content .e-con .elementor-widget{min-width:0;max-width:100%}
 .elementor-theme-content h1.elementor-heading-title{font-size:clamp(40px,11vw,54px)!important;letter-spacing:-1px}
 .elementor-theme-content h2.elementor-heading-title{font-size:clamp(30px,8vw,36px)!important;letter-spacing:-.5px}
 .elementor .elementor-widget-puzzles_photo{min-height:calc((100vw - 40px)*2/3)!important}
 .elementor .elementor-widget-puzzles_photo:has(.puzzles-elementor-photo[style*="1 / 1"]){min-height:min(calc(100vw - 40px),360px)!important}
 .elementor .elementor-widget-puzzles_photo:has(.puzzles-elementor-photo[style*="2 / 3"]){min-height:min(calc((100vw - 40px)*1.5),360px)!important}
 .elementor .puzzles-elementor-photo{position:absolute;inset:0;height:100%;width:100%;aspect-ratio:auto!important}
 .elementor .puzzles-elementor-photo .pub-image{position:absolute;inset:0;height:100%;width:100%;aspect-ratio:auto}
 .elementor .puzzles-elementor-photo .photo-placeholder{position:absolute;inset:0}
 .sm-icons{display:none!important}
 #karte.e-con-boxed>.e-con-inner,#getraenke.e-con-boxed>.e-con-inner{padding-top:0;padding-bottom:0}
 #karte .elementor-element-menurow{flex-wrap:nowrap!important;max-width:270px}
 #karte .elementor-element-menucol1,#karte .elementor-element-menucol2{flex:1 1 0!important;min-width:0;width:calc((100% - 18px)/2)!important}
 #karte .elementor-widget-image{height:auto!important;width:100%}
 #karte .elementor-widget-image a{display:block;width:100%}
 #karte .elementor-widget-image img{width:100%;height:auto;max-height:170px;object-fit:contain}
 .footer-inner nav{gap:12px 20px}
 .footer-inner nav a{display:inline-flex;align-items:center;min-height:44px}
}
