:root{--green: #16a34a;--green-bright: #22c55e;--green-dark: #15803d;--green-soft: #dcfce7;--ink: #0a0a0a;--ink-2: #171717;--ink-3: #262626;--muted: #6b7280;--line: #e5e7eb;--paper: #ffffff;--paper-2: #fafafa;--shadow: 0 4px 20px rgba(0, 0, 0, .06);--shadow-lg: 0 12px 40px rgba(0, 0, 0, .12);--radius: 14px;--radius-lg: 20px}*{box-sizing:border-box}html,body{margin:0;padding:0}body{font-family:Inter,system-ui,-apple-system,Segoe UI,Roboto,sans-serif;color:var(--ink);background:var(--paper);-webkit-font-smoothing:antialiased;text-rendering:optimizeLegibility}a{color:inherit;text-decoration:none}img{display:block;max-width:100%}button{font:inherit;cursor:pointer;border:none;background:none}h1,h2,h3{font-family:Manrope,Inter,system-ui,sans-serif;font-weight:800;letter-spacing:-.02em;margin:0}h1{font-size:clamp(2.4rem,6vw,4.2rem);line-height:1.05}h2{font-size:clamp(1.8rem,4vw,2.6rem);line-height:1.15}h3{font-size:1.2rem;line-height:1.3}p{margin:0;line-height:1.6;color:var(--ink-2)}.container{width:100%;max-width:1180px;margin:0 auto;padding:0 20px}.nav{position:sticky;top:0;z-index:50;background:#ffffffeb;-webkit-backdrop-filter:saturate(180%) blur(12px);backdrop-filter:saturate(180%) blur(12px);border-bottom:1px solid var(--line)}.nav-inner{display:flex;align-items:center;justify-content:space-between;height:80px}.brand{display:flex;align-items:center;gap:10px}.brand .logo{height:56px;width:auto}.nav-links{display:flex;gap:22px;align-items:center}.nav-links a{color:var(--ink-2);font-weight:500}.nav-links a:hover{color:var(--green-dark)}@media(max-width:720px){.nav-links{display:none}}.btn{display:inline-flex;align-items:center;gap:8px;padding:12px 22px;border-radius:999px;font-weight:700;font-size:.98rem;transition:transform .15s ease,box-shadow .15s ease,background .15s ease}.btn:active{transform:translateY(1px)}.btn-primary{background:var(--green);color:#fff;box-shadow:0 8px 24px #16a34a59}.btn-primary:hover{background:var(--green-dark)}.btn-ghost{background:transparent;color:var(--ink);border:1.5px solid var(--ink)}.btn-ghost:hover,.btn-dark{background:var(--ink);color:#fff}.btn-dark:hover{background:var(--ink-3)}.btn-block{width:100%;justify-content:center}.hero{background:radial-gradient(ellipse at top left,rgba(34,197,94,.18),transparent 60%),radial-gradient(ellipse at bottom right,rgba(22,163,74,.12),transparent 60%),linear-gradient(180deg,#f7faf7,#fff);padding:80px 0 64px;position:relative;overflow:hidden}.hero-grid{display:grid;grid-template-columns:1.1fr .9fr;gap:56px;align-items:center}@media(max-width:900px){.hero-grid{grid-template-columns:1fr;gap:40px}}.eyebrow{display:inline-flex;align-items:center;gap:8px;padding:6px 12px;border-radius:999px;background:var(--green-soft);color:var(--green-dark);font-weight:700;font-size:.82rem;letter-spacing:.04em;text-transform:uppercase;margin-bottom:18px}.hero h1 .accent{color:var(--green)}.hero p.lead{font-size:1.18rem;max-width:540px;margin-top:18px;color:#404040}.hero-actions{display:flex;gap:12px;margin-top:28px;flex-wrap:wrap}.hero-card{background:#fff;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);padding:28px;position:relative;border:1px solid var(--line)}.hero-card h3{margin-bottom:12px}.hero-card .row{display:flex;align-items:center;justify-content:space-between;padding:12px 0;border-bottom:1px dashed var(--line)}.hero-card .row:last-child{border-bottom:none}.hero-card .row .price{font-weight:800;color:var(--ink)}.hero-card .row .from{color:var(--muted);font-size:.85rem}.hero-coupon{position:absolute;top:-18px;right:-14px;background:var(--ink);color:#fff;padding:14px 16px;border-radius:14px;transform:rotate(4deg);box-shadow:var(--shadow-lg);font-family:Manrope,sans-serif}.hero-coupon b{color:var(--green-bright);font-size:1.4rem;display:block;line-height:1}.hero-coupon small{font-size:.72rem;opacity:.8;letter-spacing:.04em;text-transform:uppercase}.services-strip{background:var(--ink);color:#fff;padding:28px 0;overflow:hidden}.services-strip .row{display:grid;grid-template-columns:repeat(5,1fr);gap:18px;align-items:center}@media(max-width:900px){.services-strip .row{grid-template-columns:repeat(2,1fr)}}.services-strip .item{display:flex;flex-direction:column;align-items:center;gap:8px;text-align:center;font-weight:700;font-size:.92rem;letter-spacing:.02em}.services-strip .item .glyph{width:44px;height:44px;border-radius:12px;display:grid;place-items:center;background:#22c55e26;color:var(--green-bright)}section{padding:80px 0}.section-head{text-align:center;max-width:720px;margin:0 auto 48px}.section-head h2{margin-bottom:12px}.section-head p{color:var(--muted);font-size:1.05rem}.cards-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(260px,1fr));gap:20px}.card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:24px;transition:transform .2s ease,box-shadow .2s ease,border-color .2s ease;display:flex;flex-direction:column;gap:12px}.card:hover{transform:translateY(-3px);box-shadow:var(--shadow);border-color:#d4d4d4}.card .glyph{width:48px;height:48px;border-radius:12px;display:grid;place-items:center;background:var(--green-soft);color:var(--green-dark)}.card h3{font-size:1.15rem}.card p{font-size:.95rem;color:var(--muted)}.card .price-line{display:flex;align-items:baseline;gap:4px;margin-top:8px}.card .price-line b{font-size:1.2rem}.card .price-line span{color:var(--muted);font-size:.85rem}.card .link{color:var(--green-dark);font-weight:700;font-size:.9rem;margin-top:4px}.why{background:var(--paper-2)}.why-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(240px,1fr));gap:24px}.why-item{padding:20px}.why-item .num{font-family:Manrope,sans-serif;font-weight:900;font-size:2.6rem;color:var(--green);line-height:1}.why-item h3{margin:8px 0 6px}.why-item p{color:var(--muted);font-size:.96rem}.coupon-banner{background:linear-gradient(135deg,var(--ink) 0%,#1f2937 100%);color:#fff;padding:56px 0;position:relative;overflow:hidden}.coupon-banner:before{content:"";position:absolute;right:-120px;top:-80px;width:320px;height:320px;border-radius:50%;background:radial-gradient(circle,rgba(34,197,94,.35),transparent 60%)}.coupon-inner{display:grid;grid-template-columns:1.5fr 1fr;gap:40px;align-items:center;position:relative}@media(max-width:800px){.coupon-inner{grid-template-columns:1fr}}.coupon-inner h2{color:#fff}.coupon-inner h2 .accent{color:var(--green-bright)}.coupon-inner p{color:#ffffffc7;margin-top:12px}.coupon-form{background:#fff;padding:24px;border-radius:var(--radius);color:var(--ink)}.coupon-form label{display:block;font-weight:600;font-size:.85rem;margin-bottom:6px}.coupon-form input{width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid var(--line);font-size:1rem;margin-bottom:12px}.coupon-form input:focus{outline:none;border-color:var(--green)}.coupon-result{background:var(--green-soft);border:1.5px dashed var(--green);padding:16px;border-radius:10px;text-align:center;margin-top:8px}.coupon-result b{font-family:Manrope,sans-serif;font-size:1.6rem;color:var(--green-dark);letter-spacing:.1em;display:block}.footer{background:var(--ink);color:#fff;padding:48px 0 28px}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr 1fr;gap:36px}@media(max-width:800px){.footer-grid{grid-template-columns:1fr 1fr}}.footer p,.footer a{color:#ffffffb3;font-size:.92rem}.footer a:hover{color:#fff}.footer h4{font-family:Manrope,sans-serif;font-size:.85rem;text-transform:uppercase;letter-spacing:.1em;color:#fff;margin:0 0 14px}.footer ul{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:8px}.footer-bottom{border-top:1px solid rgba(255,255,255,.1);padding-top:20px;margin-top:32px;display:flex;justify-content:space-between;flex-wrap:wrap;gap:12px;color:#ffffff80;font-size:.85rem}.form-page{padding:56px 0 100px}.form-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius-lg);padding:32px;box-shadow:var(--shadow)}@media(max-width:720px){.form-card{padding:22px}}.field{margin-bottom:18px}.field label{display:block;font-weight:600;font-size:.92rem;margin-bottom:6px}.field input,.field select,.field textarea{width:100%;padding:12px 14px;border-radius:10px;border:1.5px solid var(--line);font-size:1rem;font-family:inherit;background:#fff}.field input:focus,.field select:focus,.field textarea:focus{outline:none;border-color:var(--green)}.field textarea{resize:vertical;min-height:90px}.field-row{display:grid;grid-template-columns:1fr 1fr;gap:14px}@media(max-width:600px){.field-row{grid-template-columns:1fr}}.help{font-size:.82rem;color:var(--muted);margin-top:4px}.stepper{display:flex;gap:8px;margin-bottom:28px}.stepper .dot{flex:1;height:6px;border-radius:999px;background:var(--line)}.stepper .dot.on{background:var(--green)}.choice-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:12px}.choice{border:1.5px solid var(--line);border-radius:12px;padding:16px;display:flex;flex-direction:column;gap:6px;align-items:flex-start;cursor:pointer;transition:all .15s ease;background:#fff}.choice:hover{border-color:var(--green)}.choice.on{border-color:var(--green);background:var(--green-soft)}.choice b{font-size:1rem}.choice small{color:var(--muted);font-size:.82rem}.photo-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:10px;margin-top:8px}.photo-thumb{position:relative;aspect-ratio:1;border-radius:10px;overflow:hidden;background:var(--paper-2);border:1px solid var(--line)}.photo-thumb img{width:100%;height:100%;object-fit:cover}.photo-thumb button{position:absolute;top:6px;right:6px;background:#000000b3;color:#fff;border-radius:50%;width:24px;height:24px;display:grid;place-items:center;font-size:14px}.photo-drop{border:2px dashed var(--line);border-radius:12px;padding:26px;text-align:center;cursor:pointer;transition:all .15s ease;background:var(--paper-2)}.photo-drop:hover{border-color:var(--green);background:var(--green-soft)}.photo-drop b{display:block}.photo-drop small{color:var(--muted)}.photo-drop-v2{display:flex;align-items:center;gap:14px;border:2px dashed var(--line);border-radius:14px;padding:16px 18px;cursor:pointer;background:var(--paper-2);transition:all .15s ease}.photo-drop-v2:hover{border-color:var(--green);background:var(--green-soft)}.photo-drop-icon{width:48px;height:48px;border-radius:12px;background:var(--green-soft);color:var(--green-dark);display:grid;place-items:center;flex-shrink:0}.photo-drop-v2:hover .photo-drop-icon{background:var(--green);color:#fff}.photo-drop-text{flex:1;display:flex;flex-direction:column;gap:2px}.photo-drop-text b{font-size:1rem}.photo-drop-text small{color:var(--muted);font-size:.82rem}.photo-drop-plus{width:36px;height:36px;border-radius:50%;background:var(--green);color:#fff;display:grid;place-items:center;font-size:1.4rem;font-weight:700;line-height:1;flex-shrink:0}.svc-chip-grid{display:grid;gap:10px;grid-template-columns:repeat(auto-fill,minmax(200px,1fr))}.svc-chip{display:grid;grid-template-columns:42px 1fr 24px;gap:12px;align-items:center;background:#fff;border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;cursor:pointer;text-align:left;transition:all .15s ease}.svc-chip:hover{border-color:var(--green);transform:translateY(-1px)}.svc-chip.on{border-color:var(--green);background:var(--green-soft)}.svc-chip-icon{width:42px;height:42px;border-radius:10px;background:var(--green-soft);color:var(--green-dark);display:grid;place-items:center}.svc-chip.on .svc-chip-icon{background:var(--green);color:#fff}.svc-chip-body b{display:block;font-size:.95rem}.svc-chip-body small{font-size:.82rem}.svc-chip-check{width:24px;height:24px;border-radius:50%;border:2px solid var(--line);display:grid;place-items:center;color:#fff;background:#fff}.svc-chip-check.on{background:var(--green);border-color:var(--green)}.quote-layout{display:grid;grid-template-columns:minmax(0,1fr) 320px;gap:28px;align-items:flex-start;max-width:1080px}@media(max-width:900px){.quote-layout{grid-template-columns:1fr}}.estimate-side{position:sticky;top:96px}.estimate-card{background:var(--ink);color:#fff;padding:22px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);border:1px solid var(--ink-3)}.estimate-card .dim{color:#ffffff9e}.estimate-total{font-family:Manrope,sans-serif;font-weight:900;font-size:3.2rem;line-height:1;margin:6px 0 10px;color:var(--green-bright)}.estimate-total span{font-size:1.6rem;vertical-align:top;margin-right:2px}.estimate-total small{font-size:.9rem;color:#ffffff8c;font-weight:700}.estimate-list{list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:6px;font-size:.92rem}.estimate-list li{display:flex;justify-content:space-between;align-items:baseline;color:#ffffffdb}.estimate-list li small{color:#ffffff80}.estimate-sep{border-top:1px dashed rgba(255,255,255,.18);padding-top:8px;margin-top:4px}.estimate-total-line{color:#fff;font-weight:700;font-size:1.05rem}.help-error{color:#fca5a5!important}.alert{padding:14px 16px;border-radius:10px;margin:12px 0}.alert-success{background:var(--green-soft);color:var(--green-dark);border:1px solid var(--green)}.alert-error{background:#fef2f2;color:#991b1b;border:1px solid #fecaca}.alert-info{background:#eff6ff;color:#1e40af;border:1px solid #bfdbfe}.gallery-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:18px}.ba-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.ba-frame{position:relative;aspect-ratio:4/3;background:var(--paper-2);-webkit-user-select:none;user-select:none;touch-action:none;overflow:hidden}.ba-frame img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover}.ba-frame .after-wrap{position:absolute;inset:0;overflow:hidden}.ba-frame .handle{position:absolute;top:0;bottom:0;width:3px;background:#fff;box-shadow:0 0 0 1px #00000026}.ba-frame .knob{position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);width:36px;height:36px;border-radius:50%;background:#fff;box-shadow:0 4px 12px #00000040;display:grid;place-items:center;color:var(--ink);font-weight:800}.ba-label{position:absolute;top:10px;padding:4px 8px;border-radius:6px;font-size:.72rem;font-weight:700;letter-spacing:.06em;text-transform:uppercase}.ba-label.before{left:10px;background:#000000b3;color:#fff}.ba-label.after{right:10px;background:var(--green);color:#fff}.ba-meta{padding:14px 16px}.ba-meta b{display:block;margin-bottom:4px}.ba-meta small{color:var(--muted)}.slot-grid{display:grid;grid-template-columns:repeat(auto-fill,minmax(160px,1fr));gap:10px}.slot{border:1.5px solid var(--line);border-radius:12px;padding:12px 14px;display:flex;flex-direction:column;gap:4px;cursor:pointer;transition:all .15s ease;background:#fff}.slot:hover:not(.full){border-color:var(--green)}.slot.on{border-color:var(--green);background:var(--green-soft)}.slot.full{opacity:.45;cursor:not-allowed}.slot b{font-weight:700}.slot small{color:var(--muted);font-size:.8rem}.svc-hero{background:linear-gradient(180deg,var(--green-soft) 0%,white 100%);padding:56px 0}.svc-hero h1{color:var(--ink)}.svc-hero p.lead{color:var(--ink-2);margin-top:12px;max-width:640px;font-size:1.1rem}.svc-includes{padding:56px 0}.svc-includes ul{display:grid;grid-template-columns:repeat(auto-fit,minmax(220px,1fr));gap:14px;padding:0;list-style:none}.svc-includes li{display:flex;gap:10px;align-items:flex-start;background:#fff;border:1px solid var(--line);border-radius:12px;padding:14px 16px}.svc-includes li:before{content:"✓";color:var(--green);font-weight:900}.center{text-align:center}.mt-12{margin-top:12px}.mt-24{margin-top:24px}.mb-12{margin-bottom:12px}.mb-24{margin-bottom:24px}.dim{color:var(--muted)}.admin-shell{display:grid;grid-template-columns:240px 1fr;min-height:100vh;background:var(--paper-2)}.admin-side{background:var(--ink);color:#fff;padding:24px 0;display:flex;flex-direction:column;gap:16px}.admin-brand{padding:0 20px 12px;border-bottom:1px solid rgba(255,255,255,.08)}.admin-side nav{display:flex;flex-direction:column;padding:0 8px;gap:2px;flex:1}.admin-side nav a{padding:10px 14px;border-radius:8px;color:#ffffffb3;font-weight:500;transition:all .15s ease}.admin-side nav a:hover{background:#ffffff0f;color:#fff}.admin-side nav a.active{background:var(--green);color:#fff}.admin-side-foot{padding:16px 20px;border-top:1px solid rgba(255,255,255,.08);display:flex;flex-direction:column;gap:8px}.admin-side-foot small{color:#fff9;font-size:.8rem}.admin-logout{padding:8px 12px;border-radius:8px;background:#ffffff14;color:#fff;font-weight:600;font-size:.85rem;text-align:center}.admin-logout:hover{background:#ffffff24}.admin-main{padding:28px 32px;max-width:100%;overflow-x:auto}.admin-main h2{margin:0}.admin-header{display:flex;justify-content:space-between;align-items:center;margin-bottom:20px;gap:12px;flex-wrap:wrap}.admin-loading{padding:80px;text-align:center;color:var(--muted)}.admin-login{min-height:100vh;display:grid;place-items:center;background:var(--paper-2);padding:20px}.admin-login-card{background:#fff;padding:36px;border-radius:var(--radius-lg);box-shadow:var(--shadow-lg);width:100%;max-width:380px}.admin-stats{display:grid;grid-template-columns:repeat(auto-fit,minmax(180px,1fr));gap:14px}.stat-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);padding:18px;display:flex;flex-direction:column;gap:6px;transition:all .15s ease}.stat-card:hover{transform:translateY(-2px);box-shadow:var(--shadow);border-color:var(--green)}.stat-label{color:var(--muted);font-size:.85rem;font-weight:600;text-transform:uppercase;letter-spacing:.04em}.stat-value{font-family:Manrope,sans-serif;font-weight:900;font-size:2.4rem;color:var(--ink);line-height:1}.stat-total{color:var(--muted);font-size:.8rem}.admin-quick-grid{display:flex;gap:10px;flex-wrap:wrap}.admin-table{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.admin-row{display:grid;gap:12px;padding:12px 16px;border-bottom:1px solid var(--line);align-items:start;font-size:.92rem}.admin-row:last-child{border-bottom:none}.admin-thead{background:var(--paper-2);font-weight:700;color:var(--muted);text-transform:uppercase;font-size:.78rem;letter-spacing:.04em}.admin-row-svc{grid-template-columns:60px 1.4fr .7fr .7fr .7fr 120px}.admin-row-cp{grid-template-columns:1fr 1.4fr .5fr .8fr .8fr 80px}.admin-row-q{grid-template-columns:60px 1.4fr 1.4fr 1.2fr 1fr 1fr}.admin-row-bk{grid-template-columns:60px 1.4fr 1.2fr 1.2fr 1fr}.admin-row-av{grid-template-columns:1.4fr .8fr .6fr .6fr 1fr 80px}@media(max-width:1000px){.admin-row-svc,.admin-row-cp,.admin-row-q,.admin-row-bk,.admin-row-av{grid-template-columns:1fr}}.btn-mini{padding:5px 10px;border-radius:6px;background:var(--paper-2);border:1px solid var(--line);font-weight:600;font-size:.82rem}.btn-mini:hover{background:var(--line)}.btn-mini-danger{color:#b91c1c}.btn-mini-danger:hover{background:#fee2e2}.pill{display:inline-block;padding:2px 8px;border-radius:999px;font-size:.72rem;font-weight:700;text-transform:uppercase;letter-spacing:.04em}.pill-issued{background:var(--green-soft);color:var(--green-dark)}.pill-redeemed{background:#dbeafe;color:#1e40af}.pill-expired{background:#f3f4f6;color:#6b7280}.pill-new{background:#fef3c7;color:#92400e}.pill-confirmed{background:var(--green-soft);color:var(--green-dark)}.pill-cancelled{background:#fee2e2;color:#b91c1c}.pill-done{background:#dbeafe;color:#1e40af}.admin-gallery{display:grid;grid-template-columns:repeat(auto-fill,minmax(280px,1fr));gap:16px}.admin-gallery-card{background:#fff;border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}.admin-gallery-pair{display:grid;grid-template-columns:1fr 1fr}.admin-gallery-pair img{aspect-ratio:1;object-fit:cover;width:100%}.admin-gallery-meta{padding:12px 14px}.modal-backdrop{position:fixed;inset:0;background:#00000080;display:grid;place-items:center;z-index:100;padding:20px;overflow-y:auto}.modal{background:#fff;border-radius:var(--radius-lg);padding:28px;width:100%;max-width:560px;box-shadow:var(--shadow-lg)}.upload-grid{display:grid;grid-template-columns:1fr 1fr;gap:12px;margin-bottom:16px}.upload-slot{aspect-ratio:1;background:var(--paper-2);border:2px dashed var(--line);border-radius:12px;display:grid;place-items:center;cursor:pointer;overflow:hidden;position:relative}.upload-slot:hover{border-color:var(--green)}.upload-slot img{width:100%;height:100%;object-fit:cover}.upload-slot span{font-weight:700;color:var(--muted)}.chip{padding:6px 12px;border-radius:999px;border:1.5px solid var(--line);font-weight:600;font-size:.85rem;background:#fff;cursor:pointer}.chip.on{background:var(--green);color:#fff;border-color:var(--green)}
