/*
Theme Name: Yuki Beauty Studio
Theme URI: https://yukibeauty.tw
Author: Yuki Beauty Studio
Description: 專為新娘秘書、霧眉、美顏護膚工作室設計的精緻 WordPress 主題。所有內容均可在後台 Customizer 管理。
Version: 1.0.0
Requires at least: 5.8
Tested up to: 6.4
Requires PHP: 7.4
License: GNU General Public License v2 or later
Text Domain: yuki-beauty
Tags: beauty, bridal, portfolio, custom-colors, custom-logo, full-width-template
*/

/* ── ROOT VARIABLES ── */
:root {
  --cream:#F9F4EF; --blush:#E8C5B0; --rose:#C9937A;
  --deep-rose:#9E6B5A; --mauve:#7A5C68; --dark:#2D2020;
  --gold:#C4A882; --light-gold:#EDD9BF; --white:#FEFCFA;
  --shadow:rgba(45,32,32,0.08);
  --font-display:'Playfair Display',serif;
  --font-body:'Noto Serif TC',serif;
  --font-accent:'Cormorant Garamond',serif;
}
*,*::before,*::after{margin:0;padding:0;box-sizing:border-box;}
html{scroll-behavior:smooth;font-size:16px;}
body{font-family:var(--font-body);background:var(--cream);color:var(--dark);overflow-x:hidden;cursor:none;}
@media(max-width:768px){body{cursor:auto;}}
img{max-width:100%;height:auto;display:block;}
a{text-decoration:none;color:inherit;}
ul{list-style:none;}
button{cursor:none;font-family:inherit;}
input,select,textarea{font-family:inherit;}

/* ── CURSOR ── */
.yb-cursor{width:10px;height:10px;background:var(--rose);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9999;transform:translate(-50%,-50%);transition:transform 0.1s;mix-blend-mode:multiply;}
.yb-cursor-ring{width:36px;height:36px;border:1px solid var(--rose);border-radius:50%;position:fixed;top:0;left:0;pointer-events:none;z-index:9998;transform:translate(-50%,-50%);transition:all 0.25s ease;opacity:0.6;}
@media(max-width:768px){.yb-cursor,.yb-cursor-ring{display:none;}}

/* ── NAV ── */
#yb-nav{position:fixed;top:0;left:0;right:0;z-index:100;display:flex;align-items:center;justify-content:space-between;padding:1.4rem 5vw;background:rgba(249,244,239,0.88);backdrop-filter:blur(14px);border-bottom:1px solid rgba(196,168,130,0.18);transition:padding 0.4s,background 0.4s;}
#yb-nav.scrolled{padding:0.9rem 5vw;background:rgba(249,244,239,0.97);}
.yb-nav-logo a{font-family:var(--font-display);font-size:1.35rem;letter-spacing:0.1em;color:var(--deep-rose);font-style:italic;}
.yb-nav-logo a strong{font-style:normal;font-weight:700;}
.yb-nav-menu{display:flex;gap:2.5rem;}
.yb-nav-menu a{font-size:0.82rem;letter-spacing:0.15em;color:var(--dark);position:relative;transition:color 0.3s;}
.yb-nav-menu a::after{content:'';position:absolute;bottom:-3px;left:0;width:0;height:1px;background:var(--rose);transition:width 0.3s;}
.yb-nav-menu a:hover{color:var(--rose);}
.yb-nav-menu a:hover::after{width:100%;}
.yb-nav-cta{background:var(--rose);color:#fff !important;padding:0.6rem 1.6rem;font-size:0.82rem;letter-spacing:0.12em;border:none;transition:background 0.3s,transform 0.2s;display:inline-block;}
.yb-nav-cta:hover{background:var(--deep-rose) !important;transform:translateY(-1px);}
.yb-hamburger{display:none;flex-direction:column;gap:5px;background:none;border:none;padding:4px;}
.yb-hamburger span{width:24px;height:1px;background:var(--dark);display:block;transition:all 0.3s;}
.yb-mobile-menu{display:none;flex-direction:column;gap:1rem;position:fixed;top:70px;left:0;right:0;background:rgba(249,244,239,0.98);padding:2rem 6vw;border-bottom:1px solid rgba(196,168,130,0.2);z-index:99;}
.yb-mobile-menu.open{display:flex;}
.yb-mobile-menu a{font-size:1rem;letter-spacing:0.1em;color:var(--dark);padding:0.5rem 0;border-bottom:1px solid rgba(196,168,130,0.15);}
@media(max-width:900px){.yb-nav-menu,.yb-nav-cta-wrap{display:none;}.yb-hamburger{display:flex;}}

/* ── SECTION BASE ── */
.yb-section{padding:7rem 8vw;}
.yb-section-tag{font-size:0.72rem;letter-spacing:0.3em;color:var(--gold);text-transform:uppercase;margin-bottom:1rem;display:flex;align-items:center;gap:1rem;}
.yb-section-tag::before{content:'';width:30px;height:1px;background:var(--gold);}
.yb-section-title{font-family:var(--font-display);font-size:clamp(2.2rem,4vw,3.5rem);font-weight:400;line-height:1.15;margin-bottom:1.5rem;}
.yb-section-title em{font-style:italic;color:var(--rose);}
.yb-divider{width:60px;height:1px;background:var(--gold);margin:1.5rem 0;}
.yb-section-desc{font-size:0.9rem;line-height:1.9;color:rgba(45,32,32,0.6);font-weight:300;max-width:520px;}

/* ── REVEAL ── */
.yb-reveal{opacity:0;transform:translateY(28px);transition:opacity 0.8s ease,transform 0.8s ease;}
.yb-reveal.visible{opacity:1;transform:translateY(0);}
.yb-delay-1{transition-delay:0.1s;}.yb-delay-2{transition-delay:0.2s;}.yb-delay-3{transition-delay:0.3s;}

/* ── HERO ── */
#yb-hero{min-height:100vh;display:grid;grid-template-columns:1fr 1fr;position:relative;overflow:hidden;}
.yb-hero-left{display:flex;flex-direction:column;justify-content:center;padding:10rem 5vw 6rem 8vw;position:relative;z-index:2;}
.yb-hero-tag{font-size:0.72rem;letter-spacing:0.3em;color:var(--gold);text-transform:uppercase;margin-bottom:1.5rem;display:flex;align-items:center;gap:1rem;}
.yb-hero-tag::before{content:'';width:40px;height:1px;background:var(--gold);}
.yb-hero-h1{font-family:var(--font-display);font-size:clamp(2.8rem,4.5vw,5rem);line-height:1.08;font-weight:400;color:var(--dark);margin-bottom:0.3rem;}
.yb-hero-h1 em{font-style:italic;color:var(--rose);}
.yb-hero-sub{font-family:var(--font-accent);font-size:clamp(1.2rem,2vw,1.8rem);color:var(--mauve);font-style:italic;margin-bottom:2rem;font-weight:300;}
.yb-hero-desc{font-size:0.9rem;line-height:1.9;color:rgba(45,32,32,0.65);max-width:380px;font-weight:300;margin-bottom:3rem;}
.yb-hero-ctas{display:flex;gap:1.2rem;flex-wrap:wrap;}
.yb-btn-primary{background:var(--dark);color:var(--cream);padding:1rem 2.5rem;font-size:0.82rem;letter-spacing:0.18em;transition:all 0.3s;display:inline-block;position:relative;overflow:hidden;}
.yb-btn-primary::before{content:'';position:absolute;inset:0;background:var(--rose);transform:translateX(-100%);transition:transform 0.4s ease;z-index:-1;}
.yb-btn-primary:hover::before{transform:translateX(0);}
.yb-btn-primary:hover{color:white;}
.yb-btn-outline{border:1px solid var(--rose);color:var(--rose);padding:1rem 2.5rem;font-size:0.82rem;letter-spacing:0.18em;display:inline-block;transition:all 0.3s;}
.yb-btn-outline:hover{background:var(--rose);color:white;}
.yb-hero-stats{display:flex;gap:2.5rem;margin-top:3rem;padding-top:2rem;border-top:1px solid rgba(196,168,130,0.3);}
.yb-stat-num{font-family:var(--font-accent);font-size:2.5rem;color:var(--rose);line-height:1;font-weight:300;}
.yb-stat-label{font-size:0.72rem;letter-spacing:0.15em;color:rgba(45,32,32,0.5);margin-top:0.3rem;}
.yb-hero-right{position:relative;overflow:hidden;background:linear-gradient(135deg,#E8C5B0,#C9937A);}
.yb-hero-right img{width:100%;height:100%;object-fit:cover;position:absolute;inset:0;}
.yb-hero-deco{position:absolute;font-family:var(--font-display);font-size:14rem;color:rgba(255,255,255,0.1);font-style:italic;right:-10px;bottom:30px;pointer-events:none;user-select:none;z-index:1;}
.yb-hero-badge{position:absolute;bottom:3rem;left:50%;transform:translateX(-50%);background:rgba(255,255,255,0.95);padding:1.2rem 2rem;text-align:center;min-width:200px;z-index:2;box-shadow:0 8px 32px rgba(45,32,32,0.12);}
.yb-hero-badge-label{font-size:0.7rem;letter-spacing:0.2em;color:var(--gold);margin-bottom:0.4rem;}
.yb-hero-badge-text{font-family:var(--font-accent);font-size:1.1rem;color:var(--dark);}
.yb-petal{position:absolute;background:rgba(255,255,255,0.4);border-radius:50% 0 50% 0;animation:ybPetal linear infinite;z-index:1;}
@keyframes ybPetal{0%{transform:translateY(-20px) rotate(0deg);opacity:0;}10%{opacity:1;}90%{opacity:0.4;}100%{transform:translateY(110vh) rotate(720deg) translateX(50px);opacity:0;}}

/* ── SERVICES ── */
#yb-services{background:#fff;position:relative;overflow:hidden;}
#yb-services::before{content:'';position:absolute;top:0;right:0;width:38%;height:100%;background:linear-gradient(180deg,rgba(232,197,176,0.08),rgba(201,147,122,0.04));clip-path:polygon(12% 0,100% 0,100% 100%,0 100%);}
.yb-services-header{max-width:600px;margin-bottom:4rem;}
.yb-services-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:2px;}
.yb-service-card{background:var(--cream);padding:3rem 2.5rem;position:relative;overflow:hidden;transition:all 0.4s;}
.yb-service-card::before{content:'';position:absolute;inset:0;background:var(--dark);transform:translateY(100%);transition:transform 0.5s cubic-bezier(0.4,0,0.2,1);z-index:0;}
.yb-service-card:hover::before{transform:translateY(0);}
.yb-service-inner{position:relative;z-index:1;}
.yb-service-icon{font-size:2.5rem;margin-bottom:1.5rem;display:block;transition:transform 0.3s;}
.yb-service-card:hover .yb-service-icon{transform:scale(1.1);}
.yb-service-num{font-family:var(--font-accent);font-size:0.78rem;letter-spacing:0.2em;color:var(--gold);margin-bottom:0.8rem;transition:color 0.3s;}
.yb-service-card:hover .yb-service-num{color:var(--blush);}
.yb-service-title{font-family:var(--font-display);font-size:1.4rem;font-weight:400;margin-bottom:0.8rem;transition:color 0.3s;}
.yb-service-card:hover .yb-service-title{color:white;}
.yb-service-desc{font-size:0.85rem;line-height:1.8;color:rgba(45,32,32,0.6);transition:color 0.3s;}
.yb-service-card:hover .yb-service-desc{color:rgba(255,255,255,0.65);}
.yb-service-link{display:inline-flex;align-items:center;gap:0.5rem;margin-top:1.5rem;font-size:0.78rem;letter-spacing:0.15em;color:var(--rose);transition:gap 0.3s,color 0.3s;}
.yb-service-card:hover .yb-service-link{color:var(--blush);gap:0.9rem;}

/* ── PORTFOLIO ── */
#yb-portfolio{background:var(--cream);}
.yb-portfolio-header{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:3rem;flex-wrap:wrap;gap:2rem;}
.yb-filters{display:flex;gap:0.5rem;flex-wrap:wrap;}
.yb-filter-btn{border:1px solid rgba(196,168,130,0.4);background:transparent;color:var(--dark);padding:0.5rem 1.2rem;font-size:0.78rem;letter-spacing:0.12em;cursor:none;font-family:var(--font-body);transition:all 0.3s;border-radius:2px;}
.yb-filter-btn.active,.yb-filter-btn:hover{background:var(--rose);border-color:var(--rose);color:white;}
.yb-portfolio-grid{display:grid;grid-template-columns:repeat(12,1fr);grid-auto-rows:200px;gap:10px;}
.yb-port-item{position:relative;overflow:hidden;cursor:none;}
.yb-port-item:nth-child(1){grid-column:1/6;grid-row:1/3;}
.yb-port-item:nth-child(2){grid-column:6/9;grid-row:1/2;}
.yb-port-item:nth-child(3){grid-column:9/13;grid-row:1/2;}
.yb-port-item:nth-child(4){grid-column:6/10;grid-row:2/3;}
.yb-port-item:nth-child(5){grid-column:10/13;grid-row:2/3;}
.yb-port-item:nth-child(6){grid-column:1/5;grid-row:3/4;}
.yb-port-item:nth-child(7){grid-column:5/9;grid-row:3/4;}
.yb-port-item:nth-child(8){grid-column:9/13;grid-row:3/4;}
.yb-port-item img{width:100%;height:100%;object-fit:cover;transition:transform 0.6s ease;}
.yb-port-item:hover img{transform:scale(1.07);}
.yb-port-fallback{width:100%;height:100%;display:flex;flex-direction:column;align-items:center;justify-content:center;font-size:2.5rem;}
.yb-port-item:nth-child(odd) .yb-port-fallback{background:linear-gradient(145deg,#E8C5B0,#C9937A);}
.yb-port-item:nth-child(even) .yb-port-fallback{background:linear-gradient(145deg,#D4B5C8,#9E6B5A);}
.yb-port-overlay{position:absolute;inset:0;background:linear-gradient(to top,rgba(45,32,32,0.85) 0%,transparent 55%);opacity:0;transition:opacity 0.4s;display:flex;flex-direction:column;justify-content:flex-end;padding:1.5rem;}
.yb-port-item:hover .yb-port-overlay{opacity:1;}
.yb-port-cat{font-size:0.68rem;letter-spacing:0.22em;color:var(--blush);margin-bottom:0.3rem;}
.yb-port-title{font-family:var(--font-display);font-size:1.05rem;color:white;font-weight:400;}
.yb-port-filtered{opacity:0.2;transform:scale(0.97);transition:opacity 0.4s,transform 0.4s;pointer-events:none;}

/* ── PRICING ── */
#yb-pricing{background:var(--dark);position:relative;overflow:hidden;}
#yb-pricing::before{content:'"美麗"';position:absolute;right:-2vw;top:50%;transform:translateY(-50%);font-family:var(--font-display);font-size:22vw;color:rgba(255,255,255,0.025);font-style:italic;pointer-events:none;white-space:nowrap;}
.yb-pricing-header .yb-section-tag{color:var(--gold);}
.yb-pricing-header .yb-section-title{color:white;}
.yb-pricing-header .yb-section-desc{color:rgba(255,255,255,0.45);}
.yb-pricing-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:1.5rem;margin-top:3rem;}
.yb-price-card{border:1px solid rgba(196,168,130,0.15);padding:3rem 2.5rem;position:relative;transition:all 0.4s;background:rgba(255,255,255,0.02);}
.yb-price-card:hover{border-color:var(--gold);background:rgba(196,168,130,0.06);transform:translateY(-4px);}
.yb-price-card.featured{border-color:var(--rose);background:linear-gradient(135deg,rgba(201,147,122,0.1),rgba(158,107,90,0.05));}
.yb-price-card.featured::before{content:attr(data-badge);position:absolute;top:-1px;left:50%;transform:translateX(-50%);background:var(--rose);color:white;font-size:0.68rem;letter-spacing:0.2em;padding:0.35rem 1.2rem;white-space:nowrap;}
.yb-price-cat{font-size:0.72rem;letter-spacing:0.25em;color:var(--gold);margin-bottom:0.8rem;}
.yb-price-name{font-family:var(--font-display);font-size:1.55rem;color:white;font-weight:400;margin-bottom:0.5rem;}
.yb-price-desc{font-size:0.82rem;color:rgba(255,255,255,0.4);line-height:1.7;margin-bottom:2rem;}
.yb-price-amount{display:flex;align-items:baseline;gap:0.3rem;margin-bottom:0.3rem;}
.yb-price-from{font-size:0.75rem;color:rgba(255,255,255,0.4);}
.yb-price-num{font-family:var(--font-accent);font-size:3rem;color:var(--blush);font-weight:300;line-height:1;}
.yb-price-unit{font-size:0.8rem;color:rgba(255,255,255,0.4);}
.yb-price-divider{height:1px;background:rgba(196,168,130,0.15);margin:1.8rem 0;}
.yb-price-features li{font-size:0.83rem;color:rgba(255,255,255,0.55);padding:0.5rem 0;display:flex;align-items:flex-start;gap:0.7rem;border-bottom:1px solid rgba(196,168,130,0.07);}
.yb-price-features li::before{content:'✦';color:var(--gold);font-size:0.5rem;flex-shrink:0;margin-top:5px;}
.yb-price-cta{display:block;text-align:center;margin-top:2rem;padding:0.9rem;border:1px solid rgba(201,147,122,0.4);color:var(--blush);font-size:0.78rem;letter-spacing:0.18em;transition:all 0.3s;}
.yb-price-card.featured .yb-price-cta{background:var(--rose);border-color:var(--rose);color:white;}
.yb-price-cta:hover{background:var(--rose);border-color:var(--rose);color:white;}
.yb-addon-grid{display:grid;grid-template-columns:repeat(4,1fr);gap:1px;margin-top:3rem;background:rgba(196,168,130,0.12);}
.yb-addon-item{background:rgba(45,32,32,0.95);padding:1.5rem 1.8rem;}
.yb-addon-name{font-size:0.85rem;color:rgba(255,255,255,0.65);margin-bottom:0.4rem;}
.yb-addon-price{font-family:var(--font-accent);font-size:1.5rem;color:var(--gold);font-weight:300;}

/* ── ABOUT ── */
#yb-about{background:#fff;display:grid;grid-template-columns:1fr 1fr;gap:6rem;align-items:center;}
.yb-about-img-wrap{position:relative; padding-bottom: 3rem;}
.yb-about-main{width:80%;aspect-ratio:3/4;margin-left:auto;overflow:hidden;position:relative;z-index: 1;}
.yb-about-main img,.yb-about-main-fallback{width:100%;height:100%;object-fit:cover;}
.yb-about-main-fallback{background:linear-gradient(145deg,#E8C5B0,#C9937A);display:flex;align-items:center;justify-content:center;font-size:5rem;opacity:0.35;}
.yb-about-accent{position:absolute;bottom:0;left:0;width:45%;aspect-ratio:1;overflow:hidden;border:6px solid #fff;z-index: 2;box-shadow: 0 10px 30px rgba(0,0,0,0.1);}
.yb-about-accent img,.yb-about-accent-fallback{width:100%;height:100%;object-fit:cover;}
.yb-about-accent-fallback{background:linear-gradient(145deg,#EDD9BF,#C4A882);display:flex;align-items:center;justify-content:center;font-size:2.5rem;opacity:0.4;}
.yb-about-badge{position:absolute;top:2rem;left:-2rem;background:var(--rose);color:white;padding:1.2rem 1.5rem;text-align:center;box-shadow:0 8px 32px rgba(201,147,122,0.4);}
.yb-about-badge-num{font-family:var(--font-accent);font-size:2.2rem;font-weight:300;display:block;}
.yb-about-badge-text{font-size:0.7rem;letter-spacing:0.15em;}
.yb-about-quote{font-family:var(--font-accent);font-size:1.4rem;font-style:italic;color:var(--rose);line-height:1.7;border-left:2px solid var(--gold);padding-left:1.5rem;margin:2rem 0;}
.yb-about-body{font-size:0.9rem;line-height:1.9;color:rgba(45,32,32,0.65);font-weight:300;margin-bottom:1rem;}
.yb-skill-tags{display:flex;flex-wrap:wrap;gap:0.6rem;margin-top:2rem;}
.yb-skill-tag{border:1px solid rgba(201,147,122,0.3);padding:0.4rem 1rem;font-size:0.75rem;letter-spacing:0.1em;color:var(--deep-rose);}

/* ── TESTIMONIALS ── */
#yb-testimonials{background:linear-gradient(135deg,var(--cream),var(--light-gold));text-align:center;}
.yb-testimonials-header{margin-bottom:4rem;}
.yb-testimonials-header .yb-section-tag{justify-content:center;}
.yb-testimonials-header .yb-section-tag::before{display:none;}
.yb-testimonials-header .yb-section-title,.yb-testimonials-header .yb-section-desc{max-width:600px;margin:0 auto 0.5rem;}
.yb-testimonials-track{display:flex;gap:1.5rem;overflow-x:auto;padding:1rem 0 2rem;scroll-snap-type:x mandatory;scrollbar-width:none;cursor:grab;}
.yb-testimonials-track:active{cursor:grabbing;}
.yb-testimonials-track::-webkit-scrollbar{display:none;}
.yb-testimonial-card{min-width:330px;max-width:330px;background:#fff;padding:2.5rem;text-align:left;scroll-snap-align:start;flex-shrink:0;box-shadow:0 4px 24px var(--shadow);position:relative;transition:transform 0.3s ease;}
.yb-testimonial-card:hover{transform:translateY(-5px);}
.yb-slider-dots{display:flex;justify-content:center;gap:0.6rem;margin-top:1rem;}
.yb-dot{width:8px;height:8px;border-radius:50%;background:rgba(196,168,130,0.3);cursor:none;transition:all 0.3s;}
.yb-dot.active{background:var(--rose);transform:scale(1.3);}
.yb-testimonial-card::before{content:'"';font-family:var(--font-accent);font-size:6rem;color:var(--blush);position:absolute;top:-0.5rem;left:1.5rem;line-height:1;opacity:0.45;}
.yb-review-stars{color:var(--gold);margin-bottom:1rem;font-size:0.82rem;}
.yb-review-text{font-size:0.87rem;line-height:1.9;color:rgba(45,32,32,0.7);margin-bottom:1.5rem;position:relative;z-index:1;}
.yb-review-author{display:flex;align-items:center;gap:1rem;}
.yb-review-avatar{width:42px;height:42px;border-radius:50%;background:linear-gradient(135deg,var(--blush),var(--rose));display:flex;align-items:center;justify-content:center;font-size:1rem;color:white;flex-shrink:0;font-weight:500;}
.yb-review-name{font-size:0.85rem;font-weight:500;}
.yb-review-event{font-size:0.75rem;color:var(--gold);margin-top:0.1rem;}

/* ── CONTACT ── */
#yb-contact{background:var(--cream);display:grid;grid-template-columns:1fr 1.2fr;gap:6rem;}
.yb-contact-detail{display:flex;align-items:flex-start;gap:1.2rem;margin-bottom:2rem;}
.yb-contact-icon{width:42px;height:42px;border:1px solid rgba(196,168,130,0.3);display:flex;align-items:center;justify-content:center;font-size:1.1rem;flex-shrink:0;}
.yb-contact-label{font-size:0.75rem;letter-spacing:0.15em;color:var(--gold);margin-bottom:0.3rem;}
.yb-contact-value{font-size:0.9rem;line-height:1.7;}
.yb-social-links{display:flex;gap:0.8rem;margin-top:2.5rem;}
.yb-social-link{width:40px;height:40px;border:1px solid rgba(201,147,122,0.3);display:flex;align-items:center;justify-content:center;transition:all 0.3s;color:var(--rose);font-size:0.85rem;}
.yb-social-link:hover{background:var(--rose);color:white;border-color:var(--rose);}
.yb-form-title{font-family:var(--font-display);font-size:1.8rem;margin-bottom:0.5rem;}
.yb-form-subtitle{font-size:0.85rem;color:rgba(45,32,32,0.55);margin-bottom:2.5rem;font-weight:300;}
.yb-form-row{display:grid;grid-template-columns:1fr 1fr;gap:1rem;margin-bottom:1rem;}
.yb-form-group{margin-bottom:1rem;}
.yb-form-group label{display:block;font-size:0.75rem;letter-spacing:0.15em;color:var(--mauve);margin-bottom:0.5rem;}
.yb-form-group input,.yb-form-group select,.yb-form-group textarea{width:100%;padding:0.9rem 1rem;border:1px solid rgba(196,168,130,0.3);background:#fff;font-size:0.88rem;color:var(--dark);outline:none;transition:border-color 0.3s;border-radius:2px;}
.yb-form-group input:focus,.yb-form-group select:focus,.yb-form-group textarea:focus{border-color:var(--rose);}
.yb-form-group textarea{height:120px;resize:vertical;}
.yb-service-checks{display:grid;grid-template-columns:1fr 1fr;gap:0.5rem;margin-bottom:1rem;}
.yb-check-input{display:none;}
.yb-check-label{display:flex;align-items:center;gap:0.6rem;padding:0.7rem 1rem;border:1px solid rgba(196,168,130,0.3);font-size:0.8rem;cursor:none;transition:all 0.3s;user-select:none;}
.yb-check-input:checked+.yb-check-label{border-color:var(--rose);background:rgba(201,147,122,0.08);color:var(--rose);}
.yb-check-box{width:16px;height:16px;border:1px solid rgba(196,168,130,0.4);flex-shrink:0;position:relative;transition:all 0.3s;}
.yb-check-input:checked+.yb-check-label .yb-check-box{background:var(--rose);border-color:var(--rose);}
.yb-check-input:checked+.yb-check-label .yb-check-box::after{content:'✓';position:absolute;inset:0;display:flex;align-items:center;justify-content:center;color:white;font-size:0.6rem;}
.yb-submit-btn{width:100%;padding:1.1rem;background:var(--dark);color:var(--cream);border:none;font-size:0.88rem;letter-spacing:0.2em;cursor:none;transition:all 0.3s;margin-top:0.5rem;position:relative;overflow:hidden;}
.yb-submit-btn::before{content:'';position:absolute;inset:0;background:var(--rose);transform:translateX(-100%);transition:transform 0.4s ease;}
.yb-submit-btn:hover::before{transform:translateX(0);}
.yb-submit-btn span{position:relative;z-index:1;}
.yb-submit-btn:hover{color:white;}
.yb-success-msg{display:none;text-align:center;padding:1.5rem;background:rgba(201,147,122,0.1);border:1px solid var(--rose);margin-top:1rem;}
.yb-success-msg.show{display:block;}
.yb-success-msg p{color:var(--rose);font-size:0.9rem;}

/* ── FOOTER ── */
#yb-footer{background:var(--dark);padding:4rem 8vw 2rem;}
.yb-footer-top{display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:4rem;padding-bottom:3rem;border-bottom:1px solid rgba(255,255,255,0.07);}
.yb-footer-logo{font-family:var(--font-display);font-size:1.5rem;color:white;font-style:italic;margin-bottom:1rem;}
.yb-footer-tagline{font-size:0.82rem;color:rgba(255,255,255,0.38);line-height:1.8;max-width:240px;font-weight:300;}
.yb-footer-col-title{font-size:0.72rem;letter-spacing:0.25em;color:var(--gold);margin-bottom:1.5rem;text-transform:uppercase;}
.yb-footer-links li{margin-bottom:0.8rem;}
.yb-footer-links a{font-size:0.83rem;color:rgba(255,255,255,0.42);transition:color 0.3s;}
.yb-footer-links a:hover{color:var(--blush);}
.yb-footer-bottom{display:flex;justify-content:space-between;align-items:center;padding-top:2rem;font-size:0.75rem;color:rgba(255,255,255,0.22);}

/* ── SCROLL TOP ── */
#yb-scroll-top{position:fixed;bottom:2.5rem;right:2.5rem;width:44px;height:44px;background:var(--rose);color:white;border:none;cursor:none;display:flex;align-items:center;justify-content:center;font-size:1rem;opacity:0;transform:translateY(10px);transition:all 0.3s;z-index:50;box-shadow:0 4px 20px rgba(201,147,122,0.4);}
#yb-scroll-top.visible{opacity:1;transform:translateY(0);}
#yb-scroll-top:hover{background:var(--deep-rose);}

/* ── RESPONSIVE ── */
@media(max-width:1100px){
  .yb-services-grid{grid-template-columns:1fr 1fr;}
  .yb-pricing-grid{grid-template-columns:1fr;max-width:480px;margin-left:auto;margin-right:auto;}
  .yb-addon-grid{grid-template-columns:1fr 1fr;}
  #yb-about{grid-template-columns:1fr;gap:3rem;}
  #yb-contact{grid-template-columns:1fr;gap:3rem;}
  .yb-footer-top{grid-template-columns:1fr 1fr;gap:2rem;}
}
@media(max-width:768px){
  .yb-section{padding:4rem 6vw;}
  #yb-hero{grid-template-columns:1fr; min-height: auto;}
  .yb-hero-left{padding:7rem 6vw 3rem; text-align: center; align-items: center;}
  .yb-hero-tag{justify-content: center;}
  .yb-hero-desc{margin-left: auto; margin-right: auto;}
  .yb-hero-right{min-height: 100vw; height: 500px; position: relative;}
  .yb-hero-right img{width: 100%; height: 100%; object-fit: cover; object-position: center;}
  .yb-hero-stats{gap: 1.2rem; justify-content: center; width: 100%;}
  .yb-services-grid{grid-template-columns:1fr;}
  .yb-portfolio-grid{grid-template-columns:1fr; grid-auto-rows: 250px;}
  .yb-port-item{grid-column:auto !important; grid-row:auto !important;}
  .yb-testimonial-card{min-width: 85vw; max-width: 85vw; padding: 2rem 1.5rem;}
  .yb-form-row{grid-template-columns:1fr;}
  .yb-service-checks{grid-template-columns: 1fr;}
  .yb-footer-top{grid-template-columns:1fr; text-align: center;}
  .yb-footer-tagline{margin-left: auto; margin-right: auto;}
  #yb-about,#yb-contact{padding:4rem 6vw;}
  .yb-about-main{width: 100%; margin-left: 0;}
  .yb-about-accent{width: 40%; bottom: -1rem; left: 5%;}
  .yb-about-badge{left: auto; right: 0; top: -1rem;}
}

@media(max-width: 480px){
  .yb-hero-h1{font-size: 2.5rem;}
  .yb-nav-logo a{font-size: 1.1rem;}
  .yb-btn-primary, .yb-btn-outline{width: 100%; text-align: center;}
}

/* ── LIGHTBOX ── */
.yb-lightbox { position: fixed; inset: 0; z-index: 1000; display: none; align-items: center; justify-content: center; opacity: 0; transition: opacity 0.4s; }
.yb-lightbox.open { display: flex; opacity: 1; }
.yb-lightbox-overlay { position: absolute; inset: 0; background: rgba(45,32,32,0.95); backdrop-filter: blur(10px); }
.yb-lightbox-content { position: relative; width: 90vw; height: 90vh; display: flex; align-items: center; justify-content: center; z-index: 1; }
.yb-lightbox-img-wrap { position: relative; max-width: 100%; max-height: 80vh; box-shadow: 0 20px 50px rgba(0,0,0,0.3); }
#yb-lightbox-img { max-width: 100%; max-height: 80vh; object-fit: contain; display: block; }
.yb-lightbox-close { position: absolute; top: -40px; right: 0; background: none; border: none; color: white; font-size: 2.5rem; cursor: none; }
.yb-lightbox-prev, .yb-lightbox-next { position: absolute; top: 50%; transform: translateY(-50%); background: rgba(255,255,255,0.1); border: none; color: white; font-size: 2rem; padding: 1.5rem 1rem; cursor: none; transition: background 0.3s; z-index: 2; }
.yb-lightbox-prev { left: 0; }
.yb-lightbox-next { right: 0; }
.yb-lightbox-prev:hover, .yb-lightbox-next:hover { background: rgba(255,255,255,0.2); }
.yb-lightbox-caption { position: absolute; bottom: -60px; left: 0; right: 0; text-align: center; color: white; }
#yb-lightbox-title { font-family: var(--font-display); font-size: 1.2rem; margin-bottom: 0.3rem; letter-spacing: 0.1em; }
#yb-lightbox-counter { font-size: 0.8rem; color: rgba(255,255,255,0.5); letter-spacing: 0.2em; }
@media(max-width: 768px) {
    .yb-lightbox-content { width: 100vw; height: 100vh; }
    .yb-lightbox-img-wrap { max-height: 70vh; }
    #yb-lightbox-img { max-height: 70vh; }
    .yb-lightbox-prev, .yb-lightbox-next { padding: 1rem 0.5rem; font-size: 1.2rem; background: rgba(0,0,0,0.3); }
    .yb-lightbox-close { top: 20px; right: 20px; font-size: 2rem; }
    .yb-lightbox-caption { bottom: 40px; padding: 0 20px; }
    #yb-lightbox-title { font-size: 1rem; }
}
