/* Sections and components */
.redesign-section { padding: 5rem 0px; background: rgb(246, 249, 252); }
.section-shell { width: min(100% - 4rem, 1216px); margin-inline: auto; }
.section-heading { display: flex; align-items: flex-end; justify-content: space-between; gap: 2rem; margin-bottom: 2rem; }
.section-kicker { display: block; margin-bottom: 0.65rem; font-size: 0.75rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: rgb(113, 82, 58); }
.section-heading h2 { font-family: var(--font-heading); font-size: clamp(1.75rem, 3vw, 2.5rem); line-height: 1.15; font-weight: 700; color: var(--primary); letter-spacing: -0.025em; }
.section-heading > p { max-width: 320px; color: var(--text-muted); font-size: 0.9375rem; line-height: 1.6; }
.balanced-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 18rem), 1fr)); align-items: stretch; gap: var(--space-lg); }
.balanced-grid > * { min-width: 0px; }
.surface-card { border: 1px solid rgb(217, 228, 237); border-radius: var(--radius-lg); background: rgb(255, 255, 255); overflow: hidden; }
.ui-icon { width: 22px; height: 22px; flex-shrink: 0; }
.ui-button { display: inline-flex; height: auto; white-space: normal; align-items: center; justify-content: space-between; gap: var(--space-md); padding: 0.875rem 1.125rem; min-height: 50px; border-radius: 14px; font-size: 0.875rem; font-weight: 700; transition: background-color 0.15s; }
.ui-button--primary { background: var(--accent-orange); color: rgb(255, 255, 255); }
@media (hover:hover) and (pointer:fine) { .ui-button--primary:hover { background: rgb(150, 61, 0); } }
.ui-button--secondary { background: rgb(237, 243, 248); color: var(--primary); border: 1px solid rgb(217, 228, 237); }
@media (hover:hover) and (pointer:fine) { .ui-button--secondary:hover { background: rgb(220, 232, 242); } }
/* Services */
.service-tabs { display: flex; flex-wrap: wrap; padding: 5px; gap: 5px; margin-bottom: 1.5rem; background: rgb(231, 238, 245); border: 1px solid rgb(213, 225, 235); border-radius: var(--radius-md); }
.service-tabs .tab-btn { flex: 1 1 8em; padding: 0.7rem 1rem; min-height: 48px; border-radius: 11px; font-size: 0.875rem; font-weight: 700; }
.service-tabs .tab-btn[aria-selected="true"] { background: var(--primary); color: rgb(255, 255, 255); box-shadow: 0 2px 6px var(--primary)14; }
.service-tabs .tab-btn[aria-selected="false"] { color: rgb(52, 72, 90); }
.service-feature { display: flex; flex-direction: column; }
.service-photo { width: 100%; height: 240px; object-fit: cover; object-position: center 47%; }
.service-feature-body { padding: 1.5rem; display: flex; flex-direction: column; gap: 0.875rem; flex: 1 1 0%; }
.service-feature h3, .service-details > h3 { font-family: var(--font-heading); font-size: 1.5rem; line-height: 1.25; font-weight: 600; color: var(--primary); }
.service-feature p { color: var(--text-muted); font-size: 0.9375rem; line-height: 1.55; }
.service-benefits { display: grid; gap: 0.55rem; margin: 0.25rem 0px 0.5rem; font-size: 0.875rem; color: rgb(52, 72, 90); }
.service-benefits li { display: flex; align-items: baseline; gap: 0.65rem; }
.service-benefits li::before { content: ""; width: 6px; height: 6px; border-radius: 50%; flex-shrink: 0; background: var(--accent-orange); align-self: center; }
.service-feature-body .ui-button { margin-top: auto; }
.service-details { display: flex; flex-direction: column; padding: 1.5rem; }
.service-details > h3 { font-size: 1.125rem; padding-bottom: 1rem; }
.service-detail-list { display: grid; grid-template-rows: repeat(4, 1fr); flex: 1 1 0%; }
.service-detail { display: flex; min-width: 0px; gap: var(--space-md); align-items: center; padding: 1.125rem 0px; border-top: 1px solid rgb(228, 235, 241); }
.detail-number { display: grid; place-items: center; flex-shrink: 0; width: 40px; height: 40px; background: rgb(240, 245, 249); border-radius: var(--radius-sm); color: rgb(84, 112, 137); font-family: var(--font-heading); font-size: 0.875rem; }
.service-detail h4, .care-steps h4 { color: var(--primary); font-size: 1rem; font-weight: 700; line-height: 1.3; }
.service-detail p, .care-steps p { margin-top: 0.35rem; font-size: 0.875rem; color: var(--text-muted); line-height: 1.6; }
.service-help { display: flex; align-items: center; gap: 0.6rem; border-top: 1px solid rgb(228, 235, 241); padding-top: 1rem; margin-top: 0.5rem; min-height: 48px; font-size: 0.875rem; color: var(--primary); font-weight: 600; }
.service-help > .ui-icon:last-child { margin-left: auto; }
/* Calm care */
.care-section { background: var(--bg-sky); }
.care-grid { min-height: 460px; }
.care-photo { position: relative; margin: 0px; }
.care-photo img { width: 100%; height: 100%; position: absolute; inset: 0px; object-fit: cover; object-position: 40% center; }
.care-photo figcaption { position: absolute; bottom: 1rem; left: 1rem; padding: 0.5rem 0.75rem; border-radius: 9px; background: rgba(255, 255, 255, 0.93); color: rgb(52, 72, 90); font-size: 0.6875rem; }
.care-story { display: flex; flex-direction: column; padding: 2rem; background: rgb(255, 252, 247); border-color: rgb(229, 221, 207); }
.care-story > h3 { font-family: var(--font-heading); color: var(--primary); font-size: clamp(1.5rem, 2.4vw, 2rem); font-weight: 600; line-height: 1.2; max-width: 390px; }
.care-steps { display: grid; flex: 1 1 0%; margin: 1.5rem 0px; padding: 0px; list-style: none; }
.care-steps li { display: flex; align-items: center; gap: var(--space-md); padding: 1rem 0px; }
.care-steps li + li { border-top: 1px solid rgb(232, 225, 214); }
.step-marker { width: 34px; height: 34px; display: grid; place-items: center; flex-shrink: 0; border-radius: 50%; background: rgb(240, 230, 215); color: rgb(113, 82, 58); font-size: 0.8125rem; font-weight: 700; }
.care-story .ui-button { margin-top: auto; background: rgb(255, 255, 255); border-color: rgb(229, 221, 207); }
/* Location */
.location-section { background: rgb(246, 249, 252); }
.location-grid { min-height: 410px; }
.location-info { padding: 2rem; display: flex; flex-direction: column; }
.location-address { display: flex; align-items: flex-start; gap: 0.875rem; padding-bottom: 1.5rem; border-bottom: 1px solid rgb(228, 235, 241); }
.location-address > .ui-icon { width: 28px; height: 28px; color: var(--accent-orange); }
.location-address h3 { font-family: var(--font-heading); color: var(--primary); font-weight: 600; font-size: 1.625rem; line-height: 1.25; }
.location-address p { margin-top: 0.35rem; font-size: 0.875rem; color: var(--text-muted); }
.hours-heading { display: flex; align-items: center; gap: 0.65rem; margin: 1.5rem 0px 1rem; color: var(--primary); }
.hours-heading h4 { font-size: 0.875rem; font-weight: 700; }
.hours-list { margin: 0px 0px 1.5rem; display: grid; gap: 0.875rem; }
.hours-list > div { display: flex; flex-wrap: wrap; align-items: center; justify-content: space-between; gap: var(--space-md); font-size: 0.875rem; }
.hours-list dt { color: var(--text-muted); }
.hours-list dd { margin: 0px; font-weight: 700; color: var(--primary); }
.hours-list .closed-label { font-size: 0.75rem; color: rgb(159, 18, 57); background: rgb(255, 241, 242); border-radius: 8px; padding: 0.3rem 0.55rem; }
.location-info > .ui-button { margin-top: auto; }
.visit-card { background: var(--primary); border-color: var(--primary); padding: 2rem; display: flex; align-items: center; position: relative; color: rgb(255, 255, 255); }
.visit-content { width: 100%; position: relative; z-index: 1; }
.visit-content > h3 { font-family: var(--font-heading); font-size: 2.125rem; font-weight: 600; line-height: 1.18; margin-bottom: 0.7rem; letter-spacing: -0.02em; }
.visit-content > p { color: rgb(216, 229, 239); font-size: 0.875rem; line-height: 1.6; }
.visit-content > .ui-button { width: 100%; margin: 1.5rem 0px 1rem; background: rgb(255, 209, 163); color: rgb(69, 36, 0); }
@media (hover:hover) and (pointer:fine) { .visit-content > .ui-button:hover { background: rgb(255, 224, 189); } }
.visit-links { display: grid; grid-template-columns: 1fr 1fr; gap: 0.75rem; }
.visit-links a { display: flex; gap: 0.6rem; align-items: center; justify-content: center; min-height: 48px; font-size: 0.875rem; font-weight: 600; border: 1px solid rgb(77, 104, 130); border-radius: var(--radius-sm); color: rgb(255, 255, 255); background: rgba(255, 255, 255, 0.03); }
@media (hover:hover) and (pointer:fine) { .visit-links a:hover { background: rgba(255, 255, 255, 0.08); } }
.visit-content .urgent-note { margin-top: 1.25rem; font-size: 0.8125rem; color: rgb(216, 229, 239); }
.visit-orbit { position: absolute; right: 1rem; top: 1rem; width: 140px; height: 140px; display: grid; place-items: center; border-radius: 50%; border: 1px solid rgba(255, 255, 255, 0.08); color: rgba(255, 255, 255, 0.07); }
.visit-orbit > .ui-icon { width: 90px; height: 90px; }
/* App navigation */
.app-nav { display: none; }
.halloween .redesign-section { box-shadow: rgba(215, 155, 99, 0.2) 0px 2px 0px inset; }
/* Header */
body > header.fixed { position: sticky; top: 0px; flex-shrink: 0; z-index: 50; }
body > header > .max-w-7xl { height: auto; min-height: 72px; flex-wrap: wrap; gap: 12px; padding-block: 10px; }
body > header > .max-w-7xl > a { flex-shrink: 0; }
body > header svg[role="img"] { width: 44px; height: 44px; }
body > header nav { flex-wrap: wrap; justify-content: center; flex: 1 1 30rem; }
body > header > .max-w-7xl > div { flex-wrap: wrap; justify-content: flex-end; gap: 8px; }
body > header .button-primary { height: auto; min-height: 44px; padding: 10px 14px; line-height: 1.3; }
body > header .button-primary .icon { font-size: 18px; }
body > header > aside[class] { display: none; }
body > main.flex-1 { padding-top: 0px; padding-bottom: 0px; overflow: visible; }
html { scroll-padding-top: 9rem; }
/* Theme switch */
.theme-toggle { display: inline-flex; align-items: center; justify-content: center; position: static; width: 44px; height: 44px; min-height: 44px; padding: 0px; flex-shrink: 0; border: 1px solid var(--border-sky); border-radius: 99px; background: var(--surface); color: var(--primary); }
.theme-toggle svg { width: 20px; height: 20px; }
.theme-toggle > span { display: none; }
.section-shell { width: calc(100% - 2 * var(--page-gutter)); max-width:1216px; }
.hero > .max-w-7xl > .grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 28rem), 1fr)); align-items: stretch; }
.hero .grid > .hero-copy, .hero > .max-w-7xl > .grid > div { grid-column: auto; }
.hero-copy a { height: auto; min-height: 48px; padding-block: 12px; line-height: 1.4; }
.hero-copy > .flex { align-items: stretch; }
.hero-copy > .flex > a { flex: 1 1 10rem; }
#tips > .max-w-7xl > .grid, #equipo > .max-w-7xl > .grid, body > footer > .max-w-7xl > .grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 15rem), 1fr)); }
#form-consulta-demo .grid { grid-template-columns: repeat(auto-fit, minmax(min(100%, 12rem), 1fr)); }
.service-detail > div, .care-steps li > div { min-width: 0px; }
.section-heading { flex-wrap: wrap; }
.section-heading > div { min-width: 0px; }
.ui-button > .ui-icon { margin-left: auto; }
.visit-links { grid-template-columns: repeat(auto-fit, minmax(min(100%, 8rem), 1fr)); }
/* Tablet and mobile */
@media (max-width: 1199px) {
body > header > aside[class] { display: none; }
body > header nav[aria-label] { display: none; }
body > header > .max-w-7xl { flex-wrap: nowrap; padding-inline: 16px; }
body > header > .max-w-7xl > div { flex: 1 1 0%; min-width: 0px; }
body > header > .max-w-7xl > div > a { min-height: 44px; }
body > footer { padding-bottom: calc(var(--app-nav-space) + 1rem); }
html { scroll-padding-top: 7rem; }
.app-nav { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 6em), 1fr)); font-size: 0.6875rem; position: fixed; inset: auto 0px 0px; z-index: 60; background: rgba(255, 255, 255, 0.96); border-top: 1px solid rgb(217, 228, 237); padding: 6px 8px max(8px,env(safe-area-inset-bottom)); backdrop-filter: blur(12px); }
.app-nav a { display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 5px; min-height: 62px; padding: 4px; border-radius: 14px; color: var(--text-muted); font-size: inherit; line-height: 1.3; font-weight: 700; text-align: center; }
.app-nav a span { max-width: 100%; }
.app-nav a[aria-current="location"] { color: var(--primary); background: var(--bg-sky); }
.app-nav a:last-child { color: rgb(164, 65, 0); }
.redesign-section { padding: 3rem 0px; }
.care-story, .location-info, .visit-card { padding: clamp(16px, 2vw, 24px); }
.service-feature-body, .service-details { padding: clamp(16px, 2vw, 24px); }
.service-photo { height: 220px; }
}
@media (max-width: 767px) {
.section-heading { flex-direction: column; align-items: flex-start; gap: 0.75rem; margin-bottom: 1.5rem; }
.section-heading > p { max-width: none; }
.service-tabs { width: 100%; }
.service-photo { height: auto; aspect-ratio: 16 / 10; }
.service-detail-list { grid-template-rows: none; }
.care-grid, .location-grid { min-height: 0px; }
.care-photo { min-height: 260px; }
.care-story { padding: 20px; }
.visit-card { min-height: 360px; }
}
@media (prefers-reduced-motion: reduce) {
.ui-button { transition: none; }
}
main > :is(section, .hero) > :is(.max-w-7xl, .max-w-3xl, .max-w-2xl), body > footer > .max-w-7xl { padding-inline: var(--page-gutter); }
.hero h1 { font-size: clamp(1.75rem, 4vw, 3rem); line-height: 1.2; }
body > header > .max-w-7xl > div > a.lg\:hidden { width: 44px; height: 44px; min-height: 44px; padding: 0px; flex: 0 0 44px; }

/* Header icons */
body > header .icon { font-size:20px; }

/* Gallery and sample stories */
.moments-section { padding:clamp(48px,7vw,88px) 20px; background:var(--surface,#f3f7fa); }
.moments-container { max-width:1120px; margin-inline:auto; position:relative; z-index:1; }
.moments-demo,.moments-count { text-align:center; color:#52667b; font-size:.875rem; margin:12px 0 20px; }
.moments-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; }
.moments-card { min-width:0; overflow:hidden; border:1px solid #ccdae5; border-radius:24px; background:#fff; color:#18344e; display:flex; flex-direction:column; }
.moments-photo { display:block; position:relative; padding:0; border:0; background:#eaf2f8; cursor:zoom-in; width:100%; }
.moments-photo img { display:block; width:100%; aspect-ratio:4/3; object-fit:cover; }
.moments-expand { position:absolute; bottom:12px; right:12px; width:36px; height:36px; border-radius:50%; display:grid; place-items:center; background:#fff; color:#18344e; font-size:1.25rem; }
.moments-copy { padding:24px; }
.moments-label { display:block; font-size:.75rem; color:#52667b; font-weight:700; line-height:1.5; }
.moments-card h3 { margin:10px 0; font-size:1.2rem; line-height:1.4; }
.moments-card p,.moments-dialog p { line-height:1.65; margin:0; }
.moments-review { padding:28px; background:#fff5e7; justify-content:center; }
.moments-stars { color:#905008; letter-spacing:3px; margin-top:20px; }
.moments-review blockquote { margin:4px 0 28px; }
.moments-review-author { display:flex; gap:12px; align-items:center; margin-top:auto; font-size:.875rem; font-weight:700; }
.moments-review-author svg { width:40px; height:40px; flex-shrink:0; color:#b95b20; padding:8px; border-radius:50%; background:#ffe4c4; }
.moments-dialog { position:fixed; inset:0; margin:auto; width:min(800px,calc(100% - 24px)); max-height:90dvh; overflow:auto; overscroll-behavior:contain; padding:0; border:1px solid #d4dfe8; border-radius:28px; background:#fff; color:#18344e; box-shadow:0 24px 80px #05142866; }
.moments-dialog::backdrop { background:#0a1b30b8; backdrop-filter:blur(6px); }
.moments-dialog-visual { background:#eaf2f8; border-bottom:4px solid #d98c46; }
.moments-dialog-visual img { width:100%; height:clamp(180px,40dvh,390px); object-fit:contain; display:block; }
.moments-close { position:absolute; z-index:2; right:12px; top:12px; min-height:44px; padding:10px 18px; border:1px solid #ccd8e3; border-radius:999px; font:inherit; font-weight:700; background:#fffffff2; color:#18344e; box-shadow:0 3px 12px #0a1b3026; cursor:pointer; }
.moments-section :focus-visible { outline:3px solid #a64c0a; outline-offset:3px; }
.halloween .moments-demo,.halloween .moments-count { color:#d5e3f0; }
.halloween .moments-card { border-color:#7e8b9b; }
.halloween .moments-review { background:#fff0dc; }
@media(max-width:1099px) { .moments-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:649px) { .moments-grid { grid-template-columns:minmax(0,1fr); } .moments-section { padding-inline:16px; } }

.moments-container > .section-heading { display:block; text-align:center; max-width:720px; margin-inline:auto; }
.moments-container > .section-heading h2 { margin:12px 0; }

html.moments-modal-open { overflow:hidden; scrollbar-gutter:stable; }
.moments-dialog .moments-copy { padding:clamp(20px,4vw,36px); }
.moments-dialog h2 { font-size:clamp(1.3rem,3vw,1.8rem); line-height:1.25; margin:10px 0 14px; }
.moments-dialog-quote { margin:20px 0; padding:18px 20px; border-left:3px solid #c26a22; border-radius:0 16px 16px 0; background:#fff3e3; }
.moments-dialog-quote .moments-label { margin-bottom:8px; }
.moments-dialog-credit { margin-top:20px; color:#52667b; font-size:.75rem; }

/* Each revealed gallery block fits the usable viewport. */
.moments-paged { padding:0 16px; }
.moments-page { box-sizing:border-box; max-height:var(--moments-page-height,85dvh); display:flex; flex-direction:column; gap:4px; padding:16px 0 8px; scroll-margin-top:calc(var(--header-height,100px) + 12px); }
.moments-page-content { overflow:auto; overscroll-behavior:contain; min-height:0; padding:4px; }
.moments-paged .section-heading h2 { font-size:clamp(1.4rem,3vw,2rem); margin:8px 0; }
.moments-paged .section-heading > p { display:none; }
.moments-paged .moments-demo { margin:8px 0; font-size:.75rem; }
.moments-paged .moments-count { margin:4px 0 12px; font-size:.75rem; }
.moments-paged .moments-grid { grid-template-columns:repeat(3,minmax(0,1fr)); gap:12px; }
.moments-paged .moments-photo img { height:clamp(110px,20dvh,200px); aspect-ratio:auto; }
.moments-paged .moments-copy,.moments-paged .moments-review { padding:16px; }
.moments-paged .moments-card h3 { font-size:1rem; margin:8px 0; }
.moments-paged .moments-card p { font-size:.875rem; }
.moments-paged .moments-review blockquote { margin-bottom:16px; }
.moments-paged .moments-stars { margin-top:10px; }
.moments-more { flex-shrink:0; align-self:center; min-height:44px; border:0; border-radius:12px; padding:8px 16px; background:transparent; color:#244d70; font:inherit; font-size:.875rem; font-weight:700; cursor:pointer; }
.moments-more:focus-visible { outline:3px solid #b75512; outline-offset:2px; }
.halloween .moments-more { color:#f2d3ac; }
@media(hover:hover) and (pointer:fine) { .moments-more:hover { text-decoration:underline; text-underline-offset:4px; } }
.moments-continuation { border:0; padding-top:4px; }
.moments-continuation h3[id] { margin:0 0 18px; font-size:1.25rem; color:#18344e; }
.halloween .moments-continuation h3[id] { color:#f1f6fb; }
@media(max-width:1099px) { .moments-paged .moments-grid { grid-template-columns:repeat(2,minmax(0,1fr)); } }
@media(max-width:649px) { .moments-paged .moments-grid { grid-template-columns:minmax(0,1fr); } .moments-page { padding-block:12px 4px; gap:4px; } }

.moments-page-content > .section-heading { display:block; text-align:center; max-width:720px; margin-inline:auto; }

/* Compact footer: essential links and a single demo contact. */
.compact-footer { padding:36px 0 20px; background:#0f2b48; color:#fff; border-top:2px solid #c77939; }
.footer-inner { max-width:1200px; margin-inline:auto; padding-inline:var(--page-gutter); }
.footer-top { display:grid; grid-template-columns:auto 1fr auto; align-items:center; gap:24px; }
.footer-brand { display:flex; gap:12px; align-items:center; color:inherit; font-weight:700; text-decoration:none; }
.footer-brand > svg { flex-shrink:0; width:44px; height:44px; padding:4px; background:#fff; border-radius:12px; }
.footer-brand small { display:block; color:#cfdae6; font-size:.75rem; font-weight:400; margin-top:4px; }
.footer-links { display:flex; flex-wrap:wrap; gap:0 16px; justify-content:center; }
.footer-links a { min-height:44px; color:#e1e9f0; font-size:.8125rem; text-decoration:none; }
.footer-contact { display:inline-flex; align-items:center; justify-content:center; gap:10px; min-height:44px; border:1px solid #9aabba; border-radius:999px; padding:8px 16px; color:#fff; font-size:.8125rem; font-weight:700; text-decoration:none; }
.footer-bottom { display:flex; flex-wrap:wrap; justify-content:space-between; gap:6px 20px; border-top:1px solid #ffffff26; margin-top:20px; padding-top:12px; color:#cfdae6; font-size:.6875rem; line-height:1.5; }
.footer-bottom p { margin:0; }
.compact-footer :focus-visible { outline:3px solid #ffd1a3; outline-offset:3px; }
@media(max-width:1199px) { .compact-footer { padding-bottom:calc(var(--app-nav-space) + 12px); } .footer-top { grid-template-columns:1fr auto; gap:12px; } .footer-links { grid-column:1/-1; grid-row:2; justify-content:flex-start; } }
@media(max-width:599px) { .footer-top { grid-template-columns:1fr; gap:12px; } .footer-links { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:0 8px; } .footer-contact { justify-self:start; } .footer-bottom { margin-top:16px; } }
