:root{font-family:"Source Serif 4",serif;line-height:1.5;font-weight:400;color:#1a0f08;background-color:#f8f1ea;font-synthesis:none;text-rendering:optimizeLegibility;-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;--font-display: "Bebas Neue", serif;--bg: #f8f1ea;--ink: #1a0f08;--muted: rgba(42, 20, 10, .7);--accent: #0f3b2e}*,*:before,*:after{box-sizing:border-box}body{margin:0;min-width:320px;background:radial-gradient(circle at top left,#fff7ef,#f8f1ea 40%,#efe0d1);color:var(--ink)}a{color:inherit;text-decoration:none}button{font-family:inherit}img{max-width:100%;display:block}#root{min-height:100vh}.page{color:var(--ink)}.site-header{position:sticky;top:0;z-index:20;display:flex;align-items:center;justify-content:space-between;padding:20px 6vw;gap:24px;background:linear-gradient(180deg,#f8f1eaf2,#f8f1eab3);-webkit-backdrop-filter:blur(12px);backdrop-filter:blur(12px);border-bottom:1px solid rgba(42,20,10,.12)}.brand{display:flex;align-items:center;gap:12px}.brand-logo{width:54px;height:54px;border-radius:14px;object-fit:cover;border:1px solid rgba(42,20,10,.2);background:#f8f1ea}.brand-mark{width:12px;height:40px;border-radius:999px;background:repeating-linear-gradient(180deg,#f8c677 0 6px,#0f3b2e 6px 12px,#fff 12px 18px,#f8c677 18px 24px);box-shadow:0 0 0 2px #2a140a33}.brand-text{display:flex;flex-direction:column}.brand-name{font-family:var(--font-display);font-size:24px;letter-spacing:.12em;text-transform:uppercase}.brand-tag{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--muted)}.nav{display:flex;gap:16px;font-size:12px;text-transform:uppercase;letter-spacing:.15em;font-weight:600;margin-left:48px}.nav a{position:relative;padding:6px 2px;transition:color .25s ease;z-index:0}.nav a:before{content:"";position:absolute;left:-6px;right:-6px;bottom:0;height:60%;border-radius:999px;background:linear-gradient(120deg,#f8c67766,#0f3b2e40);opacity:0;transform:scaleX(.7);transform-origin:left center;transition:opacity .25s ease,transform .25s ease;z-index:-1}.nav a:after{content:"";position:absolute;left:0;right:0;bottom:-4px;height:2px;border-radius:999px;background:linear-gradient(120deg,#f8c677,#0f3b2e);transform:scaleX(0);transform-origin:left center;transition:transform .25s ease}.nav a:hover,.nav a:focus-visible{color:var(--accent)}.nav a:hover:before,.nav a:focus-visible:before{opacity:1;transform:scaleX(1)}.nav a:hover:after,.nav a:focus-visible:after{transform:scaleX(1)}.menu-toggle{display:none;align-items:center;gap:10px;background:transparent;border:1px solid rgba(42,20,10,.2);border-radius:999px;padding:10px 16px;font-size:12px;text-transform:uppercase;letter-spacing:.12em;font-weight:600;cursor:pointer;color:var(--ink)}.menu-toggle-icon{display:grid;gap:4px}.menu-toggle-icon span{display:block;width:18px;height:2px;background:currentColor;border-radius:999px}.menu-toggle-label{font-family:var(--font-display);letter-spacing:.12em}.btn{border:none;border-radius:999px;padding:12px 22px;font-weight:700;letter-spacing:.08em;text-transform:uppercase;cursor:pointer;transition:transform .2s ease,box-shadow .2s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--accent);color:#f8f1ea;box-shadow:0 14px 34px #0f3b2e47;text-shadow:0 1px 2px rgba(0,0,0,.35)}.nav-cta{margin-left:auto}.btn-ghost{background:transparent;color:var(--ink);border:1px solid rgba(42,20,10,.2)}.btn-small{padding:10px 16px;font-size:12px}.hero{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:48px;align-items:center;padding:80px 6vw 30px}.hero-visual{display:grid;gap:18px}.hero-photo{width:100%;height:520px;border-radius:28px;background:linear-gradient(120deg,#0f3b2e2e,#1a0f0899),url(/images/03.hero_barber_joe.webp) center/cover no-repeat;box-shadow:0 24px 50px #1a0f0840;border:1px solid rgba(255,255,255,.25)}.hero-copy h1{font-family:var(--font-display);font-size:clamp(2.6rem,4vw,4.4rem);text-transform:uppercase;letter-spacing:.04em;margin-bottom:16px}.hero-copy p{max-width:560px;color:var(--muted)}.hero-badge{display:inline-flex;align-items:center;gap:8px;padding:6px 16px;border-radius:999px;background:#2a140a14;font-size:12px;text-transform:uppercase;letter-spacing:.12em;margin-bottom:18px}.hero-actions{display:flex;gap:14px;margin:24px 0 30px;flex-wrap:wrap}.hero-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.hero-stats>div{display:grid;gap:8px}.hero-stats strong{font-family:var(--font-display);font-size:1.9rem}.hero-stats span{display:block;margin-top:6px;font-size:11px;text-transform:uppercase;letter-spacing:.12em;color:var(--muted)}.hero-card{position:relative;background:#1a0f08;color:#f6e7d9;border-radius:28px;padding:10px 16px;overflow:hidden;box-shadow:0 30px 60px #1a0f0866}.hero-card-strip{position:absolute;inset:-40% 20% auto auto;width:220px;height:220px;border-radius:50%;background:radial-gradient(circle,rgba(15,59,46,.5),transparent 60%)}.hero-card-inner{position:relative;z-index:1;display:grid;gap:6px}.hero-card h3{margin:0;font-size:1.05rem}.hero-card p{margin:0;font-size:.9rem}.hero-card .label{font-size:12px;letter-spacing:.12em;text-transform:uppercase;color:#ffffffb3}.section{padding:70px 6vw}.section-title{display:grid;gap:10px;margin-bottom:26px}.section-title h2{font-family:var(--font-display);font-size:clamp(2rem,3.4vw,3rem);text-transform:uppercase;letter-spacing:.05em}.section-title p{color:var(--muted)}.microcopy{font-size:12px;text-transform:uppercase;letter-spacing:.15em;color:var(--muted)}.card{background:#ffffffd1;border-radius:20px;padding:22px;border:1px solid rgba(42,20,10,.08);box-shadow:0 20px 40px #1a0f0814}.badge{display:inline-flex;align-items:center;padding:6px 12px;border-radius:999px;background:#0f3b2e1f;color:#0f3b2e;font-size:11px;text-transform:uppercase;letter-spacing:.1em;font-weight:700}.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:18px}.service-card{position:relative;transition:transform .3s ease,box-shadow .3s ease;overflow:hidden}.service-card:before{content:"";position:absolute;inset:-40% -20%;background:radial-gradient(circle at top left,rgba(64,140,104,.28),transparent 55%),radial-gradient(circle at bottom right,rgba(80,163,255,.22),transparent 55%);opacity:0;transition:opacity .3s ease;pointer-events:none}.service-card:hover{transform:perspective(800px) translateY(-6px) rotateX(2deg) rotateY(-2deg);box-shadow:0 26px 55px #1a0f0838}.service-card:hover:before{opacity:1}.service-card.premium{border-color:#0f3b2e4d;box-shadow:0 24px 50px #0f3b2e33}.service-header{display:flex;align-items:center;justify-content:space-between;gap:12px;margin-bottom:12px}.service-meta{display:flex;align-items:center;justify-content:space-between;margin-top:16px;font-size:13px;text-transform:uppercase;letter-spacing:.1em;color:var(--muted)}.service-meta strong{font-family:var(--font-display);font-size:22px;color:#1a0f08}.service-card.premium .service-meta strong{color:#0f3b2e}.gallery-masonry{columns:3 240px;column-gap:16px}.gallery-item{position:relative;display:block;margin-bottom:16px;border-radius:18px;overflow:hidden;border:none;padding:0;cursor:pointer;background:transparent}.gallery-item-break{break-after:column}.gallery-item img{width:100%;display:block;border-radius:18px;transition:transform .35s ease}.gallery-overlay{position:absolute;inset:0;display:grid;place-items:center;background:#ffffff1a;-webkit-backdrop-filter:blur(6px);backdrop-filter:blur(6px);color:#fff;text-transform:uppercase;letter-spacing:.2em;font-size:12px;opacity:0;transition:opacity .3s ease}.gallery-item:hover img{transform:scale(1.05)}.gallery-item:hover .gallery-overlay{opacity:1}.about{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.1fr);gap:40px;align-items:center}.about-photo{width:100%;height:380px;border-radius:24px;background:linear-gradient(160deg,#0f3b2e4d,#1a0f08cc),url(/images/06.a-propos_barber_joe.webp) center/cover no-repeat}.about-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin-top:18px}.about-stats>div{display:grid;gap:8px}.about-stats strong{font-family:var(--font-display);font-size:1.7rem}.about-stats span{text-transform:uppercase;margin-top:6px;font-size:11px;letter-spacing:.1em;color:var(--muted)}.about-content h2{font-family:var(--font-display);text-transform:uppercase;letter-spacing:.04em;margin:12px 0}.about-list{padding-left:18px;color:var(--muted)}.about-card{margin-top:20px;font-weight:600;background:#c72b4014}.reviews{background:#fff9;border-top:1px solid rgba(42,20,10,.08);border-bottom:1px solid rgba(42,20,10,.08)}.carousel{overflow:hidden}.carousel-track{display:flex;transition:transform .6s ease}.review-card{min-width:100%}.review-top{display:flex;align-items:center;justify-content:space-between;margin-bottom:12px}.review-top span{display:block;font-size:12px;color:var(--muted)}.rating{display:flex;align-items:center;gap:8px;font-size:12px}.stars{background:linear-gradient(120deg,#f8c677,#fff,#f8c677);background-size:200% 200%;-webkit-background-clip:text;color:transparent;animation:shimmer 4s ease infinite}@keyframes shimmer{0%{background-position:0% 50%}to{background-position:100% 50%}}.carousel-controls{margin-top:16px;display:flex;align-items:center;gap:12px}.separator{width:1px;height:24px;background:#2a140a33}.access-grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px}.map-card{border-radius:20px;overflow:hidden;background:#ffffffb3;min-height:320px;display:grid}.map-card iframe{border:0;width:100%;height:100%}.map-consent{display:grid;place-items:center;gap:12px;padding:24px;text-align:center;color:var(--muted)}.access-info{display:grid;gap:16px}.access-details{display:grid;gap:12px;font-size:13px;text-transform:uppercase;letter-spacing:.08em;color:var(--muted)}.access-details span{display:block;margin-top:4px}.faq{background:#ffffffbf}.accordion{display:grid;gap:12px}.faq-item{border-radius:16px;border:1px solid rgba(42,20,10,.08);background:#fff;overflow:hidden}.faq-trigger{width:100%;background:transparent;border:none;padding:18px 20px;display:flex;align-items:center;justify-content:space-between;font-weight:600;text-align:left;cursor:pointer}.faq-panel{max-height:0;overflow:hidden;transition:max-height .3s ease,opacity .3s ease;padding:0 20px;opacity:0}.faq-panel p{margin:0}.faq-item.open .faq-panel{max-height:200px;padding-bottom:18px;opacity:1}.contact-grid{display:grid;grid-template-columns:minmax(0,1.1fr) minmax(0,.9fr);gap:24px}.form{display:grid;gap:14px}.form label{display:grid;gap:6px;font-weight:600}.form input,.form textarea{border-radius:12px;border:1px solid rgba(42,20,10,.15);padding:12px 14px;font-family:inherit;background:#fff}.field-error{font-size:12px;color:#c4323b}.contact-alt{display:flex;gap:12px;flex-wrap:wrap}.contact-info{display:grid;gap:18px}.footer{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:20px;padding:40px 6vw 50px;background:#1a0f08;color:#f6e7d9}.footer a{color:inherit;text-decoration:underline}.credits{font-size:11px;color:#ffffffb3}.legal{padding:20px 6vw;background:#140b06;color:#ffffffb3}.lightbox{position:fixed;inset:0;display:grid;place-items:center;z-index:50}.lightbox-backdrop{position:absolute;inset:0;background:#000000b3}.lightbox-content{position:relative;z-index:1;max-width:1120px;width:min(96vw,1120px);max-height:96vh;background:#fff;border-radius:20px;padding:20px;display:grid;gap:12px;text-align:center;overflow:auto}.lightbox-content img{width:100%;border-radius:16px;max-height:84vh;object-fit:contain}.lightbox-controls{display:flex;align-items:center;justify-content:space-between;gap:12px;flex-wrap:wrap}.lightbox-nav{display:flex;gap:10px}.toast{position:fixed;right:24px;bottom:24px;padding:14px 18px;border-radius:14px;background:#1a0f08;color:#fff;box-shadow:0 12px 30px #0000004d;z-index:60}.toast.success{border-left:4px solid #2ecc71}.toast.error{border-left:4px solid #c4323b}.cookie-actions{display:flex;gap:10px;flex-wrap:wrap;align-items:center}.cookie-modal{position:fixed;inset:0;z-index:70;display:flex;align-items:flex-end;justify-content:center;padding:0 6vw 24px}.cookie-modal-backdrop{position:absolute;inset:0;background:#0f3b2e2e}.cookie-modal-content{position:relative;z-index:1;width:min(calc(100% - 12vw),1080px);background:#f7efe6;color:var(--ink);border-radius:20px;padding:12px 20px;display:grid;gap:6px;border:1px solid rgba(42,20,10,.14);box-shadow:0 18px 36px #1a0f0833;animation:cookie-slide-up .45s ease}.cookie-modal-content p{margin:0;color:var(--muted)}.cookie-modal-content .btn-ghost{color:var(--ink);border-color:#2a140a33}.cookie-modal-content h4{margin:0;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase}.cookie-modal-header{display:flex;align-items:center;gap:12px}.cookie-icon{width:46px;height:46px;display:inline-flex;align-items:center;justify-content:center;color:var(--accent);background:#0f3b2e14;border-radius:12px;border:1px solid rgba(15,59,46,.2)}.cookie-icon svg{width:28px;height:28px}.cookie-close{justify-self:flex-start}@keyframes cookie-slide-up{0%{transform:translateY(24px);opacity:0}to{transform:translateY(0);opacity:1}}.link-button{background:none;border:none;padding:0;font:inherit;color:inherit;cursor:pointer;text-decoration:underline}.scroll-top{position:fixed;right:20px;bottom:20px;z-index:65;border:none;border-radius:999px;padding:10px 14px;background:var(--accent);color:#f8f1ea;text-transform:uppercase;letter-spacing:.12em;font-size:11px;font-weight:700;box-shadow:0 14px 30px #0f3b2e40;cursor:pointer}.reveal{opacity:0;transform:translateY(20px);transition:opacity .8s ease,transform .8s ease}.is-visible{opacity:1;transform:translateY(0)}@media(max-width:980px){.site-header{flex-direction:column;align-items:flex-start}.menu-toggle{display:inline-flex}.nav{width:100%;flex-direction:column;align-items:center;text-align:center;gap:14px;padding:8px 0 4px;display:none;margin-left:0}.nav.is-open{display:flex}.nav-cta{margin-left:0;align-self:center}.hero{grid-template-columns:1fr}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.about,.access-grid,.contact-grid{grid-template-columns:1fr}}@media(max-width:640px){.service-grid{grid-template-columns:1fr}.gallery-masonry{columns:1}.gallery-item-break{break-after:auto}.hero-stats{grid-template-columns:1fr}}@media(prefers-reduced-motion:reduce){*{animation:none!important;transition:none!important}}
