
/* Offline-ready shared foundations. No external fonts, tracking, or integrations. */
:root{--ink:#231e1c;--muted:#655d57;--paper:#fffdfa;--pink:#f5e4e1;--gold:#977039;--line:#ddd3c8;--serif:Georgia,'Times New Roman',serif;--sans:'Segoe UI',Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font:16px/1.65 var(--sans)}a{color:inherit;text-decoration:none}button{font:inherit}img{max-width:100%}p{color:var(--muted);margin:0 0 22px}h1,h2,h3{font-family:var(--serif);font-weight:400;line-height:1.08;margin:0}h1{font-size:clamp(54px,6.8vw,100px);letter-spacing:-.052em}h2{font-size:clamp(36px,4vw,58px);letter-spacing:-.035em}h3{font-size:28px;letter-spacing:-.02em}em{color:var(--gold);font-weight:400}a:focus-visible{outline:3px solid #99642f;outline-offset:6px}a:hover{opacity:.78}section[id]{scroll-margin-top:24px}.skip-link{position:absolute;top:-100px;background:white;padding:12px;z-index:10}.skip-link:focus{top:0}.concept-bar{display:flex;justify-content:space-between;gap:10px;align-items:center;padding:8px 5.5%;background:#eee6de;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:#51473f}.concept-bar a{text-decoration:underline;text-underline-offset:3px}header{display:flex;justify-content:space-between;align-items:center;gap:24px;padding:27px 5.5%;border-bottom:1px solid var(--line);background:var(--paper)}.brand{display:block;width:265px;flex-shrink:0}.logo-crop{display:block;aspect-ratio:6.3;overflow:hidden;background:white}.logo-crop img{display:block;width:100%;max-width:none}nav{display:flex;gap:28px;align-items:center;font-size:13px}nav .nav-contact{padding:10px 20px;border:1px solid var(--ink)}.eyebrow{font-size:11px;letter-spacing:.18em;text-transform:uppercase;color:var(--gold);font-weight:600;margin-bottom:24px}.section{padding:85px 7%}.section-heading{display:flex;justify-content:space-between;align-items:end;gap:50px;margin-bottom:42px}.section-heading>p{max-width:330px;font-size:14px;margin:0}.section-heading .eyebrow{margin-bottom:14px}.actions{display:flex;gap:12px;flex-wrap:wrap;margin:30px 0 24px}.button{display:inline-flex;align-items:center;justify-content:center;gap:24px;padding:14px 23px;font-size:13px;font-weight:600;min-height:49px}.primary{background:var(--ink);color:white;border:1px solid var(--ink)}.secondary{border:1px solid #9c8e82;color:var(--ink)}.text-link{display:inline-block;margin-top:15px;font-size:13px;border-bottom:1px solid var(--gold);padding-bottom:5px}.interior{position:relative;min-height:380px;background-image:url('assets/brand-interior.png');background-size:auto 100%;background-position:right center;background-repeat:no-repeat;overflow:hidden}.image-caption{position:absolute;bottom:15px;right:16px;left:16px;width:fit-content;margin-left:auto;padding:5px 10px;background:#fffdf9eb;font-size:9px;letter-spacing:.05em;color:#574c41}.service-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:25px}.service{padding:30px;border:1px solid var(--line)}.service-number{display:flex;justify-content:space-between;color:var(--gold);font-size:13px;margin-bottom:28px}.service-number span{font-size:25px;line-height:1}.service h3{min-height:64px;margin-bottom:18px}.service p{font-size:14px}.service .service-intro{font-family:var(--serif);font-style:italic;font-size:18px;color:var(--ink)}.service small{display:block;color:var(--muted);font-size:11px;border-top:1px solid var(--line);padding-top:15px}.gallery{background:#f8f1eb}.gallery-grid{display:grid;grid-template-columns:1fr 1fr;gap:25px}.pair-images{display:grid;grid-template-columns:1fr 1fr;gap:3px}.photo-placeholder{height:220px;position:relative;display:flex;align-items:center;justify-content:center;border:1px dashed #bbae9f;background:#e9e4dd}.after{background:#f5e5df;border-color:#be9d85}.photo-tag{position:absolute;top:12px;left:12px;background:#fffdf8;padding:4px 12px;letter-spacing:.12em;font-size:10px;text-transform:uppercase;color:#51473f}.after .photo-tag{background:#312621;color:white}.placeholder-center{display:flex;flex-direction:column;align-items:center;text-align:center;padding:12px;font-size:11px;color:#685b50}.placeholder-center>span{font:34px var(--serif);margin:12px}.pair-caption{display:flex;justify-content:space-between;gap:10px;font-size:12px;margin-top:14px}.pair-caption>span+span{font-size:10px;color:var(--muted)}.gallery-note{font-size:12px;margin:25px 0 0}.booking{display:grid;grid-template-columns:.9fr 1.1fr;gap:8%;align-items:center}.booking-copy>p:not(.eyebrow){max-width:410px}.booking h2{margin-bottom:26px}.contact-number{display:block;font-size:14px;margin-bottom:12px}.tiny{font-size:12px}.calendar{border:1px solid var(--line);background:white;padding:22px;box-shadow:0 15px 45px #30221408;color:#332c27}.calendar-toolbar{display:flex;align-items:center;gap:12px;font-size:14px;margin-bottom:25px}.calendar-icon{border:1px solid #c1a076;border-top:5px solid #c1a076;font-size:13px;line-height:22px;padding:0 5px}.calendar-view{font-size:10px;border:1px solid var(--line);padding:4px 12px;margin-left:auto;color:#786e65}.weekdays,.days{display:grid;grid-template-columns:repeat(7,minmax(0,1fr))}.weekdays{font-size:10px;text-align:center;color:#776b61;padding-bottom:10px}.day{height:49px;border-top:1px solid #eee7df;border-right:1px solid #eee7df;padding:5px;font-size:10px;overflow:hidden}.day:nth-child(7n){border-right:0}.outside{color:#a7a09b}.day i{display:block;font-size:7px;background:#f2e0d8;color:#7d5946;font-style:normal;padding:1px 2px;white-space:nowrap}.calendar-status{font-size:11px;background:#f4ece4;padding:10px;margin-top:15px}.calendar>p{font-size:10px;line-height:1.8;margin:12px 0 0}footer{padding:52px 7% 22px;border-top:1px solid var(--line);display:grid;grid-template-columns:1fr 1fr;gap:20px;background:#f6eee7}footer .brand{width:285px;margin-bottom:20px}footer p{margin-bottom:4px}.footer-contact{display:flex;flex-direction:column;gap:6px;align-items:end;font-size:14px}.socials{display:flex;gap:22px;margin-top:14px;align-items:center}.socials b{font-size:20px;margin-right:5px}.disabled-social{color:#756b63;cursor:not-allowed;font-size:12px}.footer-bottom{grid-column:1/-1;display:flex;justify-content:space-between;gap:15px;border-top:1px solid var(--line);padding-top:20px;margin-top:20px;font-size:10px}
/* 01 — Editorial: asymmetry, hairline rules, generous type, numbered rows. */
.editorial-hero{display:grid;grid-template-columns:1.08fr 1fr;position:relative;margin:45px 5.5% 42px;gap:5%}.hero-copy{padding:32px 0}.hero-copy>p:not(.eyebrow){max-width:420px;margin-top:25px}.editorial-hero .interior{min-height:535px}.hero-footnote{font-size:11px;letter-spacing:.12em;text-transform:uppercase}.hero-footnote span{color:var(--gold);margin-left:25px}.vertical-note{position:absolute;right:-40px;top:20%;writing-mode:vertical-rl;letter-spacing:.25em;font-size:9px}.ribbon{padding:24px 5%;border-top:1px solid var(--line);border-bottom:1px solid var(--line);display:flex;justify-content:center;gap:45px;font:17px var(--serif)}.ribbon span{color:var(--gold)}.editorial .service-grid{display:block}.editorial .service{display:grid;grid-template-columns:45px 1.1fr 1fr 1.1fr;gap:28px;border:0;border-top:1px solid var(--line);padding:30px 0}.editorial .service-number span,.editorial .service small,.editorial .service .text-link{display:none}.editorial .service h3{min-height:0;font-size:26px}.editorial .service p{margin:0}.editorial .gallery .section-heading h2{font-style:italic}
/* 02 — Luxe: dramatic black, centered composition, gold borders. */
.luxe{--paper:#fcf8f1;--gold:#ae8550}.luxe header{background:#1e1b19;color:#fff;border-color:#463a30}.luxe header .brand{background:white;padding:8px;width:280px}.luxe .nav-contact{border-color:#bc9563}.luxe-hero{text-align:center;background:#1e1b19;color:#fff8ed;padding:55px 20px 0;position:relative}.luxe-hero .eyebrow{color:#d3b187}.luxe-hero h1{font-size:clamp(70px,9.5vw,140px);line-height:.98}.luxe-hero h1 em{color:#e8c6a0}.luxe-hero>p:not(.eyebrow){color:#d6c9bd;margin:30px auto 0;font-size:16px}.luxe-hero .actions{justify-content:center}.luxe .primary{background:#e8c6a0;color:#241d18;border-color:#e8c6a0}.luxe-hero .secondary{color:#f2e0cc;border-color:#b49066}.hero-star{position:absolute;right:15%;top:110px;color:#dab787;font:70px var(--serif)}.luxe-signature{color:#ddbb92;font:italic 22px var(--serif);margin:35px 0}.luxe-rule{display:flex;justify-content:space-around;gap:15px;max-width:980px;margin:auto;padding:28px 0;border-top:1px solid #5c4938;font-size:9px;letter-spacing:.18em;color:#c9ab87}.luxe-intro{display:grid;grid-template-columns:1fr 1fr;gap:9%;align-items:center}.luxe-intro h2{margin-bottom:24px}.luxe-intro .interior{border-radius:50% 50% 0 0;min-height:440px}.luxe .services{padding-top:0}.luxe .service{border-color:#c5aa86;background:#fffdf8;text-align:center}.luxe .service-number{justify-content:center;font-size:0}.luxe .service-number span{font-size:34px}.luxe .service h3{font-size:30px}.luxe .gallery{background:#211d19;color:#fff4e7}.luxe .gallery p,.luxe .pair-caption>span+span{color:#cbb8a2}.luxe .gallery .eyebrow{color:#d1ac7c}.luxe .photo-placeholder{background:#3c352e;border-color:#71604c}.luxe .photo-placeholder.after{background:#ead4c0}.luxe .before .placeholder-center{color:#e3d5c3}.luxe .booking{background:#f6eee3}
/* 03 — Home: soft arch, handwritten-feeling notes, welcoming story blocks. */
.home{--paper:#fffaf5;--gold:#8f633f;--pink:#f7e4de}.home header{border:0}.home-hero{display:grid;grid-template-columns:1fr 1fr;gap:8%;padding:30px 7% 70px}.home-hero h1{font-size:clamp(58px,6vw,88px)}.home-hero .hero-copy{padding-top:25px}.home-image-wrap{position:relative;padding-bottom:45px}.home-image-wrap .interior{height:100%;min-height:530px;border-radius:48% 48% 12px 12px}.home-note{position:absolute;right:-20px;bottom:10px;transform:rotate(-5deg);padding:25px 45px;background:#f1d9cd;color:#423329;font:30px/1.15 var(--serif);box-shadow:0 10px 20px #5a402110}.home-welcome{text-align:center;background:var(--pink);padding:65px 20%;border-radius:50% 50% 0 0 / 15% 15% 0 0}.home-welcome p:not(.eyebrow){max-width:540px;margin:25px auto 0}.home .button{border-radius:30px}.home .service{border:0;background:#f6ebe1;border-radius:100px 100px 16px 16px;padding:45px 30px 30px}.home .service-number{margin-bottom:30px}.home .service h3{font-size:28px;min-height:90px}.home .gallery{background:#f4e2db}.home .photo-placeholder{border-radius:12px}.home .calendar{border-radius:20px}.home .section-heading>p{max-width:310px}
/* 04 — Modern: functional bento composition and compact rounded cards. */
.modern{--paper:#f5f3ef;--ink:#252421;--gold:#825831}.modern h1,.modern h2,.modern h3{font-family:var(--sans);font-weight:600;letter-spacing:-.055em}.modern h1 em{font-family:var(--serif);font-weight:400}.modern header{background:transparent;border:0;padding-bottom:15px}.modern-hero{padding:20px 5.5% 50px;display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:15px}.modern-main{grid-column:span 2;border-radius:24px;background:#eddbd2;padding:45px}.modern-main h1{margin-top:30px;font-size:clamp(62px,7vw,100px)}.modern-main p{margin-top:22px}.pill{font-size:10px;background:#fffaf2;padding:8px 13px;border-radius:20px;display:inline-block}.modern-photo{min-height:410px;border-radius:24px;background-size:auto 100%}.modern-tile{display:flex;flex-direction:column;align-items:start;gap:25px;border-radius:22px;padding:25px;background:#e8e2d7}.modern-tile>span{font-size:10px;letter-spacing:.1em}.modern-tile strong{font-size:25px;line-height:1.3;font-weight:500}.modern-tile.pink{background:#f5e5df}.modern-tile.dark{background:#292824;color:white}.modern-tile>a{font-size:12px;text-decoration:underline;text-underline-offset:5px}.modern .section{padding:60px 5.5%}.modern .section-heading h2{font-size:44px}.modern .service{background:white;border:0;border-radius:22px}.modern .service h3{font-size:27px;min-height:80px}.modern .button{border-radius:10px}.modern .gallery{background:transparent;padding-top:20px}.modern .photo-pair{background:white;padding:16px;border-radius:22px}.modern .photo-placeholder{border-radius:10px}.modern .calendar{border-radius:22px;box-shadow:none;border:0}.modern .booking{background:#eae3d9;margin:0 5.5% 55px;padding:40px;border-radius:26px;gap:5%}.modern footer{background:white}
/* 05 — Transformation: oversized comparison, gallery-first rhythm, compact rail. */
.transformation-hero{display:grid;grid-template-columns:.82fr 1.18fr;gap:5%;padding:65px 5.5%;background:#f4e4df}.transform-heading h1{font-size:clamp(60px,6.8vw,100px)}.transform-heading>p:not(.eyebrow){margin-top:25px}.transform-feature{padding-top:12px}.transform-feature>.eyebrow{display:block;margin-bottom:18px}.transform-feature .photo-placeholder{height:320px;background:#ddd6cd}.transform-feature .after{background:#fffaf1}.transform-feature .pair-caption{font-size:14px}.transform-feature>p{font-size:11px;margin-top:12px}.transform-strip{display:flex;justify-content:space-between;gap:20px;background:#28221f;color:#f4e6d7;padding:22px 5.5%;font-size:11px;letter-spacing:.04em}.transformation .gallery{background:var(--paper)}.transformation .gallery-grid{gap:38px}.transformation .services{background:#f3eae1}.transformation .service{border:0;border-top:2px solid #a98256;padding:25px 0}.transformation .service h3{font-size:31px;min-height:100px}.transformation .service small{display:none}.transformation .booking{border-top:1px solid var(--line)}
/* Responsive: the five compositions retain their own character on small screens. */
@media(min-width:1600px){body:not(.directory){max-width:1680px;margin:auto;box-shadow:0 0 0 1px var(--line)}}
@media(max-width:900px){header{flex-wrap:wrap;justify-content:center;padding:20px 5%}nav{gap:25px}.section{padding:60px 5%}.section-heading{gap:25px}.hero-copy{padding:10px 0}.editorial-hero{gap:25px}.editorial-hero .interior{min-height:510px}.ribbon{gap:20px;font-size:14px}.service{padding:23px}.editorial .service{grid-template-columns:25px 1fr 1fr;gap:18px}.editorial .service-intro{display:none}.service h3{font-size:25px}.booking{gap:5%}.hero-star{right:7%}.home-hero{padding:30px 5% 65px;gap:6%}.home-note{right:-5px;padding:20px}.home .service{padding:38px 22px 25px;border-radius:60px 60px 15px 15px}.home .service h3{font-size:25px}.modern-main{padding:30px}.modern-tile strong{font-size:22px}.modern .booking{padding:30px}.transformation-hero{gap:25px}.transform-feature .photo-placeholder{height:330px}.footer-contact{font-size:12px}}
@media(max-width:640px){body{font-size:15px}.concept-bar{padding:8px 5%;font-size:9px;letter-spacing:.02em}.concept-bar span{max-width:68%}header{gap:18px}.brand{width:240px}nav{gap:18px;font-size:11px;flex-wrap:wrap;justify-content:center}nav .nav-contact{padding:6px 10px}h1{font-size:57px}h2{font-size:39px}.eyebrow{font-size:9px;letter-spacing:.14em}.section{padding:48px 6%}.section-heading{display:block;margin-bottom:28px}.section-heading>p{margin-top:20px;max-width:none}.actions{gap:8px;margin-top:24px}.button{font-size:12px;padding:12px 16px;gap:15px}.editorial-hero{display:flex;flex-direction:column;margin:24px 6% 32px;gap:26px}.hero-copy{padding:8px 0}.hero-copy>p:not(.eyebrow){margin-top:23px}.editorial-hero .interior{min-height:340px}.vertical-note{display:none}.hero-footnote{font-size:9px}.ribbon{gap:10px;padding:16px 5%;font-size:11px;flex-wrap:wrap}.ribbon span{font-size:12px}.service-grid{grid-template-columns:1fr;gap:16px}.service h3{min-height:0!important}.editorial .service{grid-template-columns:25px 1fr;gap:12px;padding:25px 0}.editorial .service>p:not(.service-intro){grid-column:2}.editorial .service h3{margin-bottom:8px}.service-number{margin-bottom:20px}.gallery-grid{grid-template-columns:1fr;gap:28px}.photo-placeholder{height:190px}.placeholder-center{font-size:10px}.pair-caption{font-size:11px}.booking{grid-template-columns:1fr;gap:28px}.calendar{padding:16px}.day{height:43px}.calendar-toolbar{font-size:13px}.calendar-status{font-size:10px}footer{grid-template-columns:1fr;padding:40px 6% 25px;gap:25px}footer .brand{width:265px}.footer-contact{align-items:start;font-size:14px}.footer-bottom{flex-direction:column;font-size:10px;gap:10px}.luxe header .brand{width:260px}.luxe-hero{padding:45px 5% 0}.luxe-hero h1{font-size:78px}.luxe-hero>p:not(.eyebrow){font-size:14px}.hero-star{right:5%;top:105px;font-size:32px}.luxe-signature{font-size:20px}.luxe-rule{font-size:7px;letter-spacing:.05em;gap:8px;padding:22px 0}.luxe-intro{grid-template-columns:1fr;gap:30px}.luxe-intro .interior{min-height:360px}.luxe .services{padding-top:15px}.luxe .service{padding:28px}.luxe .service h3{font-size:31px}.home-hero{grid-template-columns:1fr;padding:25px 6% 45px;gap:22px}.home-hero h1{font-size:62px}.home-image-wrap .interior{min-height:410px}.home-note{font-size:27px;right:0;bottom:5px}.home-welcome{padding:50px 8%}.home .service{border-radius:24px;padding:28px}.home .service h3{font-size:29px}.home .service-number{margin-bottom:20px}.modern-hero{padding:15px 5% 35px;grid-template-columns:1fr 1fr;gap:12px}.modern-main{padding:30px 23px;grid-column:span 2}.modern-main h1{font-size:65px}.modern-photo{grid-column:span 2;min-height:300px;background-size:auto 140%}.modern-tile{padding:22px;gap:18px;border-radius:18px}.modern-tile strong{font-size:21px}.modern-tile>span{font-size:8px}.modern-tile.dark{grid-column:span 2;display:grid;grid-template-columns:1fr 1fr}.modern-tile.dark>span{grid-column:1/-1}.modern .section{padding:40px 5%}.modern .section-heading h2{font-size:37px}.modern .service{padding:27px}.modern .booking{padding:26px 20px;margin-bottom:35px}.modern .booking .actions{gap:7px}.modern .booking .button{padding:12px}.modern .calendar{padding:13px}.transformation-hero{grid-template-columns:1fr;padding:35px 6%;gap:25px}.transform-heading h1{font-size:68px}.transform-feature .photo-placeholder{height:240px}.transform-strip{flex-direction:column;gap:8px;padding:22px 6%}.transformation .gallery-grid{gap:28px}.transformation .service h3{font-size:30px}.transformation .service{padding:25px 0}.image-caption{font-size:8px}.gallery-note{font-size:11px}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}
.luxe-intro .interior{background-size:auto 155%}
@media(max-width:640px){.editorial-hero .interior{height:340px;min-height:340px;width:100%;flex:none;background-size:auto 150%;}}

/* Equal-height service cards keep the quote actions on a common baseline. */
.home .service{display:flex;flex-direction:column}
.home .service small{margin-top:auto}
.home .service>.text-link{align-self:flex-start;margin-top:20px}

/* Larger, easier-to-read type for the selected Welcome Home site. */
.home{font-size:18px;line-height:1.7}
.home nav{font-size:16px}
.home .eyebrow{font-size:13px}
.home .button,.home .text-link,.home .contact-number{font-size:17px}
.home .section-heading>p{font-size:17px;max-width:360px}
.home .service h3{font-size:32px;min-height:105px;margin-bottom:24px}
.home .service p{font-size:18px;line-height:1.75}
.home .service .service-intro{font-size:23px;line-height:1.5;min-height:70px}
.home .service small{font-size:16px;line-height:1.65;padding-top:20px}
.home .service>.text-link{font-size:17px;min-height:44px}
.home .tiny,.home .gallery-note,.home .footer-contact{font-size:16px}
.home .pair-caption{font-size:18px}
.home .pair-caption>span+span,.home .placeholder-center{font-size:14px}
.home .calendar-coming{text-align:center;padding:16px 8px 26px;border-bottom:1px solid var(--line);margin-bottom:24px}
.home .calendar-coming strong{display:block;font:clamp(36px,4vw,56px)/1.1 var(--serif);color:var(--gold);letter-spacing:-.035em}
.home .calendar-coming span{display:block;font-size:16px;margin-top:12px}
.home .calendar-status,.home .calendar>p{font-size:14px}
.home .calendar-toolbar{font-size:17px}
.home .gallery-photo{position:relative;overflow:hidden;border-radius:12px;background:#f6ebe1}
.home .gallery-photo img{display:block;width:100%;height:300px;object-fit:contain}
@media(max-width:1000px) and (min-width:641px){.home .service-grid{grid-template-columns:1fr}.home .service h3{min-height:0}.home .service .service-intro{min-height:0}.home .service{border-radius:30px}}
@media(max-width:640px){.home{font-size:17px}.home nav{font-size:15px;gap:15px}.home .eyebrow{font-size:12px}.home .service h3{font-size:31px}.home .service .service-intro{min-height:0;font-size:22px}.home .service small{font-size:16px}.home .button{padding:13px 19px;font-size:16px}.home .gallery-photo img{height:210px}.home .footer-contact{font-size:15px}}
