/* LevnadsBalans, designlager (warm-craft). Self-hostade typsnitt, inga CDN. */

/* ---- Typsnitt (self-hosted, GDPR-säkert) ---- */
@font-face{font-family:'Lora';font-style:normal;font-weight:400;font-display:swap;src:url('fonts/lora-400.woff2') format('woff2');}
@font-face{font-family:'Lora';font-style:normal;font-weight:500;font-display:swap;src:url('fonts/lora-500.woff2') format('woff2');}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:600;font-display:swap;src:url('fonts/playfair-display-600.woff2') format('woff2');}
@font-face{font-family:'Playfair Display';font-style:normal;font-weight:700;font-display:swap;src:url('fonts/playfair-display-700.woff2') format('woff2');}

:root{
  --lb-green:#6f7d59;
  --lb-green-deep:#515d40;
  --lb-earth:#b07a52;
  --lb-earth-deep:#95643f;
  --lb-cream:#faf8f3;
  --lb-cream-2:#f1ede3;
  --lb-ink:#2f3429;
  --lb-muted:#5c6152;
  --lb-line:#e3ddcf;
}

/* ---- Bas-typografi (skonsam override på Astra) ---- */
body{font-family:'Lora',Georgia,serif;color:var(--lb-ink);background:var(--lb-cream);}
h1,h2,h3,h4,.site-title{font-family:'Playfair Display',Georgia,serif;color:var(--lb-green-deep);font-weight:700;line-height:1.15;}
a{color:var(--lb-earth-deep);}

/* ---- Knappar ---- */
.lb-btn,.wp-block-button__link{
  display:inline-block;background:var(--lb-green);color:#fff !important;text-decoration:none;
  padding:13px 26px;border-radius:999px;font-weight:600;font-family:'Lora',serif;
  transition:background .2s,transform .2s;border:none;cursor:pointer;
}
.lb-btn:hover,.wp-block-button__link:hover{background:var(--lb-green-deep);color:#fff !important;transform:translateY(-1px);}
.lb-btn.ghost{background:transparent;color:var(--lb-green-deep) !important;border:2px solid var(--lb-green);padding:11px 24px;}
.lb-btn.ghost:hover{background:var(--lb-green);color:#fff !important;}

/* ---- Sid-hero (full-bredd, H1 + SEO-text, valfri bakgrundsbild) ---- */
.lb-pagehero{position:relative;background:linear-gradient(160deg,#6f7d59 0%,#515d40 100%);background-size:cover;background-position:center;padding:104px 24px;text-align:center;}
.lb-pagehero.has-img:before{content:"";position:absolute;inset:0;background:linear-gradient(rgba(38,44,30,.58),rgba(38,44,30,.5));}
.lb-pagehero .inner{position:relative;max-width:840px;margin:0 auto;}
.lb-pagehero h1{color:#fff;font-size:clamp(2rem,4.2vw,3rem);margin:0 0 14px;}
.lb-pagehero p{color:#f2efe6;font-size:1.2rem;margin:0 0 22px;}
.lb-pagehero .lb-btn{background:var(--lb-earth);}
.lb-pagehero .lb-btn:hover{background:var(--lb-earth-deep);}

/* ---- Hero (startsida: full-bredd band, centrerat innehåll) ---- */
.lb-hero{background:linear-gradient(160deg,#f4f1e8 0%,#e6ebdb 100%);padding:90px 24px;margin:0;}
.lb-hero-grid{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1.05fr .95fr;gap:56px;align-items:center;}
.lb-hero .kicker,.kicker{text-transform:uppercase;letter-spacing:3px;font-size:13px;color:var(--lb-earth-deep);font-weight:700;margin-bottom:10px;}
.lb-hero h1{font-size:clamp(2rem,4vw,3rem);margin:0 0 16px;}
.lb-hero p{font-size:1.2rem;color:var(--lb-muted);margin:0 0 26px;}
.lb-hero-img img{width:100%;height:auto;border-radius:16px;display:block;box-shadow:0 18px 40px rgba(80,90,60,.18);}
.lb-cta-row{display:flex;gap:14px;flex-wrap:wrap;}

/* ---- Sektioner (centrerat, läsbart) ---- */
.lb-section{max-width:1140px;margin:0 auto;padding:64px 24px;}
.lb-section-head{text-align:center;max-width:640px;margin:0 auto 30px;}
.lb-section-head h2{font-size:2rem;margin:0 0 10px;}
.lb-section-head p{color:var(--lb-muted);font-size:1.1rem;margin:0;}

/* ---- USP / fördelar ---- */
.lb-usp{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:22px;}
.lb-usp .item{background:#fff;border:1px solid var(--lb-line);border-radius:14px;padding:30px 26px;text-align:center;}
.lb-usp .item .ic{display:inline-flex;align-items:center;justify-content:center;width:72px;height:72px;border-radius:50%;background:#eef0e6;margin:0 auto 6px;}
.lb-usp .item .ic svg{width:38px;height:38px;color:var(--lb-green);}
.lb-usp .item h3{font-size:1.2rem;margin:10px 0 8px;}
.lb-usp .item p{color:var(--lb-muted);margin:0;}

/* ---- CTA-band (full-bredd) ---- */
.lb-band{background:var(--lb-green-deep);color:#fff;padding:72px 24px;text-align:center;margin:0;}
.lb-band h2{color:#fff;font-size:2rem;margin:0 auto 12px;max-width:760px;}
.lb-band p{color:#e7ecdd;font-size:1.15rem;margin:0 auto 24px;max-width:680px;}
.lb-band .lb-btn{background:var(--lb-earth);}
.lb-band .lb-btn:hover{background:var(--lb-earth-deep);}

/* ---- Citat + textsektion ---- */
.lb-quote-big{font-family:'Playfair Display',serif;font-size:1.4rem;line-height:1.5;color:var(--lb-green-deep);border-left:4px solid var(--lb-earth);padding:6px 0 6px 24px;margin:0 0 40px;font-style:italic;}
.lb-quote-big cite{display:block;font-family:'Lora',serif;font-size:.95rem;font-style:normal;color:var(--lb-muted);margin-top:14px;}
.lb-prose h2{font-size:1.7rem;margin:36px 0 12px;}
.lb-prose p{margin:0 0 16px;}
.lb-disclaimer{font-style:italic;color:#7d8270;font-size:.92rem;margin-top:28px;border-top:1px solid var(--lb-line);padding-top:16px;}

/* ---- Om-sida (Louise) ---- */
.lb-about{max-width:1140px;margin:0 auto;padding:64px 24px;display:grid;grid-template-columns:.8fr 1.2fr;gap:48px;align-items:center;}
.lb-about img{width:100%;height:auto;border-radius:16px;display:block;box-shadow:0 14px 34px rgba(80,90,60,.16);}

/* ---- Tjänster: breda 1/1-rader (berikade) ---- */
.lb-srows{display:flex;flex-direction:column;gap:30px;}
.lb-srow{display:grid;grid-template-columns:.95fr 1.05fr;gap:0;align-items:stretch;background:#fff;border:1px solid var(--lb-line);border-radius:18px;overflow:hidden;box-shadow:0 8px 26px rgba(80,90,60,.07);}
.lb-srow-img{min-height:280px;}
.lb-srow-img img{width:100%;height:100%;object-fit:cover;display:block;}
.lb-srow-body{padding:36px 40px;display:flex;flex-direction:column;justify-content:center;gap:12px;}
.lb-srow-title{font-size:1.7rem;margin:0;}
.lb-srow-text{color:var(--lb-muted);margin:0;font-size:1.05rem;}
.lb-srow-price{font-family:'Playfair Display',serif;font-weight:700;color:var(--lb-green-deep);font-size:1.2rem;margin:0;}
.lb-srow .lb-cta-row{margin-top:6px;}
.lb-srow--alt .lb-srow-img{order:2;}
@media(max-width:782px){
  .lb-srow,.lb-srow--alt{grid-template-columns:1fr;}
  .lb-srow--alt .lb-srow-img{order:0;}
  .lb-srow-img{min-height:200px;}
  .lb-srow-body{padding:26px 24px;}
}

/* ---- Tjänstekort (legacy grid) ---- */
.lb-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(260px,1fr));gap:24px;}
.lb-card{border:1px solid var(--lb-line);border-radius:14px;overflow:hidden;background:#fff;display:flex;flex-direction:column;transition:box-shadow .2s,transform .2s;}
.lb-card:hover{box-shadow:0 14px 30px rgba(80,90,60,.14);transform:translateY(-2px);}
.lb-card-img img{width:100%;height:190px;object-fit:cover;display:block;}
.lb-card-body{padding:22px;display:flex;flex-direction:column;gap:10px;flex:1;}
.lb-card-title{margin:0;font-size:1.3rem;}
.lb-card-text{margin:0;color:var(--lb-muted);flex:1;}
.lb-card-price{margin:0;font-weight:700;font-size:1.15rem;color:var(--lb-green-deep);font-family:'Playfair Display',serif;}

/* ---- Evenemang ---- */
.lb-events{display:flex;flex-direction:column;gap:20px;}
.lb-event{border:1px solid var(--lb-line);border-radius:14px;padding:24px;background:#fff;}
.lb-event-meta{color:var(--lb-earth);font-weight:600;text-transform:uppercase;letter-spacing:1px;font-size:.85rem;}
.lb-event-plats{margin-left:10px;color:var(--lb-muted);text-transform:none;letter-spacing:0;}
.lb-event-title{margin:6px 0 10px;}
.lb-event--past{opacity:.9;background:#fbfaf6;}
.lb-event-badge{display:inline-block;margin-left:10px;background:var(--lb-line);color:var(--lb-muted);border-radius:999px;padding:2px 11px;font-size:.7rem;letter-spacing:.6px;text-transform:uppercase;vertical-align:middle;}
.lb-empty{color:var(--lb-muted);font-style:italic;}

/* ---- FAQ ---- */
.lb-faq{max-width:760px;margin:0 auto;}
.lb-faq-item{border-bottom:1px solid var(--lb-line);}
.lb-faq-item summary{cursor:pointer;font-weight:600;font-size:1.12rem;padding:16px 0;list-style:none;font-family:'Playfair Display',serif;color:var(--lb-green-deep);display:flex;justify-content:space-between;align-items:center;}
.lb-faq-item summary::-webkit-details-marker{display:none;}
.lb-faq-item summary:after{content:"+";color:var(--lb-green);font-weight:700;font-size:1.4rem;margin-left:14px;}
.lb-faq-item[open] summary:after{content:"\2212";}
.lb-faq-svar{padding:0 0 18px;color:var(--lb-muted);}

/* ---- Alla sidor har egen hero/H1: dölj Astras titel-banner (tål Elementor-reset) ---- */
.page .ast-single-entry-banner,
.home .ast-single-entry-banner{display:none !important;}

/* ---- Tjänst-single: dölj Astras meta-banner ("Av / datum") + prev/next ---- */
.single-lb_tjanst .ast-single-entry-banner,
.single-lb_tjanst .entry-banner,
.single-lb_tjanst .entry-meta,
.single-lb_tjanst .ast-single-post-meta,
.single-lb_tjanst .post-navigation,
.single-lb_tjanst .ast-single-related-posts-container{display:none !important;}

/* ---- Tjänst-single pris/CTA-box ---- */
.lb-single-meta{background:var(--lb-cream-2);border:1px solid var(--lb-line);border-radius:14px;padding:22px;margin:24px 0;display:flex;justify-content:space-between;align-items:center;gap:16px;flex-wrap:wrap;}
.lb-single-meta .pris{font-family:'Playfair Display',serif;font-size:1.5rem;color:var(--lb-green-deep);font-weight:700;}

@media(max-width:782px){
  .lb-hero-grid,.lb-about{grid-template-columns:1fr;}
  .lb-hero{padding:40px 24px;}
  .lb-hero-img{order:-1;}
}

/* ---- Bokningsmodal ---- */
.lb-hp{position:absolute !important;left:-9999px !important;width:1px;height:1px;opacity:0;}
.lb-modal{position:fixed;inset:0;background:rgba(40,46,32,.55);display:none;z-index:9999;padding:24px;overflow:auto;}
.lb-modal.open{display:flex;align-items:flex-start;justify-content:center;}
.lb-modal-inner{position:relative;background:#fff;border-radius:18px;max-width:560px;width:100%;margin:auto;padding:34px 34px 30px;box-shadow:0 30px 70px rgba(0,0,0,.3);}
.lb-modal-close{position:absolute;top:12px;right:16px;background:none;border:none;font-size:1.9rem;line-height:1;color:#9a9a8c;cursor:pointer;}
.lb-modal-inner h3{margin:0 0 8px;font-size:1.6rem;}
.lb-modal-intro{color:var(--lb-muted);margin:0 0 18px;}
.lb-modal-price{font-family:'Playfair Display',serif;color:var(--lb-green-deep);font-weight:700;font-size:1.15rem;margin:0 0 12px;}
.lb-book-form .lb-field{display:block;margin:0 0 14px;font-weight:600;color:var(--lb-ink);font-size:.95rem;}
.lb-book-form input[type=text],.lb-book-form input[type=email],.lb-book-form input[type=date],.lb-book-form select,.lb-book-form textarea{display:block;width:100%;margin-top:5px;padding:10px 12px;border:1px solid var(--lb-line);border-radius:10px;font:inherit;font-weight:400;background:#fff;box-sizing:border-box;}
.lb-field2{display:grid;grid-template-columns:1fr 1fr;gap:14px;}
.lb-book-form fieldset.lb-field{border:1px solid var(--lb-line);border-radius:12px;padding:12px 14px;}
.lb-book-form legend{font-weight:700;padding:0 6px;}
.lb-radio{display:flex;align-items:center;gap:8px;font-weight:400;padding:6px 0;cursor:pointer;}
.lb-radio em{margin-left:auto;font-style:normal;font-weight:700;color:var(--lb-green-deep);}
.lb-modal-help{font-size:.85rem;color:var(--lb-muted);margin:4px 0 16px;}
.lb-modal-privacy{font-size:.8rem;color:var(--lb-muted);margin:0 0 14px;line-height:1.5;}
.lb-modal-privacy a{color:inherit;text-decoration:underline;}
.lb-book-form .lb-btn{width:100%;text-align:center;}
.lb-book-thanks{text-align:center;padding:24px 0 8px;}
.lb-book-thanks h3{color:var(--lb-green-deep);}
@media(max-width:560px){.lb-field2{grid-template-columns:1fr;}.lb-modal-inner{padding:28px 22px;}}

/* ---- Footer (3 kolumner, mustig) ---- */
.site-footer{display:none !important;} /* dölj Astras enkla footer */
.lb-footer{background:#3f4a33;color:#e9ece0;}
.lb-footer-inner{max-width:1140px;margin:0 auto;padding:66px 24px 42px;display:grid;grid-template-columns:1.3fr 1fr 1.2fr;gap:52px;}
.lb-footer h3{color:#fff;font-family:'Playfair Display',serif;font-size:1.2rem;margin:0 0 20px;position:relative;padding-bottom:12px;}
.lb-footer h3:after{content:"";position:absolute;left:0;bottom:0;width:44px;height:3px;background:var(--lb-earth-soft,#c89a78);border-radius:2px;}
.lb-foot-logo{font-family:'Playfair Display',serif;font-size:1.7rem;color:#fff;margin-bottom:14px;}
.lb-footer p{color:#ccd1c1;line-height:1.65;margin:0 0 16px;}
.lb-footer a{color:#e9ece0;text-decoration:none;transition:color .2s;}
.lb-footer a:hover{color:#fff;}
.lb-footer ul{list-style:none;padding:0;margin:0;}
.lb-footer ul li{margin:0 0 12px;}
.lb-foot-contact li{display:flex;align-items:flex-start;gap:11px;}
.lb-foot-contact svg{width:18px;height:18px;color:var(--lb-earth);flex:0 0 auto;margin-top:3px;}
.lb-foot-social{display:inline-flex;align-items:center;gap:9px;font-weight:600;}
.lb-foot-social svg{width:20px;height:20px;color:var(--lb-earth);}
.lb-foot-small{font-size:.85rem;color:#c4cab5;margin-top:14px;}
.lb-footer-bottom{border-top:1px solid rgba(255,255,255,.13);max-width:1140px;margin:0 auto;padding:20px 24px;display:flex;justify-content:space-between;gap:12px;flex-wrap:wrap;font-size:.85rem;color:#c4cab5;}
.lb-footer-bottom a{text-decoration:underline;}
@media(max-width:782px){.lb-footer-inner{grid-template-columns:1fr;gap:36px;}.lb-footer-bottom{flex-direction:column;}}

/* ---- Header-meny: brand-färger, inga blå hover/active ---- */
.main-header-bar .main-header-menu a,
.ast-hfb-header .main-header-menu a,
.ast-hfb-header .menu-item a,
.main-navigation .menu-link{color:var(--lb-ink);}
.main-header-bar .main-header-menu a:hover,
.main-header-bar .main-header-menu .current-menu-item > a,
.main-header-bar .main-header-menu .current_page_item > a,
.ast-hfb-header .menu-item a:hover,
.ast-hfb-header .current-menu-item > a,
.ast-hfb-header .current_page_item > a,
.main-navigation .menu-link:hover,
.main-navigation .current-menu-item > .menu-link{color:var(--lb-green-deep) !important;}

/* ---- Kontaktsida ---- */
.lb-contact-grid{display:grid;grid-template-columns:1fr 1.1fr;gap:48px;align-items:start;}
.lb-contact-info{background:#fff;border:1px solid var(--lb-line);border-radius:16px;padding:32px 34px;box-shadow:0 8px 26px rgba(80,90,60,.07);}
.lb-contact-info h2{font-size:1.5rem;margin:0 0 22px;}
.lb-contact-list{list-style:none;padding:0;margin:0 0 18px;}
.lb-contact-list li{display:flex;align-items:flex-start;gap:14px;margin:0 0 18px;}
.lb-contact-list svg{width:22px;height:22px;color:var(--lb-earth);flex:0 0 auto;margin-top:3px;}
.lb-contact-list a{color:var(--lb-ink);text-decoration:none;font-weight:600;}
.lb-contact-list a:hover{color:var(--lb-green-deep);}
.lb-contact-list .lbl{display:block;font-size:.74rem;text-transform:uppercase;letter-spacing:1px;color:var(--lb-muted);font-weight:600;margin-bottom:1px;}
.lb-contact-note{color:var(--lb-muted);font-size:.95rem;margin:0 0 20px;}
.lb-contact-map{border-radius:14px;overflow:hidden;border:1px solid var(--lb-line);line-height:0;}
.lb-contact-map iframe{width:100%;height:230px;border:0;display:block;filter:saturate(.9);}

/* Karta bakom klick, så Google inte kontaktas vid sidvisning */
.lb-map-consent{line-height:1.5;min-height:230px;display:flex;flex-direction:column;align-items:center;justify-content:center;gap:6px;text-align:center;padding:22px 18px;background:var(--lb-sand,#f4f1ea);}
.lb-map-consent p{margin:0;}
.lb-map-consent-text{font-size:.85rem;color:var(--lb-muted);max-width:42ch;}
.lb-map-consent .lb-btn{margin-top:6px;}
.lb-map-consent-alt{font-size:.85rem;margin-top:2px;}
.lb-contact-form-wrap{background:#fff;border:1px solid var(--lb-line);border-radius:16px;padding:32px 34px;box-shadow:0 8px 26px rgba(80,90,60,.07);}
.lb-contact-form-wrap h2{font-size:1.5rem;margin:0 0 20px;}
@media(max-width:880px){.lb-contact-grid{grid-template-columns:1fr;gap:30px;}}

/* ---- Fluent Forms: brand-lyft ---- */
.fluentform .ff-el-input--label label,.fluentform .ff-el-group label{font-family:'Lora',serif;font-weight:600;color:var(--lb-ink);}
.fluentform input[type=text],.fluentform input[type=email],.fluentform input[type=tel],.fluentform textarea,.fluentform select{border:1px solid var(--lb-line) !important;border-radius:10px !important;padding:11px 13px !important;font:inherit !important;background:#fff !important;box-shadow:none !important;}
.fluentform textarea{min-height:130px;}
.fluentform input:focus,.fluentform textarea:focus,.fluentform select:focus{border-color:var(--lb-green) !important;outline:none !important;box-shadow:0 0 0 3px rgba(111,125,89,.15) !important;}
.fluentform .ff-btn-submit{background:var(--lb-green) !important;border:none !important;border-radius:999px !important;padding:13px 30px !important;font-weight:600 !important;font-family:'Lora',serif !important;transition:background .2s;}
.fluentform .ff-btn-submit:hover{background:var(--lb-green-deep) !important;}

/* ---- Responsivitet & Core Web Vitals (2026 best practice) ---- */
/* Fluid typografi (mjuk skalning, mobil-först-vänlig) */
body{font-size:clamp(1rem,0.96rem + 0.25vw,1.1rem);line-height:1.65;}
.lb-section-head h2,.lb-band h2{font-size:clamp(1.6rem,1.15rem + 1.6vw,2rem);}
.lb-prose h2,.lb-srow-title,.lb-contact-info h2,.lb-contact-form-wrap h2{font-size:clamp(1.35rem,1.1rem + 1vw,1.7rem);}

/* Responsiv spacing (mindre luft på mobil) */
.lb-section,.lb-about{padding-top:clamp(40px,5vw,64px);padding-bottom:clamp(40px,5vw,64px);}
.lb-pagehero{padding-top:clamp(64px,8vw,104px);padding-bottom:clamp(64px,8vw,104px);}
.lb-hero{padding-top:clamp(48px,7vw,90px);padding-bottom:clamp(48px,7vw,90px);}
.lb-band{padding-top:clamp(48px,6vw,72px);padding-bottom:clamp(48px,6vw,72px);}

/* Tap targets >=48px + avstånd (Googles krav) */
.lb-btn{min-height:48px;display:inline-flex;align-items:center;justify-content:center;}
.lb-modal-close{width:46px;height:46px;display:flex;align-items:center;justify-content:center;}
@media(max-width:782px){
  .main-header-menu .menu-item > a,.ast-hfb-header .menu-item a{min-height:48px;display:flex;align-items:center;}
  .lb-contact-list li,.lb-foot-contact li{min-height:44px;}
  .lb-footer ul li a,.lb-contact-list a{display:inline-block;padding:3px 0;}
  .lb-cta-row{gap:12px;width:100%;}
  .lb-cta-row .lb-btn{width:100%;}
  .lb-hero h1{font-size:clamp(1.9rem,7vw,2.4rem);}
}

/* Skärmläsar-/crawler-text (synligt dold) */
.lb-sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border:0;}
