:root{--black:#111;--charcoal:#191919;--cream:#f4f0e8;--white:#fff;--gold:#b99962;--green:#2b8a5f;--red:#c94b4b;--gray:#a8a8a8;--line:#ddd7cc}*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--cream);color:var(--black);font-family:"DM Sans",sans-serif}.hidden{display:none!important}.eyebrow{font-size:.72rem;font-weight:700;letter-spacing:.2em;text-transform:uppercase;color:var(--gold)}button,input{font:inherit}.access-screen{min-height:100vh;display:grid;grid-template-columns:1.1fr .9fr;background:#111}.access-photo{background:linear-gradient(90deg,rgba(0,0,0,.06),rgba(0,0,0,.58)),url("fotos/WhatsApp Image 2026-08-27 at 17.52.21.jpeg") center 38%/cover}.access-panel{display:flex;flex-direction:column;justify-content:center;padding:7vw;max-width:680px;color:#fff}.access-logo{width:112px;height:112px;object-fit:cover;object-position:center;margin-bottom:34px;border:1px solid #353535}.access-panel h1,.hero h2,.section-heading h2,.modal h2{font-family:"Playfair Display",serif}.access-panel h1{font-size:clamp(2.7rem,5vw,5rem);line-height:.98;margin:15px 0 20px}.access-copy{color:#aaa;line-height:1.6;max-width:440px}.access-panel form{display:grid;gap:8px;margin-top:22px;max-width:440px}.access-panel label{font-size:.78rem;font-weight:600;margin-top:10px}.access-panel input{width:100%;padding:16px 0;color:#fff;background:transparent;border:0;border-bottom:1px solid #555;outline:none}.access-panel input:focus{border-color:var(--gold)}.access-panel small{color:#777;margin-top:18px}.form-error{min-height:18px;color:#e77d7d;margin:6px 0 0;font-size:.8rem}.primary-button{background:var(--gold);border:0;color:#111;padding:16px 20px;font-weight:700;cursor:pointer;display:flex;align-items:center;justify-content:space-between;transition:.2s}.primary-button:hover{background:#cbae78;transform:translateY(-1px)}.primary-button:disabled{opacity:.4;cursor:not-allowed;transform:none}.topbar{height:78px;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;background:#111;color:#fff;position:sticky;top:0;z-index:20;border-bottom:1px solid #2c2c2c}.brand{display:flex;align-items:center;gap:12px;color:#fff;text-decoration:none;font-size:.85rem;letter-spacing:.08em;text-transform:uppercase}.brand img{height:48px;width:48px;object-fit:cover}.brand strong{display:block}.topbar nav{display:flex;gap:30px}.topbar nav a,.user-menu button{color:#aaa;text-decoration:none;font-size:.78rem;background:none;border:0;cursor:pointer}.topbar nav a:hover,.user-menu button:hover{color:#fff}.user-menu{display:flex;align-items:center;gap:16px;font-size:.78rem}.user-menu button{border-left:1px solid #444;padding-left:16px}.hero{min-height:calc(100vh - 78px);display:grid;grid-template-columns:.85fr 1.15fr;background:#111;color:#fff}.hero-content{padding:9vw 5vw;display:flex;align-items:flex-start;justify-content:center;flex-direction:column}.hero h2{font-size:clamp(3.4rem,7vw,7.6rem);line-height:.9;margin:18px 0 30px;letter-spacing:-.04em}.hero h2 em{color:var(--gold);font-weight:600}.hero-content p{color:#aaa;max-width:440px;line-height:1.6}.primary-button.inline{display:inline-flex;gap:50px;text-decoration:none;margin-top:20px}.hero-image{background:linear-gradient(0deg,rgba(0,0,0,.55),transparent 55%),url("fotos/WhatsApp Image 2026-08-27 at 17.52.22 (1).jpeg") center/cover;position:relative}.hero-image span{position:absolute;bottom:40px;right:40px;text-align:right;text-transform:uppercase;letter-spacing:.16em;font-size:.68rem;line-height:1.7}.section{padding:110px 6vw}.section-heading{display:flex;align-items:end;justify-content:space-between;margin-bottom:50px;gap:30px}.section-heading h2{font-size:clamp(2.4rem,4vw,4rem);margin:8px 0 0}.section-heading p{max-width:390px;color:#6d6a65;line-height:1.6}.gallery{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:230px;gap:16px}.gallery figure{margin:0;overflow:hidden;background:#ddd}.gallery figure:nth-child(1){grid-column:span 5;grid-row:span 2}.gallery figure:nth-child(2){grid-column:span 3}.gallery figure:nth-child(3){grid-column:span 4}.gallery figure:nth-child(4){grid-column:span 4}.gallery figure:nth-child(5){grid-column:span 3}.gallery figure:nth-child(6){grid-column:span 7}.gallery img{width:100%;height:100%;object-fit:cover;transition:.5s}.gallery figure:hover img{transform:scale(1.035)}.services-section{background:var(--charcoal);color:#fff}.section-heading.light p{color:#999}.services-grid{display:grid;grid-template-columns:repeat(4,1fr);border-top:1px solid #3a3a3a;border-left:1px solid #3a3a3a}.service-card{padding:36px 28px;border-right:1px solid #3a3a3a;border-bottom:1px solid #3a3a3a;min-height:250px;display:flex;flex-direction:column;transition:.25s}.service-card:hover{background:#222}.service-number{color:#777;font-size:.72rem}.service-card h3{font-family:"Playfair Display",serif;font-size:1.65rem;margin:42px 0 10px}.service-card p{color:#888;margin:0;font-size:.85rem}.service-card strong{color:var(--gold);margin-top:auto;font-size:1.2rem}.booking-section{background:#f7f5f0}.booking-layout{display:grid;grid-template-columns:1fr 340px;gap:50px}.booking-main{min-width:0}.booking-main h3{font-size:1rem;margin:0 0 22px}.booking-main h3:not(:first-child){margin-top:45px}.booking-main h3 span{display:inline-grid;place-items:center;border:1px solid #aaa;border-radius:50%;width:25px;height:25px;margin-right:9px;font-size:.72rem}.service-options{display:grid;grid-template-columns:repeat(4,1fr);gap:10px}.service-option{background:#fff;border:1px solid var(--line);padding:18px;text-align:left;cursor:pointer;min-height:100px;display:flex;flex-direction:column;justify-content:space-between}.service-option strong{font-size:.88rem}.service-option span{color:#777;font-size:.8rem}.service-option.selected{border:2px solid var(--black);padding:17px;background:#faf8f2}.legend{display:flex;gap:20px;font-size:.72rem;color:#777;margin:-6px 0 17px}.legend span{display:flex;align-items:center;gap:6px}.legend i{width:9px;height:9px;border-radius:50%}.available{background:var(--green)}.busy{background:var(--red)}.closed{background:var(--gray)}.date-strip-wrap{display:grid;grid-template-columns:36px 1fr 36px;align-items:center;gap:10px}.date-strip{display:grid;grid-template-columns:repeat(7,1fr);gap:8px}.date-button{border:1px solid var(--line);background:#fff;padding:13px 5px;min-height:82px;cursor:pointer}.date-button small{display:block;text-transform:uppercase;font-size:.62rem;color:#777}.date-button strong{font-size:1.25rem;display:block;margin:5px}.date-button i{display:block;width:7px;height:7px;margin:auto;border-radius:50%}.date-button.selected{border:2px solid var(--black);padding:12px 4px}.date-button.closed-day{color:#999;background:#ecebea;cursor:not-allowed}.date-arrow{border:0;background:none;font-size:2rem;color:#888;cursor:pointer}.time-grid{display:grid;grid-template-columns:repeat(5,1fr);gap:9px}.time-button{padding:14px 8px;border:1px solid #b9d9ca;background:#f2fbf6;color:#1e6949;font-weight:600;cursor:pointer}.time-button:hover,.time-button.selected{background:var(--green);color:#fff}.time-button:disabled{border-color:#e4c1c1;background:#faeeee;color:#b26a6a;text-decoration:line-through;cursor:not-allowed}.empty-message{color:#888;font-size:.86rem}.booking-summary{background:#191919;color:#fff;padding:34px;height:max-content;position:sticky;top:105px}.booking-summary h3{font-family:"Playfair Display",serif;font-size:2rem;margin:10px 0 30px}.summary-row{display:flex;justify-content:space-between;gap:20px;border-bottom:1px solid #333;padding:14px 0;font-size:.78rem}.summary-row span{color:#888}.summary-row strong{text-align:right}.summary-total{display:flex;justify-content:space-between;align-items:end;padding:25px 0}.summary-total strong{font-size:1.5rem;color:var(--gold)}.booking-summary .primary-button{width:100%}.booking-summary>p{font-size:.69rem;color:#777;text-align:center;line-height:1.5}footer{background:#0d0d0d;color:#888;display:flex;align-items:center;justify-content:space-between;padding:55px 6vw;font-size:.78rem}.footer-brand{display:flex;gap:15px;align-items:center;color:#fff}.footer-brand>strong{font-family:"Playfair Display";font-size:2rem}.footer-brand small{color:#777}.footer-brand span{line-height:1.4}footer a{color:var(--gold);text-decoration:none}.modal{position:fixed;inset:0;background:rgba(0,0,0,.78);z-index:50;display:grid;place-items:center;padding:20px}.modal-card{width:min(450px,100%);padding:45px;background:#fff;text-align:center}.success-icon{width:60px;height:60px;border-radius:50%;display:grid;place-items:center;background:#e4f5ec;color:var(--green);font-size:1.6rem;margin:0 auto 20px}.modal h2{font-size:2.2rem;margin:10px}.modal p{color:#666;line-height:1.6}.modal .primary-button{width:100%;justify-content:center;margin-top:25px}
@media(max-width:900px){.access-screen{grid-template-columns:1fr}.access-photo{display:none}.access-panel{margin:auto;padding:50px 8vw}.topbar nav{display:none}.hero{grid-template-columns:1fr}.hero-content{min-height:65vh}.hero-image{min-height:55vh}.services-grid{grid-template-columns:repeat(2,1fr)}.booking-layout{grid-template-columns:1fr}.booking-summary{position:static}.service-options{grid-template-columns:repeat(2,1fr)}.date-strip{grid-template-columns:repeat(4,1fr)}.date-button:nth-child(n+5){display:none}.gallery{grid-auto-rows:180px}.section{padding:80px 5vw}}
@media(max-width:560px){.access-logo{width:82px;height:82px}.topbar{padding:0 16px}.brand span,.user-menu span{display:none}.hero-content{padding:70px 22px}.hero h2{font-size:3.4rem}.section{padding:70px 20px}.section-heading{display:block}.section-heading p{margin-top:16px}.gallery{grid-template-columns:1fr;grid-auto-rows:310px}.gallery figure:nth-child(n){grid-column:span 1;grid-row:span 1}.services-grid{grid-template-columns:1fr}.service-card{min-height:190px}.service-card h3{margin-top:25px}.booking-section{padding-left:14px;padding-right:14px}.time-grid{grid-template-columns:repeat(3,1fr)}.booking-summary{padding:28px 22px}footer{align-items:flex-start;gap:30px;flex-direction:column}footer>p{display:none}}
.admin-access{border:0;border-bottom:1px solid #555;background:none;color:#999;padding:6px 0;margin-top:20px;width:max-content;cursor:pointer}.admin-login-card{position:relative;text-align:left}.admin-login-card label{display:block;font-size:.78rem;font-weight:700;margin-top:20px}.admin-login-card input{width:100%;padding:14px;border:1px solid var(--line);margin-top:7px}.admin-login-card small{display:block;color:#999;text-align:center;margin-top:15px}.modal-close{position:absolute;right:18px;top:14px;border:0;background:none;font-size:1.7rem;cursor:pointer;color:#777}.admin-panel{min-height:100vh;background:#f4f2ed}.admin-header{height:78px;background:#111;padding:0 5vw;display:flex;align-items:center;justify-content:space-between;color:#fff}.admin-header>div:last-child{display:flex;gap:10px}.admin-header button,.outline-button{border:1px solid #555;background:transparent;color:#ddd;padding:10px 15px;cursor:pointer}.admin-content{max-width:1240px;margin:auto;padding:65px 30px}.admin-title{display:flex;justify-content:space-between;align-items:end;margin-bottom:35px}.admin-title h1{font-family:"Playfair Display",serif;font-size:3rem;margin:8px 0}.admin-title p{color:#777}.admin-title .outline-button{color:#222;border-color:#aaa}.admin-stats{display:grid;grid-template-columns:repeat(2,1fr);gap:15px;margin-bottom:25px}.admin-stats article{background:#191919;color:#aaa;padding:22px;display:flex;justify-content:space-between;align-items:center}.admin-stats strong{font-size:1.8rem;color:var(--gold)}.admin-scheduler{display:grid;grid-template-columns:1fr 350px;background:#fff;border:1px solid var(--line)}.admin-calendar-head{grid-column:1;display:flex;align-items:center;justify-content:space-between;padding:22px 25px;border-bottom:1px solid var(--line)}.admin-calendar-head h2{font-family:"Playfair Display",serif;margin:0;text-transform:capitalize}.admin-calendar-head button{border:0;background:none;font-size:1.8rem;cursor:pointer}.admin-calendar{padding:15px;display:grid;grid-template-columns:repeat(7,1fr);gap:6px}.admin-weekday{text-align:center;color:#999;text-transform:uppercase;font-size:.65rem;padding:8px}.admin-day{min-height:82px;border:1px solid #e4e0d8;background:#faf9f6;padding:9px;text-align:left;cursor:pointer;position:relative}.admin-day.selected{border-color:#111}.admin-day.open{background:#eff8f3;border-color:#b8d9c8}.admin-day.past{opacity:.38;pointer-events:none}.admin-day.empty{visibility:hidden}.admin-day small{display:block;color:#777;margin-top:8px;font-size:.62rem}.admin-day i{position:absolute;right:8px;top:8px;width:7px;height:7px;border-radius:50%;background:#aaa}.admin-day.open i{background:var(--green)}.day-editor{grid-column:2;grid-row:1/span 2;border-left:1px solid var(--line);padding:28px}.day-editor h3,.appointments h2{font-family:"Playfair Display",serif;font-size:1.7rem}.toggle-row{display:flex;justify-content:space-between;align-items:center;background:#f2f0eb;padding:14px;margin:22px 0}.toggle-row input{width:20px;height:20px;accent-color:var(--green)}.hours-label{font-size:.78rem;font-weight:700;display:block;margin:25px 0 8px}.hours-input{width:100%;min-height:105px;padding:12px;border:1px solid var(--line)}.editor-help{font-size:.7rem}.save-day{width:100%;margin-top:18px}.appointments{margin-top:45px}.appointment-item{display:grid;grid-template-columns:150px 1fr 1fr auto;gap:20px;align-items:center;padding:18px;background:#fff;border-bottom:1px solid var(--line);font-size:.82rem}.appointment-item span{color:#777}.appointment-item button{border:0;background:#fae8e8;color:#a13b3b;padding:8px;cursor:pointer}.no-appointments{color:#888;background:#fff;padding:25px}.toast{position:fixed;bottom:25px;right:25px;background:#1d704d;color:#fff;padding:14px 20px;z-index:100}
@media(max-width:900px){.admin-scheduler{grid-template-columns:1fr}.day-editor{grid-column:1;grid-row:auto;border-left:0;border-top:1px solid var(--line)}}
@media(max-width:560px){.admin-content{padding:40px 12px}.admin-title{align-items:flex-start;flex-direction:column}.admin-calendar{gap:2px;padding:6px}.admin-day{min-height:62px;padding:5px}.admin-day small{display:none}.appointment-item{grid-template-columns:1fr 1fr}}
.open-close-buttons{display:grid;grid-template-columns:1fr 1fr;gap:10px;margin:25px 0}.status-button{min-height:62px;border:2px solid #ddd;background:#fff;font-weight:800;font-size:.9rem;cursor:pointer}.open-status{color:var(--green)}.open-status.active{color:#fff;background:var(--green);border-color:var(--green)}.close-status{color:var(--red)}.close-status.active{color:#fff;background:var(--red);border-color:var(--red)}.editor-disabled{opacity:.3;pointer-events:none}.admin-hours{display:grid;grid-template-columns:repeat(3,1fr);gap:8px;margin:10px 0 22px}.admin-hour{min-height:52px;border:1px solid #acd2bd;background:#edf8f2;color:#216846;cursor:pointer;display:flex;align-items:center;justify-content:center;gap:8px}.admin-hour span{color:#a44;font-size:1.1rem}.add-hour-row{display:grid;grid-template-columns:1fr auto;gap:8px}.add-hour-row input{min-width:0;border:1px solid var(--line);padding:15px;font-size:1rem}.add-hour-row button,.quick-hours{border:0;background:#222;color:#fff;padding:0 16px;font-weight:700;cursor:pointer}.quick-hours{width:100%;padding:13px;margin-top:9px;background:#e8e4db;color:#333}.save-day{min-height:58px;font-size:1rem;justify-content:center}.day-editor{min-width:0}@media(max-width:560px){.open-close-buttons{grid-template-columns:1fr}.status-button{min-height:58px}.admin-hours{grid-template-columns:repeat(3,1fr)}.add-hour-row{grid-template-columns:1fr}.add-hour-row button{padding:15px}}
