
:root{
  --soho-green:#334030;
  --soho-green-deep:#334030;
  --soho-green-dark:#334030;
  --soho-brass:#b68e53;
  --soho-brass-light:#d0b071;
  --soho-metal-gold-dark:#7f592f;
  --soho-metal-gold-deep:#8a6437;
  --soho-metal-gold-base:#b68e53;
  --soho-metal-gold-mid:#d0b071;
  --soho-metal-gold-light:#e3cc94;
  --soho-metal-gold-gradient:linear-gradient(105deg,#7f592f 0%,#b68e53 19%,#e3cc94 37%,#a07b47 55%,#dabf88 76%,#8a6437 100%);
  --soho-ink:#181916;
  --soho-cream:#f7f5ef;
  --soho-white:#ffffff;
  --soho-muted:#70736e;
  --soho-radius:14px;
  --soho-shadow:0 16px 44px rgba(51,64,48,.10);
  --soho-max:1180px;
}
.soho-site,.soho-site *{box-sizing:border-box}
.soho-site{font-family:Inter,Arial,sans-serif;color:var(--soho-ink);background:#fff;line-height:1.55}
.soho-site h1,.soho-site h2,.soho-site h3,.soho-site .serif{font-family:Georgia,"Times New Roman",serif;font-weight:400;letter-spacing:.01em}
.soho-site img{display:block;max-width:100%;height:auto}
.soho-site a{text-decoration:none;color:inherit}
.soho-shell{max-width:var(--soho-max);margin:auto;padding:0 30px}
.soho-eyebrow{font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--soho-brass);font-weight:700}
.soho-btn{display:inline-flex;align-items:center;justify-content:center;min-height:46px;padding:0 22px;border-radius:5px;border:1px solid var(--soho-brass);background:var(--soho-brass);color:#fff;font-weight:700;font-size:13px;letter-spacing:.04em;text-transform:uppercase}
.soho-btn.alt{background:transparent;color:#fff}
.soho-btn.green{background:var(--soho-green-deep);border-color:var(--soho-green-deep)}
.soho-header{position:absolute;z-index:20;left:0;right:0;top:0;color:#fff}
.soho-header .inner{height:84px;display:flex;align-items:center;gap:36px}
.soho-logo{width:150px;height:auto;margin-right:auto}
.soho-nav{display:flex;gap:32px;align-items:center;font-size:13px;font-weight:700;text-transform:uppercase}
.soho-nav a.active{color:var(--soho-brass)}
.soho-menu-toggle{display:none;font-size:27px;line-height:1;color:var(--soho-brass)}
.soho-hero{position:relative;min-height:560px;color:#fff;background-position:center;background-size:cover}
.soho-hero:before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(51,64,48,.86) 0%,rgba(51,64,48,.62) 35%,rgba(51,64,48,.18) 72%,rgba(51,64,48,.10) 100%)}
.soho-hero .hero-content{position:relative;z-index:2;padding-top:170px;padding-bottom:90px;max-width:570px}
.soho-hero h1{font-size:56px;line-height:.98;margin:14px 0 20px}
.soho-hero p{font-size:17px;max-width:540px;margin:0 0 28px}
.soho-actions{display:flex;gap:14px;flex-wrap:wrap}
.soho-feature-band{position:relative;z-index:3;margin:-66px auto 0;max-width:1180px;background:linear-gradient(135deg,var(--soho-green),var(--soho-green-deep));border-radius:14px;padding:30px;color:#fff;box-shadow:var(--soho-shadow)}
.soho-feature-grid{display:grid;grid-template-columns:repeat(4,1fr)}
.soho-feature{padding:8px 28px;text-align:center;border-right:1px solid rgba(255,255,255,.18)}
.soho-feature:last-child{border-right:0}
.soho-icon{font-size:32px;color:var(--soho-brass-light);line-height:1;margin-bottom:12px}
.soho-feature h3{font-size:18px;margin:6px 0}
.soho-feature p{font-size:13px;color:#eef0ec}
.soho-section{padding:84px 0}
.soho-section.soft{background:#fafaf7}
.soho-section.green{background:var(--soho-green-deep);color:#fff}
.soho-title{text-align:center;max-width:760px;margin:0 auto 36px}
.soho-title h2{font-size:38px;line-height:1.1;margin:8px 0}
.soho-events{display:grid;grid-template-columns:repeat(3,1fr);gap:24px}
.soho-card{border:1px solid var(--soho-metal-gold-mid);border-radius:12px;overflow:hidden;background:#fff;box-shadow:0 8px 24px rgba(51,64,48,.05)}
.soho-card img{width:100%;height:190px;object-fit:cover}
.soho-card-body{padding:18px}
.soho-card .date{display:inline-block;background:var(--soho-green-deep);color:#fff;padding:8px 10px;font-size:12px;font-weight:700}
.soho-card h3{font-size:20px;margin:10px 0 6px}
.soho-card p{font-size:14px;color:#666}
.soho-split{display:grid;grid-template-columns:1fr 1.25fr;gap:54px;align-items:center}
.soho-split.reverse{grid-template-columns:1.25fr 1fr}
.soho-split img{width:100%;min-height:360px;object-fit:cover;border-radius:14px}
.soho-copy h2{font-size:40px;line-height:1.08;margin:8px 0 18px}
.soho-copy p{color:#555}
.soho-contact-wrap{background:linear-gradient(135deg,#f7f5ef,#eceee8);border-radius:18px;padding:54px;display:grid;grid-template-columns:1fr 1fr;gap:32px}
.soho-form{display:grid;gap:12px}
.soho-form input,.soho-form select,.soho-form textarea{width:100%;border:1px solid #d8dbd6;background:#fff;padding:13px 14px;border-radius:5px;font:inherit}
.soho-form textarea{min-height:130px;resize:vertical}
.soho-map{height:260px;border-radius:12px;background:linear-gradient(135deg,#334030,#334030);position:relative;color:#fff;display:flex;align-items:center;justify-content:center;overflow:hidden}
.soho-map:before{content:"";position:absolute;inset:0;background-image:linear-gradient(30deg,rgba(255,255,255,.03) 1px,transparent 1px),linear-gradient(120deg,rgba(255,255,255,.03) 1px,transparent 1px);background-size:34px 34px}
.soho-map span{position:relative;font-weight:700}
.soho-info{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-top:16px;font-size:14px}
.soho-footer{background:linear-gradient(90deg,#334030,#334030);color:#fff;padding:42px 0 24px}
.soho-footer-grid{display:grid;grid-template-columns:1.4fr .8fr 1fr 1fr;gap:34px}
.soho-footer h4{color:var(--soho-brass-light);text-transform:uppercase;font-size:12px;letter-spacing:.06em}
.soho-footer p,.soho-footer a{font-size:13px;color:#e3e8e4}
.soho-footer .small{border-top:1px solid rgba(255,255,255,.13);margin-top:26px;padding-top:18px;font-size:11px;color:#cdd3cf;display:flex;justify-content:space-between;gap:20px}
.soho-page-hero{min-height:355px}
.soho-page-hero .hero-content{padding-top:150px;padding-bottom:60px}
.soho-page-hero h1{font-size:50px}
.soho-tabs{display:flex;justify-content:center;gap:44px;border-bottom:1px solid var(--soho-metal-gold-mid);padding:18px 10px 0}
.soho-tabs span{padding:14px 0 16px;font-size:13px;text-transform:uppercase}
.soho-tabs .active{color:var(--soho-brass);border-bottom:2px solid var(--soho-brass)}
.soho-menu-list{display:grid;grid-template-columns:1fr 360px;gap:48px;align-items:start;padding:40px 0;border-bottom:1px solid var(--soho-metal-gold-mid)}
.soho-menu-list:nth-child(even){grid-template-columns:360px 1fr}
.soho-menu-list:nth-child(even) .menu-text{order:2}
.soho-menu-list img{width:100%;height:250px;object-fit:cover;border-radius:12px}
.soho-menu-group h2{font-size:26px;margin:0 0 20px}
.menu-row{display:grid;grid-template-columns:1fr auto;gap:18px;margin:0 0 14px}
.menu-row strong{font-size:15px}
.menu-row small{display:block;color:#73756f;font-weight:400;margin-top:2px}
.soho-note{margin-top:32px;padding:22px 24px;background:var(--soho-green-deep);color:#fff;border-radius:9px;display:flex;justify-content:space-between;gap:22px;align-items:center}
.soho-values{display:grid;grid-template-columns:repeat(3,1fr);gap:28px;text-align:center}
.soho-value{padding:28px 22px}
.soho-team{display:grid;grid-template-columns:1fr 1fr;background:var(--soho-green-deep);border-radius:14px;overflow:hidden;color:#fff}
.soho-team img{width:100%;height:320px;object-fit:cover}
.soho-team .copy{padding:42px}
.soho-stats{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;margin-top:28px;text-align:center}
.soho-stat b{font-size:34px;font-family:Georgia,serif;font-weight:400}
.soho-stat span{display:block;font-size:11px;text-transform:uppercase;color:#777}
.soho-contact-grid{display:grid;grid-template-columns:1.25fr .75fr;gap:50px}
.soho-contact-grid .side h3{font-size:24px}
.soho-book-card{margin-top:30px;display:grid;grid-template-columns:1fr 230px;gap:20px;align-items:center;background:#f0efe9;border-radius:14px;overflow:hidden;padding:24px}
.soho-book-card img{width:100%;height:170px;object-fit:cover;border-radius:10px}

@media (max-width: 900px){
  .soho-nav{display:none}.soho-header .soho-btn{display:none}.soho-menu-toggle{display:block}
  .soho-logo{width:120px}.soho-header .inner{height:72px}
  .soho-hero{min-height:560px}.soho-hero .hero-content{padding-top:132px}
  .soho-hero h1{font-size:44px}
  .soho-feature-band{margin:0;border-radius:0;max-width:none}.soho-feature-grid{grid-template-columns:1fr 1fr}
  .soho-feature:nth-child(2){border-right:0}.soho-feature{border-bottom:1px solid rgba(255,255,255,.16)}
  .soho-events{grid-template-columns:1fr}.soho-split,.soho-split.reverse,.soho-contact-wrap,.soho-contact-grid{grid-template-columns:1fr}
  .soho-footer-grid{grid-template-columns:1fr 1fr}
  .soho-menu-list,.soho-menu-list:nth-child(even){grid-template-columns:1fr}.soho-menu-list:nth-child(even) .menu-text{order:0}
}
@media (max-width: 520px){
  .soho-shell{padding:0 20px}
  .soho-header{position:absolute}.soho-header .inner{padding:0 20px}
  .soho-logo{width:112px}
  .soho-hero{min-height:565px;background-position:center}
  .soho-hero:before{background:linear-gradient(180deg,rgba(51,64,48,.78),rgba(51,64,48,.68))}
  .soho-hero .hero-content{padding:128px 20px 66px}
  .soho-hero h1{font-size:40px;line-height:1.03}.soho-hero p{font-size:15px}
  .soho-actions{gap:10px}.soho-btn{min-height:44px;padding:0 17px;font-size:12px}
  .soho-feature-grid{grid-template-columns:1fr}.soho-feature{border-right:0;padding:22px 18px;text-align:left;display:grid;grid-template-columns:42px 1fr;column-gap:14px}
  .soho-feature .soho-icon{grid-row:1/4}.soho-feature h3{margin:0 0 4px}.soho-feature p{margin:0}
  .soho-section{padding:58px 0}.soho-title h2{font-size:30px}.soho-copy h2{font-size:32px}
  .soho-card img{height:180px}.soho-split{gap:28px}.soho-split img{min-height:260px}
  .soho-contact-wrap{padding:26px 20px;border-radius:0}.soho-info{grid-template-columns:1fr}
  .soho-footer-grid{grid-template-columns:1fr}.soho-footer .small{flex-direction:column}
  .soho-page-hero{min-height:360px}.soho-page-hero h1{font-size:38px}
  .soho-tabs{overflow:auto;justify-content:flex-start;gap:28px;padding-left:20px;padding-right:20px}
  .soho-menu-list img{height:220px}.soho-note{align-items:flex-start;flex-direction:column}
  .soho-values,.soho-stats{grid-template-columns:1fr 1fr}.soho-team{grid-template-columns:1fr}.soho-book-card{grid-template-columns:1fr}
}

/* Native Elementor v2 */
.soho-native-widget{width:100%}
.soho-native-widget .elementor-button{font-family:Inter,Arial,sans-serif}

/* Elementor Pro Essential integration */
.soho-pro-form-shell .elementor-field,
.soho-pro-form-shell input,
.soho-pro-form-shell textarea,
.soho-pro-form-shell select{
  border:1px solid #d8dbd6!important;background:#fff!important;border-radius:5px!important;
  min-height:46px;padding:12px 14px!important;
}
.soho-pro-form-shell textarea{min-height:130px!important}
.soho-pro-form-shell .elementor-button{
  background:#334030!important;border-radius:5px!important;color:#fff!important;
  min-height:46px;text-transform:uppercase;font-weight:700;letter-spacing:.04em;
}


/* ================= SOHO v2.2 MOCKUP MATCH ================= */
body.soho-elementor-page .entry-title,
body.soho-elementor-page .page-header,
body.soho-elementor-page h1.entry-title{display:none!important}
body.soho-elementor-page .site-main,
body.soho-elementor-page .content-area,
body.soho-elementor-page .site-content,
body.soho-elementor-page .page-content,
body.soho-elementor-page .elementor-location-single,
body.soho-elementor-page .elementor{max-width:none!important;width:100%!important;margin:0!important;padding:0!important}
body.soho-elementor-page{margin:0;background:#fff}
body.soho-elementor-page .elementor-widget-soho_hero,
body.soho-elementor-page .elementor-widget-soho_feature_band,
body.soho-elementor-page .elementor-widget-soho_events,
body.soho-elementor-page .elementor-widget-soho_content_split,
body.soho-elementor-page .elementor-widget-soho_contact,
body.soho-elementor-page .elementor-widget-soho_footer{margin:0!important}

:root{--soho-max:1360px}
.soho-shell{max-width:1360px;padding-left:72px;padding-right:72px}
.soho-header .inner{height:96px}
.soho-header .soho-logo{width:138px}
.soho-nav{gap:38px;font-size:12px}
.soho-header .soho-btn{min-width:136px}

.soho-hero{min-height:610px;background-position:center 48%}
.soho-hero .hero-content{padding-top:185px;padding-bottom:130px;max-width:720px;margin-left:0}
.soho-hero h1{font-size:64px;line-height:1.02;max-width:700px;margin-top:16px}
.soho-hero p{font-size:17px;line-height:1.7;max-width:620px}
.soho-feature-band{max-width:1280px;margin:-84px auto 0;padding:34px 30px;border-radius:12px}
.soho-feature{padding:10px 34px}
.soho-feature h3{font-size:20px}
.soho-feature p{font-size:13px;line-height:1.65}

.soho-section{padding:96px 0}
.soho-title{margin-bottom:42px}
.soho-title h2{font-size:42px}
.soho-events{gap:28px}
.soho-card img{height:230px}
.soho-card-body{padding:20px 22px 24px}
.soho-card h3{font-size:21px}
.soho-card{box-shadow:none;border-color:#dedfd9}

.soho-section.soft{background:#fbfaf7}
.soho-split{grid-template-columns:.78fr 1.45fr;gap:72px;min-height:500px}
.soho-split img{min-height:420px;max-height:470px}
.soho-copy h2{font-size:43px}
.soho-copy p{font-size:15px;line-height:1.75}

.soho-contact-wrap{padding:56px 64px;grid-template-columns:1fr 1.05fr;gap:54px}
.soho-map{height:245px}
.soho-info{font-size:13px}

.soho-footer{padding:50px 0 26px}
.soho-footer-grid{grid-template-columns:1.35fr .8fr 1fr 1fr .95fr}
.soho-footer-grid:after{content:"NYHEDSBREV\A Tilmeld dig vores nyhedsbrev og få nyt om menu, events og særlige tilbud.";white-space:pre-line;color:#d9dfdb;font-size:12px;line-height:1.65}
.soho-footer-grid:after::first-line{color:var(--soho-brass-light)}
.soho-footer .soho-logo{width:140px}

/* Contact mockup: larger premium composition */
.soho-contact-wrap:after{content:"BOOK BORD ONLINE\A Reserver nemt dit bord online – vi glæder os til at byde dig velkommen.";white-space:pre-line;grid-column:2;background:#f1efe8;border-radius:10px;padding:24px;font-family:Georgia,"Times New Roman",serif;font-size:18px;line-height:1.65}

/* Correct desktop rhythm */
@media (min-width:901px){
 .soho-native-widget>.soho-site{width:100%}
 .soho-events .soho-card:first-child{margin-left:0}
}
@media (max-width:1100px) and (min-width:901px){
 .soho-shell{padding-left:38px;padding-right:38px}
 .soho-hero h1{font-size:52px}
 .soho-feature-band{max-width:calc(100% - 40px)}
}
@media (max-width:900px){
 .soho-shell{padding-left:28px;padding-right:28px}
 .soho-footer-grid{grid-template-columns:1fr 1fr}
 .soho-footer-grid:after{grid-column:auto}
}


/* ================= SOHO v2.3 EXACT-MOCKUP PASS ================= */

/* Global transparent header over hero */
body.soho-elementor-page .elementor-location-header{
  position:absolute!important;top:0;left:0;right:0;z-index:1000;background:transparent!important;
}
body.soho-elementor-page.admin-bar .elementor-location-header{top:32px}
.elementor-location-header .soho-header,
.soho-header{background:transparent!important;position:relative!important;color:#fff!important}
.soho-header .inner{height:92px;padding-top:0;padding-bottom:0}
.soho-header .soho-logo{width:154px}
.soho-header .soho-nav{margin-left:auto;margin-right:48px;gap:38px}
.soho-header .soho-nav a{transition:transform .2s ease,color .2s ease;display:inline-block}
.soho-header .soho-nav a:hover{transform:scale(1.12);color:var(--soho-brass-light)}
.soho-header .soho-btn{min-width:136px;transition:transform .2s ease,filter .2s ease}
.soho-header .soho-btn:hover{transform:scale(1.06);filter:brightness(1.05)}

/* Hero starts at actual page top; preserve inner elements */
body.soho-elementor-page main,
body.soho-elementor-page .site-main{padding-top:0!important}
.soho-hero{margin-top:0!important;min-height:625px}
.soho-hero .hero-content{padding-top:175px}

/* Feature/menu box exactly under hero */
.soho-feature-band{
  background:#334030!important;
  max-width:1288px!important;
  margin:-68px auto 0!important;
  border-radius:12px!important;
  padding:30px 26px 28px!important;
  box-shadow:0 18px 44px rgba(51,64,48,.12)!important;
}
.soho-feature-grid{align-items:stretch}
.soho-feature{padding:12px 36px 8px!important;display:flex!important;flex-direction:column!important;align-items:center!important;text-align:center!important}
.soho-feature .soho-icon{width:45px;height:45px;margin:0 auto 13px;color:var(--soho-brass-light)}
.soho-feature .soho-icon svg{width:45px;height:45px;fill:none;stroke:currentColor;stroke-width:1.6;stroke-linecap:round;stroke-linejoin:round}
.soho-feature h3{font-family:Georgia,"Times New Roman",serif;font-size:19px!important;letter-spacing:.02em;text-transform:uppercase;margin:0 0 10px!important}
.soho-feature p{min-height:64px;margin:0 0 13px!important;font-size:12.5px!important;line-height:1.62!important}
.soho-arrow-link{display:inline-flex;align-items:center;gap:10px;font-size:11px;font-weight:600;letter-spacing:.02em;text-transform:uppercase;color:#fff;transition:gap .2s ease,transform .2s ease}
.soho-arrow-link span{color:var(--soho-brass-light);font-size:18px;line-height:1}
.soho-arrow-link:hover{gap:15px;transform:translateX(2px)}
.soho-arrow-link.dark{color:#30322f}

/* Events/carousel */
.soho-events-section{padding-top:72px!important;padding-bottom:96px!important}
.soho-events-carousel{position:relative}
.soho-events{display:flex!important;gap:28px!important;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:none;padding:0 2px}
.soho-events::-webkit-scrollbar{display:none}
.soho-card{flex:0 0 calc((100% - 56px)/3);scroll-snap-align:start;border-radius:8px!important}
.soho-card-media{position:relative}
.soho-card-media img{height:205px!important;width:100%;object-fit:cover}
.soho-card .date{
 position:absolute!important;left:16px;bottom:-18px;background:var(--soho-green-deep)!important;
 padding:8px 11px!important;min-width:47px;text-align:center;font-size:11px!important;line-height:1.1;
}
.soho-card-body{padding:28px 18px 17px!important;min-height:165px}
.soho-card h3{font-size:18px!important;text-transform:uppercase;margin-bottom:7px!important}
.soho-card p{font-size:12.5px!important;line-height:1.55;margin-bottom:13px}
.soho-carousel-btn{
 position:absolute;top:42%;transform:translateY(-50%);z-index:5;border:0;width:34px;height:34px;border-radius:50%;
 background:var(--soho-green-deep);color:#fff;font-size:25px;line-height:30px;cursor:pointer;box-shadow:0 4px 12px rgba(0,0,0,.12)
}
.soho-carousel-btn.prev{left:-52px}.soho-carousel-btn.next{right:-52px}
.soho-carousel-btn:hover{transform:translateY(-50%) scale(1.08)}

/* About section */
.soho-section.soft{padding-top:78px!important;padding-bottom:78px!important}
.soho-split{grid-template-columns:.76fr 1.42fr!important;gap:72px!important}
.soho-copy h2{font-size:38px!important;line-height:1.12!important;max-width:440px!important}
.soho-copy h2 br{display:block}
.soho-copy .soho-btn.green{color:#fff!important}
.soho-copy .soho-btn.green:hover{color:#fff!important;transform:scale(1.03)}
.soho-split img{height:365px!important;min-height:365px!important;object-fit:cover!important;border-radius:10px!important}

/* Contact */
.soho-contact-section{padding-top:72px!important;padding-bottom:72px!important;background:linear-gradient(135deg,#f7f5ef,#eef0ea)}
.soho-contact-wrap{background:transparent!important;padding:0!important;border-radius:0!important;grid-template-columns:1fr 1.08fr!important;gap:52px!important}
.soho-contact-form h2{font-size:35px;line-height:1.08;margin:8px 0 22px}
.soho-form{gap:11px!important}
.soho-form .soho-two{display:grid;grid-template-columns:1fr 1fr;gap:11px}
.soho-form select{color:#777}
.soho-map.real-map{height:235px!important;background:#334030!important}
.soho-map.real-map iframe{width:100%;height:100%;border:0;filter:saturate(.45) contrast(1.05)}
.soho-info{grid-template-columns:1fr 1fr!important;gap:17px 24px!important;margin-top:18px!important}
.info-item{display:grid!important;grid-template-columns:25px 1fr;grid-template-rows:auto auto;column-gap:10px;align-items:start}
.info-item i{grid-row:1/3;width:22px;height:22px;color:var(--soho-brass);margin-top:2px}
.info-item i svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.info-item b{font-size:12px;font-style:normal}.info-item em{font-size:12px;font-style:normal;color:#555}
.soho-book-card{
 margin-top:24px!important;border:1px solid var(--soho-metal-gold-mid)!important;background:#f4f2eb!important;border-radius:10px!important;
 display:grid!important;grid-template-columns:1fr 220px!important;gap:20px!important;padding:14px!important;overflow:hidden!important
}
.soho-book-card .soho-book-copy{padding:8px 4px 8px 6px}
.soho-book-card h3{font-family:Georgia,"Times New Roman",serif;font-size:18px;font-weight:400;margin:0 0 8px}
.soho-book-card p{font-size:12px;line-height:1.55;margin:0 0 14px}
.soho-book-card img{height:155px!important;border-radius:8px!important;object-fit:cover!important}
.soho-book-card .soho-btn{font-size:10px;min-height:38px;padding:0 15px}

/* Footer */
.soho-footer{padding-top:48px!important}
.soho-footer-grid{grid-template-columns:1.3fr .75fr 1fr 1fr 1.25fr!important;gap:42px!important}
.soho-footer-grid:after{content:none!important}
.soho-footer-brand .soho-logo{margin-bottom:16px!important}
.soho-footer-brand p{line-height:1.6!important}
.soho-social{display:flex;gap:13px;margin-top:18px}
.soho-social a{display:inline-flex;width:22px;height:22px;align-items:center;justify-content:center;color:#fff;transition:transform .2s ease,color .2s ease}
.soho-social svg{width:18px;height:18px;fill:none;stroke:currentColor;stroke-width:1.7}
.soho-social a:first-child svg{fill:currentColor;stroke:none}
.soho-social a:hover{transform:scale(1.18);color:var(--soho-brass-light)}
.soho-footer h4{color:var(--soho-brass-light)!important}
.soho-footer-nav{display:flex;flex-direction:column;gap:4px}
.soho-footer-nav a{display:inline-block;width:max-content;transition:transform .2s ease,color .2s ease;transform-origin:left center}
.soho-footer-nav a:hover{transform:scale(1.10);color:var(--soho-brass-light)}
.soho-newsletter p{margin:0 0 14px!important}
.soho-newsletter-form{height:38px;display:grid;grid-template-columns:1fr 42px;border:1px solid rgba(255,255,255,.26);border-radius:3px;overflow:hidden}
.soho-newsletter-form input{min-width:0;border:0;background:transparent;color:#fff;padding:0 11px;outline:none}
.soho-newsletter-form input::placeholder{color:#334030}
.soho-newsletter-form button{border:0;background:var(--soho-brass);color:#fff;font-size:20px;cursor:pointer}
.soho-newsletter-form button:hover{filter:brightness(1.08)}

@media(max-width:900px){
 body.soho-elementor-page .elementor-location-header{position:absolute!important}
 .soho-header .inner{height:78px}
 .soho-feature-band{margin:-30px 18px 0!important}
 .soho-feature{align-items:flex-start!important;text-align:left!important}
 .soho-card{flex-basis:82%}
 .soho-carousel-btn{display:none}
 .soho-split{grid-template-columns:1fr!important}
 .soho-copy h2{font-size:34px!important}
 .soho-contact-wrap{grid-template-columns:1fr!important}
 .soho-footer-grid{grid-template-columns:1fr 1fr!important}
}
@media(max-width:520px){
 body.soho-elementor-page.admin-bar .elementor-location-header{top:46px}
 .soho-header .soho-logo{width:116px}
 .soho-hero .hero-content{padding-top:128px!important}
 .soho-feature-band{margin:-18px 12px 0!important;padding:18px!important;border-radius:10px!important}
 .soho-feature .soho-icon{margin:0!important}
 .soho-feature p{min-height:0}
 .soho-card{flex-basis:90%}
 .soho-split img{height:280px!important;min-height:280px!important}
 .soho-contact-form h2{font-size:30px}
 .soho-form .soho-two{grid-template-columns:1fr}
 .soho-info{grid-template-columns:1fr!important}
 .soho-book-card{grid-template-columns:1fr!important}
 .soho-footer-grid{grid-template-columns:1fr!important}
}


/* ================= SOHO v2.4 SYSTEMATIC FIX PASS ================= */

/* Remove theme gutters / white borders around full page */
html, body {margin:0!important; padding:0!important;}
body.soho-elementor-page #page,
body.soho-elementor-page .site,
body.soho-elementor-page .site-content,
body.soho-elementor-page #content,
body.soho-elementor-page .content-area,
body.soho-elementor-page .site-main,
body.soho-elementor-page .entry-content,
body.soho-elementor-page .elementor,
body.soho-elementor-page .e-con,
body.soho-elementor-page .elementor-section,
body.soho-elementor-page .elementor-section-wrap {
  max-width:none!important;
  width:100%!important;
  margin:0!important;
  padding:0!important;
  border:0!important;
  box-shadow:none!important;
  background-clip:border-box!important;
}

/* Strong transparent header overlay */
body.soho-elementor-page .elementor-location-header,
body.soho-elementor-page .elementor-location-header > *,
body.soho-elementor-page .elementor-location-header .e-con,
body.soho-elementor-page .elementor-location-header .e-con-inner,
body.soho-elementor-page .elementor-location-header .elementor-widget-wrap,
body.soho-elementor-page .elementor-location-header .elementor-container,
body.soho-elementor-page .elementor-location-header .elementor-element {
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  padding:0!important;
}
body.soho-elementor-page .elementor-location-header{
  position:absolute!important;
  top:0!important; left:0!important; right:0!important;
  width:100%!important;
  z-index:9999!important;
  margin:0 0 -92px 0!important;
  min-height:92px!important;
}
body.soho-elementor-page.admin-bar .elementor-location-header{top:32px!important}
body.soho-elementor-page .elementor-location-header .elementor-widget-soho_header{display:block; width:100%;}
body.soho-elementor-page .elementor-location-header .soho-site{width:100%!important}
.soho-header {background:transparent!important;}
.soho-header .inner{
  height:92px!important;
  max-width:none!important;
  padding-left:28px!important;
  padding-right:28px!important;
}
.soho-header .soho-logo{width:140px!important}
.soho-header .soho-nav{margin-left:26px!important; margin-right:auto!important; gap:32px!important}
.soho-header .soho-btn{margin-left:26px!important}
body.soho-elementor-page .elementor-widget-soho_hero .soho-hero{
  margin-top:0!important;
  padding-top:0!important;
}
body.soho-elementor-page .elementor-widget-soho_hero:first-of-type .soho-hero{
  min-height:640px!important;
}
body.soho-elementor-page .elementor-widget-soho_hero:first-of-type .hero-content{
  padding-top:180px!important;
}

/* Feature boxes: color, overlap, equal alignment, side margins */
.soho-feature-band{
  background:linear-gradient(90deg,#334030 0%, #334030 52%, #334030 100%)!important;
  max-width:calc(100% - 60px)!important;
  width:1280px!important;
  margin:-66px auto 0!important;
  padding:30px 24px 22px!important;
  border-radius:12px!important;
}
.soho-feature-grid{align-items:stretch!important}
.soho-feature{
  padding:10px 30px 12px!important;
  justify-content:flex-start!important;
}
.soho-feature-content{
  display:flex!important;
  flex-direction:column!important;
  min-height:100%!important;
  width:100%!important;
}
.soho-feature h3{margin-bottom:10px!important}
.soho-feature p{
  flex:1 1 auto!important;
  min-height:76px!important;
}
.soho-feature .soho-arrow-link{
  margin-top:auto!important;
  align-self:center!important;
}
.soho-feature .soho-arrow-link span{position:relative; top:-1px}

/* Carousel: narrower cards and aligned arrows */
.soho-events-section .soho-shell{max-width:1320px!important; padding-left:82px!important; padding-right:82px!important}
.soho-events-carousel{position:relative!important}
.soho-events{gap:20px!important}
.soho-card{
  flex:0 0 calc((100% - 40px)/3.35)!important;
  max-width:330px!important;
}
.soho-card-media img{height:172px!important}
.soho-card-body{min-height:170px!important}
.soho-card .date{
  left:12px!important;
  bottom:-14px!important;
  min-width:42px!important;
  padding:6px 9px!important;
}
.soho-carousel-btn{
  top:50%!important;
  transform:translateY(-50%)!important;
  width:32px!important;height:32px!important;
  line-height:30px!important;
}
.soho-carousel-btn.prev{left:-22px!important}
.soho-carousel-btn.next{right:-22px!important}

/* About / Passion image should match mockup */
.soho-section.soft .soho-split img{
  height:390px!important;
  min-height:390px!important;
  object-position:center center!important;
}

/* Contact specific fixes */
.soho-contact-wrap:after{content:none!important; display:none!important;}
.soho-contact-right:after{content:none!important; display:none!important;}
.soho-info{align-items:start!important}
.info-item em{margin-top:2px!important; line-height:1.45!important}
.info-item:nth-child(3) em{margin-top:0!important} /* telephone aligns under title */
.soho-book-card{
  grid-template-columns:1fr 205px!important;
  align-items:stretch!important;
}
.soho-book-card img{
  display:block!important;
  width:100%!important;
  height:128px!important;
  object-fit:cover!important;
}
.soho-book-card .soho-btn{
  color:#fff!important;
  text-align:center!important;
}

/* Footer white border removal and newsletter typography */
body.soho-elementor-page .elementor-location-footer,
body.soho-elementor-page .elementor-location-footer > *,
body.soho-elementor-page .elementor-location-footer .e-con,
body.soho-elementor-page .elementor-location-footer .e-con-inner,
body.soho-elementor-page .elementor-location-footer .elementor-widget-wrap,
body.soho-elementor-page .elementor-location-footer .elementor-container,
body.soho-elementor-page .elementor-location-footer .elementor-element{
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
}
.soho-footer{
  margin-top:0!important;
  margin-bottom:0!important;
  border-radius:0!important;
}
.soho-newsletter-form input{
  font-size:12px!important;
  font-family:Inter,Arial,sans-serif!important;
}
.soho-newsletter-form button{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0!important;
  line-height:1!important;
}
.soho-newsletter-form button::before{
  content:"→";
  position:relative;
  top:-1px;
}

/* Keep desktop-ish layout down to medium viewport used in your screenshots */
@media (max-width:820px){
  .soho-events-section .soho-shell{padding-left:48px!important; padding-right:48px!important}
  .soho-card{flex-basis:31.3%!important; max-width:none!important}
  .soho-feature-band{max-width:calc(100% - 28px)!important; margin:-54px auto 0!important}
  .soho-split{grid-template-columns:.82fr 1.18fr!important; gap:34px!important}
  .soho-contact-wrap{grid-template-columns:1fr 1fr!important; gap:34px!important}
}
@media (max-width:640px){
  body.soho-elementor-page .elementor-location-header{margin-bottom:-84px!important}
  .soho-header .inner{padding-left:14px!important; padding-right:14px!important}
  .soho-events-section .soho-shell{padding-left:40px!important; padding-right:40px!important}
  .soho-card{flex-basis:48%!important}
  .soho-carousel-btn.prev{left:-12px!important}
  .soho-carousel-btn.next{right:-12px!important}
}


/* ================= SOHO v2.5 DECISIVE VISUAL FIX ================= */

/* HEADER: no white band; overlay hero; nav stays visible on tablet/desktop */
.elementor-location-header{
  position:absolute!important;
  top:0!important; left:0!important; right:0!important;
  z-index:99999!important;
  width:100%!important;
  height:92px!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
  overflow:visible!important;
}
.admin-bar .elementor-location-header{top:32px!important}
.elementor-location-header .soho-site,
.elementor-location-header .soho-native-widget,
.elementor-location-header .soho-header,
.elementor-location-header .e-con,
.elementor-location-header .e-con-inner,
.elementor-location-header .elementor-element,
.elementor-location-header .elementor-widget-container{
  background:transparent!important;
  box-shadow:none!important;
  border:0!important;
}
.elementor-location-header .soho-site{background-color:transparent!important}
.soho-header .inner{
  max-width:none!important;
  width:100%!important;
  padding-left:30px!important;
  padding-right:30px!important;
  height:92px!important;
}
.soho-header .soho-logo{width:150px!important}
.soho-header .soho-nav{
  display:flex!important;
  margin-left:auto!important;
  margin-right:42px!important;
  gap:34px!important;
}
.soho-header .soho-btn{margin-left:0!important}
@media (min-width:701px){
  .soho-header .soho-nav{display:flex!important}
  .soho-header .soho-menu-toggle{display:none!important}
}
@media (max-width:700px){
  .soho-header .soho-nav{display:none!important}
  .soho-header .soho-menu-toggle{display:block!important}
}

/* HERO must occupy the space behind global header */
.elementor-location-header + main,
.elementor-location-header + .site-main,
.elementor-location-header + #content{margin-top:0!important;padding-top:0!important}
.elementor-widget-soho_hero:first-of-type{margin-top:0!important}
.elementor-widget-soho_hero:first-of-type .soho-hero{margin-top:0!important}

/* FEATURE BAND: true overlap, mockup green, bottom-aligned links */
.elementor-widget-soho_feature_band{
  position:relative!important;
  z-index:50!important;
  margin-top:-68px!important;
  margin-bottom:0!important;
}
.elementor-widget-soho_feature_band .soho-feature-band{
  margin:0 auto!important;
  width:calc(100% - 60px)!important;
  max-width:1280px!important;
  background:#334030!important;
  padding:30px 24px 34px!important;
  overflow:hidden!important;
}
.soho-feature{
  min-height:184px!important;
}
.soho-feature-content{
  display:grid!important;
  grid-template-rows:auto 1fr auto!important;
  min-height:130px!important;
}
.soho-feature p{
  min-height:0!important;
  margin-bottom:14px!important;
}
.soho-feature .soho-arrow-link{
  align-self:end!important;
  justify-self:center!important;
  margin-top:0!important;
  position:relative!important;
  bottom:0!important;
}

/* Reduce excessive vertical whitespace around events/about */
.soho-events-section{
  padding-top:48px!important;
  padding-bottom:46px!important;
}
.soho-events-section .soho-title{margin-bottom:30px!important}
.soho-events-section .soho-shell{
  max-width:1220px!important;
  padding-left:68px!important;
  padding-right:68px!important;
}
.soho-card{
  flex:0 0 calc((100% - 40px)/3.18)!important;
  max-width:322px!important;
}
.soho-card-media img{height:168px!important}
.soho-carousel-btn{
  top:48%!important;
}
.soho-carousel-btn.prev{left:-34px!important}
.soho-carousel-btn.next{right:-34px!important}

/* ABOUT: match mockup proportions and enforce 2-line heading on desktop/tablet */
.soho-section.soft{
  padding-top:46px!important;
  padding-bottom:46px!important;
}
.soho-section.soft .soho-shell.soho-split{
  grid-template-columns:0.92fr 1.38fr!important;
  gap:46px!important;
}
.soho-section.soft .soho-copy h2{
  max-width:none!important;
  font-size:34px!important;
  line-height:1.08!important;
}
.soho-section.soft .soho-split img{
  width:100%!important;
  height:330px!important;
  min-height:330px!important;
  object-fit:cover!important;
}

/* CONTACT: stable map and booking image */
.soho-contact-section{
  padding-top:48px!important;
  padding-bottom:48px!important;
}
.soho-map.real-map{
  background-size:cover!important;
  background-position:center!important;
  background-repeat:no-repeat!important;
  position:relative!important;
  height:220px!important;
}
.soho-map.real-map::after{
  content:"";
  position:absolute;
  inset:0;
  background:rgba(51,64,48,.13);
  pointer-events:none;
}
.soho-map.real-map .map-address{
  position:absolute!important;
  left:20px!important;
  bottom:16px!important;
  z-index:2!important;
  color:#fff!important;
  font-size:12px!important;
  font-weight:600!important;
  background:rgba(51,64,48,.82)!important;
  padding:7px 10px!important;
  border-radius:4px!important;
}
.info-item{
  grid-template-columns:22px 1fr!important;
}
.info-item b,.info-item em{
  line-height:1.35!important;
}
.info-item:nth-child(3) b,
.info-item:nth-child(3) em{
  margin-top:0!important;
}
.soho-book-card{
  grid-template-columns:1fr 210px!important;
  min-height:150px!important;
}
.soho-book-card img{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  width:100%!important;
  height:122px!important;
  object-fit:cover!important;
}
.soho-book-card .soho-btn,
.soho-book-card .soho-btn:visited{
  color:#fff!important;
}

/* FOOTER: true edge-to-edge and clean newsletter control */
.elementor-location-footer,
.elementor-location-footer .soho-site,
.elementor-location-footer .soho-native-widget,
.elementor-location-footer .elementor-widget-container{
  margin:0!important;
  padding:0!important;
  background:transparent!important;
  border:0!important;
}
.soho-footer{
  width:100%!important;
  margin:0!important;
  border:0!important;
}
.soho-newsletter-form input{
  font-size:11px!important;
  line-height:1!important;
}
.soho-newsletter-form button{
  font-size:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.soho-newsletter-form button::before{
  content:"→"!important;
  font-size:18px!important;
  line-height:1!important;
  top:0!important;
}

/* 808px viewport is still desktop/tablet composition, not mobile */
@media (min-width:701px) and (max-width:900px){
  .soho-shell{padding-left:42px!important;padding-right:42px!important}
  .soho-section.soft .soho-shell.soho-split{
    grid-template-columns:0.95fr 1.35fr!important;
    gap:34px!important;
  }
  .soho-section.soft .soho-copy h2{
    font-size:30px!important;
  }
  .soho-contact-wrap{
    grid-template-columns:1fr 1fr!important;
    gap:30px!important;
  }
  .soho-feature-band{max-width:calc(100% - 36px)!important}
}


/* ================= SOHO v2.6 STRUCTURAL FIX ================= */

/*
   The global Theme Builder header is intentionally hidden.
   Header is now rendered inside every SOHO Hero widget, guaranteeing
   a truly transparent overlay regardless of Elementor/theme wrappers.
*/
.elementor-location-header,
header.elementor-location-header{
  display:none!important;
  height:0!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
}

/* Integrated transparent header */
.soho-hero-with-header{position:relative!important}
.soho-integrated-header{
  position:absolute!important;
  top:0!important;left:0!important;right:0!important;
  z-index:20!important;
  height:92px!important;
  background:transparent!important;
  color:#fff!important;
}
.soho-integrated-header-inner{
  width:100%!important;
  max-width:none!important;
  height:92px!important;
  display:flex!important;
  align-items:center!important;
  padding:0 30px!important;
  margin:0!important;
}
.soho-integrated-logo-link{
  flex:0 0 auto!important;
  margin:0!important;
}
.soho-integrated-logo{
  display:block!important;
  width:150px!important;
  height:auto!important;
  margin:0!important;
}
.soho-integrated-nav{
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:34px!important;
  margin-left:auto!important;
  margin-right:42px!important;
}
.soho-integrated-nav a{
  color:#fff!important;
  font-size:12px!important;
  font-family:Inter,Arial,sans-serif!important;
  font-weight:700!important;
  letter-spacing:.01em!important;
  transition:transform .18s ease,color .18s ease!important;
}
.soho-integrated-nav a:hover{
  color:var(--soho-brass-light)!important;
  transform:scale(1.12)!important;
}
.soho-integrated-book{
  flex:0 0 auto!important;
  min-width:138px!important;
  margin:0!important;
}
.soho-integrated-menu-toggle{display:none!important}

/* Hero content remains where it already worked */
.soho-hero-with-header .hero-content{
  padding-top:175px!important;
}

/* FEATURE STRIP - use transform, not Elementor wrapper margins */
.elementor-widget-soho_feature_band{
  position:relative!important;
  z-index:30!important;
  overflow:visible!important;
  margin:0!important;
  padding:0!important;
}
.elementor-widget-soho_feature_band > .elementor-widget-container{
  overflow:visible!important;
  margin:0!important;
  padding:0!important;
}
.elementor-widget-soho_feature_band .soho-feature-band{
  width:calc(100% - 64px)!important;
  max-width:1280px!important;
  margin:0 auto!important;
  transform:translateY(-72px)!important;
  margin-bottom:-72px!important;
  background:#334030!important;
  border-radius:12px!important;
  padding:28px 24px 26px!important;
}
.soho-feature-grid{
  display:grid!important;
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
  align-items:stretch!important;
}
.soho-feature{
  min-height:210px!important;
  padding:8px 30px!important;
  display:grid!important;
  grid-template-rows:48px auto 1fr 24px!important;
  align-items:start!important;
  justify-items:center!important;
  text-align:center!important;
}
.soho-feature .soho-icon{
  grid-row:1!important;
  margin:0!important;
}
.soho-feature-content{
  display:contents!important;
}
.soho-feature h3{
  grid-row:2!important;
  margin:6px 0 10px!important;
  min-height:26px!important;
}
.soho-feature p{
  grid-row:3!important;
  min-height:0!important;
  margin:0!important;
  align-self:start!important;
}
.soho-feature .soho-arrow-link{
  grid-row:4!important;
  align-self:end!important;
  justify-self:center!important;
  margin:0!important;
  line-height:20px!important;
}
.soho-feature .soho-arrow-link span{
  display:inline-block!important;
  line-height:20px!important;
}

/* EVENTS - fixed mockup-like 3-card stage on desktop/tablet */
.soho-events-section{
  padding:48px 0 58px!important;
}
.soho-events-section .soho-shell{
  max-width:1080px!important;
  padding-left:76px!important;
  padding-right:76px!important;
}
.soho-events-carousel{
  position:relative!important;
  max-width:900px!important;
  margin:0 auto!important;
}
.soho-events{
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:20px!important;
  max-width:900px!important;
  width:100%!important;
  overflow:visible!important;
  margin:0 auto!important;
  padding:0!important;
}
.soho-card{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  flex:none!important;
}
.soho-card-media img{
  width:100%!important;
  height:158px!important;
  object-fit:cover!important;
}
.soho-card-body{
  min-height:166px!important;
}
.soho-carousel-btn{
  top:50%!important;
  transform:translateY(-50%)!important;
  margin:0!important;
}
.soho-carousel-btn.prev{
  left:-46px!important;
}
.soho-carousel-btn.next{
  right:-46px!important;
}

/* ABOUT - approved crop, higher-res file */
.soho-section.soft .soho-split img{
  image-rendering:auto!important;
  width:100%!important;
  height:340px!important;
  min-height:340px!important;
  object-fit:cover!important;
}

/* CONTACT: actual map/booking image */
.soho-map.real-map{
  position:relative!important;
  overflow:hidden!important;
  background:#334030!important;
  height:220px!important;
}
.soho-map-img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  opacity:1!important;
  visibility:visible!important;
}
.soho-map.real-map::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:rgba(51,64,48,.10)!important;
  pointer-events:none!important;
}
.soho-map .map-address{
  z-index:3!important;
}
.soho-info{
  align-items:start!important;
}
.info-item{
  align-self:start!important;
}
.info-item b,
.info-item em{
  margin:0!important;
  padding:0!important;
  line-height:1.35!important;
}
.soho-book-card{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 205px!important;
  align-items:center!important;
  min-height:150px!important;
  overflow:hidden!important;
}
.soho-book-card img{
  display:block!important;
  width:100%!important;
  height:125px!important;
  object-fit:cover!important;
  visibility:visible!important;
  opacity:1!important;
}
.soho-book-card .soho-btn{
  color:#fff!important;
}

/* FOOTER - break out of any Theme Builder/container gutter */
.elementor-location-footer{
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding:0!important;
  border:0!important;
}
.elementor-location-footer .soho-site,
.elementor-location-footer .soho-native-widget,
.elementor-location-footer .soho-footer{
  width:100vw!important;
  max-width:none!important;
  margin:0!important;
  padding-left:0!important;
  padding-right:0!important;
  border:0!important;
}
.soho-newsletter-form{
  align-items:stretch!important;
}
.soho-newsletter-form input{
  height:38px!important;
  padding:0 11px!important;
  font-size:11px!important;
  line-height:38px!important;
}
.soho-newsletter-form button{
  width:42px!important;
  height:38px!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
}
.soho-newsletter-form button::before{
  content:"→"!important;
  display:block!important;
  font-size:18px!important;
  line-height:18px!important;
  transform:none!important;
  position:static!important;
}

/* Keep the mockup desktop composition at the test viewport */
@media (min-width:701px) and (max-width:900px){
  .soho-integrated-header-inner{padding:0 22px!important}
  .soho-integrated-logo{width:126px!important}
  .soho-integrated-nav{gap:22px!important;margin-right:24px!important}
  .soho-integrated-nav a{font-size:10px!important}
  .soho-integrated-book{min-width:112px!important;font-size:10px!important}
  .elementor-widget-soho_feature_band .soho-feature-band{
    width:calc(100% - 36px)!important;
  }
  .soho-feature{padding-left:18px!important;padding-right:18px!important}
  .soho-events-section .soho-shell{padding-left:56px!important;padding-right:56px!important}
  .soho-carousel-btn.prev{left:-38px!important}
  .soho-carousel-btn.next{right:-38px!important}
}
@media (max-width:700px){
  .soho-integrated-header-inner{height:78px!important;padding:0 18px!important}
  .soho-integrated-logo{width:116px!important}
  .soho-integrated-nav{display:none!important}
  .soho-integrated-book{margin-left:auto!important;min-width:104px!important}
  .soho-integrated-menu-toggle{
    display:block!important;
    margin-left:10px!important;
    border:0!important;
    background:transparent!important;
    color:var(--soho-brass-light)!important;
    font-size:26px!important;
  }
  .elementor-widget-soho_feature_band .soho-feature-band{
    transform:translateY(-24px)!important;
    margin-bottom:-24px!important;
    width:calc(100% - 24px)!important;
  }
  .soho-feature-grid{grid-template-columns:1fr!important}
  .soho-events{
    display:flex!important;
    overflow-x:auto!important;
    scroll-snap-type:x mandatory!important;
  }
  .soho-card{
    flex:0 0 88%!important;
    scroll-snap-align:start!important;
  }
  .soho-carousel-btn{display:none!important}
}


/* ================= SOHO v2.7 ALIGNMENT PASS ================= */

:root{
  --soho-layout-max:1280px;
  --soho-layout-gutter:40px;
}
@media (max-width:900px){
  :root{ --soho-layout-gutter:24px; }
}

/* Shared left/right alignment based on logo + booking button edges */
.soho-shell{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* Header inside hero: lower it a bit and align to shared layout */
.soho-integrated-header{
  top:16px!important;
  height:76px!important;
}
.soho-integrated-header-inner{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin:0 auto!important;
  padding:0!important;
  height:76px!important;
}
.soho-integrated-logo{width:128px!important;}
.soho-integrated-nav{
  gap:30px!important;
  margin-right:28px!important;
}
.soho-integrated-nav a{
  font-size:12px!important;
  line-height:1!important;
}
.soho-integrated-book{
  min-width:122px!important;
  height:42px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:12px!important;
}
.soho-hero-with-header .hero-content{
  padding-top:150px!important;
}

/* Under-hero boxes: proper overlap, same side margins, bottom-aligned links */
.elementor-widget-soho_feature_band .soho-feature-band{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  transform:translateY(-98px)!important;
  margin-bottom:-98px!important;
  background:#334030!important;
  padding:28px 18px 24px!important;
}
.soho-feature-grid{
  grid-template-columns:repeat(4,minmax(0,1fr))!important;
}
.soho-feature{
  min-height:196px!important;
  padding:6px 26px 8px!important;
  grid-template-rows:42px auto 1fr auto!important;
}
.soho-feature h3{
  font-size:18px!important;
}
.soho-feature p{
  font-size:12.5px!important;
  line-height:1.6!important;
  max-width:225px!important;
}
.soho-feature .soho-arrow-link{
  margin-top:16px!important;
}

/* Carousel: slimmer cards, centered arrows */
.soho-events-section{
  padding-top:64px!important;
}
.soho-events-carousel{
  max-width:930px!important;
}
.soho-events{
  max-width:930px!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:18px!important;
}
.soho-card-media img{
  height:142px!important;
}
.soho-card-body{
  min-height:132px!important;
  padding:24px 16px 16px!important;
}
.soho-card h3{
  font-size:17px!important;
  margin-bottom:6px!important;
}
.soho-card p{
  font-size:12px!important;
  line-height:1.5!important;
}
.soho-card .date{
  left:10px!important;
  bottom:-12px!important;
}
.soho-carousel-btn{
  top:124px!important;
  transform:translateY(-50%)!important;
}
.soho-carousel-btn.prev{left:-42px!important;}
.soho-carousel-btn.next{right:-42px!important;}

/* Contact map fixed */
.soho-map.real-map{
  height:210px!important;
  overflow:hidden!important;
  background:#334030!important;
}
.soho-map.real-map::after{
  content:none!important;
}
.soho-map-frame{
  display:block!important;
  width:100%!important;
  height:100%!important;
  border:0!important;
}

/* Booking card image corrected */
.soho-book-card{
  grid-template-columns:minmax(0,1fr) 228px!important;
  min-height:142px!important;
}
.soho-book-card img{
  width:100%!important;
  height:114px!important;
  object-fit:cover!important;
}

/* Keep footer aligned to same shell edges */
.soho-footer .soho-shell{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
}
.soho-newsletter-form input{
  font-size:12px!important;
}

/* Medium viewport adjustment matching your capture */
@media (min-width:701px) and (max-width:900px){
  .soho-integrated-header{top:12px!important;}
  .soho-integrated-header-inner{
    width:calc(100% - 32px)!important;
  }
  .soho-integrated-logo{width:120px!important;}
  .soho-integrated-nav{gap:22px!important;margin-right:20px!important;}
  .soho-integrated-nav a{font-size:11px!important;}
  .soho-integrated-book{min-width:104px!important;height:38px!important;font-size:11px!important;}
  .soho-hero-with-header .hero-content{padding-top:140px!important;}
  .elementor-widget-soho_feature_band .soho-feature-band{
    width:calc(100% - 32px)!important;
    transform:translateY(-88px)!important;
    margin-bottom:-88px!important;
  }
  .soho-feature{padding-left:16px!important;padding-right:16px!important;}
  .soho-events-carousel,
  .soho-events{max-width:760px!important;}
  .soho-carousel-btn{top:118px!important;}
  .soho-section.soft .soho-split img{height:310px!important;min-height:310px!important;}
}


/* ================= SOHO v2.8 THREE-ISSUE FIX ================= */

/* 1) HEADER: move it visibly lower, without moving hero content */
.soho-integrated-header{
  top:30px!important;
}
.soho-integrated-header-inner{
  height:70px!important;
}
.soho-integrated-logo{
  width:128px!important;
}
.soho-integrated-nav{
  gap:30px!important;
  margin-right:30px!important;
}
.soho-integrated-book{
  height:40px!important;
}

/* 2) CAROUSEL: arrows are layout columns, not absolutely guessed coordinates */
.soho-events-carousel{
  display:grid!important;
  grid-template-columns:34px minmax(0,930px) 34px!important;
  column-gap:16px!important;
  align-items:center!important;
  justify-content:center!important;
  max-width:1040px!important;
  margin:0 auto!important;
}
.soho-events{
  grid-column:2!important;
  grid-row:1!important;
  display:flex!important;
  gap:18px!important;
  width:100%!important;
  max-width:930px!important;
  overflow-x:auto!important;
  scroll-snap-type:x mandatory!important;
  scrollbar-width:none!important;
}
.soho-events::-webkit-scrollbar{display:none!important}
.soho-card{
  flex:0 0 calc((100% - 36px)/3)!important;
  max-width:none!important;
  scroll-snap-align:start!important;
}
.soho-carousel-btn{
  position:static!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  transform:none!important;
  margin:0!important;
  align-self:center!important;
  justify-self:center!important;
  width:32px!important;
  height:32px!important;
  line-height:28px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 0 2px 0!important;
}
.soho-carousel-btn.prev{
  grid-column:1!important;
  grid-row:1!important;
}
.soho-carousel-btn.next{
  grid-column:3!important;
  grid-row:1!important;
}

/* 3) BOOKING IMAGE: use original high-resolution restaurant/harbour photo, not mockup crop */
.soho-book-card img{
  width:100%!important;
  height:128px!important;
  object-fit:cover!important;
  object-position:center 58%!important;
  display:block!important;
  border-radius:8px!important;
}

/* Keep the same logic at the viewport used for screenshots */
@media (min-width:701px) and (max-width:900px){
  .soho-integrated-header{top:26px!important}
  .soho-events-carousel{
    grid-template-columns:32px minmax(0,760px) 32px!important;
    gap:12px!important;
    max-width:840px!important;
  }
  .soho-events{max-width:760px!important}
}


/* ================= SOHO v2.9.1 EDITABILITY SAFEGUARDS ================= */
/*
  Baseline design is preserved.
  Content/media controls are not locked to hard-coded assets.
  Elementor selector-generated CSS may override the exposed style controls above.
*/
.soho-book-card img{
  content:normal!important;
  visibility:visible!important;
  opacity:1!important;
}
.soho-section.soft .soho-split img{
  visibility:visible!important;
  opacity:1!important;
}


/* ================= SOHO v3.0 REQUESTED LOCAL CHANGES ONLY ================= */

/* 1. Hero uses the approved mockup image via widget render/default.
      No global margin/color changes here. */

/* 2. Events/carousel section: full viewport width, slimmer cards, visible eyebrow, less air */
.soho-events-section{
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  background:#fff!important;
  padding-top:34px!important;
  padding-bottom:34px!important;
}
.soho-events-section .soho-shell{
  width:calc(100% - 80px)!important;
  max-width:1280px!important;
  margin:0 auto!important;
  padding-left:0!important;
  padding-right:0!important;
}
.soho-events-section .soho-title{
  margin-bottom:22px!important;
}
.soho-events-section .soho-title .soho-eyebrow{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  color:var(--soho-brass)!important;
  font-size:12px!important;
  line-height:1.2!important;
  margin-bottom:7px!important;
}
.soho-events-carousel{
  max-width:100%!important;
}
.soho-events{
  max-width:100%!important;
  gap:20px!important;
  justify-content:center!important;
}
.soho-card{
  flex:0 0 282px!important;
  width:282px!important;
  max-width:282px!important;
}
.soho-card-media img{
  height:132px!important;
  width:100%!important;
  object-fit:cover!important;
}
.soho-card-body{
  min-height:145px!important;
  padding:23px 15px 14px!important;
}

/* 3. About section: pure white and tighter vertical rhythm */
.soho-section.soft{
  background:#fff!important;
  padding-top:38px!important;
  padding-bottom:38px!important;
}

/* 4. Same hover feel on every real button/CTA as About button */
.soho-btn,
.soho-form button,
.soho-newsletter-form button{
  transition:transform .18s ease, box-shadow .18s ease, filter .18s ease!important;
  transform-origin:center center!important;
}
.soho-btn:hover,
.soho-form button:hover,
.soho-newsletter-form button:hover{
  transform:scale(1.045)!important;
  box-shadow:0 7px 18px rgba(51,64,48,.18)!important;
  filter:brightness(1.04)!important;
}

/* Preserve compact carousel behavior at the user's current desktop capture width */
@media (min-width:701px) and (max-width:1100px){
  .soho-events-section .soho-shell{
    width:calc(100% - 48px)!important;
  }
  .soho-card{
    flex-basis:250px!important;
    width:250px!important;
    max-width:250px!important;
  }
  .soho-card-media img{
    height:120px!important;
  }
}


/* ================= SOHO v3.0.1 CLEAN HERO + EVENTS HEADER FIX ================= */

/* Never use the mockup-derived hero image with baked-in text/UI. */
.soho-hero{
  background-repeat:no-repeat!important;
  background-size:cover!important;
}

/* Events label + heading must be fully visible and not clipped by carousel/cards. */
.soho-events-section{
  overflow:visible!important;
  padding-top:30px!important;
  padding-bottom:30px!important;
}
.soho-events-section .soho-title{
  display:block!important;
  position:relative!important;
  z-index:5!important;
  overflow:visible!important;
  margin-top:0!important;
  margin-bottom:24px!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
.soho-events-section .soho-title .soho-eyebrow{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  position:relative!important;
  z-index:6!important;
  color:var(--soho-brass)!important;
  font-size:12px!important;
  line-height:1.3!important;
  margin:0 0 8px!important;
  padding:0!important;
}
.soho-events-section .soho-title h2{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  position:relative!important;
  z-index:6!important;
  margin:0!important;
  padding:0!important;
  line-height:1.12!important;
}
.soho-events-carousel{
  position:relative!important;
  z-index:1!important;
  margin-top:0!important;
}

/* ================= SOHO v3.0.2 GOLDEN EVENTS/ABOUT PATCH ================= */
/* Events section only: keep full-width section but restore mockup card proportions. */
.soho-events-section{
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding:28px 0 34px!important;
  overflow:visible!important;
  background:#fff!important;
}
.soho-events-section .soho-shell{
  width:calc(100% - 72px)!important;
  max-width:1040px!important;
  margin:0 auto!important;
  padding:0!important;
}
.soho-events-section .soho-title{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  margin:0 auto 22px!important;
  padding:0!important;
  position:relative!important;
  z-index:10!important;
  overflow:visible!important;
}
.soho-events-section .soho-title .soho-eyebrow{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  margin:0 0 7px!important;
  color:var(--soho-brass)!important;
  font-size:12px!important;
  line-height:1.2!important;
  text-align:center!important;
}
.soho-events-section .soho-title h2{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  margin:0!important;
  padding:0!important;
  text-align:center!important;
  line-height:1.1!important;
}
.soho-events-carousel{
  display:grid!important;
  grid-template-columns:36px minmax(0, 900px) 36px!important;
  gap:14px!important;
  align-items:center!important;
  justify-content:center!important;
  max-width:1000px!important;
  margin:0 auto!important;
  overflow:visible!important;
}
.soho-events{
  grid-column:2!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:20px!important;
  max-width:900px!important;
  width:100%!important;
  overflow:visible!important;
  margin:0!important;
  padding:0!important;
}
.soho-card{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  flex:none!important;
}
.soho-card-media img{
  width:100%!important;
  height:150px!important;
  object-fit:cover!important;
}
.soho-card-body{
  min-height:146px!important;
  padding:24px 15px 14px!important;
}
.soho-carousel-btn{
  position:static!important;
  transform:none!important;
  top:auto!important;left:auto!important;right:auto!important;
  margin:0!important;
  width:32px!important;height:32px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  align-self:center!important;
  justify-self:center!important;
  padding:0 0 2px!important;
}
.soho-carousel-btn.prev{grid-column:1!important;grid-row:1!important;}
.soho-carousel-btn.next{grid-column:3!important;grid-row:1!important;}

/* About section only: approved image + white background + compact vertical spacing. */
.soho-section.soft{
  background:#fff!important;
  padding-top:34px!important;
  padding-bottom:34px!important;
}

@media (min-width:701px) and (max-width:950px){
  .soho-events-section .soho-shell{width:calc(100% - 44px)!important;}
  .soho-events-carousel{grid-template-columns:32px minmax(0,760px) 32px!important;gap:12px!important;}
  .soho-events{max-width:760px!important;gap:18px!important;}
  .soho-card-media img{height:134px!important;}
}


/* ================= SOHO v3.0.3 EVENTS ALIGNMENT PATCH ================= */
/* Only the events section is touched here. */

.soho-events-section{
  overflow:visible!important;
  padding-top:42px!important;
  padding-bottom:36px!important;
}
.soho-events-section .soho-shell{
  width:calc(100% - 80px)!important;
  max-width:1280px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}
.soho-events-section .soho-title{
  display:block!important;
  overflow:visible!important;
  position:relative!important;
  z-index:5!important;
  margin:0 0 26px!important;
  text-align:center!important;
}
.soho-events-section .soho-title .soho-eyebrow{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  color:var(--soho-brass)!important;
  font-size:12px!important;
  line-height:1.25!important;
  margin:0 0 8px!important;
}
.soho-events-section .soho-title h2{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  margin:0!important;
  line-height:1.08!important;
}
.soho-events-carousel{
  width:100%!important;
  max-width:100%!important;
  margin:0 auto!important;
  display:grid!important;
  grid-template-columns:52px minmax(0,1fr) 52px!important;
  column-gap:18px!important;
  align-items:center!important;
}
.soho-events{
  grid-column:2!important;
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
  display:grid!important;
  grid-template-columns:repeat(3,minmax(0,1fr))!important;
  gap:20px!important;
  overflow:visible!important;
  justify-content:stretch!important;
}
.soho-card{
  width:100%!important;
  max-width:none!important;
  min-width:0!important;
  flex:none!important;
}
.soho-card-media img{
  width:100%!important;
  height:142px!important;
  object-fit:cover!important;
}
.soho-card-body{
  min-height:144px!important;
}
.soho-carousel-btn{
  position:static!important;
  top:auto!important;
  left:auto!important;
  right:auto!important;
  transform:none!important;
  margin:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  width:34px!important;
  height:34px!important;
  line-height:34px!important;
}
.soho-carousel-btn.prev{
  grid-column:1!important;
  grid-row:1!important;
  justify-self:start!important;
}
.soho-carousel-btn.next{
  grid-column:3!important;
  grid-row:1!important;
  justify-self:end!important;
}

@media (max-width:1100px){
  .soho-events-section .soho-shell{
    width:calc(100% - 48px)!important;
  }
  .soho-events-carousel{
    grid-template-columns:40px minmax(0,1fr) 40px!important;
    column-gap:14px!important;
  }
  .soho-events{
    gap:16px!important;
  }
  .soho-card-media img{
    height:128px!important;
  }
}


/* ================= SOHO v3.0.4 PRECISE FIXES ================= */

/* EVENTS HEADING:
   unique classes so no accumulated .soho-title rules can clip it */
.soho-events-section .soho-events-heading{
  display:block!important;
  position:relative!important;
  z-index:50!important;
  width:100%!important;
  height:auto!important;
  min-height:74px!important;
  overflow:visible!important;
  visibility:visible!important;
  opacity:1!important;
  margin:0 0 24px!important;
  padding:0!important;
  text-align:center!important;
  transform:none!important;
}
.soho-events-section .soho-events-kicker{
  display:block!important;
  position:relative!important;
  visibility:visible!important;
  opacity:1!important;
  overflow:visible!important;
  color:var(--soho-brass)!important;
  font-family:Inter,Arial,sans-serif!important;
  font-size:12px!important;
  font-weight:700!important;
  line-height:16px!important;
  letter-spacing:.07em!important;
  text-transform:uppercase!important;
  margin:0 0 8px!important;
  padding:0!important;
}
.soho-events-section .soho-events-main-title{
  display:block!important;
  position:relative!important;
  visibility:visible!important;
  opacity:1!important;
  overflow:visible!important;
  color:var(--soho-ink)!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:38px!important;
  font-weight:400!important;
  line-height:44px!important;
  height:auto!important;
  margin:0!important;
  padding:0 0 2px!important;
  transform:none!important;
}

/* HEADER ACTIONS:
   TAKEAWAY in theme green + BOOK BORD; exact same width */
.soho-header-actions{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
  flex:0 0 auto!important;
}
.soho-header-action{
  width:132px!important;
  min-width:132px!important;
  max-width:132px!important;
  height:42px!important;
  min-height:42px!important;
  padding:0 8px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  white-space:nowrap!important;
  font-size:10px!important;
  line-height:1!important;
  text-align:center!important;
}
.soho-takeaway-button,
.soho-takeaway-button:visited{
  background:#334030!important;
  border-color:#334030!important;
  color:#fff!important;
}
.soho-integrated-book,
.soho-integrated-book:visited{
  color:#fff!important;
}

/* Never allow WordPress/theme purple hover/visited colors inside SOHO.
   Hover behavior is scale only; each link keeps its normal color. */
.soho-site a,
.soho-site a:visited,
.soho-site a:hover,
.soho-site a:focus,
.soho-site a:active{
  text-decoration:none!important;
}
.soho-integrated-nav a,
.soho-integrated-nav a:visited,
.soho-integrated-nav a:hover,
.soho-integrated-nav a:focus{
  color:#fff!important;
}
.soho-integrated-nav a:hover{
  transform:scale(1.12)!important;
}
.soho-footer-nav a,
.soho-footer-nav a:visited,
.soho-footer-nav a:hover,
.soho-footer-nav a:focus,
.soho-footer a,
.soho-footer a:visited,
.soho-footer a:hover,
.soho-footer a:focus{
  color:#e3e8e4!important;
}
.soho-footer-nav a:hover{
  transform:scale(1.10)!important;
}
.soho-feature .soho-arrow-link,
.soho-feature .soho-arrow-link:visited,
.soho-feature .soho-arrow-link:hover,
.soho-feature .soho-arrow-link:focus{
  color:#fff!important;
}
.soho-card .soho-arrow-link.dark,
.soho-card .soho-arrow-link.dark:visited,
.soho-card .soho-arrow-link.dark:hover,
.soho-card .soho-arrow-link.dark:focus{
  color:#30322f!important;
}
.soho-btn,
.soho-btn:visited,
.soho-btn:hover,
.soho-btn:focus,
.soho-form button,
.soho-newsletter-form button{
  color:#fff!important;
}
.soho-social a,
.soho-social a:visited,
.soho-social a:hover,
.soho-social a:focus{
  color:#fff!important;
}

/* All buttons: same grow-only hover; no color shift */
.soho-btn:hover,
.soho-form button:hover,
.soho-newsletter-form button:hover{
  transform:scale(1.045)!important;
  filter:none!important;
}

/* Keep header actions usable on medium desktop/tablet widths */
@media (min-width:701px) and (max-width:1100px){
  .soho-header-actions{gap:7px!important;}
  .soho-header-action{
    width:112px!important;
    min-width:112px!important;
    max-width:112px!important;
    font-size:9px!important;
  }
  .soho-integrated-nav{
    gap:18px!important;
    margin-right:14px!important;
  }
}
@media (max-width:700px){
  .soho-header-actions{
    margin-left:auto!important;
    gap:6px!important;
  }
  .soho-header-action{
    width:104px!important;
    min-width:104px!important;
    max-width:104px!important;
    height:38px!important;
    min-height:38px!important;
    font-size:8px!important;
  }
}


/* ================= SOHO v3.0.5 CONTACT + CROSS-BROWSER PASS ================= */

/* Contact heading requested change: smaller and preferably one line */
.soho-contact-form h2{
  font-size:30px!important;
  line-height:1.08!important;
  letter-spacing:0!important;
  white-space:nowrap!important;
  max-width:none!important;
}
@media (max-width:1100px){
  .soho-contact-form h2{
    font-size:27px!important;
  }
}
@media (max-width:760px){
  .soho-contact-form h2{
    white-space:normal!important;
    font-size:28px!important;
  }
}

/* Cross-browser normalization for Chrome, Edge, Firefox and Safari on Windows/macOS */
.soho-site,
.soho-site *,
.soho-site *::before,
.soho-site *::after{
  -webkit-box-sizing:border-box;
  box-sizing:border-box;
}

.soho-site{
  -webkit-text-size-adjust:100%;
  text-size-adjust:100%;
  -webkit-font-smoothing:antialiased;
  -moz-osx-font-smoothing:grayscale;
}

.soho-site img,
.soho-site svg{
  max-width:100%;
  height:auto;
}

.soho-site button,
.soho-site input,
.soho-site select,
.soho-site textarea{
  font:inherit;
  color:inherit;
}

.soho-site input,
.soho-site select,
.soho-site textarea{
  -webkit-appearance:none;
  appearance:none;
  border-radius:5px;
}

.soho-site select{
  background-color:#fff;
}

.soho-site button,
.soho-site .soho-btn{
  -webkit-appearance:none;
  appearance:none;
  -webkit-tap-highlight-color:transparent;
}

.soho-site .soho-integrated-header-inner,
.soho-site .soho-header-actions,
.soho-site .soho-integrated-nav,
.soho-site .soho-feature-grid,
.soho-site .soho-events,
.soho-site .soho-contact-wrap,
.soho-site .soho-footer-grid{
  min-width:0;
}

.soho-site .soho-feature,
.soho-site .soho-card,
.soho-site .soho-contact-form,
.soho-site .soho-contact-right,
.soho-site .soho-book-card > *{
  min-width:0;
}

/* Safari/Firefox grid/flex consistency */
.soho-site .soho-events{
  -webkit-box-align:stretch;
  align-items:stretch;
}
.soho-site .soho-card{
  overflow:hidden;
}
.soho-site .soho-carousel-btn{
  -webkit-user-select:none;
  user-select:none;
}

/* Prevent theme/browser link coloring from leaking in */
.soho-site a{
  -webkit-text-decoration-skip:objects;
  text-decoration-skip-ink:auto;
}

/* Stable form field heights across Safari/Firefox/Chromium */
.soho-form input,
.soho-form select{
  min-height:44px;
}
.soho-form textarea{
  min-height:130px;
}

/* Stable button text vertical centering */
.soho-btn,
.soho-form button,
.soho-newsletter-form button{
  display:inline-flex;
  align-items:center;
  justify-content:center;
}


/* ================= SOHO v3.0.6 HEADER SIZE MATCH ================= */
/* Match top-menu typography and CTA sizing to the Hero buttons. */

.soho-integrated-nav a{
  font-size:13px!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:.04em!important;
}

.soho-header-action{
  width:132px!important;
  min-width:132px!important;
  max-width:132px!important;
  min-height:46px!important;
  height:46px!important;
  padding:0 14px!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:.04em!important;
}

/* Preserve equal-width header buttons on medium screens, while keeping Hero-like text size. */
@media (min-width:701px) and (max-width:1100px){
  .soho-header-action{
    width:122px!important;
    min-width:122px!important;
    max-width:122px!important;
    min-height:44px!important;
    height:44px!important;
    font-size:12px!important;
  }
  .soho-integrated-nav a{
    font-size:12px!important;
  }
}


/* ================= SOHO v3.0.7 LOCAL PATCHES ================= */
/* 1) Green feature-box headings bold */
.soho-feature h3{
  font-weight:700!important;
}

/* 2) Carousel arrows must be white and keep same color on hover/focus */
.soho-carousel-btn,
.soho-carousel-btn:visited,
.soho-carousel-btn:hover,
.soho-carousel-btn:focus,
.soho-carousel-btn:active{
  color:#fff!important;
  background:#334030!important;
  border-color:#334030!important;
  text-decoration:none!important;
}
.soho-carousel-btn:hover,
.soho-carousel-btn:focus,
.soho-carousel-btn:active{
  filter:none!important;
}

/* 3) Arrow icons inside button (if wrapped) remain white too */
.soho-carousel-btn *,
.soho-carousel-btn:hover *,
.soho-carousel-btn:focus *{
  color:#fff!important;
  fill:#fff!important;
  stroke:#fff!important;
}


/* ================= SOHO v3.0.9 AMBIENT HERO LIGHTING ================= */
/* Subtle constant candle flicker + discrete string-light glint.
   No image file is modified in this version. */

.soho-hero-with-header{
  position:relative!important;
  overflow:hidden!important;
}

/* Constant, irregular candle flicker.
   Multiple warm radial glows are layered in positions matching the hero scene. */
.soho-hero-with-header .hero-content::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:
    radial-gradient(circle at 73.5% 69%, rgba(255,194,92,.30) 0 3px, rgba(255,153,47,.15) 4px 10px, transparent 19px),
    radial-gradient(circle at 78.4% 67%, rgba(255,205,108,.25) 0 2px, rgba(255,159,55,.12) 4px 9px, transparent 17px),
    radial-gradient(circle at 69.6% 71%, rgba(255,187,80,.22) 0 2px, rgba(255,139,35,.10) 4px 8px, transparent 15px),
    radial-gradient(circle at 64.8% 72%, rgba(255,202,98,.20) 0 2px, rgba(255,147,38,.08) 4px 8px, transparent 14px)!important;
  opacity:.68!important;
  mix-blend-mode:screen!important;
  transform-origin:center!important;
  animation:sohoCandleFlicker 1.65s steps(1,end) infinite!important;
}

/* String-light shimmer: a tiny glint approximately every 3.6s */
.soho-hero-with-header .hero-content::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:
    radial-gradient(circle at 54.2% 58.6%, rgba(255,231,165,.00) 0 1px, transparent 3px),
    radial-gradient(circle at 57.7% 58.0%, rgba(255,231,165,.00) 0 1px, transparent 3px),
    radial-gradient(circle at 61.1% 57.4%, rgba(255,231,165,.00) 0 1px, transparent 3px),
    radial-gradient(circle at 64.6% 57.0%, rgba(255,231,165,.00) 0 1px, transparent 3px)!important;
  opacity:0!important;
  mix-blend-mode:screen!important;
  animation:sohoStringGlint 3.6s ease-in-out infinite!important;
}

/* Keep actual hero copy/header above the ambient overlays */
.soho-hero-with-header .hero-content > *{
  position:relative!important;
  z-index:3!important;
}
.soho-integrated-header{
  z-index:5!important;
}

@keyframes sohoCandleFlicker{
  0%   {opacity:.58; transform:scale(1.000);}
  9%   {opacity:.72; transform:scale(1.006);}
  18%  {opacity:.61; transform:scale(.997);}
  27%  {opacity:.77; transform:scale(1.009);}
  36%  {opacity:.64; transform:scale(1.001);}
  46%  {opacity:.70; transform:scale(1.005);}
  55%  {opacity:.57; transform:scale(.998);}
  66%  {opacity:.75; transform:scale(1.008);}
  77%  {opacity:.63; transform:scale(1.002);}
  88%  {opacity:.69; transform:scale(1.004);}
  100% {opacity:.58; transform:scale(1.000);}
}

@keyframes sohoStringGlint{
  0%,72%,100%{
    opacity:0;
    filter:brightness(1);
  }
  78%{
    opacity:.22;
    filter:brightness(1.08);
    background:
      radial-gradient(circle at 54.2% 58.6%, rgba(255,238,183,.60) 0 1px, rgba(255,221,133,.22) 2px, transparent 5px),
      radial-gradient(circle at 57.7% 58.0%, rgba(255,238,183,.15) 0 1px, transparent 4px),
      radial-gradient(circle at 61.1% 57.4%, rgba(255,238,183,.35) 0 1px, rgba(255,221,133,.12) 2px, transparent 5px),
      radial-gradient(circle at 64.6% 57.0%, rgba(255,238,183,.10) 0 1px, transparent 4px);
  }
  82%{
    opacity:.09;
    filter:brightness(1.02);
  }
}

/* Reduced motion accessibility: preserve static ambience, disable animation. */
@media (prefers-reduced-motion: reduce){
  .soho-hero-with-header .hero-content::before{
    animation:none!important;
    opacity:.62!important;
  }
  .soho-hero-with-header .hero-content::after{
    animation:none!important;
    opacity:0!important;
  }
}

/* Mobile: still visible, but slightly calmer */
@media (max-width:700px){
  .soho-hero-with-header .hero-content::before{
    opacity:.52!important;
  }
  .soho-hero-with-header .hero-content::after{
    opacity:0!important;
  }
}


/* ================= SOHO v3.1.0 STRONGER AMBIENT HERO ================= */
/* Disable previous content-width ambience layer and move it to the full hero area. */
.soho-hero-with-header .hero-content::before,
.soho-hero-with-header .hero-content::after{
  content:none!important;
  animation:none!important;
}

.soho-hero-with-header{
  position:relative!important;
  overflow:hidden!important;
}

/* Full-hero candle flicker covering all visible candle clusters */
.soho-hero-with-header::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:
    radial-gradient(circle at 58.5% 66.5%, rgba(255,210,118,.68) 0 4px, rgba(255,168,66,.30) 5px 15px, transparent 26px),
    radial-gradient(circle at 61.8% 64.5%, rgba(255,212,122,.63) 0 4px, rgba(255,170,71,.28) 5px 14px, transparent 25px),
    radial-gradient(circle at 66.7% 67.2%, rgba(255,206,111,.58) 0 3px, rgba(255,162,60,.26) 4px 13px, transparent 23px),
    radial-gradient(circle at 70.8% 65.7%, rgba(255,216,132,.55) 0 3px, rgba(255,173,70,.24) 4px 12px, transparent 22px),
    radial-gradient(circle at 73.9% 69.0%, rgba(255,219,134,.72) 0 4px, rgba(255,175,72,.31) 5px 16px, transparent 28px),
    radial-gradient(circle at 77.9% 66.7%, rgba(255,214,126,.62) 0 4px, rgba(255,171,68,.28) 5px 14px, transparent 24px),
    radial-gradient(circle at 81.5% 68.8%, rgba(255,207,116,.56) 0 3px, rgba(255,162,60,.24) 4px 12px, transparent 22px),
    radial-gradient(circle at 86.4% 67.5%, rgba(255,214,126,.52) 0 3px, rgba(255,171,68,.22) 4px 11px, transparent 20px),
    radial-gradient(circle at 90.3% 69.3%, rgba(255,204,109,.48) 0 3px, rgba(255,158,57,.18) 4px 10px, transparent 19px),
    radial-gradient(circle at 74.8% 60.5%, rgba(255,201,104,.36) 0 2px, rgba(255,154,52,.14) 4px 9px, transparent 16px),
    radial-gradient(circle at 79.8% 60.0%, rgba(255,201,104,.34) 0 2px, rgba(255,154,52,.13) 4px 8px, transparent 15px)!important;
  opacity:.94!important;
  mix-blend-mode:screen!important;
  transform-origin:center center!important;
  animation:sohoCandleFlickerStrong 1.35s steps(1,end) infinite!important;
}

/* String lights along the hanging glass rack / ceiling line */
.soho-hero-with-header::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:
    radial-gradient(circle at 54.0% 35.8%, rgba(255,241,194,0) 0 1px, transparent 5px),
    radial-gradient(circle at 56.1% 35.5%, rgba(255,241,194,0) 0 1px, transparent 5px),
    radial-gradient(circle at 58.2% 35.1%, rgba(255,241,194,0) 0 1px, transparent 5px),
    radial-gradient(circle at 60.3% 34.7%, rgba(255,241,194,0) 0 1px, transparent 5px),
    radial-gradient(circle at 62.4% 34.4%, rgba(255,241,194,0) 0 1px, transparent 5px),
    radial-gradient(circle at 64.5% 34.1%, rgba(255,241,194,0) 0 1px, transparent 5px),
    radial-gradient(circle at 66.6% 33.8%, rgba(255,241,194,0) 0 1px, transparent 5px),
    radial-gradient(circle at 68.7% 33.6%, rgba(255,241,194,0) 0 1px, transparent 5px),
    radial-gradient(circle at 70.8% 33.3%, rgba(255,241,194,0) 0 1px, transparent 5px),
    radial-gradient(circle at 72.9% 33.1%, rgba(255,241,194,0) 0 1px, transparent 5px)!important;
  opacity:.02!important;
  mix-blend-mode:screen!important;
  animation:sohoStringGlintStronger 3.45s ease-in-out infinite!important;
}

.soho-hero-with-header .hero-content,
.soho-hero-with-header .hero-content > *{
  position:relative!important;
  z-index:3!important;
}
.soho-integrated-header{ z-index:5!important; }

@keyframes sohoCandleFlickerStrong{
  0%   {opacity:.82; transform:scale(1.000) translate3d(0,0,0);} 
  8%   {opacity:1.00; transform:scale(1.020) translate3d(0,-0.2%,0);} 
  16%  {opacity:.86; transform:scale(.994) translate3d(0,0,0);} 
  24%  {opacity:.96; transform:scale(1.016) translate3d(.05%,0,0);} 
  33%  {opacity:.84; transform:scale(.998) translate3d(0,.05%,0);} 
  42%  {opacity:.99; transform:scale(1.022) translate3d(0,-0.15%,0);} 
  51%  {opacity:.80; transform:scale(.992) translate3d(-.05%,0,0);} 
  60%  {opacity:.95; transform:scale(1.015) translate3d(0,0,0);} 
  69%  {opacity:.88; transform:scale(1.004) translate3d(.04%,0,0);} 
  78%  {opacity:1.00; transform:scale(1.023) translate3d(0,-0.18%,0);} 
  88%  {opacity:.85; transform:scale(.996) translate3d(0,0,0);} 
  100% {opacity:.82; transform:scale(1.000) translate3d(0,0,0);} 
}

@keyframes sohoStringGlintStronger{
  0%,71%,100%{
    opacity:.03;
    filter:brightness(1);
  }
  75%{
    opacity:.26;
    filter:brightness(1.08);
    background:
      radial-gradient(circle at 54.0% 35.8%, rgba(255,244,207,.95) 0 1px, rgba(255,223,145,.42) 2px, transparent 7px),
      radial-gradient(circle at 56.1% 35.5%, rgba(255,244,207,.38) 0 1px, rgba(255,223,145,.14) 2px, transparent 6px),
      radial-gradient(circle at 58.2% 35.1%, rgba(255,244,207,.78) 0 1px, rgba(255,223,145,.34) 2px, transparent 7px),
      radial-gradient(circle at 60.3% 34.7%, rgba(255,244,207,.28) 0 1px, transparent 6px),
      radial-gradient(circle at 62.4% 34.4%, rgba(255,244,207,.88) 0 1px, rgba(255,223,145,.38) 2px, transparent 7px),
      radial-gradient(circle at 64.5% 34.1%, rgba(255,244,207,.34) 0 1px, rgba(255,223,145,.12) 2px, transparent 6px),
      radial-gradient(circle at 66.6% 33.8%, rgba(255,244,207,.72) 0 1px, rgba(255,223,145,.30) 2px, transparent 7px),
      radial-gradient(circle at 68.7% 33.6%, rgba(255,244,207,.30) 0 1px, transparent 6px),
      radial-gradient(circle at 70.8% 33.3%, rgba(255,244,207,.82) 0 1px, rgba(255,223,145,.36) 2px, transparent 7px),
      radial-gradient(circle at 72.9% 33.1%, rgba(255,244,207,.36) 0 1px, rgba(255,223,145,.14) 2px, transparent 6px)!important;
  }
  79%{
    opacity:.14;
    filter:brightness(1.03);
  }
  83%{
    opacity:.06;
    filter:brightness(1.01);
  }
}

@media (prefers-reduced-motion: reduce){
  .soho-hero-with-header::before{
    animation:none!important;
    opacity:.82!important;
  }
  .soho-hero-with-header::after{
    animation:none!important;
    opacity:.05!important;
  }
}

@media (max-width:700px){
  .soho-hero-with-header::before{ opacity:.80!important; }
  .soho-hero-with-header::after{ opacity:.05!important; }
}


/* ================= SOHO v3.1.1 AMBIENT HERO RE-TUNE ================= */
/* Softer/slower candle flicker, aligned tighter to visible candle cluster.
   More obvious but still elegant string-light glints. */

/* Disable previous v3.1.0 full-hero ambience */
.soho-hero-with-header::before,
.soho-hero-with-header::after{
  content:none!important;
  animation:none!important;
}

/* New candle layer: placed tightly around actual visible candles on the bar */
.soho-hero-with-header .hero-content::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:
    radial-gradient(circle at 59.6% 70.0%, rgba(255,212,132,.34) 0 2px, rgba(255,184,88,.16) 3px 9px, transparent 16px),
    radial-gradient(circle at 63.0% 70.2%, rgba(255,216,138,.36) 0 3px, rgba(255,186,90,.17) 4px 10px, transparent 17px),
    radial-gradient(circle at 66.5% 69.2%, rgba(255,220,142,.42) 0 3px, rgba(255,190,93,.20) 4px 11px, transparent 18px),
    radial-gradient(circle at 69.0% 69.4%, rgba(255,221,145,.38) 0 3px, rgba(255,189,91,.18) 4px 10px, transparent 17px),
    radial-gradient(circle at 71.6% 69.4%, rgba(255,216,138,.34) 0 2px, rgba(255,186,90,.16) 3px 9px, transparent 16px)!important;
  opacity:.62!important;
  mix-blend-mode:screen!important;
  filter:blur(.15px)!important;
  animation:sohoCandleFlickerSoft 2.25s ease-in-out infinite!important;
}

/* New string-light layer: brighter, more readable glints every ~3.35 s */
.soho-hero-with-header .hero-content::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
  pointer-events:none!important;
  background:
    radial-gradient(circle at 45.0% 53.0%, rgba(255,241,196,0) 0 1px, transparent 5px),
    radial-gradient(circle at 47.2% 52.1%, rgba(255,241,196,0) 0 1px, transparent 5px),
    radial-gradient(circle at 49.5% 51.5%, rgba(255,241,196,0) 0 1px, transparent 5px),
    radial-gradient(circle at 51.7% 50.9%, rgba(255,241,196,0) 0 1px, transparent 5px),
    radial-gradient(circle at 54.0% 50.5%, rgba(255,241,196,0) 0 1px, transparent 5px),
    radial-gradient(circle at 56.2% 50.2%, rgba(255,241,196,0) 0 1px, transparent 5px)!important;
  opacity:.03!important;
  mix-blend-mode:screen!important;
  animation:sohoStringGlintVisible 3.35s ease-in-out infinite!important;
}

/* Keep real content above */
.soho-hero-with-header .hero-content > *{
  position:relative!important;
  z-index:3!important;
}

@keyframes sohoCandleFlickerSoft{
  0%   {opacity:.54; transform:scale(1);}
  12%  {opacity:.62; transform:scale(1.010);}
  25%  {opacity:.57; transform:scale(.998);}
  39%  {opacity:.68; transform:scale(1.014);}
  53%  {opacity:.59; transform:scale(1.002);}
  68%  {opacity:.65; transform:scale(1.009);}
  82%  {opacity:.56; transform:scale(.999);}
  100% {opacity:.54; transform:scale(1);}
}

@keyframes sohoStringGlintVisible{
  0%,70%,100%{
    opacity:.04;
    filter:brightness(1);
  }
  74%{
    opacity:.24;
    filter:brightness(1.06);
    background:
      radial-gradient(circle at 45.0% 53.0%, rgba(255,244,210,.78) 0 1px, rgba(255,226,148,.28) 2px, transparent 7px),
      radial-gradient(circle at 47.2% 52.1%, rgba(255,244,210,.30) 0 1px, transparent 6px),
      radial-gradient(circle at 49.5% 51.5%, rgba(255,244,210,.86) 0 1px, rgba(255,226,148,.34) 2px, transparent 7px),
      radial-gradient(circle at 51.7% 50.9%, rgba(255,244,210,.34) 0 1px, transparent 6px),
      radial-gradient(circle at 54.0% 50.5%, rgba(255,244,210,.82) 0 1px, rgba(255,226,148,.32) 2px, transparent 7px),
      radial-gradient(circle at 56.2% 50.2%, rgba(255,244,210,.28) 0 1px, transparent 6px)!important;
  }
  78%{
    opacity:.14;
    filter:brightness(1.03);
  }
  82%{
    opacity:.06;
    filter:brightness(1.01);
  }
}

/* Reduced motion */
@media (prefers-reduced-motion: reduce){
  .soho-hero-with-header .hero-content::before{
    animation:none!important;
    opacity:.58!important;
  }
  .soho-hero-with-header .hero-content::after{
    animation:none!important;
    opacity:.05!important;
  }
}


/* ================= SOHO v3.1.2 SPACING + FOOTER REPORT BADGE ================= */

/* 1) Less vertical whitespace between events -> about and about -> contact */
.soho-events-section{
  padding-top:38px!important;
  padding-bottom:18px!important;
}
.soho-section.soft{
  padding-top:18px!important;
  padding-bottom:18px!important;
}
.soho-contact-section{
  padding-top:28px!important;
}

/* 2) Footer inspection report badge: local asset, external target */
.soho-footer-brand{
  display:flex!important;
  flex-direction:column!important;
  align-items:flex-start!important;
}
.soho-footer-report-link{
  display:inline-flex!important;
  margin-top:18px!important;
  line-height:0!important;
  text-decoration:none!important;
  transition:transform .2s ease!important;
}
.soho-footer-report-link:hover,
.soho-footer-report-link:focus{
  transform:scale(1.03)!important;
}
.soho-footer-report-badge{
  display:block!important;
  width:126px!important;
  height:auto!important;
  border-radius:2px!important;
}

@media (max-width:700px){
  .soho-events-section{padding-bottom:14px!important;}
  .soho-section.soft{padding-top:14px!important;padding-bottom:14px!important;}
  .soho-contact-section{padding-top:22px!important;}
  .soho-footer-report-link{margin-top:14px!important;}
  .soho-footer-report-badge{width:118px!important;}
}


/* ================= SOHO v3.1.3 CLEAN BADGE + SUBTLE DEPTH ================= */

/* Remove the dark/black frame around the inspection report badge */
.soho-footer-report-link,
.soho-footer-report-link:hover,
.soho-footer-report-link:focus,
.soho-footer-report-link:active{
  border:0!important;
  outline:0!important;
  background:transparent!important;
  box-shadow:none!important;
  padding:0!important;
}
.soho-footer-report-badge{
  border:0!important;
  outline:0!important;
  box-shadow:0 4px 12px rgba(0,0,0,.12)!important;
}

/* Subtle depth on major visual elements */
.soho-feature-band,
.soho-card,
.soho-split img,
.soho-contact-wrap,
.soho-map,
.soho-book-card,
.soho-newsletter-form{
  box-shadow:0 7px 20px rgba(51,64,48,.07)!important;
}

/* Buttons: slightly stronger but still elegant */
.soho-btn,
.soho-form button,
.soho-newsletter-form button,
.soho-carousel-btn{
  box-shadow:0 4px 11px rgba(51,64,48,.12)!important;
}
.soho-btn:hover,
.soho-form button:hover,
.soho-newsletter-form button:hover,
.soho-carousel-btn:hover{
  box-shadow:0 7px 16px rgba(51,64,48,.16)!important;
}

/* Very restrained text shadow for headings / navigation / labels */
.soho-site h1,
.soho-site h2,
.soho-site h3,
.soho-site h4,
.soho-integrated-nav a,
.soho-eyebrow,
.soho-events-kicker,
.soho-events-main-title{
  text-shadow:0 1px 2px rgba(0,0,0,.09)!important;
}

/* Body copy gets only a microscopic softening, not a visible 'drop shadow' */
.soho-site p,
.soho-site li,
.soho-site label,
.soho-site .soho-arrow-link,
.soho-site .info-item,
.soho-footer a{
  text-shadow:0 .5px 1px rgba(0,0,0,.035)!important;
}

/* Keep form text crisp */
.soho-site input,
.soho-site textarea,
.soho-site select{
  text-shadow:none!important;
}


/* ================= SOHO v3.1.4 BADGE + CONTACT SHADOW FIX ================= */

/* Clean inspection badge: image itself has been cropped to remove dark screenshot background */
.soho-footer-report-link,
.soho-footer-report-link:hover,
.soho-footer-report-link:focus,
.soho-footer-report-link:active{
  background:transparent!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  padding:0!important;
}
.soho-footer-report-badge{
  display:block!important;
  width:126px!important;
  height:auto!important;
  border:0!important;
  outline:0!important;
  box-shadow:none!important;
  background:transparent!important;
}

/* Remove shadow around the entire contact section / contact wrapper only */
.soho-contact-section,
.soho-contact-wrap{
  box-shadow:none!important;
}

/* Keep subtle shadows on the actual inner contact elements */
.soho-map,
.soho-book-card,
.soho-form input,
.soho-form select,
.soho-form textarea,
.soho-form button{
  box-shadow:0 4px 12px rgba(51,64,48,.07)!important;
}


/* ================= SOHO v3.1.6 UNIFORM SECTION SPACING ================= */
/* Reference: the current visual gap between the green feature band and EVENTS & NYHEDER.
   Other section transitions now follow the same ~38px rhythm. */

/* Green feature band -> Events: keep reference spacing */
.soho-events-section{
  padding-top:38px!important;
}

/* Events -> Om os: 19 + 19 = 38px */
.soho-events-section{
  padding-bottom:19px!important;
}
.soho-section.soft{
  padding-top:19px!important;
}

/* Om os -> Kontakt: 19 + 19 = 38px */
.soho-section.soft{
  padding-bottom:19px!important;
}
.soho-contact-section{
  padding-top:19px!important;
}

/* Kontakt -> Footer: same 38px internal breathing room before footer */
.soho-contact-section{
  padding-bottom:38px!important;
}

@media (max-width:700px){
  /* Slightly tighter but still uniform on mobile */
  .soho-events-section{padding-top:28px!important;padding-bottom:14px!important;}
  .soho-section.soft{padding-top:14px!important;padding-bottom:14px!important;}
  .soho-contact-section{padding-top:14px!important;padding-bottom:28px!important;}
}


/* ================= SOHO v3.1.7 STRUCTURAL SECTION RHYTHM ================= */
/* Previous spacing patch targeted inner padding only.
   The visible gap is also affected by inherited min-heights / widget margins.
   Reset those here, then apply one shared section rhythm. */

:root{
  --soho-section-gap:38px;
}

/* Remove inherited widget-level vertical margins for these homepage blocks */
.elementor-widget-soho_events,
.elementor-widget-soho_content_split,
.elementor-widget-soho_contact{
  margin-top:0!important;
  margin-bottom:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
}

/* Remove inherited min-height that can create apparently 'empty' vertical space */
.soho-events-section,
.soho-section.soft,
.soho-contact-section,
.soho-split,
.soho-contact-wrap{
  min-height:0!important;
}

/* EVENTS: reference section. Keep top gap and reduce bottom to half shared gap */
.soho-events-section{
  padding-top:var(--soho-section-gap)!important;
  padding-bottom:calc(var(--soho-section-gap) / 2)!important;
  margin-top:0!important;
  margin-bottom:0!important;
}

/* ABOUT: half gap on each side, so neighboring visual sections total exactly 38px */
.soho-section.soft{
  padding-top:calc(var(--soho-section-gap) / 2)!important;
  padding-bottom:calc(var(--soho-section-gap) / 2)!important;
  margin-top:0!important;
  margin-bottom:0!important;
}

/* CONTACT: half gap above; same full breathing room below before footer */
.soho-contact-section{
  padding-top:calc(var(--soho-section-gap) / 2)!important;
  padding-bottom:var(--soho-section-gap)!important;
  margin-top:0!important;
  margin-bottom:0!important;
}

/* Kill any legacy section spacer pseudo-elements */
.soho-events-section::before,
.soho-events-section::after,
.soho-section.soft::before,
.soho-section.soft::after,
.soho-contact-section::before,
.soho-contact-section::after{
  margin:0!important;
}

/* Desktop: keep content itself compact; no artificial tall rows */
.soho-split{
  align-items:center!important;
}

/* Mobile keeps same rhythm, only slightly tighter */
@media (max-width:700px){
  :root{ --soho-section-gap:28px; }
}


/* ================= SOHO v3.1.8 TARGETED GAP FIX + HERO IMAGE ================= */
/* Keep the two checked gaps unchanged.
   Only make these match that same rhythm:
   - About -> Contact
   - Contact -> Footer
*/

:root{
  --soho-matched-gap: 36px;
}

/* Leave Events spacing and Events -> About spacing alone.
   Reduce About -> Contact by tightening About bottom + Contact top. */
.soho-section.soft{
  padding-bottom: 18px !important;
  margin-bottom: 0 !important;
}

.soho-contact-section{
  padding-top: 18px !important;
  margin-top: 0 !important;
}

/* Reduce Contact -> Footer so it visually matches the checked reference gap */
.soho-contact-section{
  padding-bottom: 18px !important;
}

.soho-footer{
  margin-top: 0 !important;
  padding-top: 18px !important;
}

/* Prevent widget-level margins from re-introducing extra air only on these lower transitions */
.elementor-widget-soho_content_split,
.elementor-widget-soho_contact,
.elementor-widget-soho_footer{
  margin-bottom: 0 !important;
  margin-top: 0 !important;
}

/* Mobile: same idea, just slightly tighter */
@media (max-width:700px){
  .soho-section.soft{ padding-bottom: 14px !important; }
  .soho-contact-section{ padding-top: 14px !important; padding-bottom: 14px !important; }
  .soho-footer{ padding-top: 14px !important; }
}


/* ================= SOHO v3.1.9 HERO IMAGE + TARGETED LOWER GAPS ================= */
/* Do NOT change:
   - Green boxes -> EVENTS
   - Events/cards -> About
   Make these match the same visual rhythm:
   - About -> Contact
   - Contact -> Footer
*/

/* About -> Contact = 19px + 19px = 38px total */
.elementor-widget-soho_content_split .soho-section.soft{
  padding-bottom:19px !important;
  margin-bottom:0 !important;
}
.elementor-widget-soho_contact .soho-contact-section{
  padding-top:19px !important;
  margin-top:0 !important;
}

/* Contact -> Footer = 19px + 19px = 38px total */
.elementor-widget-soho_contact .soho-contact-section{
  padding-bottom:19px !important;
  margin-bottom:0 !important;
}
.elementor-widget-soho_footer .soho-footer{
  margin-top:0 !important;
  padding-top:19px !important;
}

/* Remove any widget wrapper spacing that can add extra air between these lower sections */
.elementor-widget-soho_content_split,
.elementor-widget-soho_contact,
.elementor-widget-soho_footer{
  margin-top:0 !important;
  margin-bottom:0 !important;
}

@media (max-width:700px){
  .elementor-widget-soho_content_split .soho-section.soft{ padding-bottom:14px !important; }
  .elementor-widget-soho_contact .soho-contact-section{ padding-top:14px !important; padding-bottom:14px !important; }
  .elementor-widget-soho_footer .soho-footer{ padding-top:14px !important; }
}


/* ================= SOHO v3.2.0 OM OS + KONTAKT AIR ================= */
/* 1) Slightly more space under OM OS */
.elementor-widget-soho_content_split .soho-section.soft{
  padding-bottom: 28px !important;
}

/* 2) More breathing room from the top and bottom edge of the KONTAKT OS section */
.elementor-widget-soho_contact .soho-contact-section{
  padding-top: 24px !important;
  padding-bottom: 24px !important;
}

/* Add inner vertical air around the contact content without disturbing side alignment */
.elementor-widget-soho_contact .soho-contact-wrap{
  padding-top: 12px !important;
  padding-bottom: 12px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (max-width:700px){
  .elementor-widget-soho_content_split .soho-section.soft{
    padding-bottom: 20px !important;
  }
  .elementor-widget-soho_contact .soho-contact-section{
    padding-top: 18px !important;
    padding-bottom: 18px !important;
  }
  .elementor-widget-soho_contact .soho-contact-wrap{
    padding-top: 10px !important;
    padding-bottom: 10px !important;
  }
}


/* ================= SOHO v3.2.1 AIR TUNING ================= */
/* 1) About / OM OS: one third more bottom space than v3.2.0 (28px -> ~37px) */
.elementor-widget-soho_content_split .soho-section.soft{
  padding-bottom: 37px !important;
}

/* 2) Contact / KONTAKT OS: 50% more edge-to-content air than v3.2.0 */
.elementor-widget-soho_contact .soho-contact-section{
  padding-top: 36px !important;
  padding-bottom: 36px !important;
}
.elementor-widget-soho_contact .soho-contact-wrap{
  padding-top: 18px !important;
  padding-bottom: 18px !important;
  padding-left: 0 !important;
  padding-right: 0 !important;
}

@media (max-width:700px){
  .elementor-widget-soho_content_split .soho-section.soft{
    padding-bottom: 27px !important;
  }
  .elementor-widget-soho_contact .soho-contact-section{
    padding-top: 27px !important;
    padding-bottom: 27px !important;
  }
  .elementor-widget-soho_contact .soho-contact-wrap{
    padding-top: 15px !important;
    padding-bottom: 15px !important;
  }
}


/* ================= SOHO v3.2.2 FOOTER BRAND SPACING ================= */
/* Requested adjustments in first footer column only */

/* 75% less space between descriptive text and social icons */
.soho-footer-brand p{
  margin-bottom:4px !important;
}
.soho-footer-brand .soho-social{
  margin-top:0 !important;
}

/* Social icons at double size */
.soho-footer-brand .soho-social{
  display:flex !important;
  align-items:center !important;
  gap:16px !important;
}
.soho-footer-brand .soho-social a{
  width:32px !important;
  height:32px !important;
  display:inline-flex !important;
  align-items:center !important;
  justify-content:center !important;
}
.soho-footer-brand .soho-social svg{
  width:28px !important;
  height:28px !important;
}

/* 25% less space between social icons and control-report badge */
.soho-footer-report-link{
  margin-top:13.5px !important;
}

@media (max-width:700px){
  .soho-footer-brand p{ margin-bottom:4px !important; }
  .soho-footer-brand .soho-social{ gap:14px !important; }
  .soho-footer-brand .soho-social a{ width:30px !important; height:30px !important; }
  .soho-footer-brand .soho-social svg{ width:26px !important; height:26px !important; }
  .soho-footer-report-link{ margin-top:10.5px !important; }
}


/* ================= SOHO v3.3.0 FULL MENU PAGE ================= */

.soho-page-header-actions{display:flex;gap:10px;align-items:center}
.soho-page-header-actions .soho-btn{width:132px;min-width:132px;height:46px}
.soho-page-takeaway{background:#334030!important;border-color:#334030!important;color:#fff!important}

.soho-full-menu-page{background:#fff;min-height:100vh}
.soho-menu-page-intro{
  padding:76px 0 42px;
  background:
    radial-gradient(circle at 82% 14%,rgba(184,139,63,.09),transparent 24%),
    linear-gradient(180deg,#fff,#fbfaf7);
  border-bottom:1px solid var(--soho-metal-gold-mid)
}
.soho-menu-page-intro h1{
  font-family:Georgia,"Times New Roman",serif;
  font-weight:400;
  font-size:58px;
  line-height:1;
  margin:8px 0 14px;
  color:#20221f
}
.soho-menu-page-intro p{max-width:650px;font-size:16px;color:#626760;margin:0}
.soho-menu-jump{
  position:sticky;top:0;z-index:30;
  background:#334030;
  box-shadow:0 7px 22px rgba(51,64,48,.09)
}
.soho-menu-jump .soho-shell{display:flex;justify-content:center;gap:10px;padding-top:10px;padding-bottom:10px}
.soho-menu-jump a{
  color:#fff!important;font-weight:700;font-size:12px;letter-spacing:.06em;
  padding:11px 20px;border:1px solid rgba(255,255,255,.15);border-radius:999px;
  transition:transform .18s ease,background .18s ease
}
.soho-menu-jump a:hover{transform:scale(1.045);background:rgba(255,255,255,.08)}

.soho-menu-accordions{padding-top:42px!important;padding-bottom:58px!important}
.soho-menu-accordion{
  border:1px solid var(--soho-metal-gold-mid);border-radius:14px;background:#fff;
  margin:0 0 18px;overflow:hidden;
  box-shadow:0 8px 24px rgba(51,64,48,.055)
}
.soho-menu-accordion>summary{
  list-style:none;cursor:pointer;display:grid;grid-template-columns:50px 1fr 34px;align-items:center;
  min-height:82px;padding:0 28px;background:#fff;color:#334030
}
.soho-menu-accordion>summary::-webkit-details-marker,
.soho-menu-subaccordion>summary::-webkit-details-marker{display:none}
.soho-menu-accordion>summary span{font-size:11px;color:#b88b3f;font-weight:700;letter-spacing:.08em}
.soho-menu-accordion>summary strong{
  font-family:Georgia,"Times New Roman",serif;font-size:27px;font-weight:400;letter-spacing:.02em
}
.soho-menu-accordion>summary i,
.soho-menu-subaccordion>summary i{
  width:24px;height:24px;position:relative;justify-self:end
}
.soho-menu-accordion>summary i:before,
.soho-menu-accordion>summary i:after,
.soho-menu-subaccordion>summary i:before,
.soho-menu-subaccordion>summary i:after{
  content:"";position:absolute;left:50%;top:50%;background:#b88b3f;transform:translate(-50%,-50%)
}
.soho-menu-accordion>summary i:before,
.soho-menu-subaccordion>summary i:before{width:14px;height:1.5px}
.soho-menu-accordion>summary i:after,
.soho-menu-subaccordion>summary i:after{width:1.5px;height:14px;transition:opacity .18s ease}
.soho-menu-accordion[open]>summary i:after,
.soho-menu-subaccordion[open]>summary i:after{opacity:0}
.soho-menu-accordion[open]>summary{background:#f7f6f1}
.soho-menu-panel{padding:8px 34px 36px;border-top:1px solid var(--soho-metal-gold-mid)}
.soho-menu-panel>h3,
.soho-menu-subaccordion>div>h3,
.soho-drink-group h3{
  color:#334030;font-size:13px;font-family:Inter,Arial,sans-serif;font-weight:800;
  letter-spacing:.08em;margin:28px 0 10px;text-transform:uppercase
}
.soho-menu-panel h3 small{font-weight:500;color:#7b7d77;letter-spacing:0;margin-left:8px}
.soho-menu-lead{color:#5e625c;font-size:14px;line-height:1.65;margin:0 0 14px}
.soho-menu-entry{
  display:grid;grid-template-columns:minmax(0,1fr) auto;gap:28px;align-items:start;
  padding:13px 0;border-bottom:1px solid var(--soho-metal-gold-mid)
}
.soho-menu-entry strong{display:block;font-size:14px;color:#334030;font-weight:700}
.soho-menu-entry span{display:block;font-size:12px;color:#777b75;margin-top:3px;line-height:1.5}
.soho-menu-price{font-size:13px;color:#334030;white-space:nowrap;font-weight:700}
.soho-menu-subdivider{height:1px;background:#dcd8cd;margin:30px 0 4px}
.soho-menu-note{
  margin:22px 0 0;padding:14px 16px;border-left:3px solid #b88b3f;background:#faf8f2;
  color:#676b65;font-size:12px;line-height:1.55
}
.soho-menu-panel-nested{padding:18px 26px 30px}
.soho-menu-subaccordion{
  border-bottom:1px solid var(--soho-metal-gold-mid);background:#fff
}
.soho-menu-subaccordion:last-child{border-bottom:0}
.soho-menu-subaccordion>summary{
  list-style:none;cursor:pointer;display:grid;grid-template-columns:1fr 28px;align-items:center;
  padding:18px 8px;font-weight:800;font-size:12px;letter-spacing:.08em;color:#334030
}
.soho-menu-subaccordion>div{padding:0 8px 24px}

.soho-menu-table-head,.soho-menu-table-row{
  display:grid;grid-template-columns:minmax(0,1fr) 72px 72px;gap:12px;align-items:start
}
.soho-menu-table-head{
  padding:9px 0;border-bottom:2px solid #334030;color:#334030;font-size:10px;font-weight:800;text-transform:uppercase
}
.soho-menu-table-head span:nth-child(n+2){text-align:right}
.soho-menu-table h4{
  margin:24px 0 4px;padding:7px 10px;background:#f2f1eb;color:#334030;border-radius:5px;
  font-size:10px;font-weight:800;letter-spacing:.08em
}
.soho-menu-table-row{padding:10px 8px;border-bottom:1px solid var(--soho-metal-gold-mid)}
.soho-menu-table-row strong{font-size:13px}
.soho-menu-table-row small{display:block;color:#7a7d77;font-size:11px;margin-top:2px}
.soho-menu-table-row>b{text-align:right;font-size:12px;color:#334030}
.soho-drink-group{break-inside:avoid}
.soho-menu-page-cta{background:#334030;color:#fff;padding:38px 0}
.soho-menu-page-cta .soho-shell{display:flex;align-items:center;justify-content:space-between;gap:30px}
.soho-menu-page-cta h2{margin:3px 0 0;color:#fff;font-size:30px}
.soho-menu-page-cta .soho-btn{box-shadow:0 5px 16px rgba(0,0,0,.16)}

@media (max-width:900px){
  .soho-menu-page-intro{padding:54px 0 34px}
  .soho-menu-page-intro h1{font-size:46px}
  .soho-menu-jump .soho-shell{overflow-x:auto;justify-content:flex-start}
  .soho-menu-jump a{white-space:nowrap}
  .soho-menu-accordion>summary{padding:0 20px;grid-template-columns:38px 1fr 30px}
  .soho-menu-accordion>summary strong{font-size:23px}
  .soho-menu-panel{padding:8px 24px 30px}
  .soho-page-header-actions .soho-btn{width:114px;min-width:114px;font-size:10px}
}
@media (max-width:700px){
  .soho-menu-page-intro{padding:38px 0 26px}
  .soho-menu-page-intro h1{font-size:38px}
  .soho-menu-page-intro p{font-size:14px}
  .soho-menu-accordions{padding-top:26px!important;padding-bottom:38px!important}
  .soho-menu-accordion>summary{min-height:68px;padding:0 15px;grid-template-columns:30px 1fr 28px}
  .soho-menu-accordion>summary strong{font-size:20px}
  .soho-menu-panel{padding:4px 18px 25px}
  .soho-menu-panel-nested{padding:10px 14px 24px}
  .soho-menu-entry{gap:14px;padding:11px 0}
  .soho-menu-table-head,.soho-menu-table-row{grid-template-columns:minmax(0,1fr) 52px 52px;gap:8px}
  .soho-menu-page-cta .soho-shell{align-items:flex-start;flex-direction:column}
  .soho-page-header-actions{display:none}
}


/* ================= SOHO v3.3.1 SAME HEADER + GLOBAL CONTACT ================= */

/* Non-HERO pages: same layout geometry as the homepage integrated header,
   but on a solid dark green surface so navigation remains readable. */
.soho-standalone-header{
  width:100%!important;
  height:100px!important;
  background:#334030!important;
  color:#fff!important;
  position:relative!important;
  z-index:40!important;
}
.soho-standalone-header .soho-integrated-header-inner{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  height:100px!important;
  margin:0 auto!important;
  padding:0!important;
  display:flex!important;
  align-items:center!important;
}
.soho-standalone-header .soho-integrated-logo{
  width:128px!important;
}
.soho-standalone-header .soho-integrated-nav{
  margin-left:auto!important;
  margin-right:30px!important;
  gap:30px!important;
  display:flex!important;
  align-items:center!important;
}
.soho-standalone-header .soho-integrated-nav a,
.soho-standalone-header .soho-integrated-nav a:visited,
.soho-standalone-header .soho-integrated-nav a:hover,
.soho-standalone-header .soho-integrated-nav a:focus{
  color:#fff!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:.04em!important;
}
.soho-standalone-header .soho-header-actions{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
}
.soho-standalone-header .soho-header-action{
  width:132px!important;
  min-width:132px!important;
  max-width:132px!important;
  height:46px!important;
  min-height:46px!important;
  padding:0 14px!important;
  font-size:13px!important;
  font-weight:700!important;
}
.soho-standalone-header .soho-takeaway-button{
  background:#334030!important;
  border-color:#334030!important;
  color:#fff!important;
}
.soho-standalone-header .soho-integrated-book{
  color:#fff!important;
}
.soho-standalone-header .soho-integrated-menu-toggle{
  display:none!important;
}

/* Contact block is now a permanent pre-footer component on pages without a dedicated contact widget */
.soho-global-contact-section{
  display:block;
  background:linear-gradient(135deg,#f7f5ef,#eef0ea)!important;
  padding-top:36px!important;
  padding-bottom:36px!important;
}
.soho-global-contact-section .soho-contact-wrap{
  padding-top:18px!important;
  padding-bottom:18px!important;
}

/* Modern-browser duplicate protection before JS runs */
body:has(.elementor-widget-soho_contact .soho-contact-section:not(.soho-global-contact-section)) .soho-global-contact-section{
  display:none!important;
}

@media (min-width:701px) and (max-width:1100px){
  .soho-standalone-header .soho-integrated-nav{gap:18px!important;margin-right:14px!important;}
  .soho-standalone-header .soho-integrated-nav a{font-size:12px!important;}
  .soho-standalone-header .soho-header-action{
    width:122px!important;min-width:122px!important;max-width:122px!important;
    height:44px!important;min-height:44px!important;font-size:12px!important;
  }
}
@media (max-width:700px){
  .soho-standalone-header{height:76px!important;}
  .soho-standalone-header .soho-integrated-header-inner{height:76px!important;}
  .soho-standalone-header .soho-integrated-logo{width:116px!important;}
  .soho-standalone-header .soho-integrated-nav,
  .soho-standalone-header .soho-header-actions{display:none!important;}
  .soho-standalone-header .soho-integrated-menu-toggle{
    display:flex!important;margin-left:auto!important;color:#fff!important;
  }
}


/* ================= SOHO v3.3.2 TRUE FULL-WIDTH MENU PAGE ================= */

/* Remove Elementor/theme boxing from the menu page itself */
body.soho-menu-page-body,
body.soho-menu-page-body #page,
body.soho-menu-page-body .site,
body.soho-menu-page-body #content,
body.soho-menu-page-body .site-content,
body.soho-menu-page-body .content-area,
body.soho-menu-page-body .site-main,
body.soho-menu-page-body .entry-content,
body.soho-menu-page-body .page-content,
body.soho-menu-page-body .elementor,
body.soho-menu-page-body .elementor > .e-con,
body.soho-menu-page-body .elementor > .e-con > .e-con-inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* Top-level SOHO widgets must span the viewport */
body.soho-menu-page-body .elementor-widget-soho_header,
body.soho-menu-page-body .elementor-widget-soho_full_menu,
body.soho-menu-page-body .elementor-widget-soho_footer,
body.soho-menu-page-body .elementor-widget-soho_header > .elementor-widget-container,
body.soho-menu-page-body .elementor-widget-soho_full_menu > .elementor-widget-container,
body.soho-menu-page-body .elementor-widget-soho_footer > .elementor-widget-container{
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  padding:0!important;
}

/* Their internal SOHO wrappers should not add another breakout */
body.soho-menu-page-body .elementor-widget-soho_header .soho-site,
body.soho-menu-page-body .elementor-widget-soho_full_menu .soho-site,
body.soho-menu-page-body .elementor-widget-soho_footer .soho-site{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

/* Header background: browser edge to browser edge */
body.soho-menu-page-body .soho-standalone-header{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
}

/* Header contents: exactly the same shared alignment as homepage */
body.soho-menu-page-body .soho-standalone-header .soho-integrated-header-inner{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* Menu page sections use same left/right edges as homepage */
body.soho-menu-page-body .soho-menu-page-intro .soho-shell,
body.soho-menu-page-body .soho-menu-jump .soho-shell,
body.soho-menu-page-body .soho-menu-accordions,
body.soho-menu-page-body .soho-menu-page-cta .soho-shell,
body.soho-menu-page-body .soho-global-contact-section .soho-shell,
body.soho-menu-page-body .soho-footer .soho-shell{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* Green menu selector bar is full browser width */
body.soho-menu-page-body .soho-menu-jump{
  width:100%!important;
  max-width:none!important;
  margin-left:0!important;
  margin-right:0!important;
}

@media (max-width:900px){
  body.soho-menu-page-body .soho-standalone-header .soho-integrated-header-inner,
  body.soho-menu-page-body .soho-menu-page-intro .soho-shell,
  body.soho-menu-page-body .soho-menu-jump .soho-shell,
  body.soho-menu-page-body .soho-menu-accordions,
  body.soho-menu-page-body .soho-menu-page-cta .soho-shell,
  body.soho-menu-page-body .soho-global-contact-section .soho-shell,
  body.soho-menu-page-body .soho-footer .soho-shell{
    width:calc(100% - 48px)!important;
  }
}

@media (max-width:700px){
  body.soho-menu-page-body .soho-standalone-header .soho-integrated-header-inner,
  body.soho-menu-page-body .soho-menu-page-intro .soho-shell,
  body.soho-menu-page-body .soho-menu-jump .soho-shell,
  body.soho-menu-page-body .soho-menu-accordions,
  body.soho-menu-page-body .soho-menu-page-cta .soho-shell,
  body.soho-menu-page-body .soho-global-contact-section .soho-shell,
  body.soho-menu-page-body .soho-footer .soho-shell{
    width:calc(100% - 36px)!important;
  }
}


/* ================= SOHO v3.3.3 HEADER TOP AIR ================= */
/* Tiny vertical adjustment only: menu-page header content sits a touch lower,
   matching the breathing room seen on the homepage. */
body.soho-menu-page-body .soho-standalone-header{
  height:108px!important;
}
body.soho-menu-page-body .soho-standalone-header .soho-integrated-header-inner{
  height:108px!important;
  min-height:108px!important;
  padding-top:8px!important;
  padding-bottom:0!important;
}

@media (max-width:700px){
  body.soho-menu-page-body .soho-standalone-header{
    height:80px!important;
  }
  body.soho-menu-page-body .soho-standalone-header .soho-integrated-header-inner{
    height:80px!important;
    min-height:80px!important;
    padding-top:4px!important;
  }
}


/* ================= SOHO v3.3.4 MENU MOCKUP MATCH ================= */
/* Visual reference: approved MENU mock-up.
   Header geometry from v3.3.3 is intentionally preserved. */

body.soho-menu-page-body .soho-full-menu-page{
  background:#fff!important;
}

/* Intro block: same generous editorial air as mock-up */
body.soho-menu-page-body .soho-menu-page-intro{
  background:#fff!important;
  border-bottom:0!important;
  padding-top:82px!important;
  padding-bottom:46px!important;
}
body.soho-menu-page-body .soho-menu-page-intro .soho-shell{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
}
body.soho-menu-page-body .soho-menu-page-intro .soho-eyebrow{
  margin:0 0 13px!important;
  color:var(--soho-brass)!important;
  font-size:13px!important;
  font-weight:700!important;
  letter-spacing:.07em!important;
}
body.soho-menu-page-body .soho-menu-page-intro h1{
  margin:0 0 18px!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:58px!important;
  line-height:.98!important;
  font-weight:400!important;
  letter-spacing:.005em!important;
  color:#20221f!important;
}
body.soho-menu-page-body .soho-menu-page-intro p{
  margin:0!important;
  max-width:760px!important;
  font-size:16px!important;
  line-height:1.55!important;
  color:#585e57!important;
}

/* Full-width dark-green selector band, controls aligned to page width */
body.soho-menu-page-body .soho-menu-jump{
  position:sticky!important;
  top:0!important;
  z-index:30!important;
  width:100%!important;
  background:#334030!important;
  box-shadow:0 8px 22px rgba(51,64,48,.08)!important;
  border:0!important;
}
body.soho-menu-page-body .soho-menu-jump .soho-shell{
  min-height:68px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:12px!important;
  padding-top:10px!important;
  padding-bottom:10px!important;
}
body.soho-menu-page-body .soho-menu-jump a{
  min-width:136px!important;
  height:46px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  padding:0 22px!important;
  color:#fff!important;
  background:transparent!important;
  border:1px solid rgba(255,255,255,.20)!important;
  border-radius:999px!important;
  font-size:12px!important;
  line-height:1!important;
  font-weight:700!important;
  letter-spacing:.025em!important;
  box-shadow:none!important;
}
body.soho-menu-page-body .soho-menu-jump a:hover{
  color:#fff!important;
  background:rgba(255,255,255,.06)!important;
  transform:scale(1.045)!important;
}

/* Accordion column is slightly narrower than intro / selector band, as in mock-up */
body.soho-menu-page-body .soho-menu-accordions{
  width:calc(100% - (var(--soho-layout-gutter) * 2) - 84px)!important;
  max-width:calc(var(--soho-layout-max) - 84px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-top:44px!important;
  padding-bottom:64px!important;
}

body.soho-menu-page-body .soho-menu-accordion{
  margin:0 0 20px!important;
  overflow:hidden!important;
  background:#fff!important;
  border:1px solid var(--soho-metal-gold-mid)!important;
  border-radius:14px!important;
  box-shadow:0 7px 22px rgba(51,64,48,.045)!important;
}
body.soho-menu-page-body .soho-menu-accordion > summary{
  min-height:86px!important;
  padding:0 30px!important;
  grid-template-columns:52px 1fr 32px!important;
  background:#f8f8f3!important;
  border:0!important;
}
body.soho-menu-page-body .soho-menu-accordion[open] > summary{
  background:#f8f8f3!important;
}
body.soho-menu-page-body .soho-menu-accordion > summary span{
  color:var(--soho-brass)!important;
  font-size:12px!important;
  font-weight:700!important;
  letter-spacing:.08em!important;
}
body.soho-menu-page-body .soho-menu-accordion > summary strong{
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:28px!important;
  line-height:1!important;
  font-weight:400!important;
  letter-spacing:.015em!important;
  color:#334030!important;
}
body.soho-menu-page-body .soho-menu-accordion > summary i:before,
body.soho-menu-page-body .soho-menu-accordion > summary i:after{
  background:#b89a27!important;
}

/* Content area */
body.soho-menu-page-body .soho-menu-panel{
  padding:20px 38px 38px!important;
  border-top:1px solid var(--soho-metal-gold-mid)!important;
}
body.soho-menu-page-body .soho-menu-panel > h3,
body.soho-menu-page-body .soho-menu-subaccordion > div > h3,
body.soho-menu-page-body .soho-drink-group h3{
  margin-top:20px!important;
  margin-bottom:14px!important;
  color:#334030!important;
  font-size:13px!important;
  line-height:1.2!important;
  font-weight:800!important;
  letter-spacing:.065em!important;
}
body.soho-menu-page-body .soho-menu-lead{
  margin:0 0 22px!important;
  font-size:14px!important;
  line-height:1.6!important;
  color:#555b55!important;
}
body.soho-menu-page-body .soho-menu-lead strong{
  color:#353a35!important;
  font-size:14px!important;
}

body.soho-menu-page-body .soho-menu-entry{
  min-height:66px!important;
  padding:14px 0!important;
  grid-template-columns:minmax(0,1fr) 92px!important;
  gap:26px!important;
  align-items:center!important;
  border-bottom:1px solid var(--soho-metal-gold-mid)!important;
}
body.soho-menu-page-body .soho-menu-entry strong{
  color:#334030!important;
  font-size:14px!important;
  line-height:1.35!important;
  font-weight:700!important;
}
body.soho-menu-page-body .soho-menu-entry span{
  margin-top:4px!important;
  color:#777c76!important;
  font-size:12px!important;
  line-height:1.45!important;
}
body.soho-menu-page-body .soho-menu-price{
  color:#334030!important;
  text-align:right!important;
  font-size:13px!important;
  font-weight:700!important;
  white-space:nowrap!important;
}

/* Nested evening sections */
body.soho-menu-page-body .soho-menu-panel-nested{
  padding:14px 30px 30px!important;
}
body.soho-menu-page-body .soho-menu-subaccordion{
  border-bottom:1px solid var(--soho-metal-gold-mid)!important;
}
body.soho-menu-page-body .soho-menu-subaccordion > summary{
  min-height:58px!important;
  padding:0 10px!important;
  font-size:12px!important;
  color:#334030!important;
  letter-spacing:.07em!important;
}
body.soho-menu-page-body .soho-menu-subaccordion > div{
  padding:0 10px 28px!important;
}

/* Wine table aligns with the same clean editorial rhythm */
body.soho-menu-page-body .soho-menu-table-head{
  padding:10px 4px!important;
}
body.soho-menu-page-body .soho-menu-table-row{
  min-height:58px!important;
  padding:11px 4px!important;
}
body.soho-menu-page-body .soho-menu-table h4{
  margin-top:25px!important;
  margin-bottom:3px!important;
  background:#f4f3ee!important;
}

/* Reservation block keeps same page edges */
body.soho-menu-page-body .soho-menu-page-cta{
  padding:38px 0!important;
  background:#334030!important;
}
body.soho-menu-page-body .soho-menu-page-cta .soho-shell{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
}

/* Tablet */
@media (max-width:1000px){
  body.soho-menu-page-body .soho-menu-page-intro{
    padding-top:60px!important;
    padding-bottom:38px!important;
  }
  body.soho-menu-page-body .soho-menu-page-intro h1{
    font-size:50px!important;
  }
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 80px)!important;
    max-width:none!important;
  }
}

/* Mobile */
@media (max-width:700px){
  body.soho-menu-page-body .soho-menu-page-intro{
    padding-top:38px!important;
    padding-bottom:28px!important;
  }
  body.soho-menu-page-body .soho-menu-page-intro h1{
    font-size:38px!important;
  }
  body.soho-menu-page-body .soho-menu-jump .soho-shell{
    justify-content:flex-start!important;
    overflow-x:auto!important;
    min-height:62px!important;
  }
  body.soho-menu-page-body .soho-menu-jump a{
    min-width:125px!important;
    height:42px!important;
  }
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 36px)!important;
    padding-top:28px!important;
    padding-bottom:42px!important;
  }
  body.soho-menu-page-body .soho-menu-accordion > summary{
    min-height:72px!important;
    padding:0 18px!important;
    grid-template-columns:36px 1fr 28px!important;
  }
  body.soho-menu-page-body .soho-menu-accordion > summary strong{
    font-size:21px!important;
  }
  body.soho-menu-page-body .soho-menu-panel{
    padding:14px 20px 28px!important;
  }
  body.soho-menu-page-body .soho-menu-entry{
    grid-template-columns:minmax(0,1fr) 70px!important;
    min-height:60px!important;
    gap:14px!important;
  }
}


/* ================= SOHO v3.3.5 EXACT MENU MOCKUP WIDTHS ================= */
/*
  v3.3.4 still inherited homepage width variables, so at wide resolutions
  the menu intro / selector / accordion became much wider than the approved mock-up.
  These dimensions are now explicit and independent from homepage containers.
*/

/* Main editorial width shown in the mock-up */
body.soho-menu-page-body .soho-menu-page-intro .soho-shell{
  width:calc(100% - 80px)!important;
  max-width:1216px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* Green category bar in the mock-up is NOT viewport width.
   It aligns exactly with the 1216px menu intro. */
body.soho-menu-page-body .soho-menu-jump{
  width:calc(100% - 80px)!important;
  max-width:1216px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.soho-menu-page-body .soho-menu-jump .soho-shell{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* Accordion is deliberately inset compared with intro / green bar */
body.soho-menu-page-body .soho-menu-accordions{
  width:calc(100% - 144px)!important;
  max-width:1128px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Match the mock-up's first accordion top spacing */
body.soho-menu-page-body .soho-menu-accordions{
  padding-top:44px!important;
}

/* Keep intro copy on same left edge as selector */
body.soho-menu-page-body .soho-menu-page-intro{
  padding-top:78px!important;
  padding-bottom:46px!important;
}

/* CTA / global contact / footer stay aligned to the normal site grid,
   not the narrower accordion grid. */
body.soho-menu-page-body .soho-menu-page-cta .soho-shell,
body.soho-menu-page-body .soho-global-contact-section .soho-shell,
body.soho-menu-page-body .soho-footer .soho-shell{
  width:calc(100% - 80px)!important;
  max-width:1280px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Tablet: preserve the proportional inset without forcing fixed desktop widths */
@media (max-width:1300px){
  body.soho-menu-page-body .soho-menu-page-intro .soho-shell,
  body.soho-menu-page-body .soho-menu-jump{
    width:calc(100% - 64px)!important;
    max-width:none!important;
  }
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 112px)!important;
    max-width:none!important;
  }
}

@media (max-width:900px){
  body.soho-menu-page-body .soho-menu-page-intro .soho-shell,
  body.soho-menu-page-body .soho-menu-jump{
    width:calc(100% - 48px)!important;
  }
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 64px)!important;
  }
}

@media (max-width:700px){
  body.soho-menu-page-body .soho-menu-page-intro .soho-shell,
  body.soho-menu-page-body .soho-menu-jump,
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 36px)!important;
  }
  body.soho-menu-page-body .soho-menu-page-intro{
    padding-top:38px!important;
    padding-bottom:28px!important;
  }
}


/* ================= SOHO v3.3.6 MENU HERO MOCKUP ================= */
/* Approved direction: keep the current full-width site header geometry,
   but replace the old plain editorial intro with the green split hero from the mockup.
   Accordion menu remains centered on white below. */

body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout{
  background:#fff!important;
  border:0!important;
  padding-top:42px!important;
  padding-bottom:0!important;
}
body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout .soho-shell{
  width:calc(100% - 80px)!important;
  max-width:1280px!important;
}
body.soho-menu-page-body .soho-menu-top-card{
  min-height:350px;
  display:grid;
  grid-template-columns:minmax(320px, 37%) minmax(0,63%);
  align-items:stretch;
  overflow:hidden;
  border-radius:0;
  background:#334030;
  box-shadow:0 14px 36px rgba(51,64,48,.10);
}
body.soho-menu-page-body .soho-menu-top-card-copy{
  position:relative;
  z-index:2;
  padding:54px 42px 46px;
  display:flex;
  flex-direction:column;
  justify-content:center;
  background:
    linear-gradient(90deg, rgba(51,64,48,.94) 0%, rgba(51,64,48,.90) 62%, rgba(51,64,48,.50) 84%, rgba(51,64,48,0) 100%);
}
body.soho-menu-page-body .soho-menu-top-card-copy .soho-eyebrow{
  margin:0 0 14px!important;
  color:#b89a27!important;
  font-size:12px!important;
  letter-spacing:.08em!important;
  font-weight:700!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy h1{
  margin:0 0 14px!important;
  color:#fff!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-weight:400!important;
  font-size:58px!important;
  line-height:.98!important;
  letter-spacing:.01em!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy p{
  margin:0!important;
  max-width:360px!important;
  color:rgba(255,255,255,.92)!important;
  font-size:16px!important;
  line-height:1.7!important;
}
body.soho-menu-page-body .soho-menu-top-card-media{
  position:relative;
  overflow:hidden;
  min-height:350px;
}
body.soho-menu-page-body .soho-menu-top-card-media:after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(270deg, rgba(0,0,0,.10) 0%, rgba(0,0,0,.16) 28%, rgba(0,0,0,.0) 58%);
  pointer-events:none;
}
body.soho-menu-page-body .soho-menu-top-card-media img{
  width:100%;
  height:100%;
  display:block;
  object-fit:cover;
  object-position:center center;
}

/* White tab row directly below hero */
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs{
  position:relative!important;
  top:auto!important;
  z-index:5!important;
  width:calc(100% - 80px)!important;
  max-width:1280px!important;
  margin:0 auto!important;
  background:#fff!important;
  border-bottom:1px solid var(--soho-metal-gold-mid)!important;
  box-shadow:none!important;
}
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs .soho-shell{
  min-height:62px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  gap:0!important;
  padding:0 22px!important;
}
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a{
  position:relative;
  min-width:0!important;
  height:62px!important;
  padding:0 30px!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  color:#30342f!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:11px!important;
  font-weight:700!important;
  letter-spacing:.08em!important;
  text-transform:uppercase!important;
}
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:after{
  content:"";
  position:absolute;
  left:30px;
  right:30px;
  bottom:0;
  height:2px;
  background:transparent;
  transition:background .2s ease, transform .2s ease;
}
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:focus,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a.is-active{
  color:#8f7620!important;
  transform:none!important;
}
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover:after,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:focus:after,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a.is-active:after{
  background:#b89a27!important;
}

/* Accordion centered beneath the white tab row */
body.soho-menu-page-body .soho-menu-accordions{
  width:calc(100% - 160px)!important;
  max-width:1128px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-top:44px!important;
  padding-bottom:64px!important;
}

@media (max-width:1100px){
  body.soho-menu-page-body .soho-menu-top-card{
    grid-template-columns:minmax(280px, 42%) minmax(0,58%);
    min-height:320px;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding:42px 32px 40px;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy h1{
    font-size:48px!important;
  }
}

@media (max-width:900px){
  body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout .soho-shell,
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs{
    width:calc(100% - 48px)!important;
    max-width:none!important;
  }
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 64px)!important;
    max-width:none!important;
  }
  body.soho-menu-page-body .soho-menu-top-card{
    grid-template-columns:1fr;
    min-height:auto;
  }
  body.soho-menu-page-body .soho-menu-top-card-media{
    order:2;
    min-height:240px;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy{
    order:1;
  }
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs .soho-shell{
    overflow-x:auto!important;
    justify-content:flex-start!important;
    padding:0 12px!important;
  }
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a{
    flex:0 0 auto;
    padding:0 20px!important;
  }
}

@media (max-width:700px){
  body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout .soho-shell,
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs,
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 36px)!important;
  }
  body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout{
    padding-top:22px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding:28px 22px 26px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy h1{
    font-size:40px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy p{
    font-size:14px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-media{
    min-height:210px!important;
  }
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs .soho-shell{
    min-height:56px!important;
  }
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a{
    height:56px!important;
    padding:0 16px!important;
    font-size:10px!important;
  }
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:after{
    left:16px;
    right:16px;
  }
}


/* ================= SOHO v3.4.0 GLOBAL HEADER / FOOTER ARCHITECTURE ================= */

/* Old copied Elementor widgets are no longer part of the site chrome. */
.elementor-widget-soho_header,
.elementor-widget-soho_footer,
.elementor-widget-soho_contact{
  display:none!important;
}

/* Theme/Elementor Theme Builder header/footer remain disabled;
   SOHO plugin now renders one global instance itself. */
.elementor-location-header,
header.elementor-location-header,
.elementor-location-footer{
  display:none!important;
}

/* ----- GLOBAL HEADER ----- */
.soho-global-header-wrap{
  position:absolute!important;
  left:0!important;
  top:0!important;
  width:100%!important;
  height:0!important;
  z-index:9990!important;
  background:transparent!important;
  pointer-events:none!important;
}

.soho-global-header{
  position:absolute!important;
  left:0!important;
  right:0!important;
  top:0!important;
  height:100px!important;
  z-index:9991!important;
  background:transparent!important;
  border:0!important;
  box-shadow:none!important;
  pointer-events:auto!important;
}

.soho-global-header .soho-integrated-header-inner{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  height:100px!important;
  min-height:100px!important;
  margin:0 auto!important;
  padding:8px 0 0!important;
  display:flex!important;
  align-items:center!important;
}

.soho-global-header .soho-integrated-logo{
  width:128px!important;
}

.soho-global-header .soho-integrated-nav{
  margin-left:auto!important;
  margin-right:30px!important;
  gap:30px!important;
  display:flex!important;
  align-items:center!important;
}

.soho-global-header .soho-integrated-nav a,
.soho-global-header .soho-integrated-nav a:visited,
.soho-global-header .soho-integrated-nav a:hover,
.soho-global-header .soho-integrated-nav a:focus{
  color:#fff!important;
  font-size:13px!important;
  font-weight:700!important;
  line-height:1!important;
  letter-spacing:.04em!important;
}

.soho-global-header .soho-integrated-nav a:hover{
  transform:scale(1.12)!important;
}

.soho-global-header .soho-header-actions{
  display:flex!important;
  align-items:center!important;
  gap:10px!important;
}

.soho-global-header .soho-header-action{
  width:132px!important;
  min-width:132px!important;
  max-width:132px!important;
  height:46px!important;
  min-height:46px!important;
  padding:0 14px!important;
  display:inline-flex!important;
  align-items:center!important;
  justify-content:center!important;
  font-size:13px!important;
  font-weight:700!important;
}

.soho-global-header .soho-takeaway-button{
  background:#334030!important;
  border-color:#334030!important;
  color:#fff!important;
}

.soho-global-header .soho-integrated-book{
  color:#fff!important;
}

.soho-global-header .soho-integrated-menu-toggle{
  display:none!important;
}

/* Homepage hero now sits directly behind the one global transparent header. */
.soho-hero-with-header{
  margin-top:0!important;
}

/* ----- MENU PAGE: hero goes to the absolute top behind global header ----- */
body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout{
  padding:0!important;
  margin:0!important;
  width:100vw!important;
  max-width:none!important;
  margin-left:calc(50% - 50vw)!important;
  background:#334030!important;
}

body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout .soho-shell{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}

body.soho-menu-page-body .soho-menu-top-card{
  width:100%!important;
  max-width:none!important;
  min-height:440px!important;
  grid-template-columns:40% 60%!important;
  margin:0!important;
  border-radius:0!important;
  box-shadow:none!important;
}

body.soho-menu-page-body .soho-menu-top-card-copy{
  padding:138px max(42px, calc((100vw - var(--soho-layout-max))/2 + var(--soho-layout-gutter))) 58px!important;
}

body.soho-menu-page-body .soho-menu-top-card-media{
  min-height:440px!important;
}

/* Tabs + accordion stay centered on white beneath hero. */
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  background:#fff!important;
}

body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs .soho-shell{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin:0 auto!important;
}

body.soho-menu-page-body .soho-menu-accordions{
  width:calc(100% - 160px)!important;
  max-width:1128px!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* ----- GLOBAL PRE-FOOTER + FOOTER ----- */
.soho-global-footer-wrap{
  width:100%!important;
  margin:0!important;
  padding:0!important;
}

.soho-global-footer-wrap .soho-global-contact-section{
  display:block!important;
}

.soho-global-footer-wrap .soho-footer{
  display:block!important;
  width:100%!important;
  margin:0!important;
}

/* Existing global footer spacing retained. */
.soho-global-footer-wrap .soho-global-contact-section{
  padding-top:36px!important;
  padding-bottom:36px!important;
}

.soho-global-footer-wrap .soho-global-contact-section .soho-contact-wrap{
  padding-top:18px!important;
  padding-bottom:18px!important;
}

/* Ensure pages do not reserve space for the removed copied widgets. */
.elementor-widget-soho_header,
.elementor-widget-soho_footer,
.elementor-widget-soho_contact{
  margin:0!important;
  padding:0!important;
  height:0!important;
  min-height:0!important;
}

/* Logged-in WordPress admin bar: body content already begins below bar,
   so the overlay remains anchored to the site's top edge. */

@media (min-width:701px) and (max-width:1100px){
  .soho-global-header .soho-integrated-nav{
    gap:18px!important;
    margin-right:14px!important;
  }
  .soho-global-header .soho-integrated-nav a{
    font-size:12px!important;
  }
  .soho-global-header .soho-header-action{
    width:122px!important;
    min-width:122px!important;
    max-width:122px!important;
    height:44px!important;
    min-height:44px!important;
    font-size:12px!important;
  }

  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding-top:126px!important;
    padding-left:40px!important;
    padding-right:34px!important;
  }
}

@media (max-width:700px){
  .soho-global-header{
    height:80px!important;
  }
  .soho-global-header .soho-integrated-header-inner{
    width:calc(100% - 36px)!important;
    height:80px!important;
    min-height:80px!important;
    padding-top:4px!important;
  }
  .soho-global-header .soho-integrated-logo{
    width:116px!important;
  }
  .soho-global-header .soho-integrated-nav,
  .soho-global-header .soho-header-actions{
    display:none!important;
  }
  .soho-global-header .soho-integrated-menu-toggle{
    display:flex!important;
    margin-left:auto!important;
    color:#fff!important;
  }

  body.soho-menu-page-body .soho-menu-top-card{
    grid-template-columns:1fr!important;
    min-height:auto!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding:110px 22px 30px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-media{
    min-height:220px!important;
  }
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs .soho-shell{
    width:calc(100% - 36px)!important;
  }
}


/* ================= SOHO v3.4.1 FINAL MENU / GLOBAL TUNE ================= */
/* 1) More breathing room at top of the one global header */
.soho-global-header{
  height:112px!important;
}
.soho-global-header .soho-integrated-header-inner{
  height:112px!important;
  min-height:112px!important;
  padding-top:16px!important;
  padding-bottom:0!important;
}

/* 2) MENU hero: lower and wider, closer to approved mock-up */
body.soho-menu-page-body .soho-menu-top-card{
  min-height:315px!important;
  height:315px!important;
  grid-template-columns:37% 63%!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy{
  padding-top:108px!important;
  padding-bottom:36px!important;
  justify-content:flex-start!important;
}
body.soho-menu-page-body .soho-menu-top-card-media{
  min-height:315px!important;
  height:315px!important;
}
body.soho-menu-page-body .soho-menu-top-card-media img{
  height:315px!important;
  object-fit:cover!important;
  object-position:center 48%!important;
}

/* 3) Accordion wider AND mathematically centered below tabs */
body.soho-menu-page-body .soho-menu-accordions{
  width:calc(100% - 112px)!important;
  max-width:1240px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}
body.soho-menu-page-body .soho-menu-accordion{
  margin-left:auto!important;
  margin-right:auto!important;
}

/* 4) Global pre-footer must ALWAYS render before global footer, including homepage */
#soho-global-footer .soho-global-contact-section,
.soho-global-footer-wrap .soho-global-contact-section{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
  height:auto!important;
  min-height:0!important;
}

/* Override old duplicate-protection selectors now that copied contact widgets are removed */
body:has(.elementor-widget-soho_contact .soho-contact-section:not(.soho-global-contact-section)) .soho-global-contact-section,
.soho-global-contact-section[style*="display: none"],
.soho-global-contact-section[style*="display:none"]{
  display:block!important;
}

/* Do not let legacy helper JS hide the new global pre-footer */
#soho-global-footer .soho-global-contact-section{
  pointer-events:auto!important;
}

@media (min-width:701px) and (max-width:1100px){
  .soho-global-header{
    height:108px!important;
  }
  .soho-global-header .soho-integrated-header-inner{
    height:108px!important;
    min-height:108px!important;
    padding-top:14px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card{
    min-height:300px!important;
    height:300px!important;
    grid-template-columns:39% 61%!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding-top:104px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-media,
  body.soho-menu-page-body .soho-menu-top-card-media img{
    min-height:300px!important;
    height:300px!important;
  }
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 72px)!important;
    max-width:none!important;
  }
}

@media (max-width:700px){
  .soho-global-header{
    height:84px!important;
  }
  .soho-global-header .soho-integrated-header-inner{
    height:84px!important;
    min-height:84px!important;
    padding-top:8px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card{
    height:auto!important;
    min-height:auto!important;
    grid-template-columns:1fr!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding-top:100px!important;
    padding-bottom:28px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-media,
  body.soho-menu-page-body .soho-menu-top-card-media img{
    min-height:210px!important;
    height:210px!important;
  }
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 36px)!important;
  }
}


/* ================= SOHO v3.4.2 MENU HERO POLISH ================= */
/* Requested: slanted split hero, darker image/top gradient, homepage-style hero text,
   same left/right width as header, centered accordion, visible vinmenu content, and
   smoother accordion navigation behaviour (handled in JS). */

/* Keep a little air above the transparent global header */
.soho-global-header{
  height:118px!important;
}
.soho-global-header .soho-integrated-header-inner{
  height:118px!important;
  min-height:118px!important;
  padding-top:22px!important;
  padding-bottom:0!important;
}

/* HERO + tabs share the same content width as the global header */
body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout{
  background:#fff!important;
  padding-top:18px!important;
  padding-bottom:0!important;
}
body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout .soho-shell,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout .soho-shell{
  padding:0!important;
}

body.soho-menu-page-body .soho-menu-top-card{
  position:relative!important;
  overflow:hidden!important;
  min-height:330px!important;
  height:330px!important;
  grid-template-columns:minmax(300px,36%) minmax(0,64%)!important;
  border-radius:0!important;
  box-shadow:none!important;
  background:#334030!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy{
  position:relative!important;
  z-index:3!important;
  display:flex!important;
  flex-direction:column!important;
  justify-content:center!important;
  align-items:flex-start!important;
  padding:92px 46px 42px 54px!important;
  background:linear-gradient(90deg, rgba(51,64,48,.98) 0%, rgba(51,64,48,.96) 72%, rgba(51,64,48,.92) 100%)!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy::after{
  content:"";
  position:absolute;
  top:0;
  right:-116px;
  width:180px;
  height:100%;
  background:linear-gradient(90deg, rgba(51,64,48,.96) 0%, rgba(51,64,48,.90) 75%, rgba(51,64,48,.70) 100%);
  clip-path:polygon(0 0, 60% 0, 100% 100%, 0 100%);
  pointer-events:none;
}
body.soho-menu-page-body .soho-menu-top-card-copy .soho-eyebrow{
  position:relative;
  z-index:4;
  margin:0 0 12px!important;
  color:#b89a27!important;
  font-size:11px!important;
  line-height:1.2!important;
  letter-spacing:.11em!important;
  font-weight:700!important;
  text-transform:uppercase!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy h1{
  position:relative;
  z-index:4;
  margin:0 0 14px!important;
  color:#fff!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-weight:400!important;
  font-size:64px!important;
  line-height:.93!important;
  letter-spacing:.01em!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy p{
  position:relative;
  z-index:4;
  margin:0!important;
  max-width:270px!important;
  color:rgba(255,255,255,.92)!important;
  font-size:15px!important;
  line-height:1.72!important;
}
body.soho-menu-page-body .soho-menu-top-card-media{
  position:relative!important;
  min-height:330px!important;
  height:330px!important;
}
body.soho-menu-page-body .soho-menu-top-card-media::before{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg, rgba(51,64,48,.52) 0%, rgba(51,64,48,.30) 18%, rgba(51,64,48,.12) 46%, rgba(51,64,48,0) 100%),
    linear-gradient(270deg, rgba(51,64,48,.16) 0%, rgba(51,64,48,.10) 30%, rgba(51,64,48,0) 66%);
  z-index:2;
  pointer-events:none;
}
body.soho-menu-page-body .soho-menu-top-card-media::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg, rgba(0,0,0,.18) 0%, rgba(0,0,0,0) 42%);
  z-index:3;
  pointer-events:none;
}
body.soho-menu-page-body .soho-menu-top-card-media img{
  width:100%!important;
  height:330px!important;
  object-fit:cover!important;
  object-position:center center!important;
  filter:brightness(.82) saturate(.90) contrast(1.02)!important;
}

/* White tab strip under hero, same width and centered */
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs{
  position:relative!important;
  top:auto!important;
  z-index:6!important;
  background:#fff!important;
  border-bottom:1px solid var(--soho-metal-gold-mid)!important;
  box-shadow:none!important;
}
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs .soho-shell{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  min-height:56px!important;
  padding:0 26px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
}
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a{
  height:56px!important;
  padding:0 32px!important;
}

/* Accordion narrower than hero, but mathematically centered like the mock-up */
body.soho-menu-page-body .soho-menu-accordions{
  width:min(calc(var(--soho-layout-max) - 170px), calc(100% - 180px))!important;
  max-width:1110px!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-top:38px!important;
  padding-bottom:64px!important;
  padding-left:0!important;
  padding-right:0!important;
}
body.soho-menu-page-body .soho-menu-accordion{
  width:100%!important;
  margin-left:auto!important;
  margin-right:auto!important;
}

/* Keep wine rows visible and give the nested accordion better breathing room */
body.soho-menu-page-body #aften-vinkort > div,
body.soho-menu-page-body #aften-vinkort .soho-menu-table{
  display:block!important;
}

@media (min-width:701px) and (max-width:1100px){
  .soho-global-header{
    height:112px!important;
  }
  .soho-global-header .soho-integrated-header-inner{
    height:112px!important;
    min-height:112px!important;
    padding-top:18px!important;
  }
  body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout .soho-shell,
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs{
    width:calc(100% - 48px)!important;
  }
  body.soho-menu-page-body .soho-menu-top-card{
    min-height:308px!important;
    height:308px!important;
    grid-template-columns:38% 62%!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding:86px 34px 34px 40px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy::after{
    right:-92px;
    width:150px;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy h1{
    font-size:54px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-media,
  body.soho-menu-page-body .soho-menu-top-card-media img{
    min-height:308px!important;
    height:308px!important;
  }
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 72px)!important;
    max-width:1000px!important;
  }
}

@media (max-width:700px){
  .soho-global-header{
    height:88px!important;
  }
  .soho-global-header .soho-integrated-header-inner{
    height:88px!important;
    min-height:88px!important;
    padding-top:8px!important;
  }
  body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout .soho-shell,
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs,
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 36px)!important;
  }
  body.soho-menu-page-body .soho-menu-top-card{
    height:auto!important;
    min-height:auto!important;
    grid-template-columns:1fr!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding:86px 22px 28px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy::after{
    display:none!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy h1{
    font-size:42px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy p{
    max-width:100%!important;
    font-size:14px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-media,
  body.soho-menu-page-body .soho-menu-top-card-media img{
    min-height:200px!important;
    height:200px!important;
  }
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs .soho-shell{
    justify-content:flex-start!important;
    overflow-x:auto!important;
    padding:0 8px!important;
  }
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a{
    flex:0 0 auto!important;
    padding:0 18px!important;
  }
}


/* === v3.4.3 focus fix: menu hero + full-width accordion === */
body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout{
  background:#fff!important;
  padding-top:0!important;
  padding-bottom:0!important;
  margin-top:0!important;
}
body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout .soho-shell{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding:0!important;
}
body.soho-menu-page-body .soho-menu-top-card{
  width:100%!important;
  min-height:348px!important;
  height:348px!important;
  grid-template-columns:minmax(320px,34%) minmax(0,66%)!important;
  border-radius:0!important;
  background:#334030!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy{
  padding:104px 52px 50px 72px!important;
  background:linear-gradient(90deg, #334030 0%, #334030 76%, #334030 100%)!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy::after{
  right:-118px!important;
  width:188px!important;
  background:linear-gradient(90deg, #334030 0%, #334030 62%, rgba(51,64,48,.92) 82%, rgba(51,64,48,0) 100%)!important;
  clip-path:polygon(0 0, 54% 0, 100% 100%, 0 100%)!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy .soho-eyebrow{
  margin:0 0 14px!important;
  font-size:11px!important;
  letter-spacing:.12em!important;
  color:#b89a27!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy h1{
  margin:0 0 12px!important;
  color:#fff!important;
  font-family:Georgia, "Times New Roman", serif!important;
  font-size:66px!important;
  line-height:.92!important;
  letter-spacing:.01em!important;
  font-weight:400!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy p{
  max-width:300px!important;
  color:rgba(255,255,255,.92)!important;
  font-size:15px!important;
  line-height:1.7!important;
}
body.soho-menu-page-body .soho-menu-top-card-media{
  min-height:348px!important;
  height:348px!important;
}
body.soho-menu-page-body .soho-menu-top-card-media::before{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:
    linear-gradient(180deg, rgba(51,64,48,.72) 0%, rgba(51,64,48,.50) 18%, rgba(51,64,48,.24) 48%, rgba(51,64,48,.08) 100%),
    linear-gradient(270deg, rgba(51,64,48,.42) 0%, rgba(51,64,48,.20) 34%, rgba(51,64,48,0) 72%)!important;
  z-index:2!important;
  pointer-events:none!important;
}
body.soho-menu-page-body .soho-menu-top-card-media::after{
  content:""!important;
  position:absolute!important;
  inset:0!important;
  background:linear-gradient(90deg, rgba(0,0,0,.22) 0%, rgba(0,0,0,0) 42%)!important;
  z-index:3!important;
  pointer-events:none!important;
}
body.soho-menu-page-body .soho-menu-top-card-media img{
  height:348px!important;
  object-fit:cover!important;
  object-position:center center!important;
  filter:brightness(.70) saturate(.88) contrast(1.02)!important;
}

/* keep the tab strip and accordions centered/full-width under the hero */
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin:0 auto!important;
  background:#fff!important;
  border-bottom:1px solid var(--soho-metal-gold-mid)!important;
  box-shadow:none!important;
}
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs .soho-shell{
  width:100%!important;
  max-width:none!important;
  margin:0 auto!important;
  min-height:56px!important;
  padding:0 26px!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:0!important;
}
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a{
  height:56px!important;
  padding:0 32px!important;
}
body.soho-menu-page-body .soho-menu-accordions{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-top:40px!important;
  padding-bottom:64px!important;
  padding-left:0!important;
  padding-right:0!important;
}
body.soho-menu-page-body .soho-menu-accordion{
  width:100%!important;
}

/* preserve previous accordion content visibility */
body.soho-menu-page-body #aften-vinkort > div,
body.soho-menu-page-body #aften-vinkort .soho-menu-table,
body.soho-menu-page-body #drikkevarer .soho-menu-table{
  display:block!important;
}

@media (max-width: 1100px){
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding:94px 38px 40px 48px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy h1{
    font-size:56px!important;
  }
}
@media (max-width: 767px){
  body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout,
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs,
  body.soho-menu-page-body .soho-menu-accordions{
    width:100%!important;
    max-width:none!important;
  }
  body.soho-menu-page-body .soho-menu-top-card{
    min-height:auto!important;
    height:auto!important;
    grid-template-columns:1fr!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding:84px 24px 28px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy h1{
    font-size:42px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-media,
  body.soho-menu-page-body .soho-menu-top-card-media img{
    height:260px!important;
  }
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs .soho-shell{
    padding:0 12px!important;
    justify-content:flex-start!important;
    overflow-x:auto!important;
  }
}


/* ================= SOHO v3.4.4 STRICT RESTORE ================= */
/* HERO: text aligned to the same horizontal site grid as the global header. */
body.soho-menu-page-body .soho-menu-top-card-copy{
  padding-left:max(var(--soho-layout-gutter), calc((100vw - var(--soho-layout-max))/2 + var(--soho-layout-gutter)))!important;
  padding-right:46px!important;
  background:#334030!important;
}

/* The green side + diagonal are fully opaque. No transparency in the green field. */
body.soho-menu-page-body .soho-menu-top-card-copy::after{
  right:-126px!important;
  width:190px!important;
  height:100%!important;
  background:#334030!important;
  opacity:1!important;
  clip-path:polygon(0 0, 58% 0, 100% 100%, 0 100%)!important;
}

/* Darker image so the transparent global navigation stays readable. */
body.soho-menu-page-body .soho-menu-top-card-media img{
  filter:brightness(.58) saturate(.82) contrast(1.04)!important;
}
body.soho-menu-page-body .soho-menu-top-card-media::before{
  background:
    linear-gradient(180deg, rgba(51,64,48,.72) 0%, rgba(51,64,48,.48) 24%, rgba(51,64,48,.20) 58%, rgba(51,64,48,.08) 100%),
    linear-gradient(90deg, rgba(51,64,48,.22) 0%, rgba(51,64,48,.04) 45%, rgba(51,64,48,.16) 100%)!important;
}

/* Accordion spans the same full site width as the hero/header content grid and is centered. */
body.soho-menu-page-body .soho-menu-accordions{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-top:42px!important;
  padding-bottom:58px!important;
}

/* EXACT v3.3.0 accordion presentation restored. */
body.soho-menu-page-body .soho-menu-accordion{
  border:1px solid var(--soho-metal-gold-mid)!important;
  border-radius:14px!important;
  background:#fff!important;
  margin:0 0 18px!important;
  overflow:hidden!important;
  box-shadow:0 8px 24px rgba(51,64,48,.055)!important;
}
body.soho-menu-page-body .soho-menu-accordion>summary{
  list-style:none!important;
  cursor:pointer!important;
  display:grid!important;
  grid-template-columns:50px 1fr 34px!important;
  align-items:center!important;
  min-height:82px!important;
  padding:0 28px!important;
  background:#fff!important;
  color:#334030!important;
}
body.soho-menu-page-body .soho-menu-accordion[open]>summary{
  background:#f7f6f1!important;
}
body.soho-menu-page-body .soho-menu-accordion>summary span{
  font-size:11px!important;
  color:#b88b3f!important;
  font-weight:700!important;
  letter-spacing:.08em!important;
}
body.soho-menu-page-body .soho-menu-accordion>summary strong{
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:27px!important;
  font-weight:400!important;
  letter-spacing:.02em!important;
}
body.soho-menu-page-body .soho-menu-panel{
  padding:8px 34px 36px!important;
  border-top:1px solid var(--soho-metal-gold-mid)!important;
}
body.soho-menu-page-body .soho-menu-panel>h3,
body.soho-menu-page-body .soho-menu-subaccordion>div>h3,
body.soho-menu-page-body .soho-drink-group h3{
  color:#334030!important;
  font-size:13px!important;
  font-family:Inter,Arial,sans-serif!important;
  font-weight:800!important;
  letter-spacing:.08em!important;
  margin:28px 0 10px!important;
  text-transform:uppercase!important;
}
body.soho-menu-page-body .soho-menu-panel h3 small{
  font-weight:500!important;
  color:#7b7d77!important;
  letter-spacing:0!important;
  margin-left:8px!important;
}
body.soho-menu-page-body .soho-menu-lead{
  color:#5e625c!important;
  font-size:14px!important;
  line-height:1.65!important;
  margin:0 0 14px!important;
}
body.soho-menu-page-body .soho-menu-entry{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) auto!important;
  gap:28px!important;
  align-items:start!important;
  min-height:0!important;
  padding:13px 0!important;
  border-bottom:1px solid var(--soho-metal-gold-mid)!important;
}
body.soho-menu-page-body .soho-menu-entry strong{
  display:block!important;
  font-size:14px!important;
  color:#334030!important;
  font-weight:700!important;
}
body.soho-menu-page-body .soho-menu-entry span{
  display:block!important;
  font-size:12px!important;
  color:#777b75!important;
  margin-top:3px!important;
  line-height:1.5!important;
}
body.soho-menu-page-body .soho-menu-price{
  font-size:13px!important;
  color:#334030!important;
  white-space:nowrap!important;
  font-weight:700!important;
}
body.soho-menu-page-body .soho-menu-subdivider{
  height:1px!important;
  background:#dcd8cd!important;
  margin:30px 0 4px!important;
}
body.soho-menu-page-body .soho-menu-note{
  margin:22px 0 0!important;
  padding:14px 16px!important;
  border-left:3px solid #b88b3f!important;
  background:#faf8f2!important;
  color:#676b65!important;
  font-size:12px!important;
  line-height:1.55!important;
}
body.soho-menu-page-body .soho-menu-panel-nested{
  padding:18px 26px 30px!important;
}
body.soho-menu-page-body .soho-menu-subaccordion{
  border-bottom:1px solid var(--soho-metal-gold-mid)!important;
  background:#fff!important;
}
body.soho-menu-page-body .soho-menu-subaccordion:last-child{
  border-bottom:0!important;
}
body.soho-menu-page-body .soho-menu-subaccordion>summary{
  list-style:none!important;
  cursor:pointer!important;
  display:grid!important;
  grid-template-columns:1fr 28px!important;
  align-items:center!important;
  min-height:0!important;
  padding:18px 8px!important;
  font-weight:800!important;
  font-size:12px!important;
  letter-spacing:.08em!important;
  color:#334030!important;
}
body.soho-menu-page-body .soho-menu-subaccordion>div{
  padding:0 8px 24px!important;
}
body.soho-menu-page-body .soho-menu-table-head,
body.soho-menu-page-body .soho-menu-table-row{
  display:grid!important;
  grid-template-columns:minmax(0,1fr) 72px 72px!important;
  gap:12px!important;
  align-items:start!important;
}
body.soho-menu-page-body .soho-menu-table-head{
  padding:9px 0!important;
  border-bottom:2px solid #334030!important;
  color:#334030!important;
  font-size:10px!important;
  font-weight:800!important;
  text-transform:uppercase!important;
}
body.soho-menu-page-body .soho-menu-table-head span:nth-child(n+2){
  text-align:right!important;
}
body.soho-menu-page-body .soho-menu-table h4{
  margin:24px 0 4px!important;
  padding:7px 10px!important;
  background:#f2f1eb!important;
  color:#334030!important;
  border-radius:5px!important;
  font-size:10px!important;
  font-weight:800!important;
  letter-spacing:.08em!important;
}
body.soho-menu-page-body .soho-menu-table-row{
  min-height:0!important;
  padding:10px 8px!important;
  border-bottom:1px solid var(--soho-metal-gold-mid)!important;
}
body.soho-menu-page-body .soho-menu-table-row strong{font-size:13px!important;}
body.soho-menu-page-body .soho-menu-table-row small{
  display:block!important;
  color:#7a7d77!important;
  font-size:11px!important;
  margin-top:2px!important;
}
body.soho-menu-page-body .soho-menu-table-row>b{
  text-align:right!important;
  font-size:12px!important;
  color:#334030!important;
}

@media (max-width:900px){
  body.soho-menu-page-body .soho-menu-accordion>summary{
    padding:0 20px!important;
    grid-template-columns:38px 1fr 30px!important;
  }
  body.soho-menu-page-body .soho-menu-accordion>summary strong{font-size:23px!important;}
  body.soho-menu-page-body .soho-menu-panel{padding:8px 24px 30px!important;}
}
@media (max-width:700px){
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding-left:22px!important;
    padding-right:22px!important;
  }
  body.soho-menu-page-body .soho-menu-accordions{
    width:calc(100% - 36px)!important;
    padding-top:26px!important;
    padding-bottom:38px!important;
  }
  body.soho-menu-page-body .soho-menu-accordion>summary{
    min-height:68px!important;
    padding:0 15px!important;
    grid-template-columns:30px 1fr 28px!important;
  }
  body.soho-menu-page-body .soho-menu-accordion>summary strong{font-size:20px!important;}
  body.soho-menu-page-body .soho-menu-panel{padding:4px 18px 25px!important;}
  body.soho-menu-page-body .soho-menu-panel-nested{padding:10px 14px 24px!important;}
  body.soho-menu-page-body .soho-menu-entry{gap:14px!important;padding:11px 0!important;}
  body.soho-menu-page-body .soho-menu-table-head,
  body.soho-menu-page-body .soho-menu-table-row{
    grid-template-columns:minmax(0,1fr) 52px 52px!important;
  }
}


/* ================= SOHO v3.4.6 HERO EDGE / MARGIN FIX ================= */
/* Surgical fix only. Accordion markup/content from v3.4.5 is untouched. */

body.soho-menu-page-body .soho-menu-top-card{
  position:relative!important;
  isolation:isolate!important;
  background:#334030!important;
}

/* Solid green panel. Keep copy safely inside the same visual grid as the header. */
body.soho-menu-page-body .soho-menu-top-card-copy{
  position:relative!important;
  z-index:6!important;
  overflow:visible!important;
  box-sizing:border-box!important;
  padding-left:clamp(56px, 4.6vw, 86px)!important;
  padding-right:42px!important;
  background:#334030!important;
}

/* One fully opaque diagonal extension. It sits ABOVE the image layer. */
body.soho-menu-page-body .soho-menu-top-card-copy::after{
  content:""!important;
  display:block!important;
  position:absolute!important;
  z-index:7!important;
  top:0!important;
  bottom:0!important;
  right:-142px!important;
  width:190px!important;
  height:auto!important;
  background:#334030!important;
  opacity:1!important;
  clip-path:polygon(0 0, 42% 0, 100% 100%, 0 100%)!important;
  pointer-events:none!important;
}

/* Text always remains above the solid green wedge. */
body.soho-menu-page-body .soho-menu-top-card-copy > *{
  position:relative!important;
  z-index:8!important;
  max-width:100%!important;
}
body.soho-menu-page-body .soho-menu-top-card-copy p{
  max-width:310px!important;
}

/* Image is a separate lower layer; it must never bleed through the green split. */
body.soho-menu-page-body .soho-menu-top-card-media{
  position:relative!important;
  z-index:1!important;
  overflow:hidden!important;
  background:#334030!important;
}
body.soho-menu-page-body .soho-menu-top-card-media::before,
body.soho-menu-page-body .soho-menu-top-card-media::after{
  z-index:2!important;
}
body.soho-menu-page-body .soho-menu-top-card-media img{
  position:relative!important;
  z-index:1!important;
  filter:brightness(.58) saturate(.82) contrast(1.04)!important;
}

@media (max-width:1100px){
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding-left:clamp(40px,5vw,58px)!important;
    padding-right:32px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy::after{
    right:-112px!important;
    width:160px!important;
  }
}

@media (max-width:700px){
  body.soho-menu-page-body .soho-menu-top-card-copy{
    padding-left:24px!important;
    padding-right:24px!important;
  }
  body.soho-menu-page-body .soho-menu-top-card-copy::after{
    display:none!important;
  }
}

/* =====================================================================
   SOHO v3.5.0 — MASTER DIFF
   Only: internal hero system, menu hero alignment, About/Contact/Booking.
   Homepage sections and menu content are intentionally untouched.
   ===================================================================== */

:root{
  --soho-inner-hero-height:360px;
}

/* New internal pages must use the same true full-width canvas behavior as /menu/. */
body.soho-about-page-body,
body.soho-contact-page-body,
body.soho-booking-page-body,
body.soho-about-page-body #page,
body.soho-contact-page-body #page,
body.soho-booking-page-body #page,
body.soho-about-page-body #content,
body.soho-contact-page-body #content,
body.soho-booking-page-body #content,
body.soho-about-page-body .site-content,
body.soho-contact-page-body .site-content,
body.soho-booking-page-body .site-content,
body.soho-about-page-body .elementor,
body.soho-contact-page-body .elementor,
body.soho-booking-page-body .elementor,
body.soho-about-page-body .elementor > .e-con,
body.soho-contact-page-body .elementor > .e-con,
body.soho-booking-page-body .elementor > .e-con,
body.soho-about-page-body .elementor > .e-con > .e-con-inner,
body.soho-contact-page-body .elementor > .e-con > .e-con-inner,
body.soho-booking-page-body .elementor > .e-con > .e-con-inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding-left:0!important;
  padding-right:0!important;
}

/* --------------------- shared inner hero --------------------- */
.soho-inner-hero{
  position:relative;
  width:100vw;
  height:var(--soho-inner-hero-height);
  min-height:var(--soho-inner-hero-height);
  margin-left:calc(50% - 50vw);
  overflow:hidden;
}
.soho-standard-inner-hero{
  background-image:var(--soho-inner-hero-image);
  background-position:center 52%;
  background-size:cover;
  background-repeat:no-repeat;
}
.soho-inner-hero-shade{
  position:absolute;
  inset:0;
  background:
    linear-gradient(90deg,rgba(51,64,48,.94) 0%,rgba(51,64,48,.83) 28%,rgba(51,64,48,.38) 58%,rgba(51,64,48,.26) 100%),
    linear-gradient(180deg,rgba(51,64,48,.52) 0%,rgba(51,64,48,.16) 55%,rgba(51,64,48,.22) 100%);
}
.soho-inner-hero-content{
  position:relative;
  z-index:2;
  height:100%;
  display:flex;
  align-items:center;
  padding-top:72px!important; /* transparent global header lives above */
}
.soho-inner-hero-copy{
  width:min(570px,52%);
  color:#fff;
}
.soho-inner-hero-copy .soho-eyebrow{
  margin-bottom:12px;
  color:var(--soho-brass);
  font-size:12px;
  font-weight:700;
  letter-spacing:.10em;
}
.soho-inner-hero-copy h1{
  margin:0 0 14px;
  color:#fff;
  font-family:Georgia,"Times New Roman",serif;
  font-size:48px;
  line-height:1.02;
  font-weight:400;
  letter-spacing:.006em;
}
.soho-inner-hero-copy p{
  max-width:560px;
  margin:0 0 22px;
  color:rgba(255,255,255,.95);
  font-size:15px;
  line-height:1.65;
}
.soho-inner-hero-btn{
  min-width:126px;
}

/* --------------------- MENU HERO: clean layer architecture --------------------- */
body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout{
  position:relative!important;
  width:100vw!important;
  max-width:none!important;
  height:var(--soho-inner-hero-height)!important;
  min-height:var(--soho-inner-hero-height)!important;
  margin:0 0 0 calc(50% - 50vw)!important;
  padding:0!important;
  background:#334030!important;
  overflow:hidden!important;
}
body.soho-menu-page-body .soho-menu-hero-visual{
  position:absolute!important;
  inset:0!important;
  z-index:1!important;
}
body.soho-menu-page-body .soho-menu-hero-image{
  position:absolute!important;
  top:0!important;
  right:0!important;
  bottom:0!important;
  width:69%!important;
  overflow:hidden!important;
  background:#334030!important;
}
body.soho-menu-page-body .soho-menu-hero-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:
    linear-gradient(180deg,rgba(51,64,48,.66) 0%,rgba(51,64,48,.33) 22%,rgba(51,64,48,.16) 52%,rgba(51,64,48,.12) 100%),
    linear-gradient(90deg,rgba(51,64,48,.34) 0%,rgba(51,64,48,.08) 48%,rgba(51,64,48,.20) 100%);
  pointer-events:none;
}
body.soho-menu-page-body .soho-menu-hero-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center 48%!important;
  filter:brightness(.65) saturate(.82) contrast(1.05)!important;
}
body.soho-menu-page-body .soho-menu-hero-green{
  position:absolute!important;
  z-index:3!important;
  inset:0 auto 0 0!important;
  width:43%!important;
  background:#334030!important;
  opacity:1!important;
  clip-path:polygon(0 0,78% 0,100% 100%,0 100%)!important;
}
body.soho-menu-page-body .soho-menu-hero-content{
  position:relative!important;
  z-index:5!important;
  height:100%!important;
  display:flex!important;
  align-items:center!important;
  padding-top:72px!important;
}
/* This is the key margin fix: content is inside the exact same .soho-shell as the logo. */
body.soho-menu-page-body .soho-menu-hero-copy{
  width:360px!important;
  max-width:34%!important;
  color:#fff!important;
}
body.soho-menu-page-body .soho-menu-hero-copy .soho-eyebrow{
  margin:0 0 12px!important;
  color:#b89a27!important;
  font-size:11px!important;
  line-height:1.2!important;
  letter-spacing:.11em!important;
  font-weight:700!important;
}
body.soho-menu-page-body .soho-menu-hero-copy h1{
  margin:0 0 12px!important;
  color:#fff!important;
  font-family:Georgia,"Times New Roman",serif!important;
  font-size:58px!important;
  line-height:.95!important;
  font-weight:400!important;
}
body.soho-menu-page-body .soho-menu-hero-copy p{
  max-width:330px!important;
  margin:0!important;
  color:rgba(255,255,255,.94)!important;
  font-size:15px!important;
  line-height:1.65!important;
}
/* Tabs and accordion retain current site proportions and are centered. */
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs,
body.soho-menu-page-body .soho-menu-accordions{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
}
body.soho-menu-page-body .soho-menu-accordions{
  padding-left:0!important;
  padding-right:0!important;
}

/* --------------------- ABOUT PAGE --------------------- */
.soho-page-section{padding:62px 0;background:#fff;}
.soho-about-story-grid{
  display:grid;
  grid-template-columns:.92fr 1.08fr;
  gap:60px;
  align-items:center;
}
.soho-about-story-copy h2,
.soho-about-team-card h2,
.soho-booking-intro h2{
  margin:0 0 18px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:34px;
  line-height:1.08;
  font-weight:400;
  color:#334030;
}
.soho-about-richtext{font-size:14px;line-height:1.72;color:#535853;margin-bottom:22px;}
.soho-about-richtext p{margin:0 0 15px;}
.soho-about-story-media img{
  display:block;
  width:100%;
  height:365px;
  object-fit:cover;
  border-radius:8px;
}
.soho-about-values{
  padding:42px 0 44px;
  background:#334030;
  color:#fff;
}
.soho-about-values-label{
  margin-bottom:20px;
  text-align:center;
  color:var(--soho-brass);
  font-size:11px;
  letter-spacing:.10em;
}
.soho-about-values-grid{
  display:grid;
  grid-template-columns:repeat(3,1fr);
}
.soho-about-values-grid article{
  padding:4px 42px 2px;
  text-align:center;
  border-right:1px solid rgba(255,255,255,.17);
}
.soho-about-values-grid article:last-child{border-right:0;}
.soho-about-values-grid i{
  display:flex;
  width:42px;
  height:42px;
  margin:0 auto 10px;
  color:var(--soho-brass);
  align-items:center;
  justify-content:center;
}
.soho-about-values-grid svg{width:38px;height:38px;fill:none;stroke:currentColor;stroke-width:1.4;stroke-linecap:round;stroke-linejoin:round;}
.soho-about-values-grid h3{margin:0 0 8px;font-family:Georgia,"Times New Roman",serif;font-size:18px;font-weight:400;}
.soho-about-values-grid p{max-width:260px;margin:0 auto;font-size:12px;line-height:1.6;color:rgba(255,255,255,.87);}
.soho-about-team{padding-bottom:46px;}
.soho-about-team-grid{
  display:grid;
  grid-template-columns:1.05fr .95fr;
  gap:0;
  align-items:stretch;
  border:1px solid var(--soho-metal-gold-mid);
  border-radius:10px;
  overflow:hidden;
  box-shadow:0 8px 24px rgba(51,64,48,.05);
}
.soho-about-team-media img{width:100%;height:290px;object-fit:cover;display:block;}
.soho-about-team-card{padding:38px 42px;background:#faf9f5;display:flex;flex-direction:column;justify-content:center;}
.soho-about-team-card .soho-eyebrow{margin-bottom:8px;}
.soho-about-team-card h2{font-size:30px;margin-bottom:12px;}
.soho-about-team-card p{margin:0 0 20px;color:#565b55;font-size:13px;line-height:1.65;}
.soho-about-team-card .soho-btn{align-self:flex-start;}
.soho-about-stats{
  display:grid;
  grid-template-columns:repeat(4,1fr);
  margin-top:28px;
}
.soho-about-stats div{text-align:center;border-right:1px solid var(--soho-metal-gold-mid);padding:3px 12px;}
.soho-about-stats div:last-child{border-right:0;}
.soho-about-stats b{display:block;font-family:Georgia,"Times New Roman",serif;font-size:28px;font-weight:400;color:#334030;}
.soho-about-stats span{display:block;margin-top:4px;font-size:10px;line-height:1.35;letter-spacing:.06em;color:#5d625d;}

/* --------------------- CONTACT PAGE: reuse the GLOBAL pre-footer, but arrange it like the mockup --------------------- */
body.soho-contact-page-body #soho-global-footer .soho-global-contact-section{
  background:#fff!important;
  padding-top:54px!important;
  padding-bottom:54px!important;
}
body.soho-contact-page-body #soho-global-footer .soho-contact-wrap{
  display:grid!important;
  grid-template-columns:1fr 1fr!important;
  gap:34px 52px!important;
  padding:0!important;
}
body.soho-contact-page-body #soho-global-footer .soho-contact-form{
  grid-column:1!important;
  grid-row:1!important;
}
body.soho-contact-page-body #soho-global-footer .soho-contact-right{
  display:contents!important;
}
body.soho-contact-page-body #soho-global-footer .soho-info{
  grid-column:2!important;
  grid-row:1!important;
  align-self:start!important;
  display:grid!important;
  grid-template-columns:1fr!important;
  gap:15px!important;
  margin-top:0!important;
  padding-top:0!important;
}
.soho-contact-info-title{
  margin:0 0 7px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:21px;
  font-weight:400;
  color:#252a26;
}
body.soho-contact-page-body #soho-global-footer .soho-map{
  grid-column:1/-1!important;
  grid-row:2!important;
  width:100%!important;
  height:300px!important;
  margin:0!important;
}
body.soho-contact-page-body #soho-global-footer .soho-book-card{
  grid-column:1/-1!important;
  grid-row:3!important;
  margin:0!important;
  grid-template-columns:1fr 1.12fr!important;
  padding:18px!important;
}
body.soho-contact-page-body #soho-global-footer .soho-book-card img{height:185px!important;}
body.soho-contact-page-body #soho-global-footer .soho-contact-form h2{font-size:24px!important;margin-bottom:18px!important;}

/* --------------------- BOOKING PAGE --------------------- */
.soho-booking-embed-section{background:#f7f6f1;padding-top:50px;padding-bottom:64px;}
.soho-booking-intro{text-align:center;margin:0 auto 26px;max-width:650px;}
.soho-booking-intro .soho-eyebrow{margin-bottom:7px;}
.soho-booking-intro h2{font-size:34px;margin-bottom:9px;}
.soho-booking-intro p{margin:0;color:#60655f;font-size:14px;}
.soho-booking-frame-wrap{
  overflow:hidden;
  background:#fff;
  border:1px solid var(--soho-metal-gold-mid);
  border-radius:12px;
  box-shadow:0 9px 30px rgba(51,64,48,.07);
}
.soho-booking-frame{
  display:block;
  width:100%;
  height:1050px;
  border:0;
  background:#fff;
}
.soho-footer-logo-link{display:inline-block;}

/* Keep all non-home internal heroes exactly the same height. */
body.soho-menu-page-body .soho-inner-hero,
body.soho-about-page-body .soho-inner-hero,
body.soho-contact-page-body .soho-inner-hero,
body.soho-booking-page-body .soho-inner-hero{
  height:var(--soho-inner-hero-height)!important;
  min-height:var(--soho-inner-hero-height)!important;
}

@media (max-width:900px){
  :root{--soho-inner-hero-height:330px;}
  .soho-inner-hero-copy{width:min(520px,65%);}
  .soho-inner-hero-copy h1{font-size:40px;}
  body.soho-menu-page-body .soho-menu-hero-green{width:48%!important;}
  body.soho-menu-page-body .soho-menu-hero-image{width:64%!important;}
  body.soho-menu-page-body .soho-menu-hero-copy{max-width:40%!important;}
  .soho-about-story-grid{grid-template-columns:1fr 1.15fr;gap:38px;}
  .soho-about-team-card{padding:30px;}
}

@media (max-width:700px){
  :root{--soho-inner-hero-height:300px;}
  .soho-inner-hero-content{padding-top:70px!important;}
  .soho-inner-hero-copy{width:100%;max-width:92%;}
  .soho-inner-hero-copy h1{font-size:34px;}
  .soho-inner-hero-copy p{font-size:13px;line-height:1.55;}
  body.soho-menu-page-body .soho-menu-hero-green{width:72%!important;clip-path:polygon(0 0,80% 0,100% 100%,0 100%)!important;}
  body.soho-menu-page-body .soho-menu-hero-image{width:52%!important;}
  body.soho-menu-page-body .soho-menu-hero-content{padding-top:70px!important;}
  body.soho-menu-page-body .soho-menu-hero-copy{width:62%!important;max-width:62%!important;}
  body.soho-menu-page-body .soho-menu-hero-copy h1{font-size:38px!important;}
  body.soho-menu-page-body .soho-menu-hero-copy p{font-size:12px!important;line-height:1.5!important;}
  .soho-page-section{padding:42px 0;}
  .soho-about-story-grid,.soho-about-team-grid{grid-template-columns:1fr;gap:26px;}
  .soho-about-story-media img{height:260px;}
  .soho-about-values-grid{grid-template-columns:1fr;}
  .soho-about-values-grid article{border-right:0;border-bottom:1px solid rgba(255,255,255,.16);padding:22px 20px;}
  .soho-about-values-grid article:last-child{border-bottom:0;}
  .soho-about-team-media img{height:230px;}
  .soho-about-stats{grid-template-columns:1fr 1fr;gap:18px 0;}
  .soho-about-stats div:nth-child(2){border-right:0;}
  body.soho-contact-page-body #soho-global-footer .soho-contact-wrap{grid-template-columns:1fr!important;}
  body.soho-contact-page-body #soho-global-footer .soho-contact-form,
  body.soho-contact-page-body #soho-global-footer .soho-info,
  body.soho-contact-page-body #soho-global-footer .soho-map,
  body.soho-contact-page-body #soho-global-footer .soho-book-card{grid-column:1!important;grid-row:auto!important;}
  body.soho-contact-page-body #soho-global-footer .soho-book-card{grid-template-columns:1fr!important;}
  .soho-booking-frame{height:1150px;}
}

/* ================= SOHO v3.5.1 MENU HERO SURGICAL TUNE ================= */
/* Only two fixes: (1) push MENU hero copy inward to align with site grid,
   (2) let the right-side image behave like the other inner heroes. */

body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout{
  min-height:var(--soho-inner-hero-height)!important;
}
body.soho-menu-page-body .soho-menu-hero-content{
  align-items:center!important;
}
body.soho-menu-page-body .soho-menu-hero-copy{
  margin-left:clamp(72px, 9vw, 170px)!important;
  width:min(420px, 32vw)!important;
  max-width:min(420px, 32vw)!important;
}
body.soho-menu-page-body .soho-menu-hero-image{
  width:72%!important;
}
body.soho-menu-page-body .soho-menu-hero-image img{
  width:100%!important;
  height:100%!important;
  object-fit:cover!important;
  object-position:center center!important;
  transform:scale(1.06)!important;
  transform-origin:center center!important;
}

@media (max-width:900px){
  body.soho-menu-page-body .soho-menu-hero-copy{
    margin-left:clamp(28px, 5vw, 56px)!important;
    width:min(380px, 40vw)!important;
    max-width:min(380px, 40vw)!important;
  }
  body.soho-menu-page-body .soho-menu-hero-image{
    width:68%!important;
  }
}

@media (max-width:700px){
  body.soho-menu-page-body .soho-menu-hero-copy{
    margin-left:0!important;
    width:62%!important;
    max-width:62%!important;
  }
  body.soho-menu-page-body .soho-menu-hero-image{
    width:52%!important;
  }
  body.soho-menu-page-body .soho-menu-hero-image img{
    transform:scale(1.03)!important;
  }
}


/* ================= SOHO v3.5.2 MENU HERO ALIGNMENT — verified package ================= */
/* The previous v3.5.1 ZIP was packaged with the wrong directory root, so those rules never
   replaced the installed plugin. These rules deliberately use the exact global-header grid. */

body.soho-menu-page-body .soho-menu-page-intro.soho-menu-hero-layout{
  width:100vw!important;
  max-width:none!important;
  margin:0 0 0 calc(50% - 50vw)!important;
  padding:0!important;
}

/* Hero copy uses EXACTLY the same width/max-width/margins as .soho-global-header inner. */
body.soho-menu-page-body .soho-menu-hero-content.soho-shell{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
  box-sizing:border-box!important;
}
body.soho-menu-page-body .soho-menu-hero-copy{
  margin-left:0!important;
  margin-right:0!important;
  width:390px!important;
  max-width:31%!important;
}

/* Image fills/crops the image side exactly like the other inner HERO backgrounds. */
body.soho-menu-page-body .soho-menu-hero-image{
  top:0!important;
  right:0!important;
  bottom:0!important;
  width:72%!important;
  height:100%!important;
}
body.soho-menu-page-body .soho-menu-hero-image img{
  display:block!important;
  width:100%!important;
  height:100%!important;
  min-width:100%!important;
  min-height:100%!important;
  object-fit:cover!important;
  object-position:center 50%!important;
  transform:none!important;
}

@media (max-width:900px){
  body.soho-menu-page-body .soho-menu-hero-content.soho-shell{
    width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  }
  body.soho-menu-page-body .soho-menu-hero-copy{
    margin-left:0!important;
    width:360px!important;
    max-width:40%!important;
  }
}

@media (max-width:700px){
  body.soho-menu-page-body .soho-menu-hero-content.soho-shell{
    width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  }
  body.soho-menu-page-body .soho-menu-hero-copy{
    margin-left:0!important;
    width:62%!important;
    max-width:62%!important;
  }
}


/* ================= SOHO v3.5.4 MENU HERO = OM OS HERO ================= */
/* MENU no longer uses its custom split/green/image hero. It now uses the exact
   same shared inner-hero architecture as OM OS / KONTAKT. */
body.soho-menu-page-body .soho-menu-standard-hero{
  width:100vw!important;
  max-width:none!important;
  height:var(--soho-inner-hero-height)!important;
  min-height:var(--soho-inner-hero-height)!important;
  margin-left:calc(50% - 50vw)!important;
  margin-right:calc(50% - 50vw)!important;
  background-position:center 52%!important;
  background-size:cover!important;
  background-repeat:no-repeat!important;
}
body.soho-menu-page-body .soho-menu-standard-hero .soho-inner-hero-content{
  width:calc(100% - (var(--soho-layout-gutter) * 2))!important;
  max-width:var(--soho-layout-max)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  padding-left:0!important;
  padding-right:0!important;
}
body.soho-menu-page-body .soho-menu-standard-hero .soho-inner-hero-copy{
  width:min(570px,52%)!important;
  max-width:min(570px,52%)!important;
  margin:0!important;
  padding:0!important;
}

@media (max-width:900px){
  body.soho-menu-page-body .soho-menu-standard-hero .soho-inner-hero-copy{
    width:min(520px,65%)!important;
    max-width:min(520px,65%)!important;
  }
}
@media (max-width:700px){
  body.soho-menu-page-body .soho-menu-standard-hero .soho-inner-hero-copy{
    width:100%!important;
    max-width:92%!important;
  }
}


/* ================= SOHO v3.5.9 SELSKABER PAGE ================= */
body.soho-parties-page-body,
body.soho-parties-page-body #page,
body.soho-parties-page-body #content,
body.soho-parties-page-body .site-content,
body.soho-parties-page-body .elementor,
body.soho-parties-page-body .elementor > .e-con,
body.soho-parties-page-body .elementor > .e-con > .e-con-inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding-left:0!important;
  padding-right:0!important;
}

.soho-parties-page{background:#fff;}
.soho-parties-tabs{
  width:100%;
  background:#fff;
  border-bottom:1px solid var(--soho-metal-gold-mid);
}
.soho-parties-tabs .soho-shell{
  min-height:66px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:0;
}
.soho-parties-tabs a{
  position:relative;
  height:66px;
  padding:0 34px;
  display:inline-flex;
  align-items:center;
  justify-content:center;
  color:#334030!important;
  font-size:12px;
  font-weight:700;
  letter-spacing:.055em;
  text-transform:uppercase;
  transition:transform .18s ease,color .18s ease;
}
.soho-parties-tabs a::after{
  content:"";
  position:absolute;
  left:32px;
  right:32px;
  bottom:0;
  height:2px;
  background:transparent;
}
.soho-parties-tabs a:hover,
.soho-parties-tabs a.is-active{color:var(--soho-brass)!important;transform:scale(1.04);}
.soho-parties-tabs a.is-active::after{background:var(--soho-brass);}

.soho-party-panel{padding:64px 0 70px;background:#fff;}
.soho-party-panel[hidden]{display:none!important;}
.soho-party-intro-grid,
.soho-party-detail-grid{
  display:grid;
  grid-template-columns:.88fr 1.12fr;
  gap:58px;
  align-items:center;
}
.soho-party-detail-grid{grid-template-columns:1.08fr .92fr;}
.soho-party-detail-grid.reverse .soho-party-detail-media{order:2;}
.soho-party-detail-grid.reverse .soho-party-copy{order:1;}
.soho-party-copy .soho-eyebrow{margin-bottom:10px;}
.soho-party-copy h2,
.soho-party-section-head h2{
  margin:0 0 18px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:38px;
  line-height:1.08;
  font-weight:400;
  color:#334030;
}
.soho-party-richtext{font-size:14px;line-height:1.72;color:#535853;margin-bottom:22px;}
.soho-party-richtext p{margin:0 0 15px;}
.soho-party-media img,
.soho-party-detail-media img{
  display:block;
  width:100%;
  height:390px;
  object-fit:cover;
  border-radius:8px;
  box-shadow:0 10px 28px rgba(51,64,48,.08);
}

.soho-party-packages-section{margin-top:64px;padding:54px 0 58px;background:#f7f6f1;}
.soho-party-section-head{text-align:center;margin:0 auto 30px;max-width:760px;}
.soho-party-section-head .soho-eyebrow{margin-bottom:8px;}
.soho-party-section-head h2{font-size:32px;margin-bottom:0;}
.soho-party-packages{display:grid;grid-template-columns:repeat(4,1fr);gap:16px;}
.soho-party-package{
  position:relative;
  min-height:285px;
  padding:26px 24px 24px;
  background:#fff;
  border:1px solid var(--soho-metal-gold-mid);
  border-radius:10px;
  box-shadow:0 7px 22px rgba(51,64,48,.045);
}
.soho-party-package-no{color:var(--soho-brass);font-size:11px;font-weight:700;letter-spacing:.08em;margin-bottom:22px;}
.soho-party-package h3{margin:0 0 10px;font-family:Georgia,"Times New Roman",serif;font-size:22px;font-weight:400;color:#334030;}
.soho-party-price{margin-bottom:18px;color:#334030;font-size:22px;font-weight:700;}
.soho-party-price small{font-size:11px;font-weight:500;color:#747a74;}
.soho-party-package ul{margin:0;padding:0 0 0 18px;color:#575d57;font-size:12px;line-height:1.55;}
.soho-party-package li{margin-bottom:7px;}
.soho-party-notes{max-width:900px;margin:25px auto 0;text-align:center;color:#666b65;font-size:12px;line-height:1.6;}
.soho-party-notes p{margin:4px 0;}

.soho-party-included{display:grid;grid-template-columns:1fr 1fr;gap:8px 12px;margin:20px 0 22px;}
.soho-party-included span{padding:10px 12px;border:1px solid var(--soho-metal-gold-mid);border-radius:6px;background:#f8f7f2;color:#334030;font-size:10px;font-weight:700;letter-spacing:.055em;}
.soho-party-terms{margin-top:42px;}
.soho-party-terms details{border:1px solid var(--soho-metal-gold-mid);border-radius:9px;overflow:hidden;background:#faf9f5;}
.soho-party-terms summary{position:relative;min-height:64px;padding:0 58px 0 22px;display:flex;align-items:center;cursor:pointer;color:#334030;font-size:12px;font-weight:700;letter-spacing:.06em;list-style:none;}
.soho-party-terms summary::-webkit-details-marker{display:none;}
.soho-party-terms summary i::before,
.soho-party-terms summary i::after{content:"";position:absolute;right:23px;top:31px;width:14px;height:1px;background:var(--soho-brass);}
.soho-party-terms summary i::after{transform:rotate(90deg);}
.soho-party-terms details[open] summary i::after{display:none;}
.soho-party-terms details>div{padding:0 22px 22px;color:#5e635d;font-size:12px;line-height:1.65;}
.soho-party-terms details>div p{margin:0 0 11px;}

/* Added navigation item: keep global header balanced without changing its established height. */
@media (min-width:901px) and (max-width:1240px){
  .soho-global-header .soho-integrated-nav{gap:18px!important;margin-right:16px!important;}
  .soho-global-header .soho-integrated-nav a{font-size:11px!important;}
  .soho-global-header .soho-header-action{width:118px!important;min-width:118px!important;max-width:118px!important;}
}

@media(max-width:900px){
  .soho-parties-tabs .soho-shell{justify-content:flex-start;overflow-x:auto;}
  .soho-parties-tabs a{flex:0 0 auto;padding:0 22px;}
  .soho-party-intro-grid,.soho-party-detail-grid{grid-template-columns:1fr 1fr;gap:34px;}
  .soho-party-packages{grid-template-columns:1fr 1fr;}
}
@media(max-width:700px){
  .soho-parties-tabs .soho-shell{width:100%!important;padding-left:8px!important;padding-right:8px!important;}
  .soho-parties-tabs a{height:58px;padding:0 16px;font-size:10px;}
  .soho-party-panel{padding:42px 0 50px;}
  .soho-party-intro-grid,.soho-party-detail-grid{grid-template-columns:1fr;gap:26px;}
  .soho-party-detail-grid.reverse .soho-party-detail-media,.soho-party-detail-grid.reverse .soho-party-copy{order:initial;}
  .soho-party-copy h2,.soho-party-section-head h2{font-size:30px;}
  .soho-party-media img,.soho-party-detail-media img{height:245px;}
  .soho-party-packages-section{margin-top:44px;padding:42px 0;}
  .soho-party-packages{grid-template-columns:1fr;}
  .soho-party-package{min-height:0;}
  .soho-party-included{grid-template-columns:1fr;}
}

/* ================= SOHO v3.6.0 JOB PAGE ================= */
body.soho-job-page-body,
body.soho-job-page-body #page,
body.soho-job-page-body #content,
body.soho-job-page-body .site-content,
body.soho-job-page-body .elementor,
body.soho-job-page-body .elementor > .e-con,
body.soho-job-page-body .elementor > .e-con > .e-con-inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding-left:0!important;
  padding-right:0!important;
}
body.soho-job-page-body .soho-inner-hero{
  height:var(--soho-inner-hero-height)!important;
  min-height:var(--soho-inner-hero-height)!important;
}
.soho-job-section{background:#f7f6f1;padding:58px 0 70px;}
.soho-job-shell{max-width:980px!important;}
.soho-job-heading{margin-bottom:30px;}
.soho-job-heading .soho-eyebrow{margin-bottom:8px;}
.soho-job-heading h2{
  margin:0 0 8px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:36px;
  line-height:1.05;
  font-weight:400;
  color:#334030;
}
.soho-job-heading p{margin:0;color:#5d625d;font-size:14px;}
.soho-job-form{
  padding:38px 42px 42px;
  background:#fff;
  border:1px solid var(--soho-metal-gold-mid);
  border-radius:12px;
  box-shadow:0 10px 30px rgba(51,64,48,.06);
}
.soho-job-grid{display:grid;gap:16px;margin-bottom:20px;}
.soho-job-grid.two{grid-template-columns:1fr 1fr;}
.soho-job-grid.three{grid-template-columns:.6fr 1fr 1.2fr;}
.soho-job-form label,
.soho-job-form legend{
  color:#334030;
  font-size:13px;
  line-height:1.4;
  font-weight:700;
}
.soho-job-form input[type=text],
.soho-job-form input[type=number],
.soho-job-form input[type=tel],
.soho-job-form input[type=email],
.soho-job-form input[type=file],
.soho-job-form select,
.soho-job-form textarea{
  display:block;
  width:100%;
  margin-top:8px;
  padding:13px 14px;
  border:1px solid var(--soho-metal-gold-mid);
  border-radius:4px;
  background:#fff;
  color:#334030;
  font:400 14px/1.35 Inter,Arial,sans-serif;
  box-sizing:border-box;
}
.soho-job-form textarea{resize:vertical;min-height:120px;}
.soho-job-form fieldset{margin:26px 0;padding:0;border:0;}
.soho-job-form legend{margin-bottom:12px;}
.soho-job-options{display:flex;flex-wrap:wrap;gap:10px;}
.soho-job-options label{
  display:flex;
  align-items:center;
  gap:8px;
  min-width:150px;
  padding:12px 15px;
  border:1px solid var(--soho-metal-gold-mid);
  border-radius:5px;
  background:#faf9f5;
  cursor:pointer;
  font-weight:600;
}
.soho-job-options input,
.soho-job-consent input{accent-color:#334030;}
.soho-job-select,.soho-job-upload,.soho-job-message-field{display:block;margin:24px 0;}
.soho-job-upload small{display:block;margin-top:7px;color:#858981;font-size:11px;font-weight:400;}
.soho-job-consent{
  margin-top:30px!important;
  padding:20px!important;
  background:#f5f3eb;
  border-left:3px solid var(--soho-brass)!important;
}
.soho-job-consent label{display:flex;align-items:flex-start;gap:10px;font-weight:400;}
.soho-job-consent input{margin-top:3px;flex:0 0 auto;}
.soho-job-submit{min-width:150px;margin-top:3px;}
.soho-job-message{margin:0 0 22px;padding:14px 16px;border-radius:5px;font-size:13px;}
.soho-job-message.success{background:#e9f1ec;color:#334030;border:1px solid #bfd1c5;}
.soho-job-message.error{background:#f8eeee;color:#783c3c;border:1px solid #e4c6c6;}

@media (max-width:700px){
  .soho-job-section{padding:38px 0 48px;}
  .soho-job-form{padding:24px 20px 28px;}
  .soho-job-grid.two,.soho-job-grid.three{grid-template-columns:1fr;}
  .soho-job-options{display:grid;grid-template-columns:1fr;}
  .soho-job-options label{min-width:0;}
  .soho-job-heading h2{font-size:30px;}
}

/* ================= SOHO v3.6.1 FULL SELSKABER CONTENT ================= */
.soho-party-notes-full{max-width:1040px!important;text-align:left!important;}
.soho-party-notes-full p{margin:8px 0!important;}

.soho-christmas-dates-section{
  margin-top:54px;
  padding:54px 0 58px;
  background:#f7f6f1;
}
.soho-christmas-dates-section .soho-party-section-head p{
  margin:10px auto 0;
  max-width:650px;
  color:#656a64;
  font-size:13px;
  line-height:1.55;
}
.soho-christmas-dates-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:14px;
}
.soho-christmas-date-card{
  display:grid;
  grid-template-columns:64px minmax(0,1fr) auto;
  gap:15px;
  align-items:center;
  min-height:92px;
  padding:14px 16px;
  background:#fff;
  border:1px solid var(--soho-metal-gold-mid);
  border-radius:9px;
  box-shadow:0 7px 20px rgba(51,64,48,.045);
}
.soho-christmas-date{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  min-height:60px;
  border-right:1px solid var(--soho-metal-gold-mid);
}
.soho-christmas-date b{
  font-family:Georgia,"Times New Roman",serif;
  font-size:28px;
  line-height:1;
  font-weight:400;
  color:#334030;
}
.soho-christmas-date span{
  margin-top:4px;
  color:var(--soho-brass);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
}
.soho-christmas-date-copy strong{
  display:block;
  color:#334030;
  font-size:12px;
  letter-spacing:.04em;
}
.soho-christmas-date-copy span{
  display:block;
  margin-top:5px;
  color:#777b76;
  font-size:11px;
}
.soho-christmas-date-card>a{
  color:#334030!important;
  font-size:10px;
  font-weight:800;
  letter-spacing:.05em;
  white-space:nowrap;
}
.soho-christmas-date-card>a span{color:var(--soho-brass);margin-left:4px;}
.soho-christmas-date-card>a:hover{color:#334030!important;transform:scale(1.04);}

.soho-party-terms-content h4{
  margin:18px 0 7px;
  color:#334030;
  font-size:11px;
  letter-spacing:.07em;
}
.soho-party-terms-content ul{margin:8px 0 14px;padding-left:18px;}
.soho-party-terms-content li{margin:0 0 7px;}

@media (max-width:1000px){
  .soho-christmas-dates-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (max-width:700px){
  .soho-christmas-dates-section{margin-top:38px;padding:42px 0;}
  .soho-christmas-dates-grid{grid-template-columns:1fr;}
  .soho-christmas-date-card{grid-template-columns:58px 1fr auto;}
}


/* ================= SOHO v3.6.2 HEADER LOGO + JOB ORDER ================= */
/* Header-only logo asset has transparent canvas removed; 120px gives ~15% larger visible mark. */
.soho-global-header .soho-integrated-logo{
  width:120px!important;
  max-width:120px!important;
  height:auto!important;
}
.soho-global-header .soho-integrated-logo-link{
  margin:0!important;
  padding:0!important;
}
@media(max-width:700px){
  .soho-global-header .soho-integrated-logo{
    width:108px!important;
    max-width:108px!important;
  }
}


/* ================= SOHO v3.6.3 FOOTER + SELSKABER POLISH ================= */
/* Footer logo: same treatment as header — visibly larger and flush left. */
.soho-footer .soho-footer-brand,
.soho-footer .soho-footer-logo-link{
  margin-left:0!important;
  padding-left:0!important;
  text-align:left!important;
}
.soho-footer .soho-footer-brand .soho-logo{
  display:block!important;
  width:161px!important;
  max-width:161px!important;
  height:auto!important;
  margin-left:0!important;
  margin-right:auto!important;
  padding-left:0!important;
}

/* SELSKABER hero must not show a CTA button. */
body.soho-parties-page-body .soho-inner-hero-btn{
  display:none!important;
}

/* Proposal cards are always visible in the active Privatfest/Firmafest panel. */
body.soho-parties-page-body #privatfest.is-active .soho-party-packages-section,
body.soho-parties-page-body #firmafest.is-active .soho-party-packages-section{
  display:block!important;
  visibility:visible!important;
  opacity:1!important;
}

/* Christmas date/event posts */
.soho-christmas-events-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:18px;
}
.soho-christmas-event-card{
  overflow:hidden;
  background:#fff;
  border:1px solid var(--soho-metal-gold-mid);
  border-radius:10px;
  box-shadow:0 8px 24px rgba(51,64,48,.055);
}
.soho-christmas-event-card>summary{
  display:block;
  padding:0;
  cursor:pointer;
  list-style:none;
}
.soho-christmas-event-card>summary::-webkit-details-marker{display:none;}
.soho-christmas-event-image{
  position:relative;
  height:168px;
  overflow:hidden;
  background:#334030;
}
.soho-christmas-event-image::after{
  content:"";
  position:absolute;
  inset:0;
  background:linear-gradient(180deg,rgba(51,64,48,.08),rgba(51,64,48,.28));
  pointer-events:none;
}
.soho-christmas-event-image img{
  display:block;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center;
  transition:transform .25s ease;
}
.soho-christmas-event-card>summary:hover .soho-christmas-event-image img{transform:scale(1.025);}
.soho-christmas-event-date{
  position:absolute;
  z-index:2;
  left:14px;
  bottom:14px;
  width:58px;
  min-height:58px;
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  background:#334030;
  color:#fff;
  border-radius:5px;
}
.soho-christmas-event-date b{
  font-family:Georgia,"Times New Roman",serif;
  font-size:26px;
  line-height:1;
  font-weight:400;
}
.soho-christmas-event-date em{
  margin-top:3px;
  color:#d1ad32;
  font-size:9px;
  font-style:normal;
  font-weight:800;
  letter-spacing:.08em;
}
.soho-christmas-event-summary{padding:18px 18px 20px;}
.soho-christmas-event-summary>span{
  color:var(--soho-brass);
  font-size:10px;
  font-weight:800;
  letter-spacing:.08em;
}
.soho-christmas-event-summary h3{
  margin:6px 0 7px;
  font-family:Georgia,"Times New Roman",serif;
  color:#334030;
  font-size:22px;
  font-weight:400;
}
.soho-christmas-event-summary p{
  min-height:34px;
  margin:0 0 14px;
  color:#6c716b;
  font-size:11px;
  line-height:1.5;
}
.soho-christmas-event-summary strong{
  display:flex;
  align-items:center;
  justify-content:space-between;
  color:#334030;
  font-size:10px;
  font-weight:800;
  letter-spacing:.06em;
}
.soho-christmas-event-summary strong i{
  color:var(--soho-brass);
  font-size:17px;
  font-style:normal;
  line-height:1;
}
.soho-christmas-event-card[open] .soho-christmas-event-summary strong i{transform:rotate(45deg);}
.soho-christmas-event-detail{
  padding:0 18px 22px;
  border-top:1px solid var(--soho-metal-gold-mid);
  color:#5a605a;
  font-size:12px;
  line-height:1.6;
}
.soho-christmas-event-detail h4{
  margin:18px 0 9px;
  color:#334030;
  font-size:12px;
  letter-spacing:.04em;
}
.soho-christmas-event-detail p{margin:0 0 12px;}
.soho-christmas-event-detail ul{margin:0 0 16px;padding-left:18px;}
.soho-christmas-event-detail li{margin:0 0 5px;}
.soho-christmas-event-note{font-size:11px;color:#777c76;}
.soho-christmas-event-detail .soho-btn{display:inline-flex;margin-top:3px;}

@media(max-width:1000px){
  .soho-christmas-events-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:700px){
  .soho-footer .soho-footer-brand .soho-logo{width:140px!important;max-width:140px!important;}
  .soho-christmas-events-grid{grid-template-columns:1fr;}
  .soho-christmas-event-image{height:190px;}
}


/* ================= SOHO v3.6.4 FOOTER POLISH ================= */
.soho-footer-report-badge{
  width:63px!important;
  height:auto!important;
}
@media (max-width:700px){
  .soho-footer-report-badge{
    width:59px!important;
  }
}


/* ================= SOHO v3.6.5 FOOTER LOGO ALIGN ================= */
/* Use cropped logo asset; preserve approximately the same visible logo size. */
.soho-footer .soho-footer-brand .soho-logo{
  width:130px!important;
  max-width:130px!important;
  margin-left:0!important;
  margin-right:auto!important;
  padding-left:0!important;
}
@media (max-width:700px){
  .soho-footer .soho-footer-brand .soho-logo{
    width:113px!important;
    max-width:113px!important;
  }
}


/* ================= SOHO v3.6.6 SELSKABER TAB/CARD POLISH ================= */
/* Main SELSKABER page remains the default landing panel.
   Only Privatfest / Firmafest / Julefrokost appear as on-page selector tabs. */

/* Green theme background behind the white proposal cards on all panels. */
body.soho-parties-page-body .soho-party-packages-section,
body.soho-parties-page-body .soho-christmas-dates-section{
  background:var(--soho-green)!important;
}

/* Keep headings/readability correct on the green card-area background. */
body.soho-parties-page-body .soho-party-packages-section .soho-party-section-head h2,
body.soho-parties-page-body .soho-christmas-dates-section .soho-party-section-head h2{
  color:#fff!important;
}
body.soho-parties-page-body .soho-party-packages-section .soho-party-section-head .soho-eyebrow,
body.soho-parties-page-body .soho-christmas-dates-section .soho-party-section-head .soho-eyebrow{
  color:var(--soho-brass-light)!important;
}
body.soho-parties-page-body .soho-party-packages-section .soho-party-notes,
body.soho-parties-page-body .soho-party-packages-section .soho-party-notes p,
body.soho-parties-page-body .soho-christmas-dates-section .soho-party-section-head p{
  color:rgba(255,255,255,.90)!important;
}

/* The small 01/02/03/04 labels are removed from markup; keep a safety rule too. */
body.soho-parties-page-body .soho-party-package-no{
  display:none!important;
}

/* With the number gone, card title starts cleanly at the top. */
body.soho-parties-page-body .soho-party-package h3{
  margin-top:0!important;
}

/* ================= SOHO v3.6.8 EVENTS + MERGED FEED ================= */
body.soho-events-page-body,
body.soho-events-page-body #page,
body.soho-events-page-body #content,
body.soho-events-page-body .site-content,
body.soho-events-page-body .elementor,
body.soho-events-page-body .elementor > .e-con,
body.soho-events-page-body .elementor > .e-con > .e-con-inner{
  width:100%!important;
  max-width:none!important;
  margin:0!important;
  padding-left:0!important;
  padding-right:0!important;
}
body.soho-events-page-body .soho-inner-hero{
  height:var(--soho-inner-hero-height)!important;
  min-height:var(--soho-inner-hero-height)!important;
}
.soho-events-page-tabs{
  background:#fff;
  border-bottom:1px solid var(--soho-metal-gold-mid);
}
.soho-events-page-tabs .soho-shell{
  min-height:62px;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  overflow-x:auto;
}
.soho-events-page-tabs button{
  position:relative;
  appearance:none;
  border:0;
  background:transparent;
  color:#334030;
  font:700 12px/1 Inter,Arial,sans-serif;
  letter-spacing:.035em;
  padding:23px 25px 21px;
  cursor:pointer;
  white-space:nowrap;
  transition:transform .18s ease,color .18s ease;
}
.soho-events-page-tabs button:hover{transform:scale(1.05);color:#8f7325;}
.soho-events-page-tabs button:after{
  content:"";
  position:absolute;
  left:25px;right:25px;bottom:0;height:2px;
  background:transparent;
}
.soho-events-page-tabs button.is-active{color:#8f7325;}
.soho-events-page-tabs button.is-active:after{background:var(--soho-brass);}

.soho-events-page-feed{padding:54px 0 72px;background:#f7f6f1;}
.soho-events-page-head{text-align:center;margin:0 auto 32px;max-width:680px;}
.soho-events-page-head .soho-eyebrow{margin-bottom:8px;}
.soho-events-page-head h2{
  margin:0 0 10px;
  font-family:Georgia,"Times New Roman",serif;
  font-size:34px;
  line-height:1.08;
  font-weight:400;
  color:#334030;
}
.soho-events-page-head p{margin:0;color:#666b66;font-size:14px;}
.soho-events-feed-grid{
  display:grid;
  grid-template-columns:repeat(3,minmax(0,1fr));
  gap:24px;
  align-items:start;
}
.soho-feed-event-card{
  overflow:hidden;
  border:1px solid var(--soho-metal-gold-mid);
  border-radius:10px;
  background:#fff;
  box-shadow:0 8px 24px rgba(51,64,48,.05);
}
.soho-feed-event-card > summary{
  display:block;
  list-style:none;
  cursor:pointer;
}
.soho-feed-event-card > summary::-webkit-details-marker{display:none;}
.soho-feed-event-image{position:relative;height:190px;overflow:hidden;background:#334030;}
.soho-feed-event-image img{display:block;width:100%;height:100%;object-fit:cover;transition:transform .25s ease;}
.soho-feed-event-card:hover .soho-feed-event-image img{transform:scale(1.025);}
.soho-feed-event-image .date{
  position:absolute;left:14px;bottom:12px;
  min-width:54px;padding:7px 9px;
  background:#334030;color:#fff;
  display:flex;align-items:baseline;gap:5px;
}
.soho-feed-event-image .date b{font-size:15px;line-height:1;}
.soho-feed-event-image .date em{font-style:normal;font-size:10px;font-weight:700;letter-spacing:.05em;}
.soho-feed-event-summary{padding:19px 20px 20px;}
.soho-feed-event-type{display:block;margin-bottom:8px;color:var(--soho-brass);font-size:9px;font-weight:700;letter-spacing:.10em;}
.soho-feed-event-summary h3{margin:0 0 9px;font:400 22px/1.08 Georgia,"Times New Roman",serif;color:#334030;}
.soho-feed-event-summary p{min-height:44px;margin:0 0 12px;color:#656a65;font-size:12px;line-height:1.55;}
.soho-feed-event-summary small{display:block;margin-bottom:12px;color:#334030;font-size:10px;font-weight:700;}
.soho-feed-event-summary strong{display:flex;align-items:center;justify-content:space-between;color:#334030;font-size:10px;letter-spacing:.06em;}
.soho-feed-event-summary strong i{font-style:normal;color:var(--soho-brass);font-size:18px;}
.soho-feed-event-card[open] .soho-feed-event-summary strong i{transform:rotate(45deg);}
.soho-feed-event-detail{border-top:1px solid var(--soho-metal-gold-mid);padding:20px;color:#4e554f;font-size:12px;line-height:1.65;}
.soho-feed-event-detail p:first-child{margin-top:0;}
.soho-feed-event-meta{display:flex;flex-wrap:wrap;gap:12px 24px;align-items:center;margin-top:18px;padding-top:16px;border-top:1px solid var(--soho-metal-gold-mid);}
.soho-feed-event-meta span{display:grid;gap:2px;font-size:11px;color:#4f5651;}
.soho-feed-event-meta span b{font-size:9px;color:#9b7b24;letter-spacing:.08em;}
.soho-feed-event-meta .soho-btn{margin-left:auto;}

/* Small category label on the homepage event carousel. */
.soho-event-source-label{margin:0 0 7px;color:var(--soho-brass);font-size:8px;font-weight:700;letter-spacing:.09em;}

@media(max-width:900px){
  .soho-events-feed-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media(max-width:700px){
  .soho-events-page-tabs .soho-shell{justify-content:flex-start;}
  .soho-events-page-tabs button{padding-left:18px;padding-right:18px;}
  .soho-events-page-tabs button:after{left:18px;right:18px;}
  .soho-events-page-feed{padding:38px 0 48px;}
  .soho-events-feed-grid{grid-template-columns:1fr;}
  .soho-feed-event-image{height:210px;}
  .soho-feed-event-meta .soho-btn{width:100%;margin-left:0;justify-content:center;}
}


/* ================= SOHO v3.6.15 METALLIC GOLD SYSTEM ================= */
/* Palette sampled from the approved sand-gold logo. Existing sand/brass
   accents receive a restrained, static metallic treatment site-wide. */

/* Gold text and labels: solid fallback first, metallic gradient where supported. */
.soho-eyebrow,
.soho-events-section .soho-events-kicker,
.soho-event-source-label,
.soho-footer h4,
.soho-menu-accordion > summary span,
body.soho-menu-page-body .soho-menu-accordion > summary span,
body.soho-menu-page-body .soho-menu-top-card-copy .soho-eyebrow,
body.soho-menu-page-body .soho-menu-hero-copy .soho-eyebrow,
.soho-inner-hero-copy .soho-eyebrow,
.soho-about-values-label,
.soho-party-package-no,
.soho-christmas-date span,
.soho-christmas-event-date em,
.soho-christmas-event-summary > span,
.soho-feed-event-type,
.soho-feed-event-meta span b,
.soho-nav a.active,
.soho-tabs .active,
.soho-parties-tabs a:hover,
.soho-parties-tabs a.is-active,
.soho-events-page-tabs button:hover,
.soho-events-page-tabs button.is-active,
.soho-menu-jump.soho-menu-jump-tabs a:hover,
.soho-menu-jump.soho-menu-jump-tabs a:focus,
.soho-menu-jump.soho-menu-jump-tabs a.is-active,
.soho-footer-nav a:hover,
.soho-header .soho-nav a:hover,
.soho-integrated-nav a:hover,
body.soho-parties-page-body .soho-party-packages-section .soho-party-section-head .soho-eyebrow,
body.soho-parties-page-body .soho-christmas-dates-section .soho-party-section-head .soho-eyebrow{
  color:var(--soho-metal-gold-mid)!important;
}

@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .soho-eyebrow,
  .soho-events-section .soho-events-kicker,
  .soho-event-source-label,
  .soho-footer h4,
  .soho-menu-accordion > summary span,
  body.soho-menu-page-body .soho-menu-accordion > summary span,
  body.soho-menu-page-body .soho-menu-top-card-copy .soho-eyebrow,
  body.soho-menu-page-body .soho-menu-hero-copy .soho-eyebrow,
  .soho-inner-hero-copy .soho-eyebrow,
  .soho-about-values-label,
  .soho-party-package-no,
  .soho-christmas-date span,
  .soho-christmas-event-date em,
  .soho-christmas-event-summary > span,
  .soho-feed-event-type,
  .soho-feed-event-meta span b,
  .soho-nav a.active,
  .soho-tabs .active,
  .soho-parties-tabs a:hover,
  .soho-parties-tabs a.is-active,
  .soho-events-page-tabs button:hover,
  .soho-events-page-tabs button.is-active,
  .soho-menu-jump.soho-menu-jump-tabs a:hover,
  .soho-menu-jump.soho-menu-jump-tabs a:focus,
  .soho-menu-jump.soho-menu-jump-tabs a.is-active,
  .soho-footer-nav a:hover,
  .soho-header .soho-nav a:hover,
  .soho-integrated-nav a:hover,
  body.soho-parties-page-body .soho-party-packages-section .soho-party-section-head .soho-eyebrow,
  body.soho-parties-page-body .soho-christmas-dates-section .soho-party-section-head .soho-eyebrow{
    background-image:var(--soho-metal-gold-gradient)!important;
    background-size:180% 100%!important;
    background-position:center!important;
    -webkit-background-clip:text!important;
    background-clip:text!important;
    -webkit-text-fill-color:transparent!important;
    color:transparent!important;
  }
}

/* Line icons and compact glyphs retain crisp SVG strokes with a polished gold tone. */
.soho-icon,
.soho-feature .soho-icon,
.info-item i,
.soho-about-values-grid i,
.soho-menu-toggle,
.soho-integrated-menu-toggle,
.soho-arrow-link span,
.soho-christmas-event-summary strong i,
.soho-feed-event-summary strong i,
.soho-christmas-date-card > a span,
.soho-social a:hover,
.soho-footer-nav a:hover{
  color:var(--soho-metal-gold-light)!important;
  filter:drop-shadow(0 1px 0 rgba(69,43,15,.20)) saturate(1.04);
}

/* Gold surfaces use the same highlight/shadow rhythm as the logo. */
.soho-btn:not(.green):not(.alt):not(.soho-takeaway-button),
.soho-integrated-book,
.soho-newsletter-form button{
  background:var(--soho-metal-gold-gradient)!important;
  border-color:var(--soho-metal-gold-mid)!important;
  color:#fff!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.22),0 2px 7px rgba(74,49,20,.12);
}
.soho-btn.alt{
  border-color:var(--soho-metal-gold-mid)!important;
}

/* Active rules, accordion marks and small graphic accents. */
.soho-menu-accordion > summary i::before,
.soho-menu-accordion > summary i::after,
.soho-menu-subaccordion > summary i::before,
.soho-menu-subaccordion > summary i::after,
body.soho-menu-page-body .soho-menu-accordion > summary i::before,
body.soho-menu-page-body .soho-menu-accordion > summary i::after,
.soho-party-terms summary i::before,
.soho-party-terms summary i::after,
.soho-menu-jump.soho-menu-jump-tabs a:hover::after,
.soho-menu-jump.soho-menu-jump-tabs a:focus::after,
.soho-menu-jump.soho-menu-jump-tabs a.is-active::after,
.soho-parties-tabs a.is-active::after,
.soho-events-page-tabs button.is-active::after{
  background:var(--soho-metal-gold-gradient)!important;
}
.soho-tabs .active{
  border-bottom-color:var(--soho-metal-gold-mid)!important;
  border-image:var(--soho-metal-gold-gradient) 1!important;
}
.soho-menu-note,
body.soho-menu-page-body .soho-menu-note,
.soho-job-consent{
  border-left-color:var(--soho-metal-gold-mid)!important;
  border-image:var(--soho-metal-gold-gradient) 1!important;
}


/* ================= SOHO v3.6.17 REQUESTED SURGICAL FIXES ================= */

/* OM OS: remove only the hero CTA, including before the one-time data migration runs. */
body.soho-about-page-body .soho-inner-hero-btn{
  display:none!important;
}

/* Tab-style menus: remove Elementor's inter-widget gap and keep equal air above/below. */
body.soho-parties-page-body .elementor > .e-con,
body.soho-parties-page-body .elementor > .e-con > .e-con-inner,
body.soho-events-page-body .elementor > .e-con,
body.soho-events-page-body .elementor > .e-con > .e-con-inner{
  --gap:0px!important;
  gap:0!important;
  row-gap:0!important;
}
.elementor-widget-soho_parties_page,
.elementor-widget-soho_parties_page > .elementor-widget-container,
.elementor-widget-soho_events_page,
.elementor-widget-soho_events_page > .elementor-widget-container{
  margin-top:0!important;
  margin-bottom:0!important;
  padding-top:0!important;
  padding-bottom:0!important;
}
.soho-parties-tabs .soho-shell,
.soho-events-page-tabs .soho-shell,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs .soho-shell{
  padding-top:0!important;
  padding-bottom:0!important;
}

/* Footer: dedicated uncropped asset is visually flush with the shell's left edge. */
.soho-footer .soho-footer-brand .soho-logo{
  width:116px!important;
  max-width:116px!important;
}
.soho-footer .soho-footer-brand .soho-social{
  margin-left:-7px!important;
  padding-left:0!important;
  align-self:flex-start!important;
}
@media(max-width:700px){
  .soho-footer .soho-footer-brand .soho-logo{
    width:101px!important;
    max-width:101px!important;
  }
}


/* ================= SOHO v3.6.19 LOGO + BUTTON + FOOTER POLISH ================= */

/* Keep the complete logo visible inside the fixed global header at every size. */
.soho-integrated-header,
.soho-integrated-header-inner,
.soho-integrated-logo-link{
  overflow:visible!important;
}
.soho-integrated-logo-link{
  display:flex!important;
  align-items:center!important;
  justify-content:flex-start!important;
  height:100%!important;
}
.soho-integrated-logo{
  object-fit:contain!important;
  object-position:left center!important;
  clip-path:none!important;
}

/* Preserve the metallic gold family while reducing the bright reflection on buttons only. */
.soho-btn:not(.green):not(.alt):not(.soho-takeaway-button),
.soho-integrated-book,
.soho-newsletter-form button{
  background:linear-gradient(105deg,#8a6639 0%,#a9854e 24%,#c2a469 43%,#ad8b53 62%,#b89a61 80%,#8f6b3d 100%)!important;
  box-shadow:inset 0 1px 0 rgba(255,255,255,.12),0 2px 6px rgba(74,49,20,.10)!important;
}

/* Footer column headings: retain the approved gold treatment, now with bold weight. */
.soho-footer h4{
  font-weight:700!important;
}


/* ================= SOHO v3.6.21 HOME EVENT FILTERS + LOGO CROP ================= */

/* Homepage event filter menu, matching the dedicated EVENTS page. */
.soho-home-event-filters{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:4px;
  margin:-14px auto 22px;
  overflow-x:auto;
  scrollbar-width:none;
}
.soho-home-event-filters::-webkit-scrollbar{display:none;}
.soho-home-event-filters button{
  position:relative;
  flex:0 0 auto;
  appearance:none;
  border:0;
  background:transparent;
  color:#334030;
  font:700 12px/1 Inter,Arial,sans-serif;
  letter-spacing:.035em;
  padding:10px 25px 13px;
  cursor:pointer;
  white-space:nowrap;
  transition:transform .18s ease,color .18s ease;
}
.soho-home-event-filters button::after{
  content:"";
  position:absolute;
  left:25px;
  right:25px;
  bottom:4px;
  height:2px;
  background:transparent;
}
.soho-home-event-filters button:hover{
  transform:scale(1.05);
  color:var(--soho-metal-gold-mid);
}
.soho-home-event-filters button.is-active{
  color:var(--soho-metal-gold-mid);
}
.soho-home-event-filters button.is-active::after{
  background:var(--soho-metal-gold-gradient);
}
.soho-card[hidden]{display:none!important;}

@media(max-width:700px){
  .soho-home-event-filters{
    justify-content:flex-start;
    margin-left:0;
    margin-right:0;
  }
  .soho-home-event-filters button{
    padding-left:18px;
    padding-right:18px;
  }
  .soho-home-event-filters button::after{
    left:18px;
    right:18px;
  }
}


/* ================= SOHO v3.6.22 SPECIAL OPENING HOURS ================= */
.soho-special-hours{
  margin-top:17px;
  color:#e3e8e4;
}
.soho-special-hours summary{
  display:flex;
  align-items:center;
  justify-content:space-between;
  gap:8px;
  width:100%;
  padding:8px 0;
  list-style:none;
  color:var(--soho-metal-gold-mid);
  font-size:12px;
  font-weight:700;
  line-height:1.3;
  cursor:pointer;
  user-select:none;
}
.soho-special-hours summary::-webkit-details-marker{display:none;}
.soho-special-hours summary::marker{content:"";}
.soho-special-hours summary i{
  position:relative;
  flex:0 0 9px;
  width:9px;
  height:9px;
  border-right:2px solid var(--soho-metal-gold-mid);
  border-bottom:2px solid var(--soho-metal-gold-mid);
  transform:rotate(45deg) translateY(-2px);
  transition:transform .18s ease;
}
.soho-special-hours[open] summary i{
  transform:rotate(225deg) translate(-1px,-1px);
}
.soho-special-hours-content{
  padding:8px 0 2px;
  border-top:1px solid rgba(255,255,255,.14);
  color:#e3e8e4;
  font-size:11px;
  line-height:1.55;
}
.soho-special-hours-content > strong{
  display:block;
  margin-bottom:9px;
  color:#fff;
  font-size:11px;
}
.soho-special-hours-content p{
  margin:0 0 10px!important;
  color:#e3e8e4!important;
  font-size:11px!important;
  line-height:1.55!important;
}
.soho-special-hours-content p strong{color:#fff;}
.soho-special-hours-content em{
  color:#cdd3cf;
  font-style:normal;
}
.soho-special-hours-content small{
  color:#cdd3cf;
  font-size:10px;
}


/* ================= SOHO v3.6.25 ISOLATED MOBILE HEADER FIX ================= */

/* New controls are intentionally dormant on desktop. */
.soho-mobile-book,
.soho-mobile-navigation,
.soho-mobile-menu-backdrop{display:none;}

@media (max-width:1100px){
  body.soho-menu-open{overflow:hidden!important;}

  /* Header: logo + booking + burger on one stable row. */
  .soho-global-header,
  .soho-standalone-header{
    top:0!important;
    z-index:10001!important;
    height:92px!important;
    min-height:92px!important;
    background:linear-gradient(180deg,rgba(51,64,48,.94),rgba(51,64,48,.70) 72%,rgba(51,64,48,0))!important;
    overflow:visible!important;
  }
  .soho-global-header .soho-integrated-header-inner,
  .soho-standalone-header .soho-integrated-header-inner{
    width:calc(100% - 48px)!important;
    max-width:var(--soho-layout-max)!important;
    height:92px!important;
    min-height:92px!important;
    margin:0 auto!important;
    padding:8px 0 0!important;
    gap:12px!important;
  }
  .soho-global-header .soho-integrated-logo,
  .soho-standalone-header .soho-integrated-logo{
    width:116px!important;
    max-width:116px!important;
    height:auto!important;
  }
  .soho-global-header .soho-integrated-nav,
  .soho-global-header .soho-header-actions,
  .soho-standalone-header .soho-integrated-nav,
  .soho-standalone-header .soho-header-actions{display:none!important;}
  .soho-mobile-book{
    display:inline-flex!important;
    align-items:center;
    justify-content:center;
    width:112px;
    min-width:112px;
    height:42px;
    margin-left:auto;
    padding:0 13px;
    border:1px solid #9d7b48;
    border-radius:5px;
    background:linear-gradient(105deg,#8a6639 0%,#aa8750 34%,#c2a469 55%,#9b7545 100%);
    box-shadow:inset 0 1px 0 rgba(255,255,255,.10),0 2px 6px rgba(0,0,0,.12);
    color:#fff!important;
    font-size:11px;
    font-weight:800;
    line-height:1;
    letter-spacing:.04em;
    white-space:nowrap;
  }
  .soho-global-header .soho-integrated-menu-toggle,
  .soho-standalone-header .soho-integrated-menu-toggle{
    position:relative;
    z-index:10003;
    display:inline-flex!important;
    flex:0 0 44px;
    width:44px;
    height:44px;
    margin:0!important;
    padding:0;
    flex-direction:column;
    align-items:center;
    justify-content:center;
    gap:5px;
    appearance:none;
    border:1px solid rgba(255,255,255,.34);
    border-radius:5px;
    background:rgba(51,64,48,.82);
    color:#fff!important;
    cursor:pointer;
  }
  .soho-integrated-menu-toggle span{
    display:block;
    width:20px;
    height:2px;
    border-radius:2px;
    background:#fff;
    transition:transform .22s ease,opacity .18s ease;
  }
  .soho-integrated-header.is-menu-open .soho-integrated-menu-toggle span:nth-child(1){transform:translateY(7px) rotate(45deg);}
  .soho-integrated-header.is-menu-open .soho-integrated-menu-toggle span:nth-child(2){opacity:0;}
  .soho-integrated-header.is-menu-open .soho-integrated-menu-toggle span:nth-child(3){transform:translateY(-7px) rotate(-45deg);}
  .soho-mobile-navigation{
    position:fixed;
    z-index:10002;
    top:92px;
    right:24px;
    display:block;
    width:min(370px,calc(100vw - 48px));
    max-height:calc(100dvh - 116px);
    padding:10px 22px 18px;
    overflow:auto;
    border:1px solid rgba(213,185,118,.24);
    border-radius:9px;
    background:linear-gradient(145deg,#334030,#334030);
    box-shadow:0 24px 65px rgba(51,64,48,.42);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transform:translateY(-12px) scale(.985);
    transform-origin:top right;
    transition:opacity .2s ease,transform .2s ease,visibility .2s;
  }
  .soho-integrated-header.is-menu-open .soho-mobile-navigation{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
    transform:none;
  }
  .soho-mobile-navigation nav{display:flex;flex-direction:column;}
  .soho-mobile-navigation a{
    display:flex;
    align-items:center;
    min-height:51px;
    padding:0 4px;
    border-bottom:1px solid rgba(255,255,255,.12);
    color:#fff!important;
    font-size:13px;
    font-weight:750;
    letter-spacing:.05em;
  }
  .soho-mobile-navigation a:last-child{border-bottom:0;color:var(--soho-metal-gold-light)!important;}
  .soho-mobile-menu-backdrop{
    position:fixed;
    z-index:10000;
    inset:0;
    display:block;
    width:100%;
    height:100%;
    padding:0;
    border:0;
    background:rgba(51,64,48,.48);
    opacity:0;
    visibility:hidden;
    pointer-events:none;
    transition:opacity .2s ease,visibility .2s;
  }
  .soho-global-header-wrap.is-menu-open .soho-mobile-menu-backdrop{
    opacity:1;
    visibility:visible;
    pointer-events:auto;
  }
}

@media (max-width:700px){
  .soho-global-header,
  .soho-standalone-header{height:78px!important;min-height:78px!important;}
  .soho-global-header .soho-integrated-header-inner,
  .soho-standalone-header .soho-integrated-header-inner{
    width:calc(100% - 32px)!important;
    height:78px!important;
    min-height:78px!important;
    padding-top:3px!important;
    gap:8px!important;
  }
  .soho-global-header .soho-integrated-logo,
  .soho-standalone-header .soho-integrated-logo{width:104px!important;max-width:104px!important;}
  .soho-mobile-book{width:96px;min-width:96px;height:39px;padding:0 9px;font-size:10px;}
  .soho-global-header .soho-integrated-menu-toggle,
  .soho-standalone-header .soho-integrated-menu-toggle{flex-basis:40px;width:40px;height:40px;}
  .soho-mobile-navigation{
    top:78px;
    right:12px;
    width:calc(100vw - 24px);
    max-height:calc(100dvh - 90px);
    padding:8px 18px 14px;
  }
}

@media (max-width:380px){
  .soho-global-header .soho-integrated-header-inner{width:calc(100% - 24px)!important;gap:6px!important;}
  .soho-global-header .soho-integrated-logo{width:92px!important;max-width:92px!important;}
  .soho-mobile-book{width:88px;min-width:88px;font-size:9px;}
}

@media (prefers-reduced-motion:reduce){
  .soho-mobile-navigation,.soho-mobile-menu-backdrop,.soho-integrated-menu-toggle span{transition:none!important;}
}

/* ================= SOHO v3.6.31 SUBMENUS + PARTY PACKAGE POLISH ================= */
/* All compact SOHO tab/submenu families share the same centered, line-free,
   metallic-gold grow interaction on desktop, tablet and mobile. */
.soho-parties-tabs .soho-shell,
.soho-home-event-filters,
.soho-events-page-tabs .soho-shell,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs .soho-shell{
  justify-content:center!important;
}

.soho-parties-tabs .soho-shell{
  width:max-content!important;
  max-width:calc(100% - 32px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  overflow:visible!important;
}

.soho-parties-tabs a,
.soho-home-event-filters button,
.soho-events-page-tabs button,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a{
  transform-origin:center!important;
  will-change:transform!important;
  transition:transform .18s ease,color .18s ease!important;
}

.soho-parties-tabs a:hover,
.soho-parties-tabs a:focus-visible,
.soho-home-event-filters button:hover,
.soho-home-event-filters button:focus-visible,
.soho-events-page-tabs button:hover,
.soho-events-page-tabs button:focus-visible,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:focus-visible{
  transform:scale(1.09)!important;
  background-color:transparent!important;
  box-shadow:none!important;
  text-decoration:none!important;
}

@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .soho-parties-tabs a:hover,
  .soho-parties-tabs a:focus-visible,
  .soho-parties-tabs a.is-active,
  .soho-home-event-filters button:hover,
  .soho-home-event-filters button:focus-visible,
  .soho-home-event-filters button.is-active,
  .soho-events-page-tabs button:hover,
  .soho-events-page-tabs button:focus-visible,
  .soho-events-page-tabs button.is-active,
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover,
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:focus-visible,
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a.is-active{
    background-color:transparent!important;
    background-image:var(--soho-metal-gold-gradient)!important;
    background-size:180% 100%!important;
    background-position:center!important;
    -webkit-background-clip:text!important;
    background-clip:text!important;
    -webkit-text-fill-color:transparent!important;
    color:transparent!important;
  }
}

/* Use the actual SOHO green instead of the grey-green base variable. */
body.soho-parties-page-body .soho-party-packages-section{
  background:var(--soho-green-deep)!important;
}

/* More compact package cards with a restrained gold accent and the price
   anchored at the bottom regardless of description length. */
body.soho-parties-page-body .soho-party-packages{
  gap:18px!important;
  align-items:stretch!important;
}
body.soho-parties-page-body .soho-party-package{
  position:relative!important;
  display:flex!important;
  flex-direction:column!important;
  min-height:238px!important;
  padding:24px 22px 18px!important;
  overflow:hidden!important;
  background:linear-gradient(155deg,#fff 0%,#fff 68%,#f5f1e7 100%)!important;
  border:1px solid rgba(208,176,113,.48)!important;
  border-radius:10px!important;
  box-shadow:0 12px 30px rgba(51,64,48,.14)!important;
  transition:transform .2s ease,box-shadow .2s ease!important;
}
body.soho-parties-page-body .soho-party-package::before{
  content:""!important;
  position:absolute!important;
  top:0!important;
  left:0!important;
  right:0!important;
  height:4px!important;
  background:var(--soho-metal-gold-gradient)!important;
}
body.soho-parties-page-body .soho-party-package h3{
  margin:0 0 14px!important;
  padding-bottom:12px!important;
  border-bottom:1px solid rgba(182,142,83,.24)!important;
}
body.soho-parties-page-body .soho-party-package ul{
  margin:0 0 14px!important;
  padding-left:18px!important;
}
body.soho-parties-page-body .soho-party-package li::marker{
  color:var(--soho-metal-gold-base)!important;
}
body.soho-parties-page-body .soho-party-price{
  width:100%!important;
  margin:auto 0 0!important;
  padding-top:14px!important;
  border-top:1px solid rgba(182,142,83,.28)!important;
  color:var(--soho-green-deep)!important;
  font-size:23px!important;
  line-height:1.1!important;
}
body.soho-parties-page-body .soho-party-price small{
  color:#6f766f!important;
}

@media (hover:hover) and (pointer:fine){
  body.soho-parties-page-body .soho-party-package:hover{
    transform:translateY(-4px)!important;
    box-shadow:0 17px 36px rgba(51,64,48,.20)!important;
  }
}

@media (max-width:700px){
  .soho-parties-tabs .soho-shell{
    width:100%!important;
    max-width:100%!important;
    justify-content:center!important;
    padding-left:6px!important;
    padding-right:6px!important;
    overflow:visible!important;
  }
  .soho-parties-tabs a{
    min-width:0!important;
    padding-left:12px!important;
    padding-right:12px!important;
  }
  body.soho-parties-page-body .soho-party-package{
    min-height:215px!important;
    padding:22px 20px 17px!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .soho-parties-tabs a:hover,
  .soho-home-event-filters button:hover,
  .soho-events-page-tabs button:hover,
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover,
  body.soho-parties-page-body .soho-party-package:hover{
    transform:none!important;
  }
}

/* ================= SOHO v3.6.30 THREE-CARD HOMEPAGE CAROUSEL ================= */
/* Keep exactly one desktop/tablet row visible. Additional events stay available
   through the existing carousel arrows instead of wrapping into a second row. */
@media (min-width:701px){
  .soho-events-section .soho-events{
    --soho-event-gap:20px;
    display:flex!important;
    flex-wrap:nowrap!important;
    gap:var(--soho-event-gap)!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    scroll-behavior:smooth!important;
    overscroll-behavior-inline:contain!important;
    scrollbar-width:none!important;
  }
  .soho-events-section .soho-events::-webkit-scrollbar{
    display:none!important;
  }
  .soho-events-section .soho-card{
    flex:0 0 calc((100% - (var(--soho-event-gap) * 2)) / 3)!important;
    width:calc((100% - (var(--soho-event-gap) * 2)) / 3)!important;
    max-width:calc((100% - (var(--soho-event-gap) * 2)) / 3)!important;
    scroll-snap-align:start!important;
  }
}

@media (min-width:701px) and (max-width:1100px){
  .soho-events-section .soho-events{
    --soho-event-gap:16px;
  }
}


/* ================= SOHO v3.6.26 SCREENSHOT-BASED MOBILE FIX ================= */
@media (max-width:700px){
  /* Prevent accumulated desktop rules from forcing horizontal page overflow. */
  html,body{max-width:100%!important;overflow-x:hidden!important;}
  body.soho-elementor-page #page,
  body.soho-elementor-page #content,
  body.soho-elementor-page .site-content,
  body.soho-elementor-page .elementor{max-width:100%!important;overflow-x:hidden!important;}

  /* Homepage hero: readable lines inside the available screen width. */
  .soho-hero-with-header .hero-content{
    width:calc(100% - 36px)!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .soho-hero-with-header h1{
    width:100%!important;
    max-width:100%!important;
    margin-top:12px!important;
    font-size:clamp(38px,11vw,46px)!important;
    line-height:1.02!important;
    letter-spacing:0!important;
    white-space:normal!important;
    word-break:normal!important;
    overflow-wrap:normal!important;
  }
  .soho-hero-with-header p{max-width:100%!important;font-size:15px!important;line-height:1.55!important;}
  .soho-hero-with-header .soho-actions{gap:10px!important;}
  .soho-hero-with-header .soho-actions .soho-btn{min-width:0!important;padding-left:17px!important;padding-right:17px!important;}

  /* Four highlights: one calm, full-width row per item. */
  .elementor-widget-soho_feature_band .soho-feature-band{
    width:calc(100% - 32px)!important;
    max-width:none!important;
    margin-left:auto!important;
    margin-right:auto!important;
    transform:translateY(-34px)!important;
    margin-bottom:-34px!important;
    padding:10px 20px!important;
    border-radius:12px!important;
  }
  .elementor-widget-soho_feature_band .soho-feature-grid{
    display:grid!important;
    grid-template-columns:1fr!important;
  }
  .elementor-widget-soho_feature_band .soho-feature{
    display:grid!important;
    grid-template-columns:52px minmax(0,1fr)!important;
    grid-template-rows:auto auto auto!important;
    min-height:0!important;
    padding:22px 0!important;
    column-gap:16px!important;
    row-gap:4px!important;
    align-items:start!important;
    justify-items:start!important;
    text-align:left!important;
    border-right:0!important;
    border-bottom:1px solid rgba(255,255,255,.16)!important;
  }
  .elementor-widget-soho_feature_band .soho-feature:last-child{border-bottom:0!important;}
  .elementor-widget-soho_feature_band .soho-feature .soho-icon{
    grid-column:1!important;
    grid-row:1 / 4!important;
    width:44px!important;
    height:44px!important;
    margin:1px 0 0!important;
  }
  .elementor-widget-soho_feature_band .soho-feature h3{
    grid-column:2!important;
    grid-row:1!important;
    min-height:0!important;
    margin:0 0 3px!important;
    font-size:19px!important;
    line-height:1.18!important;
    white-space:normal!important;
  }
  .elementor-widget-soho_feature_band .soho-feature p{
    grid-column:2!important;
    grid-row:2!important;
    width:100%!important;
    max-width:none!important;
    min-height:0!important;
    margin:0!important;
    font-size:13px!important;
    line-height:1.55!important;
  }
  .elementor-widget-soho_feature_band .soho-feature .soho-arrow-link{
    grid-column:2!important;
    grid-row:3!important;
    align-self:start!important;
    justify-self:start!important;
    margin:9px 0 0!important;
    font-size:11px!important;
  }

  /* Events: one real card at a time, with a visible hint of the next card. */
  .soho-events-section{width:100%!important;margin-left:0!important;margin-right:0!important;overflow:hidden!important;}
  .soho-events-section .soho-shell{width:100%!important;max-width:none!important;padding:0 18px!important;}
  .soho-events-section .soho-events-heading{min-height:0!important;margin-bottom:18px!important;}
  .soho-events-section .soho-events-main-title{font-size:32px!important;line-height:1.08!important;}
  .soho-home-event-filters{justify-content:flex-start!important;overflow-x:auto!important;margin-bottom:18px!important;}
  .soho-events-carousel{display:block!important;width:100%!important;max-width:none!important;overflow:visible!important;}
  .soho-events-section .soho-events{
    display:flex!important;
    width:100%!important;
    max-width:none!important;
    grid-template-columns:none!important;
    justify-content:flex-start!important;
    gap:14px!important;
    overflow-x:auto!important;
    overflow-y:hidden!important;
    scroll-snap-type:x mandatory!important;
    -webkit-overflow-scrolling:touch;
    scrollbar-width:none!important;
    padding:0 0 5px!important;
  }
  .soho-events-section .soho-events::-webkit-scrollbar{display:none!important;}
  .soho-events-section .soho-card{
    flex:0 0 86%!important;
    width:86%!important;
    max-width:86%!important;
    min-width:0!important;
    scroll-snap-align:start!important;
  }
  .soho-events-section .soho-card-media img{height:190px!important;}
  .soho-events-section .soho-card-body{min-height:0!important;padding:24px 18px 18px!important;}
  .soho-events-section .soho-card h3{font-size:23px!important;line-height:1.08!important;}
  .soho-events-section .soho-card p{font-size:13px!important;line-height:1.55!important;}
  .soho-events-section .soho-carousel-btn{display:none!important;}

  /* Global contact/pre-footer: never retain the desktop two-column grid. */
  #soho-global-footer .soho-global-contact-section .soho-shell{width:calc(100% - 32px)!important;max-width:none!important;}
  #soho-global-footer .soho-global-contact-section .soho-contact-wrap{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:30px!important;
    width:100%!important;
    padding:0!important;
  }
  #soho-global-footer .soho-contact-form,
  #soho-global-footer .soho-contact-right{display:block!important;width:100%!important;min-width:0!important;}
  #soho-global-footer .soho-contact-form h2{font-size:32px!important;line-height:1.08!important;white-space:normal!important;}
  #soho-global-footer .soho-form .soho-two{display:grid!important;grid-template-columns:1fr!important;}
  #soho-global-footer .soho-map{width:100%!important;height:230px!important;margin:0 0 22px!important;}
  #soho-global-footer .soho-info{display:grid!important;grid-template-columns:1fr!important;gap:14px!important;width:100%!important;margin:0 0 22px!important;}
  #soho-global-footer .soho-book-card{
    display:grid!important;
    grid-template-columns:1fr!important;
    width:100%!important;
    min-height:0!important;
    margin:0!important;
    padding:20px!important;
  }
  #soho-global-footer .soho-book-card img{width:100%!important;height:180px!important;margin-top:16px!important;}

  /* Footer: brand full width, then useful information in two balanced columns. */
  #soho-global-footer,
  #soho-global-footer .soho-footer{height:auto!important;min-height:0!important;margin-bottom:0!important;}
  #soho-global-footer .soho-footer{padding:38px 0 24px!important;}
  #soho-global-footer .soho-footer .soho-shell{width:calc(100% - 36px)!important;max-width:none!important;}
  #soho-global-footer .soho-footer-grid{
    display:grid!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:34px 24px!important;
    align-items:start!important;
  }
  #soho-global-footer .soho-footer-brand{grid-column:1 / -1!important;}
  #soho-global-footer .soho-footer-grid > div{min-width:0!important;}
  #soho-global-footer .soho-footer h4{margin-top:0!important;}
  #soho-global-footer .soho-footer-nav a{width:auto!important;max-width:100%!important;white-space:normal!important;}
  #soho-global-footer .soho-newsletter{grid-column:1 / -1!important;}
  #soho-global-footer .soho-footer .small{
    margin-bottom:0!important;
    padding-bottom:0!important;
    flex-direction:column!important;
    gap:10px!important;
  }
}

@media (max-width:370px){
  #soho-global-footer .soho-footer-grid{grid-template-columns:1fr!important;}
  #soho-global-footer .soho-footer-brand,
  #soho-global-footer .soho-newsletter{grid-column:auto!important;}
}


/* ================= SOHO v3.6.27 REQUESTED LAYOUT CLEANUP ================= */

/* All SOHO navigation/filter links keep their component styling, but never
   inherit a theme underline, purple hover surface or iOS tap highlight. */
.soho-site a,
.soho-site a:hover,
.soho-site a:focus,
.soho-site a:active,
.soho-site a:visited,
.soho-home-event-filters button,
.soho-home-event-filters button:hover,
.soho-home-event-filters button:focus,
.soho-home-event-filters button:active,
.soho-home-event-filters button.is-active,
.soho-events-page-tabs button,
.soho-events-page-tabs button:hover,
.soho-events-page-tabs button:focus,
.soho-events-page-tabs button:active,
.soho-events-page-tabs button.is-active,
.soho-parties-tabs a,
.soho-parties-tabs a:hover,
.soho-parties-tabs a:focus,
.soho-parties-tabs a:active,
.soho-parties-tabs a.is-active,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:focus,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:active,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a.is-active{
  text-decoration:none!important;
  text-decoration-line:none!important;
  -webkit-text-decoration:none!important;
  -webkit-tap-highlight-color:transparent!important;
}
.soho-home-event-filters button:hover,
.soho-home-event-filters button:focus,
.soho-home-event-filters button:active,
.soho-home-event-filters button.is-active,
.soho-events-page-tabs button:hover,
.soho-events-page-tabs button:focus,
.soho-events-page-tabs button:active,
.soho-events-page-tabs button.is-active,
.soho-parties-tabs a:hover,
.soho-parties-tabs a:focus,
.soho-parties-tabs a:active,
.soho-parties-tabs a.is-active,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:focus,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:active,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a.is-active{
  background:transparent!important;
  box-shadow:none!important;
  outline:0!important;
}
.soho-home-event-filters button::after,
.soho-events-page-tabs button::after,
.soho-parties-tabs a::after,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a::after{
  content:none!important;
  display:none!important;
  background:transparent!important;
}
.soho-tabs .active{
  border-bottom:0!important;
  border-image:none!important;
}

/* The true footer is emitted at wp_footer. Collapse every remaining canvas
   wrapper tail so the page ends exactly where the green footer ends. */
#soho-global-footer{
  clear:both!important;
  display:block!important;
  width:100%!important;
  height:auto!important;
  min-height:0!important;
  margin:0!important;
  padding:0!important;
}
#soho-global-footer:last-child,
#soho-global-footer .soho-footer:last-child{
  margin-bottom:0!important;
}

/* PASSION block: balanced type/image proportions on tablet. */
@media (min-width:701px) and (max-width:1100px){
  .elementor-widget-soho_content_split .soho-section.soft .soho-shell.soho-split{
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:38px!important;
  }
  .elementor-widget-soho_content_split .soho-copy h2{
    font-size:clamp(31px,4vw,38px)!important;
    line-height:1.08!important;
  }
  .elementor-widget-soho_content_split .soho-split img{
    width:100%!important;
    height:360px!important;
    min-height:360px!important;
    object-fit:cover!important;
    object-position:center!important;
  }
}

@media (max-width:700px){
  /* PASSION block: text and image now form one calm vertical composition. */
  .elementor-widget-soho_content_split .soho-section.soft .soho-shell.soho-split{
    display:grid!important;
    grid-template-columns:minmax(0,1fr)!important;
    gap:24px!important;
    width:calc(100% - 36px)!important;
    max-width:none!important;
    padding-left:0!important;
    padding-right:0!important;
  }
  .elementor-widget-soho_content_split .soho-copy{
    width:100%!important;
    min-width:0!important;
  }
  .elementor-widget-soho_content_split .soho-copy h2{
    max-width:100%!important;
    margin-bottom:18px!important;
    font-size:clamp(31px,9.2vw,38px)!important;
    line-height:1.04!important;
  }
  .elementor-widget-soho_content_split .soho-copy p{
    margin-top:0!important;
    margin-bottom:14px!important;
    font-size:15px!important;
    line-height:1.62!important;
  }
  .elementor-widget-soho_content_split .soho-copy .soho-btn{
    width:auto!important;
    max-width:100%!important;
    margin-top:4px!important;
  }
  .elementor-widget-soho_content_split .soho-split img{
    display:block!important;
    width:100%!important;
    height:auto!important;
    min-height:0!important;
    aspect-ratio:4 / 3!important;
    object-fit:cover!important;
    object-position:center!important;
    border-radius:10px!important;
  }

  /* Footer top row: contact now sits beside the logo/brand as requested. */
  #soho-global-footer .soho-footer-grid{
    grid-template-areas:
      "brand contact"
      "navigation hours"
      "newsletter newsletter"!important;
    grid-template-columns:minmax(0,1fr) minmax(0,1fr)!important;
    gap:34px 22px!important;
  }
  #soho-global-footer .soho-footer-brand{grid-area:brand!important;grid-column:auto!important;}
  #soho-global-footer .soho-footer-contact{grid-area:contact!important;}
  #soho-global-footer .soho-footer-navigation{grid-area:navigation!important;}
  #soho-global-footer .soho-footer-hours{grid-area:hours!important;}
  #soho-global-footer .soho-newsletter{grid-area:newsletter!important;grid-column:auto!important;}
  #soho-global-footer .soho-footer-contact p{
    overflow-wrap:anywhere!important;
    word-break:normal!important;
  }
}

@media (max-width:370px){
  #soho-global-footer .soho-footer-grid{
    grid-template-areas:"brand" "contact" "navigation" "hours" "newsletter"!important;
    grid-template-columns:1fr!important;
  }
}


/* ================= SOHO v3.6.28 EVENTS FILTER PARITY ================= */
/* The dedicated Events & Nyheder filter now uses the exact compact visual
   rhythm of the homepage event filter. Filtering behaviour is unchanged. */
.soho-events-page-tabs{
  padding:18px 0 20px!important;
  background:#fff!important;
  border:0!important;
  box-shadow:none!important;
}
.soho-events-page-tabs .soho-shell{
  min-height:0!important;
  display:flex!important;
  align-items:center!important;
  justify-content:center!important;
  gap:4px!important;
  margin:0 auto!important;
  padding-top:0!important;
  padding-bottom:0!important;
  overflow-x:auto!important;
  scrollbar-width:none!important;
}
.soho-events-page-tabs .soho-shell::-webkit-scrollbar{display:none!important;}
.soho-events-page-tabs button{
  position:relative!important;
  flex:0 0 auto!important;
  min-height:0!important;
  margin:0!important;
  padding:10px 25px 13px!important;
  appearance:none!important;
  border:0!important;
  border-radius:0!important;
  background:transparent!important;
  box-shadow:none!important;
  color:#334030!important;
  font:700 12px/1 Inter,Arial,sans-serif!important;
  letter-spacing:.035em!important;
  white-space:nowrap!important;
  cursor:pointer!important;
  transition:transform .18s ease,color .18s ease!important;
}
.soho-events-page-tabs button:hover,
.soho-events-page-tabs button:focus{
  transform:scale(1.05)!important;
  color:var(--soho-metal-gold-mid)!important;
  background:transparent!important;
}
.soho-events-page-tabs button.is-active{
  color:var(--soho-metal-gold-mid)!important;
  background:transparent!important;
}

@media (max-width:700px){
  .soho-events-page-tabs{padding:16px 0 18px!important;}
  .soho-events-page-tabs .soho-shell{
    justify-content:flex-start!important;
    width:100%!important;
    max-width:none!important;
    padding-left:18px!important;
    padding-right:18px!important;
  }
  .soho-events-page-tabs button{
    padding-left:18px!important;
    padding-right:18px!important;
  }
}


/* ================= SOHO v3.6.29 GLOBAL MENU HOVER + ACTIVE FIX ================= */
/* v3.6.27 removed the background shorthand to suppress a theme's purple hover.
   Metallic labels use background-clipped text, so removing that image made the
   active ALLE EVENTS label transparent. Restore the metallic text itself while
   keeping every menu surface transparent. */
.soho-home-event-filters,
.soho-events-page-tabs .soho-shell{
  justify-content:center!important;
}
.soho-events-page-tabs .soho-shell{
  width:max-content!important;
  max-width:calc(100% - 48px)!important;
  margin-left:auto!important;
  margin-right:auto!important;
  overflow:visible!important;
}

.soho-home-event-filters button,
.soho-events-page-tabs button{
  background-color:transparent!important;
  background-image:none!important;
  -webkit-background-clip:border-box!important;
  background-clip:border-box!important;
  -webkit-text-fill-color:currentColor!important;
  color:#334030!important;
}

@supports ((-webkit-background-clip:text) or (background-clip:text)){
  .soho-home-event-filters button:hover,
  .soho-home-event-filters button:focus-visible,
  .soho-home-event-filters button.is-active,
  .soho-events-page-tabs button:hover,
  .soho-events-page-tabs button:focus-visible,
  .soho-events-page-tabs button.is-active{
    background-color:transparent!important;
    background-image:var(--soho-metal-gold-gradient)!important;
    background-size:180% 100%!important;
    background-position:center!important;
    -webkit-background-clip:text!important;
    background-clip:text!important;
    -webkit-text-fill-color:transparent!important;
    color:transparent!important;
  }
}

/* One global interaction language: transparent surface, metallic-gold text
   and a visible but controlled grow effect. */
.soho-site nav a,
.soho-home-event-filters button,
.soho-events-page-tabs button,
.soho-parties-tabs a,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a,
.soho-site .soho-btn:not(.soho-carousel-btn),
.soho-form button,
.soho-newsletter-form button{
  transform-origin:center!important;
  transition:transform .18s ease,color .18s ease,box-shadow .18s ease!important;
}
.soho-site nav a:hover,
.soho-site nav a:focus-visible,
.soho-home-event-filters button:hover,
.soho-home-event-filters button:focus-visible,
.soho-events-page-tabs button:hover,
.soho-events-page-tabs button:focus-visible,
.soho-parties-tabs a:hover,
.soho-parties-tabs a:focus-visible,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:focus-visible,
.soho-site .soho-btn:not(.soho-carousel-btn):hover,
.soho-site .soho-btn:not(.soho-carousel-btn):focus-visible,
.soho-form button:hover,
.soho-form button:focus-visible,
.soho-newsletter-form button:hover,
.soho-newsletter-form button:focus-visible{
  transform:scale(1.06)!important;
}
.soho-site nav a:hover,
.soho-site nav a:focus-visible,
.soho-parties-tabs a:hover,
.soho-parties-tabs a:focus-visible,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:focus-visible{
  color:var(--soho-metal-gold-mid)!important;
  background-color:transparent!important;
  box-shadow:none!important;
  text-decoration:none!important;
}

@media (max-width:700px){
  /* All four event choices fit and remain genuinely centered on phones. */
  .soho-home-event-filters,
  .soho-events-page-tabs .soho-shell{
    width:100%!important;
    max-width:100%!important;
    justify-content:center!important;
    gap:2px!important;
    overflow:visible!important;
    padding-left:8px!important;
    padding-right:8px!important;
  }
  .soho-home-event-filters button,
  .soho-events-page-tabs button{
    min-width:0!important;
    padding:10px 10px 13px!important;
    font-size:10.5px!important;
    letter-spacing:.025em!important;
  }
}

@media (max-width:360px){
  .soho-home-event-filters button,
  .soho-events-page-tabs button{
    padding-left:8px!important;
    padding-right:8px!important;
    font-size:9.5px!important;
  }
}

@media (prefers-reduced-motion:reduce){
  .soho-site nav a:hover,
  .soho-home-event-filters button:hover,
  .soho-events-page-tabs button:hover,
  .soho-parties-tabs a:hover,
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover,
  .soho-site .soho-btn:not(.soho-carousel-btn):hover,
  .soho-form button:hover,
  .soho-newsletter-form button:hover{
    transform:none!important;
  }
}

/* v3.6.31 final cascade guard: tab menus grow more visibly than the general
   navigation rule above, including when they are links inside a <nav>. */
.soho-site .soho-parties-tabs a:hover,
.soho-site .soho-parties-tabs a:focus-visible,
.soho-site .soho-home-event-filters button:hover,
.soho-site .soho-home-event-filters button:focus-visible,
.soho-site .soho-events-page-tabs button:hover,
.soho-site .soho-events-page-tabs button:focus-visible,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover,
body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:focus-visible{
  transform:scale(1.09)!important;
}

@media (prefers-reduced-motion:reduce){
  .soho-site .soho-parties-tabs a:hover,
  .soho-site .soho-home-event-filters button:hover,
  .soho-site .soho-events-page-tabs button:hover,
  body.soho-menu-page-body .soho-menu-jump.soho-menu-jump-tabs a:hover{
    transform:none!important;
  }
}
