:root{--cream:#f5f0e8;--cream-deep:#ebe4d8;--cream-soft:#faf7f2;--graphite:#3a3a38;--graphite-deep:#2c2c2a;--warm-gray:#8a847a;--warm-gray-light:#b5aea3;--warm-gray-mid:#6e6860;--silk:rgba(255, 255, 255, 0.35);--silk-edge:rgba(255, 255, 255, 0.55);--shadow-soft:0 12px 40px rgba(58, 58, 56, 0.08);--font-serif:"Cormorant Garamond", "Libre Baskerville", "Palatino Linotype", Palatino, serif;--font-body:"Source Serif 4", "Libre Baskerville", Georgia, serif;--max:1120px;--ease:cubic-bezier(0.22, 0.61, 0.36, 1);--radius:2px}*,*::before,*::after{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;font-family:var(--font-body);font-size:1.0625rem;line-height:1.7;color:var(--graphite);background:linear-gradient(165deg,rgba(255,255,255,.28) 0%,transparent 42%),linear-gradient(180deg,var(--cream-soft) 0%,var(--cream) 48%,var(--cream-deep) 100%);background-attachment:fixed;min-height:100vh;-webkit-font-smoothing:antialiased}body::before{content:"";position:fixed;inset:0;pointer-events:none;z-index:0;opacity:.045;background-image:url("data:image/svg+xml,%3Csvg viewBox='0 0 200 200' xmlns='http://www.w3.org/2000/svg'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='4' stitchTiles='stitch'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)'/%3E%3C/svg%3E")}img{max-width:100%;height:auto;display:block}a{color:var(--graphite-deep);text-decoration-thickness:1px;text-underline-offset:.18em;transition:color .45s var(--ease),opacity .45s var(--ease)}a:hover{color:var(--warm-gray-mid)}h1,h2,h3,h4{font-family:var(--font-serif);font-weight:500;line-height:1.2;color:var(--graphite-deep);margin:0 0 .6em;letter-spacing:.01em}h1{font-size:clamp(2.4rem,5vw,3.75rem)}h2{font-size:clamp(1.75rem,3vw,2.45rem)}h3{font-size:clamp(1.25rem,2vw,1.55rem)}p{margin:0 0 1.1em}.site-wrap{position:relative;z-index:1}.container{width:min(100% - 2.5rem,var(--max));margin-inline:auto}.site-header{position:sticky;top:0;z-index:40;backdrop-filter:blur(10px);background:linear-gradient(180deg,rgba(245,240,232,.92),rgba(245,240,232,.78));border-bottom:1px solid rgba(138,132,122,.22)}.header-inner{display:flex;align-items:center;justify-content:space-between;padding:1rem 0;gap:1.5rem}.brand{font-family:var(--font-serif);font-size:1.55rem;letter-spacing:.04em;text-decoration:none;color:var(--graphite-deep);font-weight:600}.brand:hover{color:var(--graphite-deep)}.nav-desktop{display:flex;flex-wrap:wrap;gap:.15rem 1.25rem;align-items:center}.nav-desktop a{text-decoration:none;font-size:.95rem;color:var(--warm-gray-mid);letter-spacing:.02em}.nav-desktop a:hover,.nav-desktop a[aria-current=page]{color:var(--graphite-deep)}.nav-toggle{display:none;background:0 0;border:1px solid rgba(138,132,122,.4);color:var(--graphite);padding:.45rem .75rem;font-family:var(--font-serif);font-size:.95rem;cursor:pointer;border-radius:var(--radius)}.nav-mobile{display:none;flex-direction:column;gap:.75rem;padding:0 0 1.25rem}.nav-mobile a{text-decoration:none;color:var(--graphite);padding:.35rem 0;border-bottom:1px solid rgba(138,132,122,.15)}@media(max-width:900px){.nav-desktop{display:none}.nav-toggle{display:inline-flex}.nav-mobile.is-open{display:flex}}.btn{display:inline-flex;align-items:center;justify-content:center;gap:.4rem;padding:.75rem 1.45rem;font-family:var(--font-serif);font-size:1.05rem;letter-spacing:.03em;text-decoration:none;border-radius:var(--radius);border:1px solid transparent;cursor:pointer;transition:background .5s var(--ease),color .5s var(--ease),border-color .5s var(--ease),transform .5s var(--ease),box-shadow .5s var(--ease)}.btn-primary{background:linear-gradient(160deg,#4a4a46 0%,var(--graphite) 55%,var(--graphite-deep) 100%);color:var(--cream);box-shadow:inset 0 1px 0 var(--silk-edge),var(--shadow-soft)}.btn-primary:hover{color:var(--cream-soft);transform:translateY(-1px)}.btn-ghost{background:linear-gradient(180deg,rgba(255,255,255,.45),rgba(255,255,255,.12));border-color:rgba(138,132,122,.45);color:var(--graphite)}.btn-ghost:hover{background:rgba(255,255,255,.5);color:var(--graphite-deep)}.hero{position:relative;min-height:min(88vh,780px);display:grid;align-items:end;overflow:hidden}.hero-media{position:absolute;inset:0;z-index:0}.hero-media img{width:100%;height:100%;object-fit:cover;filter:saturate(.82)contrast(.95)brightness(.92)}.hero-media::after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(245,240,232,.15) 0%,rgba(58,58,56,.35) 45%,rgba(44,44,42,.72) 100%),linear-gradient(90deg,rgba(245,240,232,.25),transparent 55%)}.hero-content{position:relative;z-index:1;padding:4.5rem 0 3.5rem;color:var(--cream);max-width:36rem;animation:rise 1.1s var(--ease)both}.hero-content .brand-mark{font-family:var(--font-serif);font-size:clamp(2.8rem,6vw,4.2rem);font-weight:600;letter-spacing:.045em;margin:0 0 .35em;color:var(--cream);text-shadow:0 1px 0 rgba(255,255,255,.12)}.hero-content h1{color:var(--cream);font-size:clamp(1.55rem,3.2vw,2.1rem);font-weight:400;margin-bottom:.75em;max-width:18ch}.hero-content p{color:rgba(245,240,232,.88);font-size:1.08rem;max-width:34ch}.hero-actions{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.75rem}.hero-actions .btn-primary{background:linear-gradient(160deg,#faf7f2,#ebe4d8);color:var(--graphite-deep)}.hero-actions .btn-ghost{border-color:rgba(245,240,232,.45);color:var(--cream);background:rgba(255,255,255,8%)}.section{padding:4.5rem 0}.section-tight{padding:3rem 0}.section-label{font-family:var(--font-serif);font-size:.95rem;letter-spacing:.12em;text-transform:uppercase;color:var(--warm-gray);margin-bottom:.75rem}.lede{font-size:1.15rem;color:var(--warm-gray-mid);max-width:42rem}.fabric-panel{background:linear-gradient(145deg,rgba(255,255,255,.42) 0%,rgba(255,255,255,8%) 48%,rgba(235,228,216,.35) 100%);border:1px solid rgba(138,132,122,.2);box-shadow:inset 0 1px 0 var(--silk),var(--shadow-soft);border-radius:var(--radius);padding:1.75rem}.split{display:grid;grid-template-columns:1.1fr .9fr;gap:2.5rem;align-items:center}@media(max-width:800px){.split{grid-template-columns:1fr}}.media-frame{overflow:hidden;border-radius:var(--radius);box-shadow:inset 0 1px 0 var(--silk),var(--shadow-soft);border:1px solid rgba(138,132,122,.18)}.media-frame img{width:100%;aspect-ratio:4/3;object-fit:cover;filter:saturate(.85);transition:transform 1.4s var(--ease)}.media-frame:hover img{transform:scale(1.02)}.offer-list{display:grid;gap:1.5rem;margin-top:2rem}.offer-row{display:grid;grid-template-columns:minmax(0,1.4fr)minmax(0,1fr);gap:1.5rem;padding:1.5rem 0;border-top:1px solid rgba(138,132,122,.25);text-decoration:none;color:inherit;transition:opacity .45s var(--ease)}.offer-row:last-child{border-bottom:1px solid rgba(138,132,122,.25)}.offer-row:hover{opacity:.88}.offer-row h3{margin-bottom:.35em}.offer-row p{color:var(--warm-gray-mid);margin:0}.offer-row .meta{font-family:var(--font-serif);color:var(--warm-gray);font-size:.98rem}.offer-thumb{aspect-ratio:16/10;object-fit:cover;width:100%;filter:saturate(.85);border-radius:var(--radius)}@media(max-width:700px){.offer-row{grid-template-columns:1fr}}.quote-block{font-family:var(--font-serif);font-size:clamp(1.25rem,2.4vw,1.65rem);line-height:1.45;color:var(--graphite);max-width:38rem;margin:0}.quote-attr{margin-top:1rem;color:var(--warm-gray);font-size:.95rem}.page-hero{padding:3.5rem 0 2rem;border-bottom:1px solid rgba(138,132,122,.18)}.page-hero p{max-width:40rem;color:var(--warm-gray-mid)}.page-hero-media{margin-top:2rem;overflow:hidden;border-radius:var(--radius);max-height:360px}.page-hero-media img{width:100%;height:360px;object-fit:cover;filter:saturate(.82)}.prose{max-width:42rem}.prose h2,.prose h3{margin-top:1.75em}.prose ul,.prose ol{padding-left:1.2rem;margin:0 0 1.2em}.prose li{margin-bottom:.4em}.prose table{width:100%;border-collapse:collapse;font-size:.95rem;margin:1.5rem 0}.prose th,.prose td{border:1px solid rgba(138,132,122,.3);padding:.65rem .75rem;text-align:left;vertical-align:top}.prose th{background:rgba(235,228,216,.55);font-family:var(--font-serif);font-weight:600}.review-stack{display:grid;gap:2rem;margin-top:2rem}.review-item{padding:1.5rem 0;border-top:1px solid rgba(138,132,122,.22)}.review-item:last-child{border-bottom:1px solid rgba(138,132,122,.22)}.review-item blockquote{margin:0;font-family:var(--font-serif);font-size:1.2rem;line-height:1.5}.review-item .who{margin-top:.85rem;color:var(--warm-gray);font-size:.92rem}.rate-table{width:100%;border-collapse:collapse;margin:2rem 0}.rate-table th,.rate-table td{text-align:left;padding:1rem .75rem;border-bottom:1px solid rgba(138,132,122,.25);vertical-align:top}.rate-table th{font-family:var(--font-serif);font-weight:600;font-size:1.05rem}.rate-table .price{font-family:var(--font-serif);white-space:nowrap;color:var(--graphite-deep)}.blog-list{display:grid;gap:2rem;margin-top:2rem}.blog-item{display:grid;grid-template-columns:220px 1fr;gap:1.5rem;text-decoration:none;color:inherit;padding-bottom:2rem;border-bottom:1px solid rgba(138,132,122,.2)}.blog-item img{width:100%;height:150px;object-fit:cover;border-radius:var(--radius);filter:saturate(.85)}.blog-item h2{font-size:1.55rem;margin-bottom:.35em}.blog-item p{color:var(--warm-gray-mid);margin:0}.blog-meta{font-size:.88rem;color:var(--warm-gray);margin-bottom:.4rem}@media(max-width:700px){.blog-item{grid-template-columns:1fr}}.form-grid{display:grid;gap:1.15rem;max-width:36rem}label{display:block;font-family:var(--font-serif);font-size:1.02rem;margin-bottom:.35rem;color:var(--graphite-deep)}input,select,textarea{width:100%;padding:.7rem .85rem;font-family:var(--font-body);font-size:1rem;color:var(--graphite);background:linear-gradient(180deg,rgba(255,255,255,.55),rgba(255,255,255,.22));border:1px solid rgba(138,132,122,.4);border-radius:var(--radius);outline:none;transition:border-color .4s var(--ease),box-shadow .4s var(--ease)}input:focus,select:focus,textarea:focus{border-color:var(--warm-gray-mid);box-shadow:0 0 0 3px rgba(138,132,122,.15)}textarea{min-height:140px;resize:vertical}.field-error{color:#7a3e35;font-size:.9rem;margin-top:.35rem}.form-success{padding:1rem 1.15rem;background:rgba(255,255,255,.45);border:1px solid rgba(138,132,122,.3);margin-bottom:1rem}.form-error-banner{padding:1rem 1.15rem;background:rgba(122,62,53,8%);border:1px solid rgba(122,62,53,.28);color:#7a3e35;margin-bottom:1rem}.contact-aside{display:grid;gap:1.25rem}.contact-aside dt{font-family:var(--font-serif);color:var(--warm-gray);font-size:.92rem;margin:0}.contact-aside dd{margin:.2rem 0 0;color:var(--graphite-deep)}.site-footer{margin-top:3rem;padding:3rem 0 2rem;border-top:1px solid rgba(138,132,122,.25);background:linear-gradient(180deg,transparent,rgba(235,228,216,.55))}.footer-grid{display:grid;grid-template-columns:1.4fr 1fr 1fr;gap:2rem}.footer-brand{font-family:var(--font-serif);font-size:1.45rem;font-weight:600;margin-bottom:.75rem}.footer-grid a{text-decoration:none;color:var(--warm-gray-mid);display:block;margin-bottom:.4rem}.footer-grid a:hover{color:var(--graphite-deep)}.footer-meta{margin-top:2rem;padding-top:1.25rem;border-top:1px solid rgba(138,132,122,.18);color:var(--warm-gray);font-size:.9rem}@media(max-width:800px){.footer-grid{grid-template-columns:1fr}}.cookie-banner{position:fixed;bottom:0;left:0;right:0;z-index:60;padding:1.15rem;background:linear-gradient(165deg,rgba(250,247,242,.97),rgba(235,228,216,.96));border-top:1px solid rgba(138,132,122,.35);box-shadow:0 -8px 30px rgba(58,58,56,8%)}.cookie-inner{width:min(100%,var(--max));margin-inline:auto;display:flex;flex-wrap:wrap;gap:1rem;align-items:center;justify-content:space-between}.cookie-inner p{margin:0;flex:1 1 280px;font-size:.95rem;color:var(--graphite)}.cookie-actions{display:flex;flex-wrap:wrap;gap:.6rem}.timeline{margin:2rem 0;border-left:1px solid rgba(138,132,122,.35);padding-left:1.5rem}.timeline-item{position:relative;margin-bottom:2rem}.timeline-item::before{content:"";position:absolute;left:-1.72rem;top:.45rem;width:.45rem;height:.45rem;border-radius:50%;background:var(--graphite);box-shadow:0 0 0 3px rgba(245,240,232,.9)}.timeline-item h3{margin-bottom:.35em}.error-page{min-height:60vh;display:grid;place-content:center;text-align:center;padding:4rem 1.25rem}@keyframes rise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}.fade-in{animation:rise .9s var(--ease)both}@media(prefers-reduced-motion:reduce){*,*::before,*::after{animation-duration:.01ms !important;transition-duration:.01ms !important}}