/*
Theme Name: Glam by Rahil
Theme URI: https://glambyrahil.com
Author: Glam by Rahil
Description: Bridal & soft glam makeup artist theme with a built-in step-by-step appointment booking system, editable page content, and availability management in the WordPress admin.
Version: 1.0.0
Requires at least: 5.9
Tested up to: 6.6
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: glam-by-rahil
Tags: one-column, custom-logo, custom-menu, featured-images, blog, editor-style
*/

:root{
    --blush:#F4DCD6;
    --ivory:#FBF6F1;
    --dusty:#D8A7A0;
    --mauve:#7A4B53;
    --gold:#C9A15A;
    --gold-deep:#A5732C;
    --text:#4A3538;
    --body-copy:#5A4145;
    --serif:'Cormorant Garamond', serif;
    --sans:'Nunito Sans', sans-serif;
  }
  *{margin:0;padding:0;box-sizing:border-box;}
  html{scroll-behavior:smooth;}
  body{background:var(--ivory);color:var(--text);font-family:var(--sans);line-height:1.75;font-weight:400;font-size:17px;}
  a{text-decoration:none;color:inherit;}
  .wrap{max-width:1180px;margin:0 auto;padding:0 32px;}
  h1,h2,h3{font-family:var(--serif);font-weight:600;color:#3D2A2D;}

  header{position:sticky;top:0;z-index:50;background:rgba(251,246,241,0.9);backdrop-filter:blur(6px);}
  nav{max-width:1180px;margin:0 auto;display:flex;align-items:center;justify-content:space-between;padding:24px 32px;}
  .logo{font-family:var(--serif);font-size:24px;font-style:italic;font-weight:600;color:var(--mauve);white-space:nowrap;}
  .nav-links{display:flex;gap:34px;font-size:15px;font-weight:700;}
  .nav-links a{color:var(--mauve);}
  .nav-links a:hover{color:var(--gold-deep);}
  .nav-cta{background:var(--mauve);color:var(--ivory);padding:11px 26px;border-radius:30px;font-size:13px;font-weight:700;}
  .nav-cta:hover{background:#5f383d;}
  .burger{display:none;background:none;border:none;font-size:24px;color:var(--mauve);}

  /* HERO */
  .hero{padding:70px 32px 40px;}
  .hero-inner{max-width:1180px;margin:0 auto;display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:center;}
  .eyebrow{display:inline-flex;align-items:center;gap:10px;font-size:13px;letter-spacing:0.06em;color:var(--mauve);font-weight:700;margin-bottom:22px;}
  .eyebrow::before{content:'';width:26px;height:1px;background:var(--gold);}
  .hero h1{font-size:clamp(40px,5.4vw,66px);line-height:1.08;margin-bottom:22px;}
  .hero h1 i{color:var(--dusty);}
  .brush{display:block;margin:6px 0 26px;}
  .hero p{font-size:17px;max-width:420px;color:var(--body-copy);margin-bottom:32px;}
  .btn-row{display:flex;gap:16px;flex-wrap:wrap;}
  .btn-primary{background:var(--mauve);color:var(--ivory);padding:15px 30px;border-radius:30px;font-size:14px;font-weight:700;}
  .btn-primary:hover{background:#5f383d;}
  .btn-ghost{border:1.5px solid var(--dusty);color:var(--mauve);padding:14px 28px;border-radius:30px;font-size:14px;font-weight:700;}
  .btn-ghost:hover{background:var(--blush);}
  .hero-visual{position:relative;aspect-ratio:1/1;}
  .blob{position:absolute;inset:0;border-radius:50% 50% 46% 54%/54% 46% 54% 46%;background:linear-gradient(150deg,var(--blush),var(--dusty) 80%);}
  .blob2{position:absolute;width:64%;height:64%;top:8%;right:0;border-radius:50%;background:radial-gradient(circle at 35% 30%,#fff 0%,var(--gold) 8%,transparent 9%),linear-gradient(160deg,#fff8f4,var(--blush));opacity:0.9;}
  .ring{position:absolute;width:120px;height:120px;border:2px solid var(--gold);border-radius:50%;bottom:6%;left:0;opacity:0.7;}
  .visual-card{position:absolute;bottom:8%;right:6%;background:var(--ivory);padding:16px 20px;border-radius:16px;box-shadow:0 20px 40px rgba(122,75,83,0.18);}
  .visual-card b{display:block;font-family:var(--serif);font-size:26px;color:var(--mauve);}
  .visual-card span{font-size:11px;letter-spacing:0.08em;text-transform:uppercase;color:#8a6a6d;}

  section{padding:100px 0;}
  .alt-bg{background:var(--blush);}
  .section-head{text-align:center;max-width:600px;margin:0 auto 56px;}
  .tag{font-size:13px;letter-spacing:0.1em;text-transform:uppercase;color:var(--gold-deep);font-weight:700;display:block;margin-bottom:12px;}
  .section-head h2{font-size:clamp(30px,4vw,46px);margin-bottom:14px;}
  .section-head p{color:var(--body-copy);font-size:16px;}

  /* ABOUT */
  .about-grid{display:grid;grid-template-columns:0.85fr 1.15fr;gap:60px;align-items:center;}
  .about-photo{aspect-ratio:4/5;border-radius:24px 24px 24px 90px;background:linear-gradient(200deg,#fff,var(--dusty) 85%);position:relative;box-shadow:0 30px 60px rgba(122,75,83,0.15);overflow:hidden;}
  .about-photo img{width:100%;height:100%;object-fit:cover;object-position:50% 20%;display:block;}
  .about-photo::after{content:'✿';position:absolute;bottom:-18px;left:-18px;width:64px;height:64px;background:var(--gold);color:var(--ivory);border-radius:50%;display:flex;align-items:center;justify-content:center;font-size:24px;}
  .about-text p{color:var(--body-copy);margin-bottom:18px;font-size:16px;}
  .about-list{display:flex;gap:26px;margin-top:26px;flex-wrap:wrap;}
  .about-list div{flex:1;min-width:140px;}
  .about-list b{font-family:var(--serif);font-size:28px;color:var(--mauve);display:block;}
  .about-list span{font-size:12px;color:#8a6a6d;text-transform:uppercase;letter-spacing:0.06em;}

  /* SERVICES */
  .service-cards{display:grid;grid-template-columns:repeat(3,1fr);gap:26px;}
  .scard{background:var(--ivory);border-radius:20px;padding:40px 30px 34px;text-align:center;box-shadow:0 14px 34px rgba(122,75,83,0.08);border:1px solid rgba(122,75,83,0.08);transition:transform .25s,box-shadow .25s;position:relative;overflow:hidden;}
  .scard::before{content:'';position:absolute;top:0;left:0;right:0;height:5px;background:linear-gradient(90deg,var(--dusty),var(--gold));}
  .scard:hover{transform:translateY(-8px);box-shadow:0 22px 44px rgba(122,75,83,0.16);}
  .scard.featured{background:linear-gradient(165deg,var(--mauve),#5a373c);color:var(--ivory);padding-top:40px;}
  .scard.featured::before{background:linear-gradient(90deg,var(--gold),#f0d9a0);}
  .scard.featured h3{color:var(--ivory);}
  .scard.featured p{color:#e8d3d6;}
  .scard.featured .icon{background:rgba(255,255,255,0.16);color:var(--ivory);border-color:rgba(255,255,255,0.3);}
  .scard.featured .price-note{border-color:rgba(255,255,255,0.55);color:var(--ivory);}
  .scard.featured .price-note:hover{background:var(--ivory);color:var(--mauve);border-color:var(--ivory);}
  .scard-badge{position:absolute;top:0;left:50%;transform:translateX(-50%);background:var(--gold);color:#3d2a2d;font-size:10.5px;font-weight:700;letter-spacing:0.06em;text-transform:uppercase;padding:6px 18px;border-radius:0 0 10px 10px;box-shadow:0 4px 10px rgba(0,0,0,0.15);}
  .scard .icon{width:64px;height:64px;border-radius:50%;background:var(--blush);margin:0 auto 22px;display:flex;align-items:center;justify-content:center;font-size:26px;color:var(--mauve);border:2px solid rgba(255,255,255,0.7);box-shadow:0 8px 18px rgba(122,75,83,0.15);transition:transform .25s;}
  .scard:hover .icon{transform:scale(1.08) rotate(-4deg);}
  .scard h3{font-size:23px;margin-bottom:10px;}
  .scard p{font-size:14px;color:var(--body-copy);margin-bottom:22px;min-height:60px;}
  .scard .price-note{display:inline-block;font-family:var(--sans);font-size:13px;font-weight:700;color:var(--mauve);border:1.5px solid var(--dusty);padding:11px 22px;border-radius:30px;text-decoration:none;transition:background .2s,color .2s;}
  .scard .price-note:hover{background:var(--mauve);color:var(--ivory);border-color:var(--mauve);}

  /* GALLERY */
  .polaroid-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:18px;}
  .polaroid .ph{width:100%;height:100%;object-fit:cover;object-position:50% 15%;aspect-ratio:4/5;border-radius:2px;display:block;}
  .polaroid{background:#fff;padding:10px 10px 34px;border-radius:6px;box-shadow:0 14px 26px rgba(122,75,83,0.14);transform:rotate(var(--r,0deg));transition:transform .3s;}
  .polaroid:hover{transform:rotate(0deg) scale(1.04);}
  .polaroid:nth-child(1){--r:-4deg;}
  .polaroid:nth-child(2){--r:3deg;margin-top:26px;}
  .polaroid:nth-child(3){--r:-2deg;}
  .polaroid:nth-child(4){--r:4deg;margin-top:14px;}
  .polaroid:nth-child(5){--r:-3deg;}
  .polaroid:nth-child(6){--r:2deg;margin-top:20px;}
  .p1{background:linear-gradient(160deg,#fbe3dd,var(--dusty));}
  .p2{background:linear-gradient(160deg,var(--gold),#e9c98a);}
  .p3{background:linear-gradient(160deg,#f6d6cf,#c98a93);}
  .p4{background:linear-gradient(160deg,#fff,var(--blush));}
  .p5{background:linear-gradient(160deg,var(--mauve),#a86b73);}
  .polaroid figcaption{font-family:var(--serif);font-style:italic;font-size:14px;text-align:center;margin-top:10px;color:var(--mauve);}

  /* TESTIMONIALS */
  .testi-masonry{column-count:2;column-gap:26px;}
  .testi-card2{break-inside:avoid;background:var(--ivory);border-radius:20px;padding:30px 32px;box-shadow:0 14px 30px rgba(122,75,83,0.1);margin-bottom:26px;}
  .stars{color:var(--gold);font-size:15px;margin-bottom:14px;}
  .testi-card2 p{color:var(--body-copy);margin-bottom:16px;font-size:15px;line-height:1.7;}
  .testi-name{font-weight:700;font-size:13px;color:var(--mauve);font-family:var(--serif);letter-spacing:0.02em;}

  /* CONTACT */
  .contact-panel{background:linear-gradient(135deg,var(--mauve),#5a373c);border-radius:32px;padding:64px;display:grid;grid-template-columns:0.9fr 1.1fr;gap:56px;color:var(--ivory);}
  .contact-panel h2{color:var(--ivory);font-size:38px;margin-bottom:16px;}
  .contact-panel p{color:#e8d3d6;margin-bottom:30px;}
  .cinfo{display:flex;align-items:center;gap:14px;margin-bottom:18px;font-size:15px;}
  .cinfo .dot{width:34px;height:34px;border-radius:50%;background:rgba(255,255,255,0.15);display:flex;align-items:center;justify-content:center;flex-shrink:0;}
  form{background:var(--ivory);border-radius:20px;padding:34px;display:flex;flex-direction:column;gap:18px;}
  .field label{display:block;font-size:12px;font-weight:700;color:var(--mauve);margin-bottom:6px;text-transform:uppercase;letter-spacing:0.04em;}
  .field input,.field textarea{width:100%;border:1.5px solid var(--blush);border-radius:12px;padding:13px 16px;font-family:var(--sans);font-size:15px;color:var(--text);outline:none;background:#fffaf7;}
  .field input:focus,.field textarea:focus{border-color:var(--mauve);}
  .field textarea{resize:vertical;min-height:90px;}
  .two-col{display:grid;grid-template-columns:1fr 1fr;gap:16px;}
  .submit-btn{background:var(--gold);color:#3d2a2d;border:none;padding:15px;border-radius:30px;font-size:14px;font-weight:700;cursor:pointer;}
  .submit-btn:hover{background:#b98f47;}
  .form-msg{font-size:13px;color:var(--mauve);display:none;font-weight:600;}
  .fallback-box{display:none;background:#fdf5f2;border:1px dashed var(--dusty);border-radius:14px;padding:18px;margin-top:6px;}
  .fallback-box.show{display:block;}
  .fallback-title{font-size:13px;color:var(--body-copy);margin-bottom:10px;}
  .fallback-title a{color:var(--mauve);font-weight:700;}
  #fallbackText{width:100%;min-height:90px;border:1px solid var(--blush);border-radius:10px;padding:10px 12px;font-family:var(--sans);font-size:13px;color:var(--text);background:#fff;margin-bottom:10px;resize:vertical;}
  .copy-btn{background:var(--mauve);color:var(--ivory);border:none;padding:10px 22px;border-radius:30px;font-size:12px;font-weight:700;cursor:pointer;}
  .copy-btn:hover{background:#5f383d;}
  .copy-confirm{display:none;margin-left:10px;font-size:12px;color:var(--mauve);font-weight:700;}
  .copy-confirm.show{display:inline;}

  footer{text-align:center;padding:40px 0;font-size:13px;color:#8a6a6d;}

  .polaroid{cursor:zoom-in;}
  .polaroid .ph{transition:transform .3s;}
  .polaroid:hover .ph{transform:scale(1.03);}

  /* LIGHTBOX */
  .lightbox{position:fixed;inset:0;background:rgba(20,10,12,0.88);display:none;align-items:center;justify-content:center;z-index:200;padding:40px;}
  .lightbox.open{display:flex;}
  .lightbox img{max-width:min(88vw,640px);max-height:82vh;object-fit:contain;border-radius:8px;box-shadow:0 30px 70px rgba(0,0,0,0.5);}
  .lightbox-caption{position:absolute;bottom:36px;left:0;right:0;text-align:center;color:var(--ivory);font-family:var(--serif);font-style:italic;font-size:18px;}
  .lightbox-close{position:absolute;top:26px;right:32px;background:none;border:none;color:var(--ivory);font-size:34px;cursor:pointer;line-height:1;}
  /* SPECIALTIES */
  .spec-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:24px;}
  .spec-card{background:var(--ivory);border:1px solid rgba(122,75,83,0.14);border-radius:18px;padding:30px 26px;box-shadow:0 10px 26px rgba(122,75,83,0.06);position:relative;transition:transform .25s,box-shadow .25s;}
  .spec-card:hover{transform:translateY(-5px);box-shadow:0 18px 36px rgba(122,75,83,0.13);}
  .spec-icon{width:46px;height:46px;border-radius:13px;background:var(--blush);display:flex;align-items:center;justify-content:center;font-size:20px;margin-bottom:18px;color:var(--mauve);}
  .spec-card h3{font-size:19px;color:var(--mauve);margin-bottom:16px;}
  .spec-list{list-style:none;display:flex;flex-direction:column;gap:10px;}
  .spec-list li{font-size:14px;color:var(--body-copy);padding-left:20px;position:relative;}
  .spec-list li::before{content:'✓';position:absolute;left:0;color:var(--gold-deep);font-weight:700;}
  .spec-not-offered{margin-top:16px;display:flex;flex-wrap:wrap;gap:8px;}
  .spec-not-offered span{display:inline-flex;align-items:center;gap:5px;font-size:11.5px;color:#9a5a5a;background:#fbeceb;border-radius:20px;padding:6px 12px;}

  /* FAQ */
  .faq-list{max-width:760px;margin:0 auto;}
  .faq-item{border-bottom:1px solid rgba(122,75,83,0.18);}
  .faq-q{width:100%;background:none;border:none;text-align:left;padding:22px 4px;font-family:var(--serif);font-size:20px;color:#3D2A2D;cursor:pointer;display:flex;justify-content:space-between;align-items:center;gap:20px;}
  .faq-icon{flex-shrink:0;font-size:22px;color:var(--gold-deep);transition:transform .25s;}
  .faq-item.open .faq-icon{transform:rotate(45deg);}
  .faq-a{max-height:0;overflow:hidden;transition:max-height .35s ease;}
  .faq-a p{padding:0 4px 22px;color:var(--body-copy);font-size:15px;max-width:640px;}

  .lightbox-nav{position:absolute;top:50%;transform:translateY(-50%);background:rgba(255,255,255,0.12);border:none;color:var(--ivory);font-size:26px;width:48px;height:48px;border-radius:50%;cursor:pointer;}
  .lightbox-prev{left:20px;}
  .lightbox-next{right:20px;}
  .lightbox-nav:hover{background:rgba(255,255,255,0.24);}

  .mobile-bar{display:none;}
  @media(max-width:900px){
    .mobile-bar{display:flex;position:fixed;bottom:0;left:0;right:0;z-index:100;background:var(--ivory);border-top:1px solid rgba(122,75,83,0.15);padding:12px 16px;gap:12px;box-shadow:0 -8px 24px rgba(122,75,83,0.12);}
    .mobile-bar-btn{flex:1;text-align:center;padding:13px;border-radius:30px;font-size:14px;font-weight:700;}
    .mobile-bar-btn.primary{background:var(--mauve);color:var(--ivory);}
    .mobile-bar-btn.ghost{border:1.5px solid var(--mauve);color:var(--mauve);}
    body{padding-bottom:70px;}
  }
  @media(max-width:900px){
    .nav-links,.nav-cta{display:none;}
    .burger{display:block;}
    .hero-inner,.about-grid{grid-template-columns:1fr;}
    .hero-inner{gap:36px;}
    .hero-visual{display:none;}
    .hero{padding:24px 32px 20px;}
    .service-cards{grid-template-columns:1fr;}
    .spec-grid{grid-template-columns:1fr 1fr;}
    .testi-masonry{column-count:1;}
    .testi-card2{padding:22px 20px;}
    .polaroid-grid{grid-template-columns:repeat(2,1fr);}
    .polaroid{margin-top:0 !important;transform:none !important;}
    .contact-panel{grid-template-columns:1fr;padding:34px;border-radius:20px;}
    .two-col{grid-template-columns:1fr;}
    .fallback-box .copy-btn{padding:13px 22px;}
  }

/* ============================================================
   WordPress core classes
   ============================================================ */
.screen-reader-text{border:0;clip:rect(1px,1px,1px,1px);clip-path:inset(50%);height:1px;margin:-1px;overflow:hidden;padding:0;position:absolute;width:1px;word-wrap:normal!important;}
.alignleft{float:left;margin:0 24px 18px 0;}
.alignright{float:right;margin:0 0 18px 24px;}
.aligncenter{display:block;margin:0 auto 18px;}
.alignwide,.alignfull{max-width:100%;height:auto;}
img{max-width:100%;height:auto;}
.wp-caption{max-width:100%;}
.wp-caption-text,figcaption{font-size:13px;color:#8a6a6d;}
.sticky,.gallery-caption,.bypostauthor{display:block;}
.custom-logo{max-height:60px;width:auto;display:block;}

/* Mobile nav drawer (class-based) */
.nav-links ul{display:flex;gap:34px;list-style:none;margin:0;padding:0;}
.nav-links li{list-style:none;}
.nav-links li a{color:var(--mauve);}
.nav-links li a:hover{color:var(--gold-deep);}
@media(max-width:900px){
  .nav-links.is-open{display:flex!important;flex-direction:column;position:absolute;top:74px;right:32px;background:var(--ivory);padding:20px;border-radius:16px;box-shadow:0 14px 30px rgba(122,75,83,0.18);gap:16px;z-index:60;}
}

/* Contact form messages */
.form-msg{display:none;font-size:13px;font-weight:600;color:var(--mauve);}
.form-msg.is-error{color:#9a2b2b;}

.btn-gold{background:var(--gold);color:#3d2a2d;padding:14px 26px;border-radius:30px;font-size:14px;font-weight:700;display:inline-block;}
.btn-gold:hover{background:#b98f47;}

/* ============================================================
   Inner pages (blog, default pages)
   ============================================================ */
.inner-page{padding:70px 0 100px;}
.entry-title{font-family:var(--serif);font-size:clamp(30px,4vw,44px);margin-bottom:18px;color:#3D2A2D;}
.entry-content{max-width:760px;color:var(--body-copy);}
.entry-content h2,.entry-content h3{margin:32px 0 12px;}
.entry-content p,.entry-content ul,.entry-content ol{margin-bottom:18px;}
.entry-content ul,.entry-content ol{padding-left:22px;}
.entry-content a{color:var(--mauve);text-decoration:underline;}
.entry-thumb{margin:0 0 26px;border-radius:18px;overflow:hidden;}
.post-meta{font-size:13px;color:#8a6a6d;margin-bottom:22px;}
.post-list{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:28px;}
.post-card{background:var(--ivory);border:1px solid rgba(122,75,83,0.1);border-radius:18px;padding:26px;box-shadow:0 10px 26px rgba(122,75,83,0.07);}
.post-card h2{font-size:22px;margin-bottom:6px;}
.post-card h2 a{color:#3D2A2D;}
.post-card-thumb{display:block;border-radius:12px;overflow:hidden;margin-bottom:16px;}
.entry-excerpt{font-size:14px;color:var(--body-copy);margin-bottom:16px;}
.pagination{margin-top:40px;font-size:14px;}
.pagination .page-numbers{padding:8px 14px;border-radius:20px;color:var(--mauve);}
.pagination .page-numbers.current{background:var(--mauve);color:var(--ivory);}

/* ============================================================
   Booking page
   ============================================================ */
.booking-section{padding:60px 0 100px;}
.booking-page-content{max-width:760px;margin:0 auto 30px;text-align:center;color:var(--body-copy);}
.booking-shell{max-width:840px;margin:0 auto;background:var(--ivory);border:1px solid rgba(122,75,83,0.12);border-radius:26px;padding:38px 40px 34px;box-shadow:0 24px 60px rgba(122,75,83,0.12);}
.booking-empty{text-align:center;color:var(--body-copy);}

.booking-steps{display:flex;gap:10px;list-style:none;margin:0 0 32px;padding:0;flex-wrap:wrap;}
.bstep{flex:1;min-width:120px;display:flex;align-items:center;gap:10px;font-size:12.5px;font-weight:700;letter-spacing:0.03em;text-transform:uppercase;color:#a98d90;padding-bottom:12px;border-bottom:3px solid var(--blush);}
.bstep span{width:26px;height:26px;border-radius:50%;background:var(--blush);color:var(--mauve);display:flex;align-items:center;justify-content:center;font-size:12px;flex-shrink:0;}
.bstep.is-active{color:var(--mauve);border-bottom-color:var(--mauve);}
.bstep.is-active span{background:var(--mauve);color:var(--ivory);}
.bstep.is-done{color:var(--gold-deep);border-bottom-color:var(--gold);cursor:pointer;}
.bstep.is-done span{background:var(--gold);color:#3d2a2d;}

.bpanel{display:none;}
.bpanel.is-active{display:block;animation:gbrFade .25s ease;}
@keyframes gbrFade{from{opacity:0;transform:translateY(6px);}to{opacity:1;transform:none;}}
.bpanel-title{font-family:var(--serif);font-size:23px;color:#3D2A2D;margin:26px 0 16px;}
.bpanel-title:first-child{margin-top:0;}

.choice-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(200px,1fr));gap:12px;}
.choice-grid-2{grid-template-columns:repeat(auto-fit,minmax(220px,1fr));}
.choice{position:relative;display:flex;align-items:center;gap:12px;background:#fffaf7;border:1.5px solid var(--blush);border-radius:16px;padding:18px 20px;cursor:pointer;transition:border-color .2s,box-shadow .2s,transform .2s;min-height:64px;}
.choice:hover{border-color:var(--dusty);transform:translateY(-2px);}
.choice input{position:absolute;opacity:0;pointer-events:none;}
.choice-label{font-size:15px;font-weight:600;color:var(--text);}
.choice::before{content:'';width:20px;height:20px;border-radius:50%;border:2px solid var(--dusty);flex-shrink:0;}
.choice.is-selected{border-color:var(--mauve);box-shadow:0 10px 24px rgba(122,75,83,0.14);background:#fff;}
.choice.is-selected::before{background:var(--mauve);border-color:var(--mauve);box-shadow:inset 0 0 0 3px #fff;}

.stepper{display:flex;align-items:center;gap:12px;}
.stepper-btn{width:48px;height:48px;border-radius:50%;border:1.5px solid var(--dusty);background:#fffaf7;color:var(--mauve);font-size:22px;font-weight:700;cursor:pointer;line-height:1;}
.stepper-btn:hover{background:var(--blush);}
.stepper input{width:82px;height:48px;text-align:center;border:1.5px solid var(--blush);border-radius:14px;font-family:var(--sans);font-size:17px;font-weight:700;color:var(--text);background:#fffaf7;}
.stepper-note{font-size:13px;color:#8a6a6d;}

.calendar{background:#fffaf7;border:1.5px solid var(--blush);border-radius:20px;padding:20px;}
.cal-head{display:flex;align-items:center;justify-content:space-between;margin-bottom:16px;}
.cal-head strong{font-family:var(--serif);font-size:20px;color:#3D2A2D;}
.cal-nav{width:44px;height:44px;border-radius:50%;border:1.5px solid var(--dusty);background:var(--ivory);color:var(--mauve);font-size:20px;cursor:pointer;}
.cal-nav:hover{background:var(--blush);}
.cal-dows{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;margin-bottom:8px;}
.cal-dows span{text-align:center;font-size:11px;font-weight:700;letter-spacing:0.05em;color:#a98d90;}
.cal-grid{display:grid;grid-template-columns:repeat(7,1fr);gap:6px;min-height:240px;}
.cal-loading{grid-column:1/-1;text-align:center;font-size:14px;color:#8a6a6d;padding:40px 0;}
.cal-cell{min-height:46px;border-radius:12px;border:1.5px solid transparent;background:var(--ivory);color:var(--text);font-family:var(--sans);font-size:15px;font-weight:600;cursor:pointer;transition:background .15s,color .15s;}
.cal-cell.is-empty{background:none;border:none;cursor:default;}
.cal-cell.is-open{border-color:var(--dusty);color:var(--mauve);}
.cal-cell.is-open:hover{background:var(--blush);}
.cal-cell.is-full{background:#f7ecec;color:#b58d90;cursor:not-allowed;text-decoration:line-through;}
.cal-cell.is-closed,.cal-cell.is-past,.cal-cell.is-future{background:transparent;color:#cbb4b6;cursor:not-allowed;}
.cal-cell.is-picked{background:var(--mauve);border-color:var(--mauve);color:var(--ivory);}
.cal-legend{display:flex;gap:18px;flex-wrap:wrap;margin-top:16px;font-size:12px;color:#8a6a6d;}
.cal-legend span{display:flex;align-items:center;gap:6px;}
.cal-legend i{width:12px;height:12px;border-radius:50%;display:block;}
.cal-legend .dot-open{border:2px solid var(--dusty);}
.cal-legend .dot-full{background:#f0d6d6;}
.cal-legend .dot-closed{background:#e8dcdc;}

.slots{display:flex;flex-wrap:wrap;gap:10px;}
.slot{padding:13px 22px;border-radius:30px;border:1.5px solid var(--dusty);background:#fffaf7;color:var(--mauve);font-family:var(--sans);font-size:14px;font-weight:700;cursor:pointer;min-height:46px;}
.slot:hover{background:var(--blush);}
.slot.is-picked{background:var(--mauve);border-color:var(--mauve);color:var(--ivory);}
.slots-note{font-size:14px;color:#8a6a6d;margin:0;}

.booking-shell .field{margin-bottom:18px;}
.booking-shell .field label{display:block;font-size:12px;font-weight:700;color:var(--mauve);margin-bottom:6px;text-transform:uppercase;letter-spacing:0.04em;}
.booking-shell .field input,.booking-shell .field textarea{width:100%;border:1.5px solid var(--blush);border-radius:12px;padding:14px 16px;font-family:var(--sans);font-size:15px;color:var(--text);background:#fffaf7;outline:none;}
.booking-shell .field input:focus,.booking-shell .field textarea:focus{border-color:var(--mauve);}

.bfield-error{display:none;font-size:13px;font-weight:600;color:#9a2b2b;margin:8px 0 0;}
.bfield-error.is-visible{display:block;}

.bnav{display:flex;align-items:center;justify-content:space-between;gap:14px;margin-top:32px;padding-top:24px;border-top:1px solid rgba(122,75,83,0.12);}
.bnav .btn-primary,.bnav .btn-ghost{border:none;cursor:pointer;font-family:var(--sans);}
.bnav .btn-ghost{border:1.5px solid var(--dusty);background:none;}
.bnav button:disabled{opacity:.6;cursor:wait;}

.review-list{display:grid;grid-template-columns:auto 1fr;gap:10px 22px;margin:0;font-size:15px;}
.review-list dt{font-size:12px;font-weight:700;text-transform:uppercase;letter-spacing:0.04em;color:var(--mauve);padding-top:2px;}
.review-list dd{margin:0;color:var(--body-copy);}
.deposit-note{margin-top:24px;background:#fdf5f2;border:1px dashed var(--dusty);border-radius:14px;padding:16px 18px;font-size:13.5px;color:var(--body-copy);}

.booking-done{text-align:center;padding:20px 0 10px;}
.done-mark{width:70px;height:70px;border-radius:50%;background:var(--gold);color:#3d2a2d;font-size:34px;display:flex;align-items:center;justify-content:center;margin:0 auto 20px;}
.booking-done h3{font-family:var(--serif);font-size:30px;color:#3D2A2D;margin-bottom:12px;}
.booking-done > p{max-width:520px;margin:0 auto 26px;color:var(--body-copy);}
.booking-done .review-list{max-width:460px;margin:0 auto 24px;text-align:left;}
.done-ref{font-size:13px;color:#8a6a6d;margin-bottom:24px;}

@media(max-width:900px){
  .booking-shell{padding:26px 20px 24px;border-radius:20px;}
  .booking-steps{gap:6px;}
  .bstep{min-width:0;flex:1;font-size:0;gap:0;justify-content:center;padding-bottom:10px;}
  .bstep span{font-size:12px;}
  .choice-grid{grid-template-columns:1fr;}
  .bnav{flex-direction:column-reverse;align-items:stretch;}
  .bnav .btn-primary,.bnav .btn-ghost{text-align:center;}
  .review-list{grid-template-columns:1fr;gap:4px 0;}
  .review-list dd{margin-bottom:12px;}
  .cal-cell{min-height:42px;font-size:14px;}
  .inner-page{padding:40px 0 80px;}
}
