/* LOUISE Beauty Space · V22 visual polish
   Intencionalmente discreto: editorial, premium e com microinterações úteis. */
:root{
  --ui-green:#06281d;
  --ui-green-deep:#031a12;
  --ui-gold:#d8a946;
  --ui-gold-soft:#f2cf78;
  --ui-cream:#fbf7ef;
  --ui-ink:#15231d;
  --ui-line:rgba(119,92,45,.18);
  --ui-shadow:0 18px 55px rgba(25,31,26,.10);
  --ui-shadow-hover:0 24px 70px rgba(16,31,24,.15);
  --ui-ease:cubic-bezier(.22,1,.36,1);
}
html{scroll-padding-top:100px}
body{font-family:'Manrope','DM Sans',sans-serif;-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}
::selection{background:rgba(216,169,70,.28);color:#09261c}
:focus-visible{outline:2px solid var(--ui-gold)!important;outline-offset:3px!important}

/* ===== Loading experience ===== */
.ui-loader{display:none}
.js .ui-loader{position:fixed;inset:0;z-index:9999;display:grid;place-items:center;background:
  radial-gradient(circle at 50% 42%,rgba(45,91,69,.34),transparent 32%),
  linear-gradient(145deg,#03160f,#052b1e 72%,#08291f);color:#fff;overflow:hidden;opacity:1;visibility:visible;transition:opacity .65s var(--ui-ease),visibility .65s var(--ui-ease);animation:uiLoaderFailsafe .01s linear 4s forwards}
.js .ui-loader:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.15;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 180 180' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.9' numOctaves='2' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.16'/%3E%3C/svg%3E")}
.ui-loader.is-leaving{opacity:0!important;visibility:hidden!important;pointer-events:none!important}
.ui-loader-inner{position:relative;z-index:2;width:min(310px,78vw);text-align:center}
.ui-loader-mark{width:104px;height:104px;margin:0 auto 22px;position:relative;display:grid;place-items:center}
.ui-loader-mark:before,.ui-loader-mark:after{content:"";position:absolute;border-radius:50%;inset:0;border:1px solid rgba(242,207,120,.55)}
.ui-loader-mark:after{inset:8px;border-color:rgba(242,207,120,.18);animation:uiRing 1.9s ease-in-out infinite}
.ui-loader-mark img{width:82px;height:82px;object-fit:contain;border-radius:50%;filter:drop-shadow(0 10px 26px rgba(0,0,0,.22));animation:uiMarkBreath 1.8s ease-in-out infinite}
.ui-loader-name{font-family:'Cormorant Garamond','Playfair Display',serif;font-size:34px;line-height:1;letter-spacing:.08em;color:var(--ui-gold-soft);font-weight:600}
.ui-loader-sub{margin-top:8px;font-size:9px;text-transform:uppercase;letter-spacing:.28em;color:rgba(255,255,255,.68)}
.ui-loader-line{height:1px;width:100%;margin:24px auto 10px;background:rgba(255,255,255,.09);overflow:hidden;position:relative}
.ui-loader-line:after{content:"";position:absolute;inset:0 auto 0 -45%;width:45%;background:linear-gradient(90deg,transparent,var(--ui-gold-soft),transparent);animation:uiLoadLine 1.25s var(--ui-ease) infinite}
.ui-loader-note{font-size:10px;color:rgba(255,255,255,.58);letter-spacing:.03em}
.ui-scroll-progress{position:fixed;left:0;top:0;height:2px;width:0;background:linear-gradient(90deg,#b98124,#f3d681);z-index:9998;box-shadow:0 0 16px rgba(237,190,83,.38);pointer-events:none;transition:width .08s linear}
@keyframes uiRing{50%{transform:scale(1.08);opacity:.35}}
@keyframes uiMarkBreath{50%{transform:translateY(-2px);filter:drop-shadow(0 16px 30px rgba(0,0,0,.26))}}
@keyframes uiLoadLine{0%{transform:translateX(0)}100%{transform:translateX(325%)}}
@keyframes uiLoaderFailsafe{to{opacity:0;visibility:hidden;pointer-events:none}}

/* ===== Typography refinement ===== */
.hero h1,.section-heading h2,.section-copy h2,.booking-app-copy h1,.booking-inner h2,.step-heading-v2 h2,.manage-hero h1,.manage-status-row h2,.admin-topbar h1,.panel-head h2,.admin-placeholder h2,.login-card h2,.login-brand-side h1{
  font-family:'Cormorant Garamond','Playfair Display',serif!important;
  letter-spacing:-.018em;
}
.section-heading h2,.section-copy h2{font-weight:600!important}
.eyebrow{font-family:'Manrope','DM Sans',sans-serif;letter-spacing:.19em}

/* ===== Public landing page ===== */
.site-header{transition:background .35s ease,border-color .35s ease,box-shadow .35s ease}
.site-header.ui-scrolled{background:rgba(4,27,19,.94);border-bottom-color:rgba(216,169,70,.26);box-shadow:0 12px 38px rgba(0,0,0,.12)}
.main-nav a{transition:color .22s ease,opacity .22s ease}.main-nav a:hover,.main-nav a.is-current{color:#f1cd75}
@media(min-width:561px){.hero:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.07;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E");mix-blend-mode:soft-light}}
.hero-photo img{transition:transform .7s var(--ui-ease),filter .7s var(--ui-ease)}
.hero-photo:hover img{transform:translateY(-4px) scale(1.008);filter:drop-shadow(0 38px 50px rgba(0,0,0,.32))}
.gold-orbit{animation:uiOrbit 12s ease-in-out infinite alternate}
@keyframes uiOrbit{to{transform:rotate(13deg) scale(1.015);opacity:.76}}
.btn,.booking-primary,.booking-secondary,.calendar-head-actions a,.panel-head a{position:relative;overflow:hidden;isolation:isolate;transition:transform .25s var(--ui-ease),box-shadow .25s var(--ui-ease),border-color .25s ease,background .25s ease}
.btn:after,.booking-primary:after{content:"";position:absolute;z-index:-1;top:-120%;left:-25%;width:42%;height:340%;transform:rotate(22deg);background:linear-gradient(90deg,transparent,rgba(255,255,255,.22),transparent);transition:left .65s var(--ui-ease)}
.btn:hover:after,.booking-primary:hover:after{left:115%}
.btn:hover,.booking-primary:hover{transform:translateY(-2px);box-shadow:0 16px 34px rgba(15,40,29,.16)}
.trust-grid,.service-card,.combo-card,.testimonial-card,.location-card,.benefits-grid article,.admin-panel,.admin-cards article,.manage-card{transition:transform .32s var(--ui-ease),box-shadow .32s var(--ui-ease),border-color .32s ease}
.service-card:hover,.combo-card:hover,.testimonial-card:hover,.benefits-grid article:hover{transform:translateY(-5px);box-shadow:var(--ui-shadow-hover);border-color:rgba(170,129,51,.30)}
.result,.video-row video{box-shadow:0 12px 36px rgba(28,33,28,.08);transition:transform .42s var(--ui-ease),box-shadow .42s var(--ui-ease)}
.result:hover,.video-row video:hover{transform:translateY(-3px);box-shadow:0 20px 46px rgba(28,33,28,.14)}
.section{position:relative}.section-heading:after{content:"";display:block;width:54px;height:1px;margin:20px auto 0;background:linear-gradient(90deg,transparent,#c79638,transparent)}
.testimonial-stars{letter-spacing:.12em;text-shadow:0 3px 14px rgba(197,145,45,.18)}

/* refined entrance - works alongside existing reveal classes */
.reveal{will-change:transform,opacity;transition-duration:.8s!important;transition-timing-function:var(--ui-ease)!important}

/* ===== Booking funnel ===== */
.booking-page{background:
  radial-gradient(circle at 10% 0,rgba(216,169,70,.08),transparent 26%),
  linear-gradient(180deg,#f8f2e8,#f5ede1)!important}
.booking-header-v2{backdrop-filter:blur(14px);background:rgba(5,38,28,.97)!important;border-bottom:1px solid rgba(216,169,70,.34)}
.booking-app-card{box-shadow:0 28px 85px rgba(39,31,20,.12)!important;border-color:rgba(152,117,54,.16)!important}
.booking-app-top{position:relative;overflow:hidden}.booking-app-top:after{content:"";position:absolute;inset:auto -50px -120px auto;width:260px;height:260px;border:1px solid rgba(225,181,86,.16);border-radius:50%;pointer-events:none}
.booking-progress-v2 button{transition:transform .25s var(--ui-ease),color .25s ease}.booking-progress-v2 button.active{transform:translateY(-1px)}
.booking-service,.specialist-card,.date-card,.time-slot,.receipt-upload{transition:transform .2s var(--ui-ease),box-shadow .25s var(--ui-ease),border-color .2s ease,background .2s ease}
.booking-service:hover,.specialist-card:hover,.date-card:hover,.time-slot:hover{transform:translateY(-2px)}
.booking-service.selected,.specialist-card.selected,.date-card.selected,.time-slot.selected{box-shadow:0 10px 28px rgba(10,65,47,.12)!important}
.client-form input,.client-form textarea,.client-form select{transition:border-color .2s ease,box-shadow .2s ease,background .2s ease;background:#fffdf9}
.client-form input:focus,.client-form textarea:focus,.client-form select:focus{border-color:#a77a29!important;box-shadow:0 0 0 4px rgba(216,169,70,.11)!important;background:#fff}
.booking-bottom-bar{backdrop-filter:blur(16px);box-shadow:0 -10px 36px rgba(35,27,18,.08)}
.signal-experience{box-shadow:0 18px 45px rgba(48,37,20,.08)}
.receipt-upload:hover{border-color:#b58631!important;background:#fffaf0!important;box-shadow:0 10px 25px rgba(131,94,31,.08)}
.success-status-card>span{animation:uiSuccessPulse 1.8s ease-in-out 2}
@keyframes uiSuccessPulse{50%{transform:scale(1.08);box-shadow:0 0 0 8px rgba(21,114,79,.08)}}

/* ===== Admin panel ===== */
.admin-sidebar{box-shadow:12px 0 45px rgba(5,29,21,.08)}
.admin-sidebar:before{content:"";position:absolute;inset:0;pointer-events:none;opacity:.06;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 160 160' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='.8' numOctaves='2'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='.18'/%3E%3C/svg%3E")}
.admin-sidebar nav button{position:relative;transition:background .2s ease,color .2s ease,transform .2s var(--ui-ease)}
.admin-sidebar nav button:hover{transform:translateX(2px)}
.admin-sidebar nav button.active:before{content:"";position:absolute;left:0;top:10px;bottom:10px;width:2px;border-radius:9px;background:linear-gradient(#f2cf78,#b98026)}
.admin-topbar{background:rgba(255,250,243,.92)!important;backdrop-filter:blur(18px);box-shadow:0 6px 22px rgba(56,46,30,.035)}
.admin-cards article:hover,.admin-panel:hover{box-shadow:0 18px 46px rgba(43,47,42,.075);border-color:rgba(177,137,66,.24)}
.admin-table tbody tr{transition:background .18s ease}.admin-table tbody tr:hover{background:rgba(216,169,70,.045)}
.calendar-event{transition:transform .18s var(--ui-ease),box-shadow .18s ease!important}.calendar-event:hover{transform:translateY(-2px) scale(1.01)!important}
.calendar-panel-head,.calendar-toolbar{background-image:linear-gradient(90deg,rgba(216,169,70,.025),transparent 40%)}

/* ===== Login / client management ===== */
.login-brand-side,.manage-hero{position:relative;overflow:hidden}.login-brand-side:after,.manage-hero:after{content:"";position:absolute;width:330px;height:330px;border:1px solid rgba(238,196,104,.20);border-radius:50%;right:-140px;bottom:-170px;pointer-events:none}
.login-card,.manage-card{box-shadow:var(--ui-shadow)}

/* ===== Responsive polish ===== */
@media(max-width:560px){
  html{scroll-padding-top:112px}
  .ui-loader-mark{width:92px;height:92px}.ui-loader-mark img{width:72px;height:72px}.ui-loader-name{font-size:30px}
  .site-header.ui-scrolled{box-shadow:0 8px 28px rgba(0,0,0,.14)}
  .hero-photo:hover img{transform:none}
  .service-card:hover,.combo-card:hover,.testimonial-card:hover,.benefits-grid article:hover{transform:none;box-shadow:0 10px 28px rgba(40,45,40,.05)}
  .testimonials-track{scroll-snap-type:x mandatory}.testimonial-card{scroll-snap-align:center}
  .booking-service:hover,.specialist-card:hover,.date-card:hover,.time-slot:hover{transform:none}
}
@media(prefers-reduced-motion:reduce){
  *,*:before,*:after{scroll-behavior:auto!important;animation-duration:.01ms!important;animation-iteration-count:1!important;transition-duration:.01ms!important}
  .ui-loader{display:none!important}.ui-scroll-progress{display:none!important}
}
