:root{
  --header-height:6.25rem;
  --brand-beige:#d8c4a6;
  --brand-beige-hover:#bda578;
  --brand-beige-active:#ad9464;
  --brand-dark:#1f2937;
  --text-body:#1f2937;
  --chrome-bg:#1f2937;
  /* Återställning: ta bort "Poppins, " nedan för att återgå till systemfont */
  --font-primary:Poppins,system-ui,-apple-system,Segoe UI,Roboto,Helvetica,Arial,sans-serif;
  --bs-font-sans-serif:var(--font-primary);
  --bs-body-font-family:var(--font-primary);
  --bs-body-color:var(--text-body);
}
html{height:100%;}
body{
  font-family:var(--font-primary);
  color:var(--text-body);
  min-height:100%;
  min-height:100vh;
  display:flex;
  flex-direction:column;
}
/* Enhetlig brödtextfärg (ersätter Bootstrap-grått) */
.text-secondary,
.text-muted,
.small-muted{
  color:var(--text-body)!important;
}
.navbar.navbar-sw.bg-dark,
.navbar.navbar-sw{
  background-color:var(--chrome-bg)!important;
}
/* Sticky footer: main tar upp resterande höjd så footern ligger längst ner
   utan att täcka innehåll när sidan är kort. */
body > main{flex:1 0 auto;}
body > .footer{flex-shrink:0;}
/* Desktop + iPad: skala text/knappar till ~90% (som webbläsarzoom 90%). Mobil oförändrad. */
@media (min-width:768px){
  html{font-size:90%;}
}
.navbar-brand{font-weight:800; letter-spacing:.2px; margin-right:1.5rem; padding-top:0; padding-bottom:0;}
.navbar.navbar-sw{padding-top:.4rem; padding-bottom:.4rem; align-items:center;}
.navbar-logo-wide{height:58px; width:auto; display:block; max-width:min(520px, 80vw);}
@media (min-width:992px){
  .navbar-logo-wide{height:78px; max-width:640px;}
}
.campaign-banner{
  background:var(--brand-beige);
  color:var(--brand-dark);
  padding:.55rem 0;
  font-weight:600;
  border-bottom:1px solid rgba(15,23,42,.12);
  box-shadow:0 2px 4px rgba(15,23,42,.06);
}
.campaign-banner .container{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  flex-wrap:wrap;
  text-align:center;
}
.campaign-banner__text{
  letter-spacing:.2px;
}
.campaign-banner__cta{
  display:inline-block;
  padding:.35rem 1rem;
  border-radius:.375rem;
  text-decoration:none;
  font-size:.9rem;
  font-weight:700;
  line-height:1.4;
  transition:filter .15s ease, transform .05s ease;
  border:1px solid transparent;
}
.campaign-banner__cta:hover,
.campaign-banner__cta:focus{
  text-decoration:none;
  filter:brightness(1.08);
}
.campaign-banner__cta:active{
  transform:translateY(1px);
}
@media (max-width:575.98px){
  .campaign-banner{padding:.5rem 0; font-size:.9rem;}
  .campaign-banner .container{gap:.5rem;}
  .campaign-banner__cta{font-size:.85rem; padding:.3rem .8rem;}
}
.campaign-preview{
  display:flex;
  align-items:center;
  justify-content:center;
  gap:1rem;
  flex-wrap:wrap;
  padding:.55rem 1rem;
  border-radius:.5rem;
  font-weight:600;
  border:1px solid rgba(15,23,42,.12);
}
.campaign-preview__cta{
  display:inline-block;
  padding:.35rem 1rem;
  border-radius:.375rem;
  background:var(--brand-dark);
  color:#fff;
  font-size:.9rem;
  font-weight:700;
  line-height:1.4;
}
.hero{
  position:relative;
  overflow:hidden;
  background:#0b1220;
  color:#fff;
  min-height:0;
}
.hero-bg{
  position:absolute;
  inset:0;
  width:100%;
  height:100%;
  object-fit:cover;
  object-position:center center;
  z-index:0;
}
.hero-overlay{
  position:absolute;
  inset:0;
  z-index:1;
  background:
    radial-gradient(1200px 600px at 20% 10%, rgba(216,196,166,.12), transparent 60%),
    radial-gradient(900px 500px at 80% 0%, rgba(14,165,233,.07), transparent 55%),
    linear-gradient(180deg, rgba(11,18,32,.45) 0%, rgba(15,23,42,.28) 50%, rgba(11,18,32,.50) 100%);
}
.hero > .container{
  position:relative;
  z-index:2;
  padding-top:1.25rem;
  padding-bottom:1.5rem;
}
@media (min-width:1200px){
  .hero{min-height:min(62vh, 680px);}
  .hero > .container{
    padding-top:4.5rem;
    padding-bottom:4.5rem;
    display:flex;
    flex-direction:column;
    justify-content:center;
    min-height:inherit;
  }
}
.hero .badge{
  background:rgba(11,18,32,.82);
  border:1px solid rgba(216,196,166,.45);
  color:var(--brand-beige);
  backdrop-filter:blur(4px);
  font-size:.8125rem;
  font-weight:500;
}
.hero h1.display-5{
  font-size:clamp(1.625rem, 1.15rem + 1.35vw, 2.125rem);
  font-weight:700;
  line-height:1.2;
  letter-spacing:-.01em;
}
/* Hero-typografi: mobil-först (kompakt), större hierarki från md */
.hero .hero-kicker,
.hero .lead.mb-2{
  font-size:1.0625rem;
  font-weight:700;
  line-height:1.4;
  color:#fff;
}
.hero .hero-body,
.hero .hero-body.lead,
.hero .cms-richtext--hero,
.hero .lead:not(.mb-2):not(.hero-kicker){
  font-size:.9375rem;
  font-weight:400;
  line-height:1.5;
  color:rgba(255,255,255,.92);
}
.hero .cms-richtext--hero p{
  font-size:inherit;
  font-weight:inherit;
  line-height:inherit;
  color:inherit;
  margin-bottom:.65rem;
}
.hero .cms-richtext--hero p:last-child{margin-bottom:0;}
.hero .hero-area{
  font-size:.9375rem;
  font-weight:400;
  line-height:1.5;
  color:rgba(255,255,255,.92);
}
/* iOS/Safari autolänkar telefonnummer – behåll vitt i hero */
.hero a.hero-tel,
.hero a[href^="tel:"],
.hero .hero-area a,
.hero a[x-apple-data-detectors],
.hero .hero-area a[x-apple-data-detectors]{
  color:inherit !important;
  -webkit-text-fill-color:currentColor !important;
  text-decoration:none !important;
}
.hero a.hero-tel:hover,
.hero a.hero-tel:focus,
.hero a.hero-tel:visited,
.hero a[href^="tel:"]:hover,
.hero a[href^="tel:"]:visited{
  color:#fff !important;
  -webkit-text-fill-color:#fff !important;
  text-decoration:underline !important;
  text-underline-offset:.15em;
}
@media (min-width:768px){
  .hero .hero-kicker,
  .hero .lead.mb-2{
    font-size:clamp(1.125rem, 1.02rem + .4vw, 1.25rem);
    line-height:1.4;
  }
  .hero .hero-body,
  .hero .hero-body.lead,
  .hero .cms-richtext--hero,
  .hero .lead:not(.mb-2):not(.hero-kicker){
    font-size:1.0625rem;
    line-height:1.55;
  }
  .hero .cms-richtext--hero p{margin-bottom:.75rem;}
  .hero .hero-area{
    font-size:1rem;
    line-height:1.55;
  }
  /* Hero-knappar: lite större på desktop, samma som vanliga knappar på mobil */
  .hero .hero-actions .btn{
    padding:.45rem 1.1rem;
    font-size:1.0625rem;
  }
}
.hero h1.display-5,
.hero .hero-kicker,
.hero .hero-body,
.hero .lead{
  text-shadow:0 1px 14px rgba(11,18,32,.35);
}
.hero .small.text-white{
  color:rgba(255,255,255,.85);
}
.hero h1 span{color:var(--brand-beige);}
#tjanster,
#service-utombordare{
  scroll-margin-top:5.5rem;
}
.card{border:0; box-shadow: 0 10px 30px rgba(2,6,23,.08); border-radius: 18px;}
.service-card-primary{
  box-shadow: 0 14px 36px rgba(2,6,23,.12);
}
.service-card-secondary{
  box-shadow: 0 8px 22px rgba(2,6,23,.06);
  opacity: .98;
}
.service-card-badge{
  align-self: flex-start;
  background: var(--brand-beige);
  color: #1f2937;
  font-weight: 600;
  letter-spacing: .02em;
  font-size: .8rem;
  line-height: 1.3;
  padding: .32rem .6rem;
  border-radius: .35rem;
  white-space: normal;
  text-align: left;
}
.service-card-price{
  line-height: 1.4;
  margin-top: auto;
  padding-top: 1rem;
  padding-bottom: 1rem;
  margin-bottom: 0;
  color:var(--text-body);
}
@media (min-width: 768px){
  .service-card-price{ white-space: nowrap; }
}
#tjanster .row > [class*="col-"]{
  display:flex;
}
#tjanster .row > [class*="col-"] > .card{
  width:100%;
}
@media (max-width:767.98px){
  #tjanster .section-title,
  #tjanster .text-secondary,
  #tjanster > .container > .mb-5{
    text-align:left!important;
  }
}
.home-split .row{
  --bs-gutter-x:2.5rem;
  --bs-gutter-y:2rem;
}
@media (min-width:992px){
  .home-split .row{
    --bs-gutter-x:4rem;
    --bs-gutter-y:2.5rem;
  }
}
.section-title{letter-spacing:.2px; color:var(--text-body);}
.icon-pill{
  display:inline-flex; align-items:center; gap:.5rem;
  padding:.35rem .7rem; border-radius:999px;
  background: rgba(31,41,55,.06);
}
.footer{background:var(--chrome-bg); color:#cbd5e1;}
.footer a{color:#e2e8f0; text-decoration:none;}
.footer a:hover{text-decoration:underline;}
.text-link{
  color:inherit;
  font:inherit;
  font-weight:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
}
.text-link:hover{
  color:inherit;
  text-decoration-color:var(--brand-beige);
}
.btn-outline-light,
.btn-outline-dark{
  font-weight:700;
}
.btn-brand{
  --bs-btn-color:#1f2937;
  --bs-btn-bg:var(--brand-beige);
  --bs-btn-border-color:var(--brand-beige);
  --bs-btn-hover-color:#1f2937;
  --bs-btn-hover-bg:var(--brand-beige-hover);
  --bs-btn-hover-border-color:var(--brand-beige-hover);
  --bs-btn-focus-shadow-rgb:189,165,120;
  --bs-btn-active-color:#1f2937;
  --bs-btn-active-bg:var(--brand-beige-active);
  --bs-btn-active-border-color:var(--brand-beige-active);
  --bs-btn-disabled-color:rgba(31,41,55,.65);
  --bs-btn-disabled-bg:var(--brand-beige);
  --bs-btn-disabled-border-color:var(--brand-beige);
  background-color:var(--brand-beige)!important;
  border-color:var(--brand-beige)!important;
  color:#1f2937!important;
  font-weight:700;
  opacity:1!important;
  filter:none!important;
  box-shadow:none;
}
.btn-brand:hover,
.btn-brand:focus,
.btn-brand:focus-visible{
  color:#1f2937!important;
  background-color:var(--brand-beige-hover)!important;
  border-color:var(--brand-beige-hover)!important;
  opacity:1!important;
  filter:none!important;
  box-shadow:none;
}
.btn-brand:active,
.btn-brand.active,
.show>.btn-brand.dropdown-toggle{
  color:#1f2937!important;
  background-color:var(--brand-beige-active)!important;
  border-color:var(--brand-beige-active)!important;
  opacity:1!important;
  filter:none!important;
  box-shadow:none;
}
.accordion-button:not(.collapsed){
  background-color:var(--brand-beige);
  color:#1f2937;
  box-shadow:inset 0 -1px 0 rgba(31,41,55,.12);
}
.accordion-button:focus{
  border-color:var(--brand-beige);
  box-shadow:0 0 0 .25rem rgba(216,196,166,.45);
}
.accordion-button:not(.collapsed)::after{
  background-image:url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%231f2937'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
}
.sw-hero-logo{
  max-width: 520px;
  width: 100%;
  height: auto;
  filter: drop-shadow(0 18px 30px rgba(0,0,0,.35));
  margin-left:auto;margin-right:auto;display:block;
}
.hero-img-wrap{
  background: rgba(255,255,255,.06);
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 24px;
  padding: 16px;display:flex;align-items:center;justify-content:center;text-align:center;
}
.hero-logo{display:block;margin:0 auto;max-width:520px;width:100%;height:auto;}
.section-img{width:100%;height:auto;border-radius:1rem;}
/* Tjänstesidor – desktop: två kolumner (intro+innehåll | bild+sidebar), mobil: display:contents + order */
@media (max-width:991.98px){
  .service-page{
    display:flex;
    flex-direction:column;
    /* display:contents + .row negativ marginal annars kant-till-kant utan col-padding */
    margin-left:0;
    margin-right:0;
  }
  .service-page__column-main,
  .service-page__column-side{
    display:contents;
  }
  .service-page__intro,
  .service-page__hero,
  .service-page__cta-mobile{
    padding-left:calc(var(--bs-gutter-x)*.5);
    padding-right:calc(var(--bs-gutter-x)*.5);
    width:100%;
    box-sizing:border-box;
  }
  .service-page__intro{order:1;}
  .service-page__hero{
    order:2;
    margin-bottom:.425rem;
  }
  .service-page__cta-mobile{
    order:3;
    margin-bottom:.3rem;
  }
  .service-page__main{order:4;}
  .service-page__sidebar{order:5;}
  .service-page__footer-actions{
    order:6;
    flex-direction:column!important;
    margin-top:.5rem;
    width:100%;
    max-width:100%;
    box-sizing:border-box;
  }
  .service-page__main>.card:first-child{
    margin-top:0!important;
  }
  .service-page__sidebar .card{
    margin-top:0!important;
  }
  .service-page__footer-actions .btn{
    width:100%!important;
    max-width:100%;
    flex:0 0 auto!important;
  }
}
.booking-wizard .step-indicator{display:flex;gap:.5rem;margin-bottom:1.5rem;}
.booking-wizard .step-dot{
  flex:1;height:4px;border-radius:999px;background:#e2e8f0;
}
.booking-wizard .step-dot.active{background:var(--brand-beige);}
.booking-wizard .step-dot.done{background:#94a3b8;}
.booking-wizard .wizard-step{display:none;}
.booking-wizard .wizard-step.active{display:block;}
.booking-wizard .choose-date-later-label{
  font-size:1.05rem;
  font-weight:600;
  color:#0f172a;
}

.date-option{
  --bs-btn-hover-color:#212529;
  --bs-btn-hover-bg:rgba(216,196,166,.08);
  --bs-btn-hover-border-color:var(--brand-beige);
  --bs-btn-active-color:#212529;
  --bs-btn-active-bg:rgba(216,196,166,.12);
  --bs-btn-active-border-color:var(--brand-beige);
  cursor:pointer;
  transition:box-shadow .15s,border-color .15s,background-color .15s,color .15s;
  color:#212529;
}
.date-option:hover,
.date-option:focus,
.date-option:active,
.date-option.selected,
.date-option.selected:hover,
.date-option.selected:focus,
.date-option.selected:active{
  color:#212529!important;
}
.date-option.selected{border-color:var(--brand-beige)!important;box-shadow:0 0 0 2px rgba(216,196,166,.35);background-color:rgba(216,196,166,.12);}
.date-option:hover{border-color:var(--brand-beige);background-color:rgba(216,196,166,.08);}
.date-quick-picks{display:grid;gap:.5rem;}
@media (min-width:768px){
  .date-quick-picks{grid-template-columns:repeat(3,minmax(0,1fr));}
}
.date-quick-picks .date-option{min-height:44px;width:100%;}
.date-month-picker__toolbar{
  display:flex;
  align-items:stretch;
  gap:.5rem;
}
.date-month-picker__arrow{
  flex:0 0 auto;
  min-width:44px;
  min-height:44px;
  padding:.5rem .65rem;
  font-size:1.35rem;
  line-height:1;
  font-weight:700;
}
.date-month-picker__arrow:disabled{
  opacity:.35;
}
.date-month-picker__center{
  flex:1 1 auto;
  min-width:0;
  display:flex;
}
.date-month-picker__current{
  flex:1 1 auto;
  min-width:0;
  display:block;
  text-align:center;
  font-weight:700;
  font-size:1rem;
  line-height:1.25;
  padding:.65rem .75rem;
  border-radius:.5rem;
  background:#fff;
  border:1px solid #212529;
  color:#212529!important;
  -webkit-text-fill-color:#212529;
}
.date-month-picker__current span{
  display:block;
  width:100%;
  color:inherit;
}
.date-month-picker__window{
  display:none!important;
  flex:1 1 auto;
  min-width:0;
  gap:.5rem;
}
@media (min-width:768px){
  .date-month-picker__current{display:none!important;}
  .date-month-picker__window{display:flex!important;}
}
.date-month-picker__window .date-month-btn{
  flex:1 1 0;
  min-width:0;
  min-height:44px;
  padding:.5rem .4rem;
  border-radius:.5rem;
  font-weight:600;
  font-size:.9rem;
  border:1px solid #212529;
  background:#fff;
  color:#212529;
  transition:box-shadow .15s,border-color .15s,background-color .15s;
  white-space:nowrap;
  overflow:hidden;
  text-overflow:ellipsis;
}
.date-month-picker__window .date-month-btn:hover{
  border-color:var(--brand-beige);
  background-color:rgba(216,196,166,.08);
}
.date-month-picker__window .date-month-btn.active{
  border-color:var(--brand-beige)!important;
  background:var(--brand-beige);
  color:#1f2937;
  box-shadow:0 0 0 2px rgba(216,196,166,.35);
}
.date-month-grid{display:grid;gap:.5rem;grid-template-columns:1fr;}
@media (min-width:576px){
  .date-month-grid{grid-template-columns:repeat(2,minmax(0,1fr));}
}
@media (min-width:768px){
  .date-month-grid{grid-template-columns:repeat(3,minmax(0,1fr));}
}
.date-month-grid .date-option{min-height:44px;width:100%;}
.booking-sidebar{
  width:100%;
}
@media (max-width:991.98px){
  .booking-sidebar{
    margin-bottom:1.5rem;
  }
  .booking-mobile-nav .btn{
    min-height:44px;
  }
  body.booking-price-sticky-open .booking-sidebar{
    padding-bottom:calc(4.75rem + var(--booking-sticky-offset, 0px) + env(safe-area-inset-bottom,0px));
  }
}
.booking-price-sticky{
  position:fixed;left:0;right:0;bottom:0;z-index:1040;
  background:#fff;border-top:1px solid rgba(15,23,42,.1);
  box-shadow:0 -8px 24px rgba(15,23,42,.08);
  padding-bottom:env(safe-area-inset-bottom,0px);
  transition:bottom .15s ease-out;
}
.booking-price-sticky--keyboard{
  padding-bottom:0;
}
.booking-price-sticky[hidden]{display:none!important;}
.booking-price-sticky__inner{
  display:flex;align-items:center;justify-content:space-between;gap:1rem;
  padding:.75rem 1rem;max-width:100%;
}
.booking-price-sticky__label{
  font-size:.75rem;font-weight:600;color:#64748b;
  text-transform:uppercase;letter-spacing:.04em;line-height:1.2;
}
.booking-price-sticky__amount{
  font-size:1.35rem;font-weight:800;color:var(--brand-dark,#0f172a);
  line-height:1.15;letter-spacing:-.02em;
}
.booking-price-sticky__amount.is-placeholder{color:#94a3b8;font-weight:700;}
.booking-price-sticky__more{
  flex-shrink:0;border:0;background:transparent;padding:.35rem 0;
  font-size:.875rem;font-weight:600;color:var(--brand-dark,#0f172a);
  text-decoration:underline;text-underline-offset:2px;
}
@media (max-width:991.98px){
  body.booking-price-sticky-open #bookingForm{
    padding-bottom:calc(4.75rem + var(--booking-sticky-offset, 0px) + env(safe-area-inset-bottom,0px));
  }
}
.booking-price-service-name{font-size:1rem;font-weight:700;color:var(--brand-dark,#0f172a);line-height:1.3;}
.booking-price-service-date{font-size:.875rem;color:#64748b;margin-top:.25rem;}
.booking-price-line-main-label{font-size:.8rem;font-weight:600;color:#64748b;line-height:1.3;}
.booking-price-line-main-amount{font-size:.95rem;font-weight:600;color:#0f172a;margin-top:.15rem;}
.booking-price-total-label{font-size:.8rem;font-weight:600;color:#64748b;text-transform:uppercase;letter-spacing:.04em;margin-bottom:.35rem;}
.booking-price-total-amount{font-size:1.85rem;font-weight:800;color:var(--brand-dark,#0f172a);line-height:1.15;letter-spacing:-.02em;}
.booking-summary .summary-label,.booking-price-summary .summary-label,.booking-details-summary .summary-label{color:#64748b;font-size:.8rem;margin-bottom:.15rem;}
.booking-summary .summary-value,.booking-price-summary .summary-value,.booking-details-summary .summary-value{font-size:.95rem;margin-bottom:.75rem;}
.booking-summary .summary-empty,.booking-price-summary .summary-empty,.booking-details-summary .summary-empty{color:#94a3b8;font-size:.9rem;}
.booking-summary .summary-total,.booking-price-summary .summary-total,.booking-details-summary .summary-total{font-size:1rem;font-weight:600;}
.booking-details-note{font-size:.875rem;line-height:1.5;color:#64748b;}

@media (max-width:575.98px){
  .booking-price-service-name{font-size:.95rem;}
  .booking-price-total-amount{font-size:1.6rem;}
}
.field-info{
  display:inline-flex;align-items:center;justify-content:center;
  width:1.1rem;height:1.1rem;border-radius:50%;
  border:1px solid #64748b;font-size:.65rem;font-weight:700;font-style:italic;
  color:#64748b;cursor:help;margin-left:.25rem;vertical-align:middle;
}
.booking-wizard,
.booking-wizard #boatFields,
.booking-wizard #boatFields .row,
.booking-wizard .field-wrap{
  overflow:visible;
}
.booking-wizard .form-select{
  width:100%;
  max-width:100%;
}
.booking-addon-list{
  margin-top:.25rem;
}
.booking-addon{
  margin-bottom:1rem;
}
.booking-addon__check{
  padding-left:1.75em;
  min-height:1.5rem;
}
.booking-addon__label{
  display:block;
  line-height:1.45;
  cursor:pointer;
}
.booking-addon__title{
  display:block;
  font-weight:500;
  color:#212529;
}
.booking-addon__meta{
  display:block;
  margin-top:.2rem;
  font-size:.875rem;
  font-weight:400;
  color:#64748b;
}
.booking-addon__note,
.booking-addon__footnote{
  margin-top:.35rem;
  padding-left:1.75em;
  line-height:1.45;
  max-width:40rem;
}
.booking-addon__footnote{
  margin-top:1rem;
}
.booking-success-summary dt{color:#64748b;font-weight:500;}
.booking-success-summary dd{margin-bottom:.75rem;}
.admin-sidebar{min-height:calc(100vh - 56px);background:#0f172a;}
.admin-sidebar a{color:#cbd5e1;text-decoration:none;display:block;padding:.5rem .75rem;border-radius:.5rem;}
.admin-sidebar a:hover,.admin-sidebar a.active{background:rgba(216,196,166,.15);color:#fff;}
.admin-sidebar__group{
  font-size:.68rem;
  font-weight:600;
  letter-spacing:.06em;
  text-transform:uppercase;
  color:#64748b;
  margin:1rem .75rem .35rem;
  padding-top:.35rem;
  border-top:1px solid rgba(148,163,184,.2);
}
.admin-sidebar__group:first-of-type{margin-top:.75rem;}
.admin-bookings-accordion{--bs-accordion-border-color:#e2e8f0;--bs-accordion-btn-focus-box-shadow:0 0 0 .2rem rgba(216,196,166,.35);}
.admin-booking-item{border-radius:.75rem!important;overflow:hidden;margin-bottom:.75rem;border:1px solid #e2e8f0!important;}
.admin-booking-item--highlight{border-color:#f59e0b!important;box-shadow:0 0 0 1px rgba(245,158,11,.25);}
.admin-booking-item .accordion-button{padding:1rem 1.25rem;background:#fff;}
.admin-booking-item .accordion-button:not(.collapsed){background:#faf8f5;color:#0f172a;box-shadow:inset 0 -1px 0 #e2e8f0;}
.admin-bookings-list{margin-bottom:1rem;}
.admin-booking-header{padding:0 .25rem .65rem;border-bottom:1px solid #e2e8f0;margin-bottom:.5rem;}
.admin-booking-summary{display:grid;grid-template-columns:minmax(7rem,auto) minmax(6rem,auto) minmax(6rem,1fr) minmax(5rem,1fr) minmax(5.5rem,1fr) minmax(5rem,auto) minmax(5.5rem,auto);gap:.5rem 1rem;align-items:center;width:100%;padding-right:2.5rem;}
.admin-booking-summary--header{font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b;padding-right:2.5rem;}
.admin-booking-summary__ref{font-weight:700;font-family:ui-monospace,SFMono-Regular,Menlo,monospace;font-size:.9rem;}
.admin-booking-summary__date,.admin-booking-summary__service,.admin-booking-summary__customer,.admin-booking-summary__place{white-space:nowrap;overflow:hidden;text-overflow:ellipsis;}
.admin-booking-summary__price{font-weight:600;}
.admin-booking-summary__status{display:flex;justify-content:flex-start;}
.admin-booking-summary__price-note{display:block;font-size:.75rem;font-weight:500;color:#64748b;}
.admin-booking-badge{display:inline-flex;align-items:center;padding:.2rem .55rem;border-radius:999px;font-size:.75rem;font-weight:600;white-space:nowrap;}
.admin-booking-badge--pending{background:#fef3c7;color:#92400e;}
.admin-booking-badge--awaiting{background:#fee2c7;color:#9a3412;}
.admin-booking-badge--confirmed{background:#dcfce7;color:#166534;}

.admin-booking-badge--awaiting-date{background:#e7f1ff;color:#0b5ed7;}
.admin-booking-badge--cancelled{background:#e2e8f0;color:#475569;}
.admin-booking-subheading{margin:1.25rem 0 .5rem;font-size:.9rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#475569;}
.admin-booking-subheading:first-child{margin-top:0;}
.admin-booking-extras{display:flex;flex-direction:column;gap:.5rem;margin-bottom:.75rem;}
.admin-booking-extra{display:grid;grid-template-columns:2fr 1fr auto;gap:.5rem;align-items:center;}
.admin-booking-extra__amount{max-width:8rem;}
.admin-booking-actions{display:flex;flex-wrap:wrap;gap:.5rem;margin-top:1rem;}
@media (max-width:575.98px){
  .admin-booking-extra{grid-template-columns:1fr;}
}
.admin-booking-detail{background:#fafafa;}
.admin-booking-panel{background:#fff;border:1px solid #e2e8f0;border-radius:.75rem;padding:1rem 1.25rem;height:100%;}
.admin-booking-panel--actions{display:flex;flex-wrap:wrap;align-items:end;justify-content:space-between;gap:1rem;}
.admin-booking-panel__title{margin:0 0 .85rem;font-size:1rem;font-weight:700;}
.admin-booking-dl{display:grid;grid-template-columns:minmax(7rem,9rem) 1fr;gap:.35rem 1rem;margin:0;}
.admin-booking-dl dt{color:#64748b;font-weight:500;margin:0;}
.admin-booking-dl dd{margin:0;word-break:break-word;}
.admin-booking-dl a{color:#0f172a;text-decoration:underline;text-underline-offset:2px;}
.admin-booking-link-note{display:block;font-size:.75rem;color:#64748b;margin-top:.15rem;}
.admin-booking-price-lines{display:grid;gap:.75rem;margin-bottom:1rem;}
.admin-booking-price-line{padding-bottom:.75rem;border-bottom:1px solid #eef2f7;}
.admin-booking-price-line:last-child{border-bottom:0;padding-bottom:0;}
.admin-booking-price-line__label{display:flex;justify-content:space-between;gap:1rem;}
.admin-booking-price-line__discount{display:flex;flex-wrap:wrap;align-items:center;gap:.5rem;margin-top:.5rem;}
.admin-booking-status-form{display:flex;flex-wrap:wrap;gap:.75rem;align-items:center;}
.admin-booking-status-form .form-select{max-width:14rem;}
@media (max-width:991.98px){
  .admin-booking-header{display:none;}
  .admin-booking-summary{grid-template-columns:1fr 1fr;gap:.35rem .75rem;padding-right:.5rem;}
  .admin-booking-summary__ref{grid-column:1/-1;}
  .admin-booking-summary__place{grid-column:1/-1;}
  .admin-booking-summary__price,.admin-booking-summary__status,.admin-booking-badge{grid-column:1/-1;}
}
@media (max-width:575.98px){
  .admin-booking-item .accordion-button{padding:.85rem;}
  .admin-booking-dl{grid-template-columns:1fr;}
  .admin-booking-dl dt{margin-top:.5rem;}
}
.admin-dates-page{display:flex;flex-direction:column;gap:1rem;min-height:calc(100vh - 8rem);}
.admin-dates-page__head{display:flex;flex-wrap:wrap;align-items:flex-start;justify-content:space-between;gap:1rem;}
.admin-dates-calendar{border:1px solid #e2e8f0;border-radius:1rem;overflow:hidden;flex:1;display:flex;flex-direction:column;}
.admin-dates-calendar__toolbar{display:flex;align-items:center;justify-content:space-between;gap:1rem;padding:1rem 1.25rem;border-bottom:1px solid #e2e8f0;background:#faf8f5;}
.admin-dates-calendar__title-wrap{text-align:center;}
.admin-dates-calendar__title{margin:0;font-size:1.35rem;font-weight:700;}
.admin-dates-calendar__subtitle{font-size:.875rem;color:#64748b;}
.admin-dates-calendar__nav{min-width:8.5rem;text-align:center;}
.admin-dates-calendar__nav--disabled{display:inline-block;min-width:8.5rem;text-align:center;color:#94a3b8;padding:.375rem .75rem;}
.admin-dates-calendar__legend{display:flex;flex-wrap:wrap;gap:1rem 1.5rem;padding:.85rem 1.25rem;border-bottom:1px solid #eef2f7;background:#fff;}
.admin-dates-legend-item{display:inline-flex;align-items:center;gap:.5rem;font-size:.875rem;color:#475569;}
.admin-dates-legend-swatch{width:1rem;height:1rem;border-radius:.25rem;border:1px solid rgba(15,23,42,.08);}
.admin-dates-legend-swatch--scheduled{background:#dcefd8;}
.admin-dates-legend-swatch--open{background:#eef2f7;}
.admin-dates-legend-swatch--manual{background:#fff;border:2px dashed #cbd5e1;}
.admin-dates-legend-swatch--blocked{background:#ffedd5;}
.admin-dates-legend-swatch--out{background:#fafafa;}
.admin-dates-calendar__weekdays{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#e2e8f0;border-bottom:1px solid #e2e8f0;}
.admin-dates-calendar__weekday{padding:.65rem .5rem;text-align:center;font-size:.75rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em;color:#64748b;background:#fff;}
.admin-dates-calendar__grid{display:grid;grid-template-columns:repeat(7,minmax(0,1fr));gap:1px;background:#e2e8f0;flex:1;min-height:28rem;}
.admin-dates-day{background:#fff;min-height:7.5rem;padding:.65rem;display:flex;flex-direction:column;gap:.45rem;}
.admin-dates-day--pad{background:#fafafa;min-height:7.5rem;}
.admin-dates-day--scheduled{background:#eef8eb;}
.admin-dates-day--scheduled_full{background:#e8f3e4;}
.admin-dates-day--open{background:#f8fafc;}
.admin-dates-day--manual{background:#fff;}
.admin-dates-day--manual.admin-dates-day--open{box-shadow:inset 0 0 0 1px #cbd5e1;}
.admin-dates-day--out_of_pool{background:#fcfcfc;color:#94a3b8;}
.admin-dates-day--blocked{background:#fff7ed;}
.admin-dates-day__tag{display:inline-block;margin-left:.15rem;padding:.05rem .35rem;border-radius:.25rem;background:#e2e8f0;color:#475569;font-size:.65rem;font-weight:600;text-transform:uppercase;vertical-align:middle;}
.admin-dates-day__top{display:flex;align-items:baseline;justify-content:space-between;gap:.35rem;}
.admin-dates-day__num{font-size:1.15rem;font-weight:700;line-height:1;}
.admin-dates-day__weekday{font-size:.72rem;color:#64748b;text-transform:uppercase;}
.admin-dates-day__note{margin:0;font-size:.78rem;color:#475569;line-height:1.35;flex:1;}
.admin-dates-day--out_of_pool .admin-dates-day__note,.admin-dates-day--blocked .admin-dates-day__note{color:#94a3b8;}
.admin-dates-day__actions{margin-top:auto;display:flex;flex-direction:column;gap:.35rem;}
.admin-dates-day__actions .btn{font-size:.72rem;padding:.35rem .5rem;}
.admin-dates-day__block-btn{--bs-btn-color:#b45309;--bs-btn-border-color:#f59e0b;--bs-btn-hover-bg:#fffbeb;--bs-btn-hover-border-color:#d97706;--bs-btn-hover-color:#92400e;}
@media (max-width:991.98px){
  .admin-dates-calendar__grid,.admin-dates-day,.admin-dates-day--pad{min-height:6.5rem;}
  .admin-dates-calendar__nav,.admin-dates-calendar__nav--disabled{min-width:auto;font-size:.875rem;}
}
@media (max-width:767.98px){
  .admin-dates-calendar__toolbar{flex-direction:column;}
  .admin-dates-calendar__nav,.admin-dates-calendar__nav--disabled{width:100%;}
  .admin-dates-day__weekday{display:none;}
  .admin-dates-day__note{font-size:.72rem;}
}

.booking-notice{position:fixed;inset:0;z-index:1085;display:flex;align-items:center;justify-content:center;padding:1rem;}
.booking-notice[hidden]{display:none!important;}
body.booking-notice-open{overflow:hidden;}
.booking-notice-backdrop{position:absolute;inset:0;background:rgba(15,23,42,.55);backdrop-filter:blur(2px);}
.booking-notice-panel{position:relative;width:min(100%,22rem);background:#fff;border-radius:1rem;padding:1.35rem 1.35rem 1.15rem;box-shadow:0 18px 48px rgba(15,23,42,.18);border:1px solid rgba(15,23,42,.08);animation:booking-notice-in .22s ease-out;}
.booking-notice-title{color:var(--brand-dark,#0f172a);}
.booking-notice-message{color:#475569;font-size:.975rem;line-height:1.5;margin-bottom:1.15rem!important;}
.booking-notice-ok{width:100%;margin-top:.25rem;}
.booking-notice-highlight{outline:2px solid var(--brand-beige,#c4a574);outline-offset:3px;border-radius:.375rem;transition:outline-color .2s ease;}
@keyframes booking-notice-in{from{opacity:0;transform:translateY(8px) scale(.98);}to{opacity:1;transform:translateY(0) scale(1);}}
@media (max-width:575.98px){
  .booking-notice{align-items:flex-end;padding:.75rem;}
  .booking-notice-panel{width:100%;border-bottom-left-radius:0;border-bottom-right-radius:0;padding-bottom:calc(1.15rem + env(safe-area-inset-bottom,0px));}
}

/* Pris-tabeller på tjänstesidor */
.service-price-table__price{
  white-space:nowrap;
  display:inline-block;
}
.service-price-table td,.service-price-table th{vertical-align:middle;}
.service-price-table__label-short{display:none;}

/* HK-matris: tydlig kolumnfördelning (desktop + mobil) */
.service-price-table--matrix{
  table-layout:fixed;
  width:100%;
}
.service-price-table__col-hk{
  width:38%;
  min-width:5.75rem;
}
.service-price-table__col-price{
  width:31%;
}
.service-price-table--matrix th:first-child,
.service-price-table--matrix td:first-child{
  width:38%;
  min-width:5.75rem;
  padding-right:1rem!important;
  white-space:nowrap;
}
.service-price-table--matrix th:nth-child(2),
.service-price-table--matrix td:nth-child(2){
  width:31%;
  text-align:right!important;
  padding-left:.75rem!important;
  padding-right:1rem!important;
}
.service-price-table--matrix th:nth-child(3),
.service-price-table--matrix td:nth-child(3){
  width:31%;
  text-align:right!important;
  padding-left:0!important;
}
.service-price-table__col-2takt{
  line-height:1.25;
  white-space:normal;
}
.service-price-table__2takt-sub{
  white-space:nowrap;
}
@media (max-width:767.98px){
  .service-price-table__col-2takt .service-price-table__2takt-sub{
    display:block;
  }
}
.service-price-table__price--from-offert{
  white-space:normal;
  line-height:1.35;
  text-align:right;
}
.service-price-table__price-suffix{
  display:block;
  font-size:.88em;
  color:#64748b;
}
@media (min-width:768px){
  .service-price-table__price--from-offert{
    white-space:nowrap;
  }
  .service-price-table__price-suffix{
    display:inline;
  }
}

.service-price-table--hp-addons{
  table-layout:fixed;
  width:100%;
}
.service-price-table--hp-addons th,
.service-price-table--hp-addons td{
  vertical-align:middle;
}
.service-price-table--hp-addons th:first-child,
.service-price-table--hp-addons td:first-child{
  width:28%;
  white-space:normal;
  line-height:1.3;
  padding-right:.75rem!important;
}
.service-price-table--hp-addons th:not(:first-child),
.service-price-table--hp-addons td:not(:first-child){
  width:24%;
  text-align:right!important;
  white-space:normal;
  line-height:1.25;
}
.service-price-table--hp-addons th{
  font-weight:600;
}
.service-price-table--hp-addons td:last-child{
  font-weight:400;
}
.service-price-table--hp-addons .service-price-table__price{
  font-weight:700;
}

@media (max-width:767.98px){
  .service-price-table__label-full{display:none;}
  .service-price-table__label-short{display:inline;}
  .service-price-table.table{
    table-layout:fixed;
    width:100%;
    font-size:.8125rem;
  }
  .service-price-table.table th,
  .service-price-table.table td{
    padding:.45rem .4rem!important;
    vertical-align:middle;
  }
  /* HK-matris mobil: mer luft mellan HK och priser, tillåt radbrytning */
  .service-price-table--matrix th:first-child,
  .service-price-table--matrix td:first-child{
    width:32%;
    min-width:4.75rem;
    padding-right:.65rem!important;
    line-height:1.35;
  }
  .service-price-table--matrix th:nth-child(2),
  .service-price-table--matrix td:nth-child(2){
    width:34%;
    padding-left:.35rem!important;
    padding-right:.65rem!important;
    text-align:right!important;
    white-space:normal;
  }
  .service-price-table--matrix th:nth-child(3),
  .service-price-table--matrix td:nth-child(3){
    width:34%;
    padding-left:0!important;
    text-align:right!important;
    white-space:normal;
  }
  .service-price-table--matrix .service-price-table__price{
    white-space:normal;
    line-height:1.35;
    max-width:100%;
  }
  .service-price-table--matrix .service-price-table__price:not(.service-price-table__price--from-offert){
    white-space:nowrap;
  }
  /* Intervallarbeten: behall 4 kolumner, mindre typografi */
  .service-price-table.service-price-table--hp-addons{
    font-size:.78rem;
  }
  .service-price-table--hp-addons th,
  .service-price-table--hp-addons td{
    padding:.38rem .22rem!important;
    line-height:1.25;
  }
  .service-price-table--hp-addons th{
    font-weight:600;
    white-space:normal;
    hyphens:manual;
  }
  .service-price-table--hp-addons th:first-child,
  .service-price-table--hp-addons td:first-child{
    width:26%;
    min-width:0;
    padding-right:.25rem!important;
    text-align:left!important;
    white-space:nowrap;
    font-weight:400;
  }
  .service-price-table--hp-addons th:not(:first-child),
  .service-price-table--hp-addons td:not(:first-child){
    width:24.66%;
    min-width:0;
    text-align:right!important;
    padding-left:.12rem!important;
    padding-right:.12rem!important;
    font-weight:400;
  }
  .service-price-table--hp-addons td:last-child{
    font-weight:400;
  }
  .service-price-table--hp-addons .service-price-table__price{
    font-weight:700;
    white-space:nowrap;
    font-size:inherit;
  }
  .service-price-table--simple td:last-child{
    text-align:right!important;
    white-space:nowrap;
  }
  .service-price-table-wrap{
    overflow-x:auto;
    -webkit-overflow-scrolling:touch;
  }
  .service-price-table-wrap--hp-tier{overflow-x:auto;}
}


/* CMS rich text (Fas 1) */
.cms-richtext,
.cms-richtext--intro,
.cms-richtext--intro p,
.cms-richtext.cms-richtext--intro {
  color: var(--text-body);
}
.cms-richtext--intro p:last-child,
.cms-richtext p:last-child {
  margin-bottom: 0;
}
.cms-richtext p {
  margin-bottom: .75rem;
}
/* Länkar i CMS-text: ärver färg/font från omgivande text */
.cms-richtext a:not(.btn),
.cms-richtext a[href^="tel:"],
p a[href^="tel:"]:not(.btn):not(.hero-tel),
.home-cta-body a:not(.btn){
  color:inherit;
  font:inherit;
  font-weight:inherit;
  text-decoration:underline;
  text-underline-offset:2px;
}
.cms-richtext a:not(.btn):hover,
.cms-richtext a[href^="tel:"]:hover,
p a[href^="tel:"]:not(.btn):not(.hero-tel):hover,
.home-cta-body a:not(.btn):hover{
  color:inherit;
  text-decoration-color:var(--brand-beige);
}
/* Quill textstorlek (publik sida) */
.cms-richtext .ql-size-small{font-size:.875em;}
.cms-richtext .ql-size-large{font-size:1.25em;}
.cms-richtext .ql-size-huge{font-size:1.5em;}
/* Enhetlig prisfetstil */
.service-card-price strong,
.service-price-table__price,
.service-price-table td:last-child{
  font-weight:700;
  color:var(--text-body);
}
.service-price-table--hp-addons td:last-child{
  font-weight:inherit;
  color:inherit;
}
.service-price-table--hp-addons .service-price-table__price{
  font-weight:700;
  color:var(--text-body);
}
