:root{--peach:#f7e7dc;--peach-deep:#efd6c8;--cream:#fbf6f1;--ink:#211b16;--ink-soft:#6f6258;--rose:#b07d68;--line:#211b1624;--maxw:1120px;--pad:clamp(1.25rem, 5vw, 4rem);--r:2px}*{box-sizing:border-box}html{scroll-behavior:smooth}body{background:var(--cream);color:var(--ink);-webkit-font-smoothing:antialiased;text-rendering:optimizelegibility;margin:0;font-family:Jost,-apple-system,BlinkMacSystemFont,sans-serif;font-size:1.02rem;font-weight:300;line-height:1.7}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}h1,h2,h3{letter-spacing:.01em;margin:0;font-family:Cormorant Garamond,Georgia,serif;font-weight:500;line-height:1.05}.serif{font-family:Cormorant Garamond,Georgia,serif}.wrap{width:100%;max-width:var(--maxw);padding-left:var(--pad);padding-right:var(--pad);margin:0 auto}.eyebrow{letter-spacing:.32em;text-transform:uppercase;color:var(--rose);font-size:.72rem;font-weight:400}.fade-up{opacity:0;animation:.9s forwards fadeUp;transform:translateY(14px)}.fade-up.d1{animation-delay:50ms}.fade-up.d2{animation-delay:.2s}.fade-up.d3{animation-delay:.35s}.fade-up.d4{animation-delay:.5s}@keyframes fadeUp{to{opacity:1;transform:none}}@media (prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important;animation:none!important}.fade-up{opacity:1;transform:none}}.reveal{opacity:0;transition:opacity .7s,transform .7s;transform:translateY(18px)}.reveal.is-visible{opacity:1;transform:none}@media (prefers-reduced-motion:reduce){.reveal{opacity:1;transform:none}}.fade-up.d5{animation-delay:.65s}.social-links{justify-content:center;gap:.9rem;display:flex}.social-links a{border:1px solid var(--line);width:2.6rem;height:2.6rem;color:var(--ink);border-radius:50%;justify-content:center;align-items:center;transition:color .25s,border-color .25s,transform .25s;display:inline-flex}.social-links a svg{width:1.15rem;height:1.15rem}.social-links a:hover{color:var(--rose);border-color:var(--rose);transform:translateY(-2px)}.social-links a:focus-visible{outline:2px solid var(--rose);outline-offset:3px}.hero-social{margin-top:1.8rem}.btn{background:var(--ink);color:var(--cream);letter-spacing:.18em;text-transform:uppercase;border-radius:var(--r);padding:1rem 2.1rem;font-family:Jost,sans-serif;font-size:.82rem;font-weight:400;transition:background .25s,transform .25s;display:inline-block}.btn:hover{background:var(--rose)}.btn:active{transform:translateY(1px)}.btn:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.btn-ghost{color:var(--ink);border:1px solid var(--ink);background:0 0}.btn-ghost:hover{background:var(--ink);color:var(--cream)}.site-header{background:var(--peach);padding:1.15rem var(--pad);z-index:30;justify-content:space-between;align-items:center;gap:1rem;display:flex;position:relative}.wordmark{flex-direction:column;line-height:1;display:flex}.wordmark b{letter-spacing:.02em;font-family:Cormorant Garamond,serif;font-size:1.85rem;font-weight:500}.wordmark span{letter-spacing:.34em;text-transform:uppercase;color:var(--ink-soft);margin-top:.2rem;font-size:.58rem}.nav-burger{cursor:pointer;background:0 0;border:none;flex-direction:column;justify-content:center;align-items:center;gap:5px;width:40px;height:40px;padding:0;display:none}.nav-burger span{background:var(--ink);width:24px;height:1.5px;transition:transform .3s,opacity .3s;display:block}.nav-burger:focus-visible{outline:2px solid var(--ink);outline-offset:3px}.site-nav{align-items:center;gap:2rem;display:flex}.site-nav a{letter-spacing:.16em;text-transform:uppercase;color:var(--ink);border-bottom:1px solid #0000;padding-bottom:3px;font-size:.82rem;transition:border-color .25s,color .25s}.site-nav a:hover{color:var(--rose)}.site-nav a.active{border-color:var(--ink)}.site-nav .nav-cta{border:1px solid var(--ink);border-radius:var(--r);padding:.55rem 1.3rem}.site-nav .nav-cta:hover{background:var(--ink);color:var(--cream)}@media (width<=760px){.nav-burger{display:flex}.site-nav{background:var(--peach);border-top:1px solid var(--line);flex-direction:column;align-items:stretch;gap:0;max-height:0;transition:max-height .35s;position:absolute;top:100%;left:0;right:0;overflow:hidden}.site-nav a{padding:1.05rem var(--pad);border-bottom:1px solid var(--line);border-top:none}.site-nav a.active{border-bottom:1px solid var(--line);color:var(--rose)}.site-nav .nav-cta{border:none;border-bottom:1px solid var(--line);text-align:left;border-radius:0}.site-nav .nav-cta:hover{color:var(--rose);background:0 0}.site-nav.is-open{max-height:360px}.nav-burger.is-open span:first-child{transform:translateY(6.5px)rotate(45deg)}.nav-burger.is-open span:nth-child(2){opacity:0}.nav-burger.is-open span:nth-child(3){transform:translateY(-6.5px)rotate(-45deg)}}.hero{background:var(--peach);text-align:center;padding:clamp(3.5rem, 11vw, 8rem) var(--pad) clamp(4rem, 12vw, 8rem)}.hero .logo{letter-spacing:.01em;font-family:Cormorant Garamond,serif;font-size:clamp(4rem,16vw,9.5rem);font-weight:500;line-height:.92}.hero .logo-sub{letter-spacing:.5em;text-transform:uppercase;color:var(--ink-soft);margin:1.1rem 0 0;padding-left:.5em;font-size:clamp(.72rem,2.6vw,1rem)}.hero .tagline{color:var(--ink);max-width:30ch;margin:2.2rem auto 0;font-family:Cormorant Garamond,serif;font-size:clamp(1.25rem,4vw,1.9rem);font-style:italic}.hero .rating{letter-spacing:.06em;color:var(--ink-soft);align-items:center;gap:.55rem;margin-top:1.6rem;font-size:.9rem;display:inline-flex}.hero .rating .star{color:var(--rose);font-size:1.05rem}.hero .cta-row{margin-top:2.6rem}.highlights{background:var(--cream);padding:clamp(3rem,9vw,6rem) 0}.highlights .grid{text-align:center;grid-template-columns:1fr;gap:2.5rem;display:grid}.highlights .item h3{margin-bottom:.4rem;font-size:1.7rem}.highlights .item p{color:var(--ink-soft);margin:0}.highlights .num{color:var(--rose);margin-bottom:.6rem;font-family:Cormorant Garamond,serif;font-size:2.6rem;line-height:1}@media (width>=720px){.highlights .grid{grid-template-columns:repeat(3,1fr);gap:3rem}}.cta-band{background:var(--peach-deep);text-align:center;padding:clamp(3.5rem,10vw,6rem) 0}.cta-band h2{margin-bottom:1.4rem;font-size:clamp(2rem,6vw,3.2rem)}.cta-band p{color:var(--ink-soft);max-width:38ch;margin:0 auto 2rem}.page-head{background:var(--peach);text-align:center;padding:clamp(3rem, 9vw, 5.5rem) var(--pad) clamp(2.5rem, 7vw, 4rem)}.page-head h1{font-size:clamp(2.6rem,9vw,4.5rem)}.page-head p{color:var(--ink-soft);max-width:46ch;margin:.9rem auto 0}.section{padding:clamp(3rem,9vw,6rem) 0}.section.alt{background:var(--peach)}.intro{grid-template-columns:1fr;align-items:center;gap:clamp(2rem,5vw,4rem);display:grid}.intro .portrait,.intro .portrait-img{aspect-ratio:4/5;border-radius:var(--r)}.intro .portrait{background:radial-gradient(120% 100% at 30% 20%, var(--peach) 0%, var(--peach-deep) 70%);color:var(--ink-soft);letter-spacing:.22em;text-transform:uppercase;justify-content:center;align-items:center;font-size:.75rem;display:flex}.intro .portrait-img{object-fit:cover;width:100%}.intro h2{margin-bottom:1.2rem;font-size:clamp(2rem,6vw,3rem)}.intro p{color:var(--ink-soft);margin:0 0 1.1rem}.intro p strong{color:var(--ink);font-weight:400}.intro .intro-cta{margin-top:1.8rem}@media (width>=820px){.intro{grid-template-columns:.85fr 1.15fr}}.pricing{max-width:720px;margin:0 auto}.pricing h2{text-align:center;margin-bottom:2.5rem;font-size:clamp(2rem,6vw,3rem)}.pricing .price-row{border-bottom:1px solid var(--line);align-items:baseline;gap:.6rem;padding:1.05rem 0;display:flex}.pricing .price-row .name{white-space:nowrap;font-family:Cormorant Garamond,serif;font-size:1.5rem}.pricing .price-row .desc{color:var(--ink-soft);letter-spacing:.02em;font-family:Jost,sans-serif;font-size:.8rem;display:block}.pricing .price-row .dots{border-bottom:1px dotted var(--line);flex:1;transform:translateY(-4px)}.pricing .price-row .price{white-space:nowrap;font-family:Cormorant Garamond,serif;font-size:1.5rem}.pricing .note{text-align:center;color:var(--ink-soft);margin-top:1.8rem;font-size:.85rem}.contact-grid{text-align:center;grid-template-columns:1fr;gap:1.6rem;display:grid}.contact-grid .label{letter-spacing:.26em;text-transform:uppercase;color:var(--rose);margin-bottom:.45rem;font-size:.7rem}.contact-grid .val{font-size:1.15rem}@media (width>=720px){.contact-grid{grid-template-columns:repeat(3,1fr)}}.contact-grid .val-sub{color:var(--ink-soft);font-size:.95rem}.contact-grid .val-hours{font-size:1rem;line-height:1.7}@media (width>=1000px){.contact-grid{grid-template-columns:repeat(4,1fr)}}.gallery{grid-template-columns:1fr;gap:.9rem;display:grid}.gallery figure{margin:0}.gallery img,.gallery .ph{aspect-ratio:3/4;object-fit:cover;border-radius:var(--r);width:100%;display:block}.gallery .ph{background:linear-gradient(135deg, var(--peach) 0%, var(--peach-deep) 100%);color:var(--ink-soft);letter-spacing:.22em;text-transform:uppercase;justify-content:center;align-items:center;font-size:.72rem;display:flex}@media (width>=600px){.gallery{grid-template-columns:repeat(2,1fr);gap:1rem}}@media (width>=920px){.gallery{grid-template-columns:repeat(3,1fr);gap:1.1rem}}.gallery figure{border-radius:var(--r);overflow:hidden}.gallery img{transition:transform .6s}.gallery figure:hover img{transform:scale(1.04)}@media (prefers-reduced-motion:reduce){.gallery figure:hover img{transform:none}}.site-footer{background:var(--ink);color:var(--peach);padding:clamp(3rem,8vw,5rem) 0 2.2rem}.site-footer .foot-cta{text-align:center;border-bottom:1px solid #f7e7dc2e;padding-bottom:clamp(2.5rem,6vw,3.5rem)}.site-footer .foot-cta b{margin-bottom:1.3rem;font-family:Cormorant Garamond,serif;font-size:clamp(1.8rem,5vw,2.6rem);font-weight:500;display:block}.site-footer .btn{background:var(--peach);color:var(--ink)}.site-footer .btn:hover{background:var(--rose);color:var(--cream)}.site-footer .foot-info{text-align:center;grid-template-columns:1fr;gap:1.6rem;padding-top:clamp(2.5rem,6vw,3.5rem);display:grid}.site-footer .foot-brand b{font-family:Cormorant Garamond,serif;font-size:1.7rem;font-weight:500;display:block}.site-footer .foot-brand span{letter-spacing:.34em;text-transform:uppercase;color:#f7e7dcb3;font-size:.58rem}.site-footer .foot-col .k{letter-spacing:.24em;text-transform:uppercase;color:#f7e7dc99;margin-bottom:.35rem;font-size:.66rem}.site-footer .foot-col a:hover{color:var(--rose)}.site-footer .foot-social{margin-top:.35rem;font-size:.85rem}.site-footer .foot-bottom{text-align:center;letter-spacing:.08em;color:#f7e7dc8c;margin-top:2.6rem;font-size:.72rem}@media (width>=720px){.site-footer .foot-info{text-align:left;grid-template-columns:1.4fr repeat(4,1fr);align-items:start}}.admin,.admin-loading{max-width:860px;padding:clamp(2rem, 6vw, 4rem) var(--pad) 6rem;min-height:60vh;margin:0 auto}.admin-login{flex-direction:column;gap:1.1rem;max-width:380px;margin:3rem auto;display:flex}.admin-login h1{margin-bottom:.6rem;font-size:2.4rem}.admin-login label{flex-direction:column;gap:.35rem;font-size:.85rem;display:flex}.admin input[type=text],.admin input[type=email],.admin input[type=password],.admin textarea{font:inherit;border:1px solid var(--line);border-radius:var(--r);color:var(--ink);background:#fff;width:100%;padding:.65rem .8rem;font-size:.95rem}.admin input[type=text]:focus-visible,.admin input[type=email]:focus-visible,.admin input[type=password]:focus-visible,.admin textarea:focus-visible{outline:2px solid var(--rose);outline-offset:1px}.admin-field{flex-direction:column;gap:.3rem;margin-bottom:.9rem;display:flex}.admin-field span{letter-spacing:.06em;color:var(--ink-soft);font-size:.78rem}.admin-topbar{flex-wrap:wrap;justify-content:space-between;align-items:flex-end;gap:1rem;margin-bottom:1.6rem;display:flex}.admin-topbar h1{font-size:2rem}.admin-topbar .admin-user{color:var(--ink-soft);font-size:.8rem}.admin-topbar .admin-topbar-actions{flex-wrap:wrap;gap:.6rem;display:flex}.admin details{border:1px solid var(--line);border-radius:var(--r);background:#fff;margin-bottom:1rem;padding:1rem 1.2rem}.admin details summary{cursor:pointer;margin:-.2rem 0 .2rem;font-family:Cormorant Garamond,serif;font-size:1.5rem}.admin details[open] summary{margin-bottom:1rem}.admin details fieldset{border:1px dashed var(--line);border-radius:var(--r);margin:0 0 1rem;padding:.8rem 1rem .2rem}.admin details fieldset legend{color:var(--ink-soft);padding:0 .4rem;font-size:.78rem}.admin-subhead{margin:1.2rem 0 .7rem;font-size:1.2rem}.admin-service-row{grid-template-columns:1.2fr 1.6fr .7fr auto;align-items:center;gap:.5rem;margin-bottom:.55rem;display:grid}.admin-service-row .row-actions{gap:.25rem;display:flex}.admin-service-row button{font:inherit;border:1px solid var(--line);border-radius:var(--r);cursor:pointer;background:#fff;width:2rem;height:2.2rem}.admin-service-row button:disabled{opacity:.35;cursor:default}.admin-service-row button.danger{color:#a33;border-color:#a33}@media (width<=640px){.admin-service-row{border-bottom:1px solid var(--line);grid-template-columns:1fr;padding-bottom:.7rem}}.admin-add{cursor:pointer;margin-top:.6rem;display:inline-block}.admin-gallery-grid{grid-template-columns:repeat(auto-fill,minmax(150px,1fr));gap:.9rem;margin-bottom:1rem;display:grid}.admin-gallery-grid figure{flex-direction:column;gap:.4rem;margin:0;display:flex}.admin-gallery-grid figure img{aspect-ratio:3/4;object-fit:cover;border-radius:var(--r);width:100%}.admin-gallery-grid figure input{padding:.4rem .5rem;font-size:.8rem}.admin-gallery-grid figure button.danger{font:inherit;color:#a33;border-radius:var(--r);cursor:pointer;background:#fff;border:1px solid #a33;padding:.4rem;font-size:.78rem}.admin-gallery-grid figure button.danger:hover{color:#fff;background:#a33}.admin-portrait img{aspect-ratio:4/5;object-fit:cover;border-radius:var(--r);max-width:220px;margin-bottom:.7rem}.admin-hint{color:var(--ink-soft);font-size:.78rem}.admin-error{color:#a33}.admin-status{border-radius:var(--r);margin-bottom:1.2rem;padding:.7rem 1rem;font-size:.9rem}.admin-status.info{color:#2c5230;background:#e8f2e8}.admin-status.error{color:#7a2020;background:#f7e2e2}.admin-savebar{background:var(--ink);color:var(--cream);padding:.8rem var(--pad);z-index:40;justify-content:center;align-items:center;gap:1.2rem;display:flex;position:fixed;bottom:0;left:0;right:0}.admin-savebar .btn{background:var(--peach);color:var(--ink);padding:.7rem 1.6rem}
