:root{
  --orange:#f69921;
  --pink:#ffd9ce;
  --brown:#5d3529;
  --blue:#2ea3f2;
  --grey:#666666;
  --dark:#333333;
  --cream:#fffbf5;
}

*{box-sizing:border-box;}
body{
  margin:0;
  font-family:'Open Sans', Arial, sans-serif;
  color:var(--dark);
  background:#ffffff;
  line-height:1.6;
}
h1,h2{
  font-family:'Dancing Script', cursive;
  color:var(--brown);
}
h1{font-size:3rem;margin:0 0 1rem;}
h2{font-size:2.4rem;margin:0 0 1rem;}
h4{
  font-family:'Abel', Helvetica, Arial, sans-serif;
  color:var(--brown);
  font-size:1.3rem;
  margin:0 0 .5rem;
}
a{color:var(--blue);}
.container{max-width:960px;margin:0 auto;padding:0 20px;}
.container-wide{max-width:1400px;}

.site-header{
  background:#ffffff;
  border-bottom:1px solid var(--pink);
  position:sticky;
  top:0;
  z-index:10;
}
.header-top{
  display:flex;
  justify-content:space-between;
  align-items:center;
  flex-wrap:wrap;
  gap:16px;
  padding:20px 20px 10px;
}
.logo{
  display:flex;
  align-items:center;
  gap:10px;
}
.logo-text{
  font-family:'Abel', sans-serif;
  font-size:1.9rem;
  font-weight:700;
  color:var(--orange);
  letter-spacing:2px;
}
.tagline{
  font-family:'Dancing Script', cursive;
  font-size:2rem;
  color:var(--pink);
  margin:0;
}
.site-header nav{
  display:flex;
  justify-content:center;
  gap:32px;
  padding:10px 20px 20px;
}
.site-header nav a{
  text-decoration:none;
  color:var(--dark);
  font-family:'Abel', sans-serif;
  font-size:1.1rem;
}
.site-header nav a:hover{color:var(--orange);}

.hero{
  position:relative;
  overflow:hidden;
  background:#ffffff;
  padding:70px 20px;
}
.hero-pattern{
  position:absolute;
  inset:0;
  background-image:radial-gradient(circle, var(--pink) 1.5px, transparent 1.5px);
  background-size:26px 26px;
  opacity:.5;
  pointer-events:none;
}
.hero-inner{
  position:relative;
  display:flex;
  align-items:center;
  justify-content:center;
  gap:48px;
  flex-wrap:wrap;
}
.hero-visual{
  width:260px;
  height:260px;
  flex-shrink:0;
  border-radius:18px;
  background:linear-gradient(135deg, var(--orange), #ffc266);
  box-shadow:0 24px 48px rgba(246,153,33,.35);
  position:relative;
}
.hero-visual::before{
  content:'';
  position:absolute;
  inset:22px;
  border-radius:14px;
  background:radial-gradient(circle at 30% 30%, rgba(255,255,255,.55), transparent 60%);
}
.hero-text{
  max-width:420px;
}
.hero-text p{color:var(--grey);}

.btn{
  display:inline-block;
  margin-top:1rem;
  padding:12px 32px;
  background:var(--orange);
  color:#ffffff;
  text-decoration:none;
  border-radius:30px;
  font-family:'Abel', sans-serif;
  font-size:1.2rem;
  border:none;
  cursor:pointer;
}
.btn:hover{background:var(--brown);}
.btn-small{padding:8px 20px;font-size:1rem;margin-top:0;}
.btn-link{background:none;border:none;color:var(--blue);text-decoration:underline;cursor:pointer;font-family:inherit;padding:0;margin-right:10px;font-size:.9rem;}

.for-dig, .om-oss, .produkter{
  padding:60px 20px;
  background:var(--cream);
}
.behandlingar, .priser{
  padding:60px 20px;
}
.hitta-hit{
  padding:60px 20px;
  text-align:center;
}
.map-embed{
  border-radius:12px;
  overflow:hidden;
  border:1px solid var(--pink);
  margin:16px auto 20px;
  max-width:900px;
}

.grid{
  display:grid;
  grid-template-columns:repeat(auto-fit,minmax(180px,1fr));
  gap:24px;
  margin-top:24px;
}
.card{
  background:var(--pink);
  padding:24px;
  border-radius:8px;
}

.pricelist, .hours{
  list-style:none;
  padding:0;
  margin:0 0 2rem;
}
.pricelist li, .hours li{
  display:flex;
  justify-content:space-between;
  padding:8px 0;
  border-bottom:1px solid var(--pink);
}
.pricelist li span:last-child, .hours li span:last-child{
  color:var(--orange);
  font-weight:700;
  white-space:nowrap;
  margin-left:16px;
}

.site-footer{
  background:var(--brown);
  color:#ffffff;
  text-align:center;
  padding:50px 20px;
}
.site-footer h2{color:#ffffff;}
.site-footer a{color:var(--pink);}
.site-footer .note{
  margin-top:2rem;
  font-size:.85rem;
  color:#d9bdb3;
}

.booking-page{padding:60px 20px;max-width:800px;margin:0 auto;}
.booking-page-wide{max-width:1400px;}
.msg-ok{background:#e6f7e6;color:#2a7a2a;padding:12px 16px;border-radius:6px;}
.msg-err{background:#fde8e8;color:#a12222;padding:12px 16px;border-radius:6px;}

.treatment-grid{display:flex;flex-direction:column;gap:12px;margin-bottom:32px;}
.treatment-card{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:16px 20px;background:#ffffff;border:1px solid var(--pink);border-radius:10px;box-shadow:0 2px 8px rgba(93,53,41,.05);flex-wrap:wrap;}
.treatment-info{flex:1;min-width:180px;}
.treatment-name{font-family:'Abel',sans-serif;font-size:1.2rem;color:var(--brown);font-weight:700;}
.treatment-duration{color:var(--grey);font-size:.85rem;}
.treatment-price-block{display:flex;flex-direction:column;align-items:flex-end;margin-right:8px;}
.treatment-price-label{font-size:.7rem;color:var(--grey);}
.treatment-price{font-weight:700;color:var(--brown);font-size:1.1rem;white-space:nowrap;}
.treatment-details{margin-top:6px;}
.treatment-details summary{cursor:pointer;color:var(--blue);font-size:.85rem;}
.treatment-details p{margin:6px 0 0;color:var(--grey);font-size:.85rem;max-width:480px;}
.back-link{display:inline-block;margin-bottom:16px;color:var(--blue);text-decoration:none;}

.friskvard-badge{display:inline-block;background:#dff5df;color:#2a7a2a;font-size:.68rem;font-weight:700;padding:2px 9px;border-radius:10px;margin-left:6px;vertical-align:middle;}

.price-original{text-decoration:line-through;color:var(--grey);font-size:.85rem;white-space:nowrap;}
.price-discounted{font-weight:700;color:#c0392b;font-size:1.1rem;white-space:nowrap;}

.review-summary{font-family:'Abel',sans-serif;font-size:1.1rem;color:var(--brown);margin-bottom:24px;}
.review-summary-score{font-size:1.6rem;font-weight:700;}
.review-stars{color:var(--orange);letter-spacing:2px;}
.review-summary-count{color:var(--grey);font-size:.9rem;}
.review-list{display:flex;flex-direction:column;gap:14px;margin:16px 0 40px;}
.review-card{background:#ffffff;border:1px solid var(--pink);border-radius:10px;padding:16px 20px;box-shadow:0 2px 8px rgba(93,53,41,.05);}
.review-card-head{display:flex;align-items:center;gap:12px;flex-wrap:wrap;margin-bottom:6px;}
.review-name{font-family:'Abel',sans-serif;font-weight:700;color:var(--brown);}
.review-service{font-size:.78rem;color:var(--grey);background:var(--cream);padding:2px 8px;border-radius:8px;}
.review-comment{margin:0;color:var(--dark);}
.review-form{display:flex;flex-direction:column;gap:14px;max-width:480px;}
.review-form label{display:flex;flex-direction:column;gap:6px;font-family:'Abel',sans-serif;color:var(--brown);font-size:.9rem;}
.review-form input, .review-form select, .review-form textarea{padding:10px;border:1px solid var(--pink);border-radius:6px;font-family:'Open Sans',sans-serif;font-size:1rem;}
.star-input{display:flex;flex-direction:row-reverse;justify-content:flex-end;gap:4px;}
.star-input input{display:none;}
.star-input label{font-size:1.8rem;color:#dddddd;cursor:pointer;line-height:1;}
.star-input input:checked ~ label,
.star-input label:hover,
.star-input label:hover ~ label{color:var(--orange);}

.week-nav{display:flex;align-items:center;gap:16px;flex-wrap:wrap;margin-bottom:20px;font-family:'Abel',sans-serif;}
.week-nav a{color:var(--blue);text-decoration:none;}
.week-nav-label{font-weight:700;color:var(--brown);}

.choose-time-layout{display:flex;gap:32px;align-items:flex-start;flex-wrap:wrap;}
.week-picker{flex:2;min-width:320px;}
.week-grid-simple{display:grid;grid-template-columns:repeat(7,1fr);gap:8px;}
.week-day-col{display:flex;flex-direction:column;align-items:center;gap:6px;min-width:60px;}
.week-day-head{text-align:center;font-family:'Abel',sans-serif;font-size:.8rem;color:var(--brown);font-weight:700;padding-bottom:8px;border-bottom:1px solid var(--pink);margin-bottom:4px;width:100%;line-height:1.3;}
.week-day-empty{color:#cccccc;font-size:1.2rem;}
.slot-radio{position:absolute;opacity:0;width:0;height:0;}
.time-box{display:block;text-align:center;padding:8px 4px;border:1px solid var(--pink);border-radius:8px;font-family:'Abel',sans-serif;font-size:.8rem;color:var(--brown);cursor:pointer;width:100%;}
.time-box .box-price{display:block;font-size:.62rem;color:var(--orange);font-weight:700;margin-top:2px;}
.slot-radio:checked + .time-box{border-color:var(--orange);background:var(--pink);}
.slot-radio:checked + .time-box .box-price{color:var(--brown);}

.choice-summary{width:260px;flex-shrink:0;background:var(--cream);border:1px solid var(--pink);border-radius:12px;padding:20px;}
.choice-summary h4{font-family:'Abel',sans-serif;font-size:.9rem;color:var(--grey);margin:0 0 6px;text-transform:uppercase;letter-spacing:.5px;}
.choice-service{font-weight:700;color:var(--brown);font-family:'Abel',sans-serif;font-size:1.15rem;margin:0 0 4px;}
.choice-meta{color:var(--grey);font-size:.85rem;margin:0 0 8px;}
.choice-desc{color:var(--grey);font-size:.8rem;margin:0 0 16px;line-height:1.5;}
.booking-contact-inline{display:flex;flex-direction:column;gap:10px;}
.booking-contact-inline input{padding:10px;border:1px solid var(--pink);border-radius:6px;font-family:inherit;}

.day-card{
  display:flex;
  gap:20px;
  align-items:flex-start;
  background:#ffffff;
  border:1px solid var(--pink);
  border-radius:12px;
  padding:16px;
  margin-bottom:16px;
  box-shadow:0 4px 12px rgba(93,53,41,.06);
}
.day-badge{
  display:flex;
  flex-direction:column;
  align-items:center;
  justify-content:center;
  width:64px;
  height:64px;
  border-radius:50%;
  background:var(--pink);
  color:var(--brown);
  flex-shrink:0;
  font-family:'Abel', sans-serif;
  line-height:1.15;
}
.day-badge .day-name{font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;}
.day-badge .day-num{font-size:1.4rem;font-weight:700;}
.day-badge .day-month{font-size:.65rem;text-transform:uppercase;letter-spacing:.5px;}

.booking-contact{display:flex;flex-wrap:wrap;gap:12px;margin-top:24px;}
.booking-contact input{padding:10px;border:1px solid var(--pink);border-radius:6px;font-family:inherit;flex:1;min-width:160px;}
.admin-login{display:flex;flex-direction:column;gap:12px;max-width:320px;}
.admin-login input{padding:10px;border:1px solid var(--pink);border-radius:6px;}
.admin-add-slot{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:12px;align-items:flex-end;}
.admin-add-slot label{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--brown);font-family:'Abel',sans-serif;}
.admin-add-slot input, .admin-add-slot select, .admin-add-slot textarea{padding:8px;border:1px solid var(--pink);border-radius:6px;font-family:'Open Sans',sans-serif;}
.cal-hint-static{color:var(--grey);font-size:.85rem;margin:12px 0 16px;line-height:1.5;}

.quick-add-time{margin-top:14px;padding-top:14px;border-top:1px dashed var(--pink);}
.quick-add-label{flex-basis:100%;font-family:'Abel',sans-serif;font-size:.85rem;color:var(--brown);font-weight:700;}

.service-resource-picker{flex-basis:100%;display:flex;flex-wrap:wrap;gap:12px;align-items:center;margin:4px 0;}
.picker-label{font-family:'Abel',sans-serif;font-size:.8rem;color:var(--brown);width:100%;}
.resource-check{display:flex;align-items:center;gap:6px;font-size:.85rem;color:var(--dark);font-family:'Open Sans',sans-serif;font-weight:400;}

.service-checkbox-list{flex-basis:100%;display:flex;flex-direction:column;gap:8px;max-width:640px;margin:8px 0;}
.service-checkbox{display:flex;align-items:center;gap:8px;font-size:.9rem;color:var(--dark);font-family:'Open Sans',sans-serif;font-weight:400;padding:8px 10px;border:1px solid var(--pink);border-radius:6px;}
.service-checkbox .allowed-for{color:var(--grey);font-size:.78rem;margin-left:auto;}

.service-edit-list{display:flex;flex-direction:column;gap:16px;margin:16px 0 32px;}
.service-category-heading{margin-top:16px;}
.service-edit-card{border:1px solid var(--pink);border-radius:10px;padding:16px;background:#ffffff;}
.service-edit-row{display:flex;flex-wrap:wrap;gap:14px;margin-bottom:10px;}
.service-edit-row label, .service-edit-desc{display:flex;flex-direction:column;gap:4px;font-size:.8rem;color:var(--brown);font-family:'Abel',sans-serif;}
.service-edit-row input{padding:8px;border:1px solid var(--pink);border-radius:6px;font-family:'Open Sans',sans-serif;}
.service-edit-desc{width:100%;margin-bottom:10px;}
.service-edit-desc textarea{padding:8px;border:1px solid var(--pink);border-radius:6px;font-family:'Open Sans',sans-serif;resize:vertical;}
.service-edit-actions{margin-top:10px;}

.review-admin-list{display:flex;flex-direction:column;gap:12px;margin:16px 0 32px;}
.review-admin-card{border:1px solid var(--pink);border-radius:10px;padding:14px 18px;background:#ffffff;}
.review-admin-card.pending{background:#fffbe6;border-color:#f0d878;}
.review-admin-actions{margin-top:8px;display:flex;gap:10px;}

.admin-filter{margin-bottom:16px;display:flex;flex-wrap:wrap;gap:16px;}
.admin-filter label{display:flex;align-items:center;gap:8px;font-family:'Abel',sans-serif;color:var(--brown);}
.admin-filter select{padding:8px;border:1px solid var(--pink);border-radius:6px;}
.admin-table{width:100%;border-collapse:collapse;margin-top:16px;}
.admin-table th, .admin-table td{padding:8px 10px;border-bottom:1px solid var(--pink);text-align:left;font-size:.9rem;}

.cal-view-toggle{display:flex;gap:8px;margin-bottom:12px;}
.cal-view-toggle a{padding:6px 16px;border:1px solid var(--pink);border-radius:20px;text-decoration:none;color:var(--brown);font-family:'Abel',sans-serif;}
.cal-view-toggle a.active{background:var(--orange);color:#ffffff;border-color:var(--orange);}

.cal-nav{display:flex;align-items:center;gap:14px;margin-bottom:12px;font-family:'Abel',sans-serif;flex-wrap:wrap;}
.cal-nav a{padding:6px 14px;border:1px solid var(--pink);border-radius:20px;text-decoration:none;color:var(--brown);}
.cal-nav a:hover{background:var(--pink);}
.cal-nav .cal-week-label{font-weight:700;color:var(--brown);}

.cal-resource-focus{margin-bottom:16px;}
.cal-resource-focus label{display:flex;align-items:center;gap:8px;font-family:'Abel',sans-serif;color:var(--brown);}
.cal-resource-focus select{padding:8px;border:1px solid var(--pink);border-radius:6px;}

.cal-legend{display:flex;gap:20px;align-items:center;margin:0 0 16px;font-size:.85rem;color:var(--grey);font-family:'Abel',sans-serif;flex-wrap:wrap;}
.cal-legend-swatch{display:inline-block;width:16px;height:16px;border-radius:3px;margin-right:6px;vertical-align:middle;}
.cal-legend-swatch.open{background:repeating-linear-gradient(45deg, var(--pink), var(--pink) 4px, #ffffff 4px, #ffffff 8px);border:1px solid var(--orange);}
.cal-legend-swatch.booked{background:var(--orange);border:1px solid var(--brown);}
.cal-legend-swatch.blocked{background:repeating-linear-gradient(45deg, #dddddd, #dddddd 4px, #eeeeee 4px, #eeeeee 8px);border:1px solid #999999;}
.cal-hint{color:var(--orange);font-style:italic;}

.cal-wrapper{overflow-x:auto;border:1px solid var(--pink);border-radius:12px;margin-bottom:32px;}
.cal-grid{display:grid;grid-template-rows:auto auto 1fr;width:100%;}
.cal-day-header{background:var(--cream);border-bottom:1px solid var(--pink);border-left:1px solid var(--pink);text-align:center;padding:6px 2px;font-family:'Abel',sans-serif;font-weight:700;color:var(--brown);font-size:.72rem;}
.cal-day-header.today{background:var(--orange);color:#ffffff;}
.cal-resource-header{background:#ffffff;border-bottom:1px solid var(--pink);border-left:1px solid #f2e6e0;text-align:center;padding:3px 1px;font-size:.55rem;color:var(--grey);font-family:'Abel',sans-serif;white-space:nowrap;overflow:hidden;text-overflow:ellipsis;cursor:default;}
.cal-time-col{position:relative;border-right:1px solid var(--pink);}
.cal-hour-label{position:absolute;left:2px;font-size:.58rem;color:var(--grey);transform:translateY(-50%);}
.cal-day-col{position:relative;border-left:1px solid #f2e6e0;}
.cal-hline{position:absolute;left:0;right:0;border-top:1px solid #f2e6e0;}
.cal-block{position:absolute;left:1px;right:1px;border-radius:3px;font-size:.55rem;padding:1px 2px;overflow:hidden;line-height:1.2;cursor:default;text-align:center;white-space:nowrap;text-overflow:ellipsis;}
.cal-block.open{background:repeating-linear-gradient(45deg, var(--pink), var(--pink) 4px, #ffffff 4px, #ffffff 8px);border:1px solid var(--orange);color:var(--brown);}
.cal-block.booked{background:var(--orange);border:1px solid var(--brown);color:#ffffff;}
.cal-block.blocked{background:repeating-linear-gradient(45deg, #dddddd, #dddddd 4px, #eeeeee 4px, #eeeeee 8px);border:1px solid #999999;color:#666666;}
.cal-block-delete-form{position:absolute;inset:0;margin:0;padding:0;}
.cal-block-delete-btn{position:absolute;inset:0;width:100%;height:100%;background:transparent;border:none;padding:0;margin:0;cursor:pointer;}
.cal-block-delete-btn:hover{background:rgba(255,255,255,.4);}

@media (max-width:700px){
  .header-top{flex-direction:column;text-align:center;}
  .tagline{font-size:1.4rem;}
  h1{font-size:2.2rem;}
  .day-card{flex-direction:column;align-items:center;text-align:center;}
  .week-grid-simple{grid-template-columns:repeat(3,1fr);}
  .choice-summary{width:100%;}
}
