:root{--pink:#ef5b8d;--pink-dark:#d43f72;--pink-light:#f9c5d5;--pink-soft:#fdf0f4;--blue:#a8d4e2;--blue-soft:#d4ecf3;--plum:#3d3145;--plum-soft:#5a4d63;--cream:#fdf6f8;--cream-2:#f8e8ee;--green:#4b8b4b;--green-dark:#3a6f3a;--white:#fff;--text:#3d3145;--text-light:#5a4d63;--text-muted:#7a6e84;--border:#eed9e2;--fs-base:1rem;--fs-sm:.9375rem;--fs-lg:1.125rem;--fs-xl:1.25rem;--fs-2xl:1.5rem;--fs-3xl:1.875rem;--fs-4xl:2.25rem;--fs-5xl:3rem;--lh-tight:1.15;--lh-snug:1.3;--lh-normal:1.6;--lh-relaxed:1.75;--font-display:"Chicle", Georgia, "Times New Roman", serif;--font-body:"Open Sans", system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif}*,:before,:after{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);font-size:var(--fs-base);font-weight:400;line-height:var(--lh-relaxed);color:var(--text);background:var(--cream);margin:0}h1,h2,.heading-display{font-family:var(--font-display);font-style:oblique;font-weight:400;line-height:var(--lh-tight);color:var(--text);letter-spacing:.01em}h3,h4{font-family:var(--font-body);font-weight:600;line-height:var(--lh-snug);color:var(--text)}h1{font-size:clamp(2.25rem,8vw,3.5rem)}h2{font-size:clamp(1.85rem,5.5vw,2.75rem)}h3{font-size:clamp(1.2rem,3.5vw,1.45rem)}p,li,label,button,input,textarea,select{font-size:var(--fs-base);font-weight:400;line-height:var(--lh-relaxed)}a{color:var(--pink-dark);text-underline-offset:3px;text-decoration:underline}a:hover{color:var(--plum)}:focus-visible{outline:3px solid var(--pink);outline-offset:3px;border-radius:4px}.btn{font-family:var(--font-body);font-weight:600;font-size:var(--fs-base);cursor:pointer;border:none;border-radius:9999px;justify-content:center;align-items:center;gap:.5rem;min-height:52px;padding:14px 28px;text-decoration:none;transition:transform .1s,box-shadow .1s,background .2s;display:inline-flex}.btn:active{transform:scale(.985)}.btn:disabled{opacity:.85;cursor:wait;transform:none}.spinner{border:2.5px solid #ffffff59;border-top-color:#fff;border-radius:50%;flex-shrink:0;width:1.15rem;height:1.15rem;animation:.7s linear infinite spin}@keyframes spin{to{transform:rotate(360deg)}}.form.is-submitting{pointer-events:none;position:relative}.form.is-submitting:after{content:"";border-radius:inherit;z-index:1;background:#fdf6f873;position:absolute;inset:0}.form-submitting-status{background:var(--pink-soft);color:var(--pink-dark);border-radius:12px;justify-content:center;align-items:center;gap:.6rem;margin-top:1rem;padding:.85rem 1rem;font-size:.95rem;font-weight:600;display:flex}.form-submitting-status .spinner{border-color:#d43f7240;border-top-color:var(--pink-dark)}.btn-primary{background:var(--pink);color:#fff;box-shadow:0 4px 14px #ef5b8d59}.btn-primary:hover{background:var(--pink-dark);color:#fff;text-decoration:none;box-shadow:0 6px 20px #d43f7266}.btn-secondary{background:var(--green);color:#fff}.btn-secondary:hover{background:var(--green-dark);color:#fff;text-decoration:none}.btn-outline{color:var(--text);border:2px solid var(--text);background:0 0}.btn-outline:hover{background:var(--text);color:#fff;border-color:var(--text);text-decoration:none}.section{padding:3.5rem 1.25rem}@media (width>=768px){.section{padding:5rem 2rem}}.container{max-width:1200px;margin:0 auto;padding:0 1rem}.navbar{z-index:100;background:var(--white);border-bottom:1px solid var(--border);position:sticky;top:0;box-shadow:0 1px #3d31450a}.nav-inner{justify-content:space-between;align-items:center;max-width:1200px;height:auto;min-height:100px;margin:0 auto;padding:.35rem 1rem;display:flex}.logo{flex-shrink:0;align-items:center;line-height:0;text-decoration:none;display:flex}.logo img{object-fit:contain;width:auto;max-width:min(280px,55vw);height:100px;display:block}.nav-links{align-items:center;gap:1.75rem;font-size:.95rem;font-weight:500;display:none}.nav-links a{color:var(--text);text-decoration:none;transition:color .2s}.nav-links a:hover{color:var(--pink-dark);text-decoration:none}.nav-cta{display:none}.hamburger{width:48px;height:48px;color:var(--text);cursor:pointer;background:0 0;border:none;justify-content:center;align-items:center;font-size:1.6rem;display:flex}.mobile-menu{background:var(--white);border-bottom:1px solid var(--border);padding:1rem 1.25rem 1.5rem;display:none;position:absolute;top:100%;left:0;right:0;box-shadow:0 10px 30px #3d314514}.mobile-menu.open{display:block}.mobile-menu a{color:var(--text);border-bottom:1px solid var(--border);padding:.85rem 0;font-size:1.05rem;font-weight:500;text-decoration:none;display:block}.mobile-menu a:last-child{border-bottom:none}@media (width>=900px){.nav-links,.nav-cta{display:flex}.hamburger{display:none}.mobile-menu{display:none!important}}.hero{background:linear-gradient(135deg, var(--cream) 0%, var(--pink-soft) 55%, var(--blue-soft) 100%);align-items:center;min-height:88vh;display:flex;position:relative;overflow:hidden}.hero:before{content:"";opacity:.18;pointer-events:none;z-index:0;background-image:url(/images/celebration-cake-floral-hero-bg.jpg);background-position:50% 30%;background-size:cover;position:absolute;inset:0}.hero-inner{z-index:1;max-width:1200px;margin:0 auto;padding:0 1.25rem;position:relative}.hero-content{max-width:640px;padding:2rem 0}.hero h1{color:var(--plum);margin:0 0 1rem}.hero p{font-size:var(--fs-xl);color:var(--text-light);max-width:40ch;margin-bottom:1.75rem;font-weight:400}.hero-image{display:none}@media (width>=1024px){.hero{min-height:82vh}.hero:before{display:none}.hero-inner{justify-content:center;align-items:center;width:100%;max-width:none;padding:0 52% 0 0;display:flex}.hero-content{max-width:520px;padding-left:1rem;padding-right:1rem}.hero-image{object-fit:cover;z-index:0;border-top-left-radius:120px;width:48%;height:100%;display:block;position:absolute;bottom:0;right:0;box-shadow:-20px 0 40px -10px #3d31451f}}.card{background:var(--white);border:1px solid var(--border);border-radius:20px;padding:1.75rem;box-shadow:0 4px 20px #3d31450f}.grid{gap:1.25rem;display:grid}@media (width>=640px){.grid{gap:1.5rem}}.gallery-grid{grid-template-columns:repeat(1,1fr);gap:.75rem;display:grid}@media (width>=480px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:1rem}}@media (width>=768px){.gallery-grid{grid-template-columns:repeat(2,1fr);gap:1.25rem}}@media (width>=1024px){.gallery-grid{grid-template-columns:repeat(4,1fr)}}.gallery-item{aspect-ratio:1;cursor:pointer;background:var(--cream-2);border:none;border-radius:16px;width:100%;padding:0;position:relative;overflow:hidden;box-shadow:0 2px 12px #3d31450f}.gallery-item img{object-fit:cover;object-position:center;width:100%;height:100%;transition:transform .4s cubic-bezier(.22,1,.3,1);display:block;position:absolute;inset:0}.gallery-item:hover img{transform:scale(1.06)}.gallery-item .overlay{opacity:0;color:#fff;background:linear-gradient(#0000 45%,#3d3145c7 100%);align-items:flex-end;padding:1rem;transition:opacity .25s;display:flex;position:absolute;inset:0}.gallery-item:hover .overlay{opacity:1}.gallery-item .caption{letter-spacing:.2px;font-size:.875rem;font-weight:600}.modal{z-index:200;background:#3d3145eb;justify-content:center;align-items:center;padding:1rem;display:flex;position:fixed;inset:0}.modal-content{width:100%;max-width:1100px;max-height:92vh;position:relative}.modal-img{background:var(--cream);border-radius:12px;width:auto;max-width:100%;height:auto;max-height:82vh;margin:0 auto;display:block;box-shadow:0 30px 80px #00000080}.modal-caption{text-align:center;color:var(--white);font-size:var(--fs-lg);margin-top:1rem;font-weight:500}.modal-close,.modal-nav{background:var(--white);color:var(--text);cursor:pointer;border:none;border-radius:50%;justify-content:center;align-items:center;width:48px;height:48px;font-size:1.5rem;transition:transform .1s,background .2s;display:flex;position:absolute;box-shadow:0 4px 15px #0003}.modal-close:hover,.modal-nav:hover{background:var(--pink-light)}.modal-close{z-index:10;top:12px;right:12px}.modal-nav{top:50%;transform:translateY(-50%)}.modal-nav.prev{left:12px}.modal-nav.next{right:12px}.prices-grid{grid-template-columns:1fr;gap:1rem;display:grid}@media (width>=640px){.prices-grid{grid-template-columns:repeat(2,1fr)}}@media (width>=900px){.prices-grid{grid-template-columns:repeat(3,1fr)}}.price-card{background:var(--white);border:1px solid var(--border);border-radius:18px;padding:1.5rem 1.4rem;transition:transform .2s,box-shadow .2s}.price-card:hover{transform:translateY(-4px);box-shadow:0 10px 25px #3d314514}.price-card-header{justify-content:space-between;align-items:flex-start;gap:.75rem 1rem;margin-bottom:.4rem;display:flex}.price-card h3{color:var(--pink-dark);flex:auto;min-width:0;margin:0;font-size:1.25rem;font-weight:600}.price-card .price{font-family:var(--font-display);color:var(--green-dark);white-space:nowrap;flex:none;margin:0;font-size:2rem;font-style:oblique;font-weight:400;line-height:1.1}@media (width>=640px){.price-card-header{display:block}.price-card .price{margin-top:.15rem;margin-bottom:.4rem}.price-card h3{margin-bottom:.1rem}}.price-card .serves{color:var(--text-muted);margin-bottom:.9rem;font-size:.875rem;font-weight:500}.price-card ul{color:var(--text-light);margin:0;padding-left:1.1rem;font-size:.95rem}.price-card li{margin-bottom:.25rem}.price-card.inquiry{border-color:var(--pink-light);background:linear-gradient(160deg, var(--white) 0%, var(--pink-soft) 100%)}.price-card.inquiry .price{font-family:var(--font-body);color:var(--plum);font-size:1.05rem;font-weight:600}.form{background:var(--white);border:1px solid var(--border);border-radius:24px;padding:2rem 1.5rem;box-shadow:0 8px 30px #3d314512}@media (width>=640px){.form{padding:2.5rem 2.25rem}}.form-group{margin-bottom:1.25rem}.form label{color:var(--text);margin-bottom:.4rem;font-size:.95rem;font-weight:600;display:block}.form input,.form select,.form textarea{border:2px solid var(--border);width:100%;font-family:var(--font-body);font-size:var(--fs-base);background:var(--cream);color:var(--text);border-radius:12px;padding:13px 15px;font-weight:400;transition:border-color .2s,box-shadow .2s}.form input:focus,.form select:focus,.form textarea:focus{border-color:var(--pink);background:var(--white);outline:none;box-shadow:0 0 0 4px #ef5b8d26}.form textarea{resize:vertical;min-height:120px}.form-row{gap:1rem;display:grid}@media (width>=640px){.form-row{grid-template-columns:1fr 1fr}}.form .required:after{content:" *";color:var(--pink-dark)}.error{color:#c14c4c;margin-top:.25rem;font-size:.875rem;font-weight:500}.success-box{border:2px solid var(--green);color:var(--green-dark);text-align:center;background:#e8f5e8;border-radius:16px;padding:1.5rem}.success-box h3{color:var(--green-dark);margin-top:0;font-weight:600}.decorative-line{background:linear-gradient(to right, var(--pink), var(--blue));border-radius:999px;width:64px;height:3px;margin:1rem 0 1.5rem}.footer{background:var(--plum);color:#f5e8ee;text-align:center;padding:2.5rem 1.25rem 2rem;font-size:.9rem;font-weight:400}.footer a{color:var(--blue)}.footer a:hover{color:var(--pink-light)}.badge{font-family:var(--font-body);letter-spacing:.5px;background:var(--pink-light);color:var(--pink-dark);border-radius:999px;padding:2px 10px;font-size:.75rem;font-weight:700;display:inline-block}.skip-link{background:var(--pink);color:#fff;z-index:999;border-radius:6px;padding:8px 16px;font-weight:600;text-decoration:none;transition:top .2s;position:absolute;top:-100px;left:1rem}.skip-link:focus{top:12px}@media print{.navbar,.btn,.modal{display:none!important}}
