/* =========================================
   PIERRE ACCONCIATURE - PREMIUM CSS
   ========================================= */

:root {
    --color-black: #111111;
    --color-dark: #1a1a1a;
    --color-gold: #C5A059;
    --color-gold-light: #e0bc7a;
    --color-bone: #f4f0ec;
    --color-white: #ffffff;
    --color-gray: #666666;
    --color-light-gray: #888888;
    --font-display: 'Playfair Display', serif;
    --font-body: 'Lato', sans-serif;
    --radius: 14px;
    --radius-sm: 8px;
    --shadow: 0 10px 40px rgba(0,0,0,0.08);
    --shadow-lg: 0 20px 60px rgba(0,0,0,0.12);
    --transition: all .35s cubic-bezier(.4,0,.2,1);
}

* { margin:0; padding:0; box-sizing:border-box; }
html { scroll-behavior:smooth; font-size:16px; }
body {
    font-family: var(--font-body);
    color: var(--color-black);
    background: var(--color-white);
    line-height:1.6;
    overflow-x:hidden;
    -webkit-font-smoothing:antialiased;
}
img { max-width:100%; display:block; height:auto; }
a { text-decoration:none; color:inherit; }
ul { list-style:none; }
button { font-family:inherit; cursor:pointer; border:none; background:none; }

.container { width:92%; max-width:1200px; margin:0 auto; }
.section-padding { padding:80px 0; }
.bg-light { background: var(--color-bone); }
.bg-dark { background: var(--color-black); color: var(--color-bone); }

/* Typography */
.section-label {
    display:block; font-size:.75rem; letter-spacing:3px; text-transform:uppercase;
    color: var(--color-gold); margin-bottom:12px; font-weight:700;
}
.section-title {
    font-family: var(--font-display); font-size:2.4rem; line-height:1.15;
    margin-bottom:16px; color: var(--color-black);
}
.section-title em { font-style:italic; color: var(--color-gold); }
.section-title.light { color: var(--color-white); }
.section-subtitle { color: var(--color-gray); font-size:1.05rem; max-width:560px; margin:0 auto; }
.center { text-align:center; }
.reveal-up, .reveal-left, .reveal-right {
    opacity:0; transform: translateY(40px);
    transition: opacity .8s ease, transform .8s ease;
}
.reveal-left { transform: translateX(-40px); }
.reveal-right { transform: translateX(40px); }
.reveal-up.visible, .reveal-left.visible, .reveal-right.visible {
    opacity:1; transform: translate(0);
}

/* Preloader */
#preloader {
    position:fixed; inset:0; background: var(--color-bone); z-index:9999;
    display:flex; align-items:center; justify-content:center; flex-direction:column;
    transition: opacity .6s ease, visibility .6s;
}
#preloader.hidden { opacity:0; visibility:hidden; pointer-events:none; }
.preloader-logo {
    font-family: var(--font-display); font-size:3rem; color: var(--color-black);
    letter-spacing:2px; animation: fadeInUp 1s ease forwards;
}
.preloader-line { width:120px; height:2px; background:rgba(0,0,0,.1); margin-top:20px; border-radius:2px; overflow:hidden; }
.preloader-line span { display:block; height:100%; width:0; background: var(--color-gold); animation: loadLine 1.2s ease forwards .3s; }
@keyframes loadLine { to { width:100%; } }
@keyframes fadeInUp { from { opacity:0; transform:translateY(20px);} to { opacity:1; transform:translateY(0);} }

/* Custom Cursor */
.cursor-dot, .cursor-outline { position:fixed; top:0; left:0; transform:translate(-50%,-50%);
    border-radius:50%; pointer-events:none; z-index:10000; transition: opacity .2s;
}
.cursor-dot { width:6px; height:6px; background: var(--color-gold); }
.cursor-outline { width:36px; height:36px; border:1px solid var(--color-gold); transition: width .2s, height .2s, border-color .2s; }
body:hover .cursor-outline { opacity:1; }
@media (pointer: coarse) { .cursor-dot, .cursor-outline { display:none !important; } }

/* Floating Action Button (mobile) */
.fab-booking {
    position:fixed; bottom:20px; right:20px; z-index:998;
    background: var(--color-gold); color: var(--color-black);
    padding:14px 24px; border-radius:50px; font-weight:700; font-size:.9rem;
    box-shadow: 0 6px 24px rgba(197,160,89,.45); display:none; align-items:center; gap:8px;
    animation: fabPulse 2s infinite; transition: transform .35s ease;
}
.fab-booking::before { content:"+"; font-size:1.1rem; }
@keyframes fabPulse { 0%,100%{box-shadow:0 6px 24px rgba(197,160,89,.45);} 50%{box-shadow:0 6px 32px rgba(197,160,89,.7);} }
@media (max-width: 768px) { .fab-booking { display:flex; } }

/* Navigation */
#navbar {
    position:fixed; top:0; left:0; width:100%; z-index:999;
    padding:18px 0; transition: var(--transition);
}
#navbar.scrolled {
    background: rgba(255,255,255,.92); backdrop-filter: blur(14px);
    box-shadow: 0 2px 20px rgba(0,0,0,.06); padding:12px 0;
}
#navbar.scrolled .logo { color: var(--color-black); }
#navbar.scrolled .nav-links a { color: var(--color-black); }
.nav-container { display:flex; align-items:center; justify-content:space-between; }
.logo {
    font-family: var(--font-display); font-size:1.6rem; font-weight:700;
    color: var(--color-white); letter-spacing:1px; transition: color .3s;
}
.nav-links { display:flex; gap:32px; align-items:center; }
.nav-links a {
    font-size:.82rem; text-transform:uppercase; letter-spacing:1.5px;
    color: var(--color-white); font-weight:600; position:relative; transition: color .3s;
}
.nav-links a::after {
    content:''; position:absolute; bottom:-4px; left:0; width:0; height:1px;
    background: var(--color-gold); transition: width .3s;
}
.nav-links a:hover::after { width:100%; }
.menu-toggle { display:none; flex-direction:column; gap:5px; width:28px; }
.menu-toggle span { display:block; height:2px; background: currentColor; border-radius:2px; transition:.3s; }
#navbar.scrolled .menu-toggle span { background: var(--color-black); }

.btn {
    display:inline-flex; align-items:center; justify-content:center;
    padding:12px 28px; border-radius:50px; font-size:.82rem;
    font-weight:700; letter-spacing:1px; text-transform:uppercase;
    transition: var(--transition); border:1.5px solid transparent; gap:8px;
    min-height:44px; /* touch target */
}
.btn-primary { background: var(--color-black); color: var(--color-white); border-color: var(--color-black); }
.btn-primary:hover { background: transparent; color: var(--color-black); }
.btn-gold { background: var(--color-gold); color: var(--color-black); border-color: var(--color-gold); }
.btn-gold:hover { background: transparent; color: var(--color-gold); }
.btn-outline { border-color: var(--color-white); color: var(--color-white); background:transparent; }
.btn-outline:hover { background: var(--color-white); color: var(--color-black); }
.btn-text { color: var(--color-gray); padding:12px 16px; text-transform:none; letter-spacing:0; font-weight:400; }
.btn-text:hover { color: var(--color-black); }
.btn-lg { padding:16px 36px; font-size:.9rem; }
.btn:disabled { opacity:.45; cursor:not-allowed; }

/* Hero */
.hero { position:relative; height:100vh; min-height:600px; display:flex; align-items:center; justify-content:center; overflow:hidden; }
.hero-bg { position:absolute; inset:0; z-index:1; }
.hero-bg img { width:100%; height:100%; object-fit:cover; filter: brightness(.55); }
.hero-overlay { position:absolute; inset:0; background: linear-gradient(to bottom, rgba(0,0,0,.3), rgba(0,0,0,.6)); z-index:2; }
.hero-content { position:relative; z-index:3; text-align:center; color: var(--color-white); padding:0 20px; max-width:800px; }
.hero-subtitle { font-size:.8rem; letter-spacing:4px; text-transform:uppercase; margin-bottom:16px; opacity:.85; }
.hero-title {
    font-family: var(--font-display); font-size:clamp(3rem, 8vw, 5.5rem);
    line-height:1.05; margin-bottom:20px; font-weight:700;
}
.hero-title span { font-style:italic; font-weight:400; }
.hero-text { font-size:1.1rem; font-weight:300; margin-bottom:36px; opacity:.9; line-height:1.6; }
.hero-ctas { display:flex; gap:16px; justify-content:center; flex-wrap:wrap; }
.scroll-indicator { position:absolute; bottom:30px; left:50%; transform:translateX(-50%); z-index:3; color:rgba(255,255,255,.7); font-size:.7rem; letter-spacing:2px; text-transform:uppercase; display:flex; flex-direction:column; align-items:center; gap:8px; }
.scroll-line { width:1px; height:40px; background:rgba(255,255,255,.4); position:relative; overflow:hidden; }
.scroll-line::after { content:''; position:absolute; top:0; left:0; width:100%; height:50%; background:rgba(255,255,255,.9); animation: scrollDown 1.8s infinite; }
@keyframes scrollDown { 0%{transform:translateY(-100%);} 100%{transform:translateY(200%);} }

/* About */
.about-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.about-img { position:relative; }
.about-img img { border-radius: var(--radius); }
.about-img-accent { position:absolute; bottom:-20px; right:-20px; width:120px; height:120px; border:2px solid var(--color-gold); border-radius: var(--radius); z-index:-1; }
.about-text p { margin-bottom:16px; color: var(--color-gray); font-size:1.02rem; }
.drop-cap::first-letter { font-family: var(--font-display); font-size:3.4rem; float:left; line-height:.8; margin-right:10px; margin-top:6px; color: var(--color-gold); font-weight:700; }
.about-stats { display:flex; gap:40px; margin-top:28px; padding-top:28px; border-top:1px solid rgba(0,0,0,.08); }
.about-stats strong { display:block; font-family: var(--font-display); font-size:1.8rem; color: var(--color-gold); }
.about-stats span { font-size:.75rem; text-transform:uppercase; letter-spacing:1px; color: var(--color-gray); }

/* Services */
.services-tabs { display:flex; justify-content:center; gap:12px; margin:40px 0 30px; flex-wrap:wrap; }
.tab-btn { padding:10px 24px; border-radius:50px; border:1.5px solid rgba(0,0,0,.1); font-size:.82rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; color: var(--color-gray); transition: var(--transition); background:transparent; min-height:44px; }
.tab-btn.active, .tab-btn:hover { background: var(--color-black); color: var(--color-white); border-color: var(--color-black); }
.tab-content { display:none; }
.tab-content.active { display:block; animation: fadeIn .4s ease; }
@keyframes fadeIn { from{opacity:0; transform:translateY(10px);} to{opacity:1; transform:translateY(0);} }
.service-list { max-width:800px; margin:0 auto; }
.service-item { display:flex; justify-content:space-between; align-items:center; padding:20px 0; border-bottom:1px solid rgba(0,0,0,.08); gap:16px; }
.service-item:last-child { border-bottom:none; }
.service-info h4 { font-family: var(--font-display); font-size:1.15rem; font-weight:600; margin-bottom:4px; }
.service-time { font-size:.78rem; color: var(--color-light-gray); text-transform:uppercase; letter-spacing:1px; }
.service-price { font-family: var(--font-display); font-size:1.2rem; color: var(--color-gold); font-weight:700; white-space:nowrap; }

/* Booking Section */
.booking-section { background: linear-gradient(to bottom, var(--color-bone), #ebe7e2); }
.booking-wrapper { max-width:720px; margin:0 auto; background: var(--color-white); border-radius: var(--radius); box-shadow: var(--shadow-lg); padding: clamp(24px, 5vw, 48px); }
.booking-progress { display:flex; align-items:center; justify-content:space-between; margin-bottom:36px; position:relative; }
.progress-step { display:flex; flex-direction:column; align-items:center; gap:6px; position:relative; z-index:2; }
.progress-step span { width:32px; height:32px; border-radius:50%; background:#e0dcd7; color: var(--color-gray); font-size:.75rem; font-weight:700; display:flex; align-items:center; justify-content:center; transition: var(--transition); }
.progress-step small { font-size:.65rem; text-transform:uppercase; letter-spacing:.5px; color: var(--color-light-gray); display:none; }
.progress-step.active span { background: var(--color-gold); color: var(--color-black); }
.progress-step.completed span { background: var(--color-black); color: var(--color-white); }
.progress-line { flex:1; height:2px; background:#e0dcd7; margin:0 6px; position:relative; top:-10px; z-index:1; }

.booking-step { display:none; }
.booking-step.active { display:block; animation: fadeIn .35s ease; }
.booking-step h3 { font-family: var(--font-display); font-size:1.4rem; margin-bottom:24px; text-align:center; }
.step-actions { display:flex; justify-content:space-between; align-items:center; margin-top:28px; padding-top:20px; border-top:1px solid rgba(0,0,0,.06); gap:12px; }

/* Service Cards (Booking) */
.service-cards { display:grid; grid-template-columns:1fr 1fr; gap:12px; }
.service-card { position:relative; cursor:pointer; }
.service-card input { position:absolute; opacity:0; }
.service-card .card-content {
    padding:16px; border:2px solid #eceae7; border-radius: var(--radius-sm); background:#fafafa;
    transition: var(--transition); text-align:center; min-height:88px; display:flex; flex-direction:column; justify-content:center; gap:4px;
}
.service-card .card-content strong { font-size:.9rem; display:block; }
.service-card .card-content .card-meta { font-size:.72rem; color: var(--color-light-gray); text-transform:uppercase; letter-spacing:.5px; }
.service-card input:checked + .card-content { border-color: var(--color-gold); background: rgba(197,160,89,.06); box-shadow: 0 4px 12px rgba(197,160,89,.12); }
.service-card input:focus + .card-content { outline:2px solid var(--color-gold); outline-offset:2px; }

/* Pro Cards */
.pro-cards { display:grid; grid-template-columns:repeat(4, 1fr); gap:12px; }
.pro-card { position:relative; cursor:pointer; }
.pro-card input { position:absolute; opacity:0; }
.pro-card .card-content { padding:16px 8px; border:2px solid #eceae7; border-radius: var(--radius-sm); background:#fafafa; transition: var(--transition); text-align:center; }
.pro-avatar { width:56px; height:56px; border-radius:50%; overflow:hidden; margin:0 auto 10px; background:#e0dcd7; display:flex; align-items:center; justify-content:center; }
.pro-avatar img { width:100%; height:100%; object-fit:cover; }
.pro-card .card-content strong { font-size:.9rem; display:block; }
.pro-card input:checked + .card-content { border-color: var(--color-gold); background: rgba(197,160,89,.06); }

/* Calendar */
.calendar-wrapper { margin-bottom:20px; }
.calendar-header { display:flex; justify-content:space-between; align-items:center; margin-bottom:14px; }
.calendar-header span { font-family: var(--font-display); font-size:1.1rem; font-weight:600; }
.cal-nav { width:36px; height:36px; border-radius:50%; border:1px solid rgba(0,0,0,.1); background:transparent; font-size:1.2rem; color: var(--color-black); display:flex; align-items:center; justify-content:center; min-height:36px; }
.cal-nav:active { background: var(--color-black); color: var(--color-white); }
.calendar-grid { display:grid; grid-template-columns:repeat(7, 1fr); gap:6px; text-align:center; }
.cal-day-name { font-size:.65rem; text-transform:uppercase; letter-spacing:1px; color: var(--color-light-gray); padding:8px 0; }
.cal-day {
    aspect-ratio:1; display:flex; align-items:center; justify-content:center;
    border-radius: var(--radius-sm); font-size:.85rem; font-weight:600; cursor:pointer;
    border:1.5px solid transparent; transition: var(--transition); min-height:40px;
}
.cal-day:hover:not(.disabled):not(.selected) { background:#f0eeeb; }
.cal-day.selected { background: var(--color-gold); color: var(--color-black); border-color: var(--color-gold); }
.cal-day.disabled { color: #ccc; cursor:not-allowed; background:transparent; }
.cal-day.today { border-color: var(--color-black); }

.slots-wrapper { margin-bottom:16px; }
.slots-label { font-size:.75rem; text-transform:uppercase; letter-spacing:1px; color: var(--color-gray); margin-bottom:10px; }
.slots-grid { display:flex; flex-wrap:wrap; gap:8px; }
.slot-chip {
    padding:8px 14px; border-radius:50px; border:1.5px solid #e0dcd7; background:#fafafa;
    font-size:.8rem; font-weight:600; cursor:pointer; transition: var(--transition); min-height:36px;
}
.slot-chip:hover, .slot-chip.selected { background: var(--color-black); color: var(--color-white); border-color: var(--color-black); }

/* Form Grid */
.form-grid { display:grid; grid-template-columns:1fr 1fr; gap:16px; }
.form-group { display:flex; flex-direction:column; gap:6px; }
.form-group.full { grid-column:1 / -1; }
.form-group label { font-size:.78rem; text-transform:uppercase; letter-spacing:1px; font-weight:700; color: var(--color-gray); }
.form-group input, .form-group textarea {
    padding:12px 14px; border:1.5px solid #e0dcd7; border-radius: var(--radius-sm);
    font-size:1rem; font-family:inherit; background:#fafafa; transition: var(--transition); min-height:44px;
}
.form-group input:focus, .form-group textarea:focus { outline:none; border-color: var(--color-gold); background: var(--color-white); }
.form-group .error-msg { color:#c0392b; font-size:.75rem; display:none; }
.form-group.invalid input { border-color:#c0392b; }
.form-group.invalid .error-msg { display:block; }

/* Summary */
.summary-card { background:#fafafa; border-radius: var(--radius-sm); padding:20px; display:flex; flex-direction:column; gap:14px; margin-bottom:8px; }
.summary-row { display:flex; justify-content:space-between; align-items:center; font-size:.95rem; }
.summary-row span { color: var(--color-gray); }
.summary-row strong { color: var(--color-black); font-weight:700; }

/* Success */
.success-step { text-align:center; padding:40px 20px; }
.success-icon { width:72px; height:72px; border-radius:50%; background:#27ae60; color:#fff; font-size:2rem; display:flex; align-items:center; justify-content:center; margin:0 auto 20px; }
.success-step h3 { font-family: var(--font-display); font-size:1.6rem; margin-bottom:12px; }
.success-step p { color: var(--color-gray); max-width:420px; margin:0 auto 20px; }
.success-contact a { color: var(--color-gold); text-decoration:underline; font-weight:700; }

/* Team */
.team-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:30px; }
.team-card { background: var(--color-white); border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow); transition: var(--transition); }
.team-card:hover { transform: translateY(-6px); box-shadow: var(--shadow-lg); }
.team-img { height:320px; overflow:hidden; }
.team-img img { width:100%; height:100%; object-fit:cover; transition: transform .6s ease; }
.team-card:hover .team-img img { transform: scale(1.05); }
.team-info { padding:24px; }
.team-info h4 { font-family: var(--font-display); font-size:1.25rem; margin-bottom:4px; }
.role { display:block; font-size:.75rem; text-transform:uppercase; letter-spacing:1.5px; color: var(--color-gold); font-weight:700; margin-bottom:10px; }
.team-info p { font-size:.9rem; color: var(--color-gray); line-height:1.5; }

/* Portfolio */
.portfolio-filters { display:flex; justify-content:center; gap:10px; margin-bottom:30px; flex-wrap:wrap; }
.filter-btn { padding:8px 20px; border-radius:50px; border:1.5px solid rgba(0,0,0,.1); background:transparent; font-size:.8rem; font-weight:700; text-transform:uppercase; letter-spacing:1px; transition: var(--transition); min-height:36px; }
.filter-btn.active, .filter-btn:hover { background: var(--color-black); color: var(--color-white); border-color: var(--color-black); }
.portfolio-grid { display:grid; grid-template-columns:repeat(3, 1fr); gap:16px; }
.portfolio-item { position:relative; border-radius: var(--radius); overflow:hidden; aspect-ratio:3/4; cursor:pointer; }
.portfolio-item img { width:100%; height:100%; object-fit:cover; transition: transform .6s ease; }
.portfolio-item:hover img { transform: scale(1.08); }
.portfolio-overlay { position:absolute; inset:0; background: rgba(0,0,0,.45); opacity:0; display:flex; align-items:center; justify-content:center; transition: opacity .35s; }
.portfolio-item:hover .portfolio-overlay { opacity:1; }
.portfolio-overlay span { color: var(--color-white); font-family: var(--font-display); font-size:1.1rem; text-align:center; padding:0 10px; }

/* Testimonials */
.testimonials-slider { display:grid; grid-template-columns:repeat(4, 1fr); gap:20px; margin-top:40px; }
.testimonial-card { background: rgba(255,255,255,.05); border:1px solid rgba(255,255,255,.1); border-radius: var(--radius); padding:24px; transition: var(--transition); }
.testimonial-card:hover { background: rgba(255,255,255,.08); transform: translateY(-4px); }
.stars { color: var(--color-gold); font-size:1.1rem; margin-bottom:12px; letter-spacing:2px; }
.testimonial-card p { font-size:.92rem; line-height:1.6; color: rgba(255,255,255,.85); font-style:italic; margin-bottom:16px; }
.testimonial-author strong { display:block; color: var(--color-white); font-size:.9rem; }
.testimonial-author span { font-size:.75rem; color: var(--color-light-gray); text-transform:uppercase; letter-spacing:1px; }
.google-badge { text-align:center; margin-top:36px; }
.google-badge a { display:inline-block; padding:10px 24px; border:1px solid rgba(255,255,255,.2); border-radius:50px; color: var(--color-white); font-size:.8rem; text-transform:uppercase; letter-spacing:1px; transition: var(--transition); }
.google-badge a:hover { background: var(--color-white); color: var(--color-black); }

/* Products */
.products-grid { display:flex; justify-content:center; flex-wrap:wrap; gap:24px 48px; margin-top:30px; }
.product-logo { font-family: var(--font-display); font-size:1.3rem; color: var(--color-light-gray); letter-spacing:1px; transition: color .3s; cursor:default; }
.product-logo:hover { color: var(--color-gold); }

/* FAQ */
.faq-list { max-width:700px; margin:0 auto; }
.faq-item { border-bottom:1px solid rgba(0,0,0,.08); }
.faq-question { width:100%; display:flex; justify-content:space-between; align-items:center; padding:22px 0; font-size:1.05rem; font-weight:700; color: var(--color-black); text-align:left; gap:16px; }
.faq-icon { font-size:1.3rem; color: var(--color-gold); transition: transform .3s; min-width:24px; text-align:center; }
.faq-item.open .faq-icon { transform: rotate(45deg); }
.faq-answer { max-height:0; overflow:hidden; transition: max-height .35s ease, padding .35s ease; }
.faq-item.open .faq-answer { max-height:200px; padding-bottom:20px; }
.faq-answer p { color: var(--color-gray); font-size:.95rem; line-height:1.6; }

/* Contact */
.contact-grid { display:grid; grid-template-columns:1fr 1.2fr; gap:40px; align-items:stretch; }
.contact-info { display:flex; flex-direction:column; gap:24px; }
.info-block strong { display:block; font-size:.75rem; text-transform:uppercase; letter-spacing:1.5px; color: var(--color-gold); margin-bottom:6px; }
.info-block p, .info-block a { color: var(--color-gray); font-size:1rem; line-height:1.6; }
.info-block a:hover { color: var(--color-black); }
.social-links { display:flex; gap:12px; margin-top:6px; }
.social-links a { width:40px; height:40px; border-radius:50%; border:1.5px solid rgba(0,0,0,.15); display:flex; align-items:center; justify-content:center; font-size:.75rem; font-weight:700; transition: var(--transition); }
.social-links a:hover { background: var(--color-black); color: var(--color-white); border-color: var(--color-black); }
.contact-map { border-radius: var(--radius); overflow:hidden; box-shadow: var(--shadow); min-height:400px; }
.contact-map iframe { width:100%; height:100%; min-height:400px; display:block; border:0; }

/* Footer */
.footer { background: var(--color-black); color: rgba(255,255,255,.6); padding:60px 0 0; }
.footer-grid { display:grid; grid-template-columns:repeat(4, 1fr); gap:40px; padding-bottom:50px; border-bottom:1px solid rgba(255,255,255,.08); }
.footer-col h5 { color: var(--color-white); font-family: var(--font-display); font-size:1.1rem; margin-bottom:16px; }
.footer-col p, .footer-col a, .footer-col li { font-size:.9rem; line-height:1.8; color: rgba(255,255,255,.55); }
.footer-col a:hover { color: var(--color-gold); }
.footer-col ul li { margin-bottom:6px; }
.newsletter-form { display:flex; gap:8px; margin-top:10px; flex-wrap:wrap; }
.newsletter-form input { flex:1; padding:10px 14px; border-radius: var(--radius-sm); border:1px solid rgba(255,255,255,.15); background:rgba(255,255,255,.05); color: var(--color-white); font-family:inherit; min-width:140px; min-height:44px; }
.newsletter-form input::placeholder { color: rgba(255,255,255,.35); }
.footer-bottom { padding:40px 0 30px; text-align:center; }
.footer-big-logo { font-family: var(--font-display); font-size:clamp(4rem, 12vw, 9rem); color: rgba(255,255,255,.04); line-height:1; user-select:none; pointer-events:none; }
.copyright { font-size:.75rem; color: rgba(255,255,255,.3); margin-top:16px; }

/* Responsive */
@media (max-width: 1024px) {
    .portfolio-grid { grid-template-columns: repeat(2, 1fr); }
    .testimonials-slider { grid-template-columns: repeat(2, 1fr); }
}

@media (max-width: 768px) {
    html { font-size:15px; }
    .section-padding { padding:56px 0; }
    .section-title { font-size:1.9rem; }
    .hide-mobile { display:none; }

    .menu-toggle { display:flex; color: var(--color-white); }
    #navbar.scrolled .menu-toggle { color: var(--color-black); }
    .nav-links { display:none; position:absolute; top:100%; left:0; width:100%; background: var(--color-white); flex-direction:column; padding:20px; gap:16px; box-shadow: var(--shadow); }
    .nav-links.active { display:flex; }
    .nav-links a { color: var(--color-black); font-size:.85rem; }
    .nav-book { display:none; }

    .hero { min-height:85vh; }
    .hero-title { font-size:3.2rem; }
    .hero-ctas { flex-direction:column; align-items:center; }
    .hero-ctas .btn { width:100%; max-width:320px; }

    .about-grid { grid-template-columns:1fr; gap:36px; }
    .about-img-accent { display:none; }
    .about-stats { gap:20px; flex-wrap:wrap; }

    .services-tabs { gap:8px; }
    .tab-btn { padding:8px 16px; font-size:.7rem; }
    .service-item { flex-direction:column; align-items:flex-start; gap:4px; }

    .booking-wrapper { padding:20px; border-radius: var(--radius-sm); }
    .booking-progress { margin-bottom:24px; }
    .progress-step small { display:none; }
    .progress-step span { width:28px; height:28px; font-size:.7rem; }
    .progress-line { top:-8px; }

    .service-cards { grid-template-columns:1fr; }
    .pro-cards { grid-template-columns:repeat(2, 1fr); }
    .form-grid { grid-template-columns:1fr; }
    .step-actions { flex-direction:column-reverse; gap:10px; }
    .step-actions .btn { width:100%; }

    .team-grid { grid-template-columns:1fr; }
    .portfolio-grid { grid-template-columns:1fr; }
    .testimonials-slider { grid-template-columns:1fr; }

    .contact-grid { grid-template-columns:1fr; }
    .contact-map { min-height:280px; }
    .contact-map iframe { min-height:280px; }

    .footer-grid { grid-template-columns:1fr 1fr; gap:30px 20px; }
    .footer-big-logo { font-size:4rem; }
}

@media (max-width: 480px) {
    .section-title { font-size:1.7rem; }
    .hero-title { font-size:2.6rem; }
    .pro-cards { grid-template-columns:1fr 1fr; }
    .pro-card .card-content { padding:12px 4px; }
    .pro-avatar { width:44px; height:44px; }
    .footer-grid { grid-template-columns:1fr; }
}
