/* Mical Eileen - actualizacion publica incremental. Sin dependencias externas. */
:root {
  --public-focus: #74405e;
  --public-soft: #f9f0ee;
}
html { scroll-padding-top: 105px; }
body { text-rendering: optimizeLegibility; }
a, button, input, textarea, select, summary { -webkit-tap-highlight-color: transparent; }
a:focus-visible, button:focus-visible, input:focus-visible,
textarea:focus-visible, select:focus-visible, summary:focus-visible {
  outline: 3px solid #a9698a !important;
  outline-offset: 3px;
}
[hidden] { display: none !important; }

/* Navigation and scroll feedback */
.reading-progress { position: fixed; inset: 0 0 auto; height: 3px; z-index: 1200; pointer-events: none; }
.reading-progress > span { display:block; height:100%; width:100%; transform:scaleX(0); transform-origin:left; background:linear-gradient(90deg, #95506f, #d28b79); }
.site-navbar { transition: box-shadow .25s ease, background-color .25s ease, padding .25s ease; }
.site-navbar.navbar-scrolled { box-shadow: 0 6px 26px rgba(69,35,53,.10); background: rgba(255,252,249,.98); }
.site-navbar .nav-link { position: relative; border-radius: 10px; transition: color .2s ease, background .2s ease; }
.site-navbar .nav-link:hover, .site-navbar .nav-link.nav-current { color: var(--brand-primary); background: rgba(109,53,87,.055); }
.btn, .service-select, .service-filter, .links-list a { transition: transform .2s ease, background-color .2s ease, box-shadow .2s ease, border-color .2s ease, color .2s ease; }
.btn:hover, .service-select:hover { transform: translateY(-2px); }
.btn:active, .service-select:active { transform: translateY(0); }
.back-to-top { position:fixed; right:22px; bottom: 88px; width:43px; height:43px; border:1px solid var(--brand-line); background:white; border-radius:50%; display:grid; place-items:center; color:var(--brand-primary); box-shadow:var(--shadow-sm); z-index:1040; opacity:0; transform:translateY(9px); pointer-events:none; transition:opacity .25s,transform .25s; text-decoration:none; }
.back-to-top.is-visible { opacity:1; transform:translateY(0); pointer-events:auto; }
.back-to-top:hover { color:var(--brand-primary-dark); background:var(--brand-cream); }

/* Hero and subtle interactions */
.hero-section { overflow:clip; }
.hero-copy h1 { text-wrap:balance; }
.hero-copy > p { line-height:1.7; }
.hero-section .eyebrow { letter-spacing:.09em; }
.hero-trust span { display:inline-flex; align-items:center; gap:7px; }
.hero-trust i { color:#357452; }
.hero-section .floating-note { transition: transform .35s ease, box-shadow .35s ease; }
.hero-section .floating-note:hover { transform:translateY(-4px); box-shadow:var(--shadow-lg); }
.portrait-photo, .about-photo { object-fit: cover; }
.about-card { transition: box-shadow .28s ease; }
.about-card:hover { box-shadow:var(--shadow-lg); }

/* Service catalogue: fewer words per card, clear controls */
.services-section .section-heading { max-width:720px; }
.service-tools { max-width:1000px; margin: 8px auto 20px; display:grid; gap:13px; }
.service-search-wrap { position:relative; }
.service-search-wrap > i { position:absolute; left:19px; top:50%; transform:translateY(-50%); color:#896a7a; pointer-events:none; font-size:1.1rem; }
.service-search-wrap input { width:100%; min-height:55px; background:#fff; border:1px solid #e9dce1; border-radius:16px; padding:13px 18px 13px 49px; font-size:1rem; color:var(--brand-ink); box-shadow:0 8px 20px rgba(68,34,52,.035); }
.service-search-wrap input::placeholder { color:#8a7883; }
.service-search-wrap input:focus { border-color:var(--brand-primary); box-shadow:0 0 0 4px rgba(109,53,87,.08); }
.service-filters { display:flex; flex-wrap:wrap; gap:9px; justify-content:center; }
.service-filter { border:1px solid #e2d1d9; border-radius:999px; padding:9px 17px; background:white; color:#6b4359; font-weight:700; font-size:.875rem; line-height:1.3; }
.service-filter:hover { border-color:var(--brand-primary); background:var(--brand-cream); }
.service-filter.active { color:#fff; border-color:var(--brand-primary); background:var(--brand-primary); box-shadow:0 7px 17px rgba(109,53,87,.17); }
.service-results { margin:0; min-height:20px; text-align:center; font-size:.82rem; color:var(--brand-muted); }
.service-card-modern { padding:23px; height:100%; border-color:#eadde1; box-shadow:0 5px 18px rgba(68,39,55,.035); }
.service-card-modern:hover { transform:translateY(-4px); box-shadow:0 18px 34px rgba(68,39,55,.095); border-color:#d6b8c7; }
.service-card-top { display:flex; justify-content:space-between; gap:10px; align-items:center; margin-bottom:13px; }
.service-card-modern .service-icon { width:43px; height:43px; margin:0; border-radius:13px; font-size:1.16rem; }
.service-category { color:#85536a; background:var(--brand-cream); border:1px solid #f0e4e3; border-radius:999px; padding:5px 10px; font-size:.69rem; font-weight:750; white-space:nowrap; }
.service-card-modern h3 { font-size:clamp(1.17rem,1.5vw,1.34rem); margin:0 0 10px; line-height:1.35; min-height:0; }
.service-card-modern .service-preview { font-size:.88rem; line-height:1.64; margin:0 0 9px; flex:0 0 auto; color:#655762; }
.service-more { margin:0 0 12px; }
.service-more summary { cursor:pointer; color:var(--brand-primary); list-style:none; display:inline-flex; align-items:center; gap:6px; font-weight:700; font-size:.81rem; padding:6px 0; }
.service-more summary::-webkit-details-marker { display:none; }
.service-more summary i { transition:transform .2s ease; }
.service-more[open] summary i { transform:rotate(180deg); }
.service-more p { font-size:.87rem; background:#fcf7f6; padding:13px; border-radius:12px; margin:5px 0 0; border:1px solid #f0e6e7; }
.service-card-bottom { margin-top:auto; }
.service-card-modern .service-meta { padding-top:14px; border-color:#e9dce1; flex-wrap:wrap; }
.service-select { display:flex; justify-content:space-between; align-items:center; gap:10px; border-radius:12px; background:var(--brand-primary); color:white !important; margin-top:15px; padding:12px 14px; text-decoration:none !important; font-size:.86rem; font-weight:750; }
.service-select:hover { background:var(--brand-primary-dark); box-shadow:0 9px 20px rgba(109,53,87,.18); }
.service-card-modern > .service-select { margin-top:auto; }
.services-more-action { text-align:center; margin:29px 0 0; }
.services-more-action button { padding:12px 25px; }
.services-empty { background:white; border:1px dashed #d9c2cc; padding:36px 20px; border-radius:18px; text-align:center; margin-top:20px; }
.services-empty i { font-size:2rem; color:var(--brand-primary); }
.services-empty h3 { margin:12px 0 6px; font-size:1.22rem; }
.services-empty p { margin-bottom:15px; }

/* The workflow now truly has four steps, including manual approval */
.process-grid { grid-template-columns:repeat(4,minmax(0,1fr)); gap:15px; }
.process-grid article { padding:27px 20px; transition:transform .25s ease,box-shadow .25s ease; }
.process-grid article:hover { transform:translateY(-4px); box-shadow:var(--shadow-sm); }
.process-grid article > span { font-size:2rem; right:17px; top:14px; }
.process-grid h3 { line-height:1.35; }
.reviews-section .review-card { transition:transform .25s ease,box-shadow .25s ease; }
.accordion-button, .accordion-body { line-height:1.6; }
.accordion-button:not(.collapsed) { color:var(--brand-primary); }
.contact-form .form-control { transition:border-color .2s, box-shadow .2s; }
.contact-form .form-control:focus { border-color:#ab7894; box-shadow:0 0 0 .2rem rgba(109,53,87,.09); }

/* Gentle entrance motion: reduced-motion and no-JS safe */
@media (prefers-reduced-motion: no-preference) {
  .motion-ready [data-reveal].will-reveal:not(.is-revealed) { opacity:0; transform:translateY(16px); }
  .motion-ready [data-reveal].will-reveal.is-revealed { animation: public-reveal .53s cubic-bezier(.2,.7,.2,1) both; animation-delay:var(--reveal-delay,0ms); }
  @keyframes public-reveal { from {opacity:0;transform:translateY(16px);} to {opacity:1;transform:translateY(0);} }
  .hero-visual .floating-note { animation: note-arrive .7s .25s ease-out both; }
  @keyframes note-arrive { from {opacity:0;transform:translateY(13px);} to {opacity:1;transform:translateY(0);} }
}

/* Booking and auth pages: avoid jarring focus/overlarge forms */
.booking-card, .portal-card, .contact-form, .auth-card, .links-list a { transition:box-shadow .22s ease,border-color .22s ease,transform .22s ease; }
.choice-card:hover, .date-button:hover, .time-button:hover { border-color:var(--brand-primary); }
.auth-card { box-shadow:0 20px 64px rgba(70,42,57,.12); }
.auth-card input:focus { outline:2px solid #97647e; outline-offset:2px; }

/* Mobile booking access without fighting the WhatsApp button */
.mobile-booking-cta { display:none; }
@media (max-width:991px) {
  .process-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .navbar-collapse { max-height: calc(100dvh - 102px); overflow:auto; }
}
@media (max-width:680px) {
  html { scroll-padding-top:90px; }
  .section-space { padding:61px 0; }
  .service-filters { flex-wrap:nowrap; justify-content:flex-start; overflow-x:auto; padding:2px 0 7px; scrollbar-width:thin; }
  .service-filter { flex:0 0 auto; }
  .service-search-wrap input { min-height:52px; font-size:.92rem; }
  .service-card-modern { padding:20px; }
  .service-card-modern h3 { font-size:1.25rem; }
  .process-grid { grid-template-columns:1fr; gap:12px; }
  .process-grid article { padding:22px; }
  .process-grid h3 { margin-top:12px; }
  body:has(.mobile-booking-cta) { padding-bottom:70px; }
  .mobile-booking-cta { display:flex; align-items:center; justify-content:center; gap:10px; position:fixed; bottom:0; left:0; right:0; z-index:1035; padding:13px 18px calc(13px + env(safe-area-inset-bottom)); background:var(--brand-primary); color:#fff; font-weight:800; font-size:.92rem; text-decoration:none; box-shadow:0 -7px 24px rgba(68,34,52,.15); }
  .mobile-booking-cta:hover { color:#fff; background:var(--brand-primary-dark); }
  body:has(.mobile-booking-cta) .whatsapp-float { bottom:calc(76px + env(safe-area-inset-bottom)); }
  body:has(.mobile-booking-cta) .back-to-top { bottom:calc(140px + env(safe-area-inset-bottom)); }
  .back-to-top { right:17px; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior:auto; }
  *, *::before, *::after { animation-duration:.01ms !important; animation-iteration-count:1 !important; transition-duration:.01ms !important; }
  [data-reveal] { opacity:1 !important; transform:none !important; }
}
