/* ===== Service detail page ===== */
.service-detail-page { background-color:#FBF7F4; padding:100px 20px; font-family:'Montserrat',sans-serif; color:#1C1B1A; }
.luxury-detail-container { max-width:1100px; margin:0 auto; display:grid; grid-template-columns:1fr 1.2fr; gap:50px; align-items:start; }
.luxury-detail-container + .luxury-detail-container { margin-top:60px; }
.detail-image-wrapper { display:flex; flex-direction:column; gap:20px; position:sticky; top:120px; align-self:start; }
.detail-image-wrapper img { width:100%; aspect-ratio:4 / 5; object-fit:cover; border-radius:6px; box-shadow:0 10px 30px rgba(0,0,0,0.05); display:block; }
.detail-main-title { font-family:'Playfair Display',Georgia,serif; font-size:42px; font-weight:400; color:#5C4033; margin-bottom:8px; }
.detail-title-ar, .price-group-title-ar { font-family:'Noto Naskh Arabic',serif; color:#8C7E6E; }
.detail-title-ar { font-size:22px; margin-bottom:18px; }
.detail-main-desc { font-size:14px; line-height:1.8; color:#666666; margin-bottom:32px; }
.sub-services-header { font-family:'Playfair Display',Georgia,serif; font-size:22px; font-style:italic; color:#5C4033; margin-bottom:6px; }
.price-currency-note { font-size:12px; letter-spacing:.04em; color:#8C7E6E; margin-bottom:22px; }
.price-currency-note span, .price-group-title-ar { font-size:14px; }

/* In-Salon / Home Service switch */
.loc-switch { display:inline-flex; background:#EFECE6; border-radius:30px; padding:4px; margin-bottom:28px; gap:4px; }
.loc-switch button { border:0; background:transparent; color:#5C4033; font:inherit; font-size:12px; letter-spacing:.1em; text-transform:uppercase; padding:10px 22px; border-radius:26px; cursor:pointer; transition:all .25s ease; display:flex; flex-direction:column; align-items:center; line-height:1.3; }
.loc-switch button small { font-family:'Noto Naskh Arabic',serif; font-size:12px; letter-spacing:0; text-transform:none; opacity:.8; }
.loc-switch button.on { background:#5C4033; color:#FBF7F4; }

/* Price sections */
.price-group { margin-bottom:38px; }
.price-group[hidden] { display:none; }
.price-group-title { font-family:'Playfair Display',Georgia,serif; font-size:24px; font-weight:400; color:#5C4033; margin-bottom:14px; display:flex; flex-wrap:wrap; justify-content:space-between; align-items:baseline; gap:6px 16px; }
.price-list-group { list-style:none; margin-bottom:10px; }
.price-list-item, .price-head { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:13px 0; border-bottom:1px dashed rgba(140,126,110,0.25); font-size:15px; }
.price-head { border-bottom:1px solid rgba(140,126,110,0.35); padding:6px 0 10px; }
.item-label-group { display:flex; align-items:center; gap:14px; min-width:0; }
.item-names { display:flex; flex-direction:column; gap:2px; min-width:0; }
.item-ar { font-family:'Noto Naskh Arabic',serif; font-size:14px; color:#8C7E6E; line-height:1.5; }
.checkmark-dot { width:18px; height:18px; background-color:#3B82F6; border-radius:50%; display:flex; align-items:center; justify-content:center; flex-shrink:0; }
.checkmark-dot svg { width:10px; height:10px; fill:none; stroke:#ffffff; stroke-width:3; }
.price-cells { display:grid; flex-shrink:0; align-items:center; text-align:center; }
.price-cells.cols-1 { grid-template-columns:72px; }
.price-cells.cols-2 { grid-template-columns:repeat(2, 84px); }
.price-cells.cols-3 { grid-template-columns:repeat(3, 76px); }
.price-cells.cols-4 { grid-template-columns:repeat(4, 66px); }
.price-head .price-cells span { font-size:10.5px; letter-spacing:.08em; text-transform:uppercase; color:#8C7E6E; line-height:1.3; display:flex; flex-direction:column; align-items:center; }
.price-head .price-cells small { font-family:'Noto Naskh Arabic',serif; font-size:12px; letter-spacing:0; text-transform:none; }
.item-price-tag { font-family:'Playfair Display',serif; font-size:18px; font-weight:500; color:#1C1B1A; white-space:nowrap; }
.item-price-tag.is-span { grid-column:1 / -1; }
.price-empty-note { font-size:14px; color:#8C7E6E; font-style:italic; margin-bottom:30px; }
.return-services-btn { display:inline-block; margin-top:10px; padding:12px 32px; border:1px solid #5C4033; border-radius:25px; background:transparent; color:#5C4033; font-size:12px; text-transform:uppercase; letter-spacing:0.1em; text-decoration:none; transition:all 0.3s ease; }
.return-services-btn:hover { background-color:#5C4033; color:#FBF7F4; }

@media (max-width:850px) {
  .luxury-detail-container { grid-template-columns:1fr; gap:30px; }
  .detail-image-wrapper { position:static; }
  .detail-main-title { font-size:32px; }
}
@media (max-width:640px) {
  .service-detail-page { padding:90px 16px 70px; }
  .price-head { display:none; }
  .price-list-item { flex-wrap:wrap; }
  .price-cells.cols-2, .price-cells.cols-3, .price-cells.cols-4 { width:calc(100% - 32px); grid-template-columns:repeat(auto-fit, minmax(0,1fr)); gap:6px; margin:4px 0 0 32px; text-align:left; }
  .price-cells.cols-2 .item-price-tag::before, .price-cells.cols-3 .item-price-tag::before, .price-cells.cols-4 .item-price-tag::before { content:attr(data-label); display:block; font-family:'Montserrat',sans-serif; font-size:10px; letter-spacing:.06em; text-transform:uppercase; color:#8C7E6E; font-weight:400; }
  .loc-switch { width:100%; }
  .loc-switch button { flex:1; padding:10px 8px; }
}

/* ===== Shared: studio policies + booking CTA (was pasted into every page) ===== */
.studio-policies-section { background-color: #1C1B1A; border-bottom: 1px solid #2E2D2B; padding: 40px 0; width: 100%; }
.policies-container { max-width: 1200px; margin: 0 auto; padding: 0 40px; display: grid; grid-template-columns: repeat(3, 1fr); gap: 50px; }
.policy-item { text-align: center; }
.policy-title { font-family: 'Playfair Display', Georgia, serif; font-size: 22px; font-weight: 400; color: #ffffff; margin: 0 0 18px 0; letter-spacing: 0.02em; }
.policy-text { font-size: 13px; font-weight: 300; line-height: 1.7; color: #A6A19A; margin: 0 auto; max-width: 320px; }
.booking-cta-section { background-color: #EFECE6; padding: 50px 0 60px 0; text-align: center; width: 100%; }
.booking-cta-container { max-width: 800px; margin: 0 auto; padding: 0 40px; }
.booking-cta-title { font-family: 'Playfair Display', Georgia, serif; font-size: 42px; font-weight: 400; color: #1C1B1A ; margin: 0 0 16px 0; letter-spacing: 0.02em; }
.booking-cta-text { font-size: 15px; font-weight: 300; line-height: 1.6; color: #1C1B1A; margin: 0 auto 40px auto; max-width: 480px; }
.booking-btn-wrapper { display: inline-block; }
.booking-cta-button { background-color: #EFECE6; color: #1C1B1A; display: inline-flex; align-items: center; gap: 12px; text-decoration: none; font-size: 12px; font-weight: 500; text-transform: uppercase; letter-spacing: 0.2em; padding: 18px 42px; transition: all 0.3s ease; border: 1px solid #1C1B1A; }
.booking-cta-button:hover { background-color: transparent; color: #ffffff; border-color: #ffffff; }
.cta-arrow { font-size: 16px; line-height: 1; transition: transform 0.3s ease; }
.booking-cta-button:hover .cta-arrow { transform: translateX(4px); }
@media (max-width: 868px) {
.policies-container { grid-template-columns: 1fr; gap: 50px; }
.policy-text { max-width: 440px; }
}
@media (max-width: 576px) {
.booking-cta-section { padding: 80px 0 40px 0; }
.booking-cta-title { font-size: 32px; }
.booking-cta-button { width: 100%; box-sizing: border-box; justify-content: center; }
}

/* Fix: the original hover turned the button white-on-cream (invisible). Fill it dark instead. */
.booking-cta-button:hover { background-color:#1C1B1A; color:#EFECE6; border-color:#1C1B1A; }

/* ===== Shared page wrapper + page intro (Services, Boutique, ...) ===== */
.page-wrap { max-width:1200px; margin:0 auto; padding:140px 40px 100px; }
.page-intro { display:flex; justify-content:space-between; align-items:flex-end; gap:40px; margin-bottom:56px; }
.page-intro-left { flex:1; min-width:280px; }
.page-intro-tag { font-size:11px; font-weight:400; text-transform:uppercase; letter-spacing:0.3em; color:#8C7E6E; margin-bottom:12px; }
.page-intro-title { font-family:'Playfair Display',Georgia,serif; font-size:56px; font-weight:400; line-height:1.1; color:#1C1B1A; }
.page-intro-text { flex:1; max-width:480px; font-size:14px; font-weight:300; line-height:1.7; color:#555555; padding-bottom:8px; }
@media (max-width:768px) {
  .page-wrap { padding:150px 20px 80px; }
  .page-intro { flex-direction:column; align-items:flex-start; gap:16px; margin-bottom:36px; }
  .page-intro-title { font-size:40px; }
}

/* ===== Public form messages ===== */
.public-alert { padding:14px 18px; border-radius:6px; margin-bottom:22px; font-size:14px; line-height:1.6; border:1px solid; }
.public-alert.ok { background:#eef6ee; border-color:#c5dfc5; color:#2c5a2c; }
.public-alert.err { background:#fbeceb; border-color:#efc4c1; color:#8a2c26; }

/* ===== Boutique: categories, search, sort ===== */
.shop-toolbar { display:flex; flex-wrap:wrap; gap:18px 24px; align-items:center; justify-content:space-between; margin-bottom:34px; }
.shop-chips { display:flex; flex-wrap:wrap; gap:10px; }
.shop-chip { display:inline-block; padding:9px 20px; border:1px solid rgba(140,126,110,0.45); border-radius:30px; color:#5C4033; font-size:12px; letter-spacing:0.1em; text-transform:uppercase; text-decoration:none; background:transparent; transition:all .25s ease; }
.shop-chip small { font-family:'Noto Naskh Arabic',serif; font-size:13px; letter-spacing:0; text-transform:none; margin-left:6px; opacity:.8; }
.shop-chip:hover { background:#fff; }
.shop-chip.on { background:#1C1B1A; border-color:#1C1B1A; color:#EFECE6; }
.shop-controls { display:flex; flex-wrap:wrap; gap:12px; align-items:center; }
.shop-search { position:relative; }
.shop-search input { width:260px; max-width:100%; padding:11px 16px 11px 40px; border:1px solid rgba(140,126,110,0.45); border-radius:30px; background:#fff; font:inherit; font-size:13px; color:#1C1B1A; outline:none; }
.shop-search input:focus { border-color:#1C1B1A; }
.shop-search svg { position:absolute; left:14px; top:50%; transform:translateY(-50%); width:16px; height:16px; fill:none; stroke:#8C7E6E; stroke-width:2; stroke-linecap:round; }
.shop-sort { padding:11px 38px 11px 16px; border:1px solid rgba(140,126,110,0.45); border-radius:30px; background:#fff; font:inherit; font-size:13px; color:#1C1B1A; outline:none; cursor:pointer; -webkit-appearance:none; appearance:none; background-image:url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='12' viewBox='0 0 24 24' fill='none' stroke='%238C7E6E' stroke-width='3'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E"); background-repeat:no-repeat; background-position:right 14px center; }
.shop-count { font-size:13px; color:#8C7E6E; margin-bottom:26px; }
.shop-count a { color:#5C4033; }
.shop-group { margin-bottom:56px; }
.shop-group-title { font-family:'Playfair Display',Georgia,serif; font-size:30px; font-weight:400; color:#1C1B1A; margin-bottom:26px; display:flex; flex-wrap:wrap; align-items:baseline; gap:6px 16px; }
.shop-group-title span { font-family:'Noto Naskh Arabic',serif; font-size:20px; color:#8C7E6E; }
.shop-empty { text-align:center; padding:70px 20px; color:#666; font-size:15px; }
.shop-empty a { color:#5C4033; }
@media (max-width:768px) { .shop-search input { width:100%; } .shop-search { flex:1 1 100%; } .shop-controls { width:100%; } }

/* ===== 404 page ===== */
.notfound { text-align:center; min-height:70vh; display:flex; flex-direction:column; align-items:center; justify-content:center; }
.nf-code { font-family:'Playfair Display',Georgia,serif; font-size:clamp(96px,18vw,170px); line-height:1; font-weight:400; background:linear-gradient(135deg,#dfba84 0%,#b88e4c 40%,#e8cb99 70%,#966d31 100%); -webkit-background-clip:text; background-clip:text; -webkit-text-fill-color:transparent; margin-bottom:6px; }
.notfound .page-intro-title { font-size:40px; margin-bottom:16px; }
.nf-text { max-width:480px; font-size:14px; line-height:1.8; color:#666; margin-bottom:32px; }
.nf-links { display:flex; flex-wrap:wrap; gap:12px; justify-content:center; }
.nf-btn { display:inline-block; padding:12px 28px; border:1px solid #5C4033; border-radius:25px; color:#5C4033; font-size:12px; letter-spacing:.1em; text-transform:uppercase; text-decoration:none; transition:all .3s ease; }
.nf-btn:hover { background:#5C4033; color:#FBF7F4; }

/* ===== Terms / Privacy ===== */
.legal-page { background:#EFECE6; padding:140px 20px 100px; }
.legal-inner { max-width:820px; margin:0 auto; }
.legal-inner .page-intro-title { font-size:46px; margin-bottom:8px; }
.legal-updated { font-size:12px; letter-spacing:.08em; text-transform:uppercase; color:#8C7E6E; margin-bottom:40px; }
.legal-inner h2 { font-family:'Playfair Display',Georgia,serif; font-size:24px; font-weight:400; color:#5C4033; margin:38px 0 12px; }
.legal-inner p, .legal-inner li { font-size:14.5px; line-height:1.85; color:#444; }
.legal-inner p { margin-bottom:12px; }
.legal-inner ul { margin:0 0 14px 22px; }
.legal-inner li { margin-bottom:6px; }
.legal-inner a { color:#5C4033; }
.legal-box { background:#fff; border-left:3px solid #b88e4c; padding:18px 22px; margin:20px 0; border-radius:2px; }
@media (max-width:768px) { .legal-page { padding:130px 18px 70px; } .legal-inner .page-intro-title { font-size:34px; } }
