@import "https://fonts.googleapis.com/css2?family=Chewy&family=Patrick+Hand:wght@400;700&family=Nunito:wght@400;600;700;800&display=swap";:root{--cream-100:#f2eee5;--pink-200:#f2c8d3;--ink-700:#3f3a33;--ink-600:#524a40;--font-body:"Nunito", "Segoe UI", sans-serif;--font-display:"Chewy", "Trebuchet MS", sans-serif;--font-hand:"Patrick Hand", "Comic Sans MS", cursive}*{box-sizing:border-box}html{scroll-behavior:smooth}body{font-family:var(--font-body);color:var(--ink-700);background:#ecd9d8;margin:0}a,button,input,textarea{font:inherit}.page{background:var(--cream-100);color:var(--ink-700);min-height:100vh;overflow-x:clip}.top-bar{background:var(--pink-200);padding:1rem clamp(.8rem,2vw,1.4rem)}.pill-nav{flex-wrap:wrap;justify-content:center;gap:.65rem;max-width:1120px;margin:0 auto;display:flex}.pill{color:var(--ink-600);letter-spacing:.04em;text-transform:uppercase;border:1px solid #4b4b4b1a;border-radius:999px;padding:.44rem .95rem;font-size:.78rem;font-weight:700;text-decoration:none;transition:transform .22s,box-shadow .22s;box-shadow:inset 0 0 0 1px #ffffff40}.pill:hover{transform:translateY(-1px);box-shadow:0 4px 12px #2525251f}.pill-rose{background:#f8b4c2}.pill-sky{background:#a8c9e7}.pill-peach{background:#f5c69f}.pill-violet{background:#e2c3f6}.pill-lemon{background:#f4e58c}main{background:var(--cream-100);width:min(1140px,100%);margin:0 auto}.section-anchor{scroll-margin-top:82px}.hero-section{isolation:isolate;background:#e4e8e1;grid-template-columns:1.1fr .9fr;align-items:center;gap:clamp(1rem,2vw,1.8rem);padding:clamp(1.8rem,4vw,3.4rem) clamp(1rem,5vw,3.6rem);display:grid;position:relative}.hero-section:before{content:"";aspect-ratio:1;opacity:.8;z-index:-1;background:repeating-linear-gradient(90deg,#a9b7a0,#a9b7a0 10px,#ffffff4d 10px 20px);border-radius:50%;width:clamp(180px,28vw,310px);position:absolute;top:18%;right:10%}.hero-brand{text-align:center}.brand-kicker{letter-spacing:.22em;text-transform:uppercase;color:#919c90;font-size:.84rem}.hero-brand h1{font-size:clamp(2.2rem,5vw,3.8rem);line-height:.95;font-family:var(--font-display);color:#737f7c;text-transform:uppercase;margin:.3rem 0 0}.hero-brand h1 span{color:#546567}.brand-sub{color:#8f9695;margin-top:.6rem;font-size:.94rem}.hero-circle{aspect-ratio:1;color:#f6f8ff;width:clamp(170px,26vw,260px);font-family:var(--font-hand);text-transform:uppercase;letter-spacing:.05em;text-align:center;cursor:pointer;background:radial-gradient(circle at 30% 25%,#b7c9e3,#8ba4cb);border:0;border-radius:50%;place-items:center;margin:0 auto;padding:1.3rem;font-size:clamp(.88rem,1.5vw,1.08rem);line-height:1.2;transition:transform .25s;display:grid;box-shadow:0 12px 24px #4554673d}.hero-circle:hover{transform:scale(1.03)}.divider{height:.9rem}.divider-pink{background:#ef8ea6}.divider-blue{background:repeating-linear-gradient(#8eb2d3,#8eb2d3 8px,#c5d8ea 8px 16px)}.divider-olive{background:#a9af7c;height:1.25rem}.about-section{grid-template-columns:auto 1fr;align-items:center;gap:clamp(1rem,2vw,2rem);padding:clamp(1.6rem,5vw,2.8rem) clamp(1rem,5vw,3.4rem);display:grid}.about-stamp{aspect-ratio:1;text-transform:uppercase;width:clamp(140px,25vw,220px);font-family:var(--font-hand);color:#5b6c5d;background:#f8f6ec;border:5px solid #91a58f;border-radius:41% 59% 63% 37%/49% 39% 61% 51%;place-items:center;line-height:.95;display:grid;box-shadow:inset 0 0 0 6px #e2eadcbd}.about-stamp span{font-size:clamp(1.05rem,1.8vw,1.35rem)}.about-stamp strong{letter-spacing:.04em;font-size:clamp(1.28rem,2.2vw,1.72rem)}.about-section p{color:#303030;max-width:70ch;font-size:clamp(.95rem,1.5vw,1.08rem)}.ribbon{height:1rem}.ribbon-pink{background:repeating-linear-gradient(90deg,#f4b7c9,#f4b7c9 10px,#ffe2ea 10px 20px)}.services-section{background:linear-gradient(#efe7d1 0%,#f3ecd9 60%,#efe7d1 100%);padding:clamp(1.9rem,4vw,3rem) clamp(1rem,5vw,3.4rem) 2.2rem}.services-section h2{text-align:center;color:#4f6f95;text-transform:uppercase;letter-spacing:.03em;margin:0;font-size:clamp(1.8rem,4vw,2.6rem)}.service-list{gap:clamp(1.2rem,3vw,1.9rem);margin-top:clamp(1.5rem,4vw,2.5rem);display:grid}.service-row{grid-template-columns:minmax(210px,330px) 1fr;align-items:center;gap:clamp(1rem,3vw,2rem);display:grid}.service-row-reverse{grid-template-columns:1fr minmax(210px,330px)}.service-row-reverse .service-arch{order:2}.service-row-reverse .service-copy{text-align:right}.service-arch{color:#fffaf4;text-align:left;cursor:pointer;background:linear-gradient(#d3b8ad 0%,#cdaea2 100%);border:0;border-radius:190px 190px 0 0;min-height:250px;padding:1rem 1.2rem 1.1rem;transition:transform .2s}.service-row:nth-child(2) .service-arch{color:#3d3d3d;background:linear-gradient(#e5ddd6 0%,#d8cec6 100%)}.service-row:nth-child(3) .service-arch{background:linear-gradient(#d5b0a8 0%,#c9a099 100%)}.service-arch:hover{transform:translateY(-4px)}.service-arch ul{gap:.35rem;margin:0;padding-left:1rem;font-size:.91rem;line-height:1.35;list-style:square;display:grid}.service-copy h3{text-transform:uppercase;color:#3e3f42;margin:0;font-size:clamp(1.25rem,2.6vw,2.1rem);line-height:1}.text-btn{color:#5a5b4c;text-transform:uppercase;letter-spacing:.08em;cursor:pointer;background:#ffffff94;border:1px solid #8f917f;border-radius:999px;margin-top:.82rem;padding:.45rem .95rem;font-size:.84rem;font-weight:700;transition:background .2s}.text-btn:hover{background:#ffffffe6}.installations-section{background:#f2efee;padding:clamp(2rem,5vw,3.4rem) clamp(1rem,5vw,3.4rem) 2.6rem;position:relative;overflow:hidden}.installations-section:before,.installations-section:after{content:"";opacity:.55;filter:blur(.2px);border-radius:50%;position:absolute}.installations-section:before{background:#a8c7ea;width:240px;height:240px;top:120px;left:-130px}.installations-section:after{background:#f1a877;width:210px;height:210px;top:150px;right:-110px}.installations-section h2{text-transform:uppercase;color:#68615a;z-index:1;width:fit-content;margin:0 auto 1.4rem;font-size:clamp(1.7rem,3.6vw,2.4rem);position:relative}.gallery-grid{z-index:1;grid-template-columns:repeat(3,minmax(0,1fr));gap:clamp(.8rem,2.4vw,1.35rem);display:grid;position:relative}.gallery-card{cursor:pointer;background:linear-gradient(135deg,#ccb09a,#e8d86d);border:0;border-radius:26px;padding:.56rem;transition:transform .2s}.gallery-card:nth-child(3n+2){background:linear-gradient(135deg,#b9d2a9,#e7d4f2)}.gallery-card:nth-child(3n+3){background:linear-gradient(135deg,#f4c5d7,#d8b9a8)}.gallery-card:hover{transform:translateY(-4px)}.gallery-card img{aspect-ratio:1;object-fit:cover;border-radius:20px;width:100%;display:block}.booking-section{color:#f5f0e7;background:#7e6a4f;grid-template-columns:1fr auto;align-items:center;gap:1.2rem;padding:clamp(1.8rem,4vw,2.8rem) clamp(1rem,5vw,3.4rem);display:grid}.booking-copy h2{text-transform:uppercase;color:#f9f3eb;margin:0 0 .55rem;font-size:clamp(1.6rem,3.8vw,2.35rem)}.booking-copy p{max-width:52ch;margin:0}.booking-actions{justify-items:end;gap:.62rem;display:grid}.contact-chip{color:#fff;background:#ffffff1f;border:1px solid #ffffff73;border-radius:999px;padding:.45rem .95rem;font-size:.9rem;text-decoration:none;transition:background .2s}.contact-chip:hover{background:#ffffff38}.primary-btn{color:#fff;font-family:var(--font-display);letter-spacing:.08em;text-transform:uppercase;cursor:pointer;background:#4f4032;border:0;border-radius:999px;padding:.72rem 1.35rem;font-size:.88rem;text-decoration:none;transition:transform .2s}.primary-btn:hover{transform:translateY(-1px)}.contact-section{text-align:center;background:#efc6d4;padding:clamp(1.8rem,4vw,3rem) clamp(1rem,5vw,3.4rem) clamp(2.2rem,5vw,3.4rem)}.contact-section h2{text-transform:uppercase;color:#93597a;margin:0;font-size:clamp(1.8rem,4vw,2.5rem)}.contact-section p{color:#7a4f68;margin:.4rem 0 1.1rem}.map-wrap{border:8px solid #ffffff73;border-radius:18px;width:min(100%,560px);margin:0 auto;overflow:hidden;box-shadow:0 10px 24px #3c3c3c21}.map-wrap iframe{border:0;width:100%;height:300px}.site-footer{color:#f4f7f4;text-align:center;background:#89a387;padding:1.3rem 1rem 1.5rem}.footer-social{flex-wrap:wrap;justify-content:center;gap:.85rem;display:flex}.footer-social a{color:inherit;text-transform:uppercase;letter-spacing:.08em;border:1px solid #ffffff80;border-radius:999px;padding:.35rem .82rem;font-size:.82rem;text-decoration:none}.site-footer small{letter-spacing:.04em;margin-top:.7rem;font-size:.77rem;display:block}.modal-overlay{z-index:40;background:#0d0d0d94;place-items:center;padding:1rem;animation:.2s fadeIn;display:grid;position:fixed;inset:0}.modal-card{background:#fffdf9;border-radius:22px;width:min(100%,560px);padding:1.2rem 1.2rem 1.35rem;position:relative;box-shadow:0 16px 40px #0000004d}.modal-close{cursor:pointer;color:#4a3e31;background:#eee7dd;border:0;border-radius:999px;width:34px;height:34px;font-size:1.45rem;line-height:1;position:absolute;top:.55rem;right:.55rem}.modal-card h3{color:#574b3f;text-transform:uppercase;margin:0;font-size:clamp(1.42rem,3.1vw,2rem)}.modal-card p{color:#5f5950;margin:.55rem 0 0}.modal-image{object-fit:cover;border-radius:14px;width:100%;max-height:340px;margin-top:.8rem;display:block}.modal-list{color:#4e483e;gap:.35rem;margin:.82rem 0 0;padding-left:1rem;display:grid}.modal-cta{margin-top:1rem;display:inline-block}.reveal-up{animation:.65s both rise}.delay-1{animation-delay:80ms}.delay-2{animation-delay:.16s}.delay-3{animation-delay:.24s}.delay-4{animation-delay:.32s}@keyframes rise{0%{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}@keyframes fadeIn{0%{opacity:0}to{opacity:1}}@media (width<=900px){.hero-section{text-align:center;grid-template-columns:1fr}.about-section{text-align:center;grid-template-columns:1fr;justify-items:center}.about-section p{max-width:62ch}.service-row,.service-row-reverse{grid-template-columns:1fr}.service-row-reverse .service-arch{order:0}.service-row-reverse .service-copy,.service-copy h3{text-align:left}.booking-section{text-align:center;grid-template-columns:1fr}.booking-actions{justify-items:center}.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}@media (width<=580px){.top-bar{padding-left:.4rem;padding-right:.4rem}.pill{padding:.35rem .72rem;font-size:.68rem}.gallery-grid{grid-template-columns:1fr 1fr;gap:.75rem}.service-arch{min-height:220px}.map-wrap iframe{height:240px}}
