:root{--bg:#f3efe7;--ink:#30271f;--muted:#786b5e;--accent:#a57747;--line:#a68d702e;--radius:5px}
:root{--bg:#F1EADF;--cream:#F1EADF;--beige:#CFC2AE;--stone:#9E9586}
html{scroll-behavior:auto}body{background:var(--bg);overflow-x:clip;color:var(--ink)}
header{z-index:1000;background:#faf6efe8;border-color:#a68d7033;box-shadow:0 8px 30px #49331d09}
header.on-dark{background:#30271fe8}.mega{background:#f6f1e9}
.section,.page-intro,.catalog-page{background-color:var(--bg)}
.page-intro{border-bottom:1px solid var(--line);margin-bottom:0}
.btn,.titan-cta .btn{background:#30271f;border-color:#30271f;letter-spacing:.035em}
.btn:hover{background:#967147;border-color:#967147}
.home-page .hero.fireplace-hero{height:820px;min-height:680px;max-height:1000px;gap:25px;padding-bottom:0;background:#f3efe7}
.fireplace-scene{width:100%;max-width:none;aspect-ratio:3;align-self:end;border-radius:0;max-height:100%;margin:0}
.fireplace-motion{background:#30271fcc;color:#fff7e9;border-color:#d9ba8166;backdrop-filter:blur(12px);bottom:20px;right:5%}
.hero-aura{display:none!important}
.section-heading .eyebrow,.eyebrow{letter-spacing:.16em}
.about-image,.detail-image,.work-crop,.product-card .image-wrap{border-radius:5px}
.home-page .about-preview,.page-chi-siamo .about-section{background:#e9e0d3}
.home-page .services{background:#30271f;color:#f3eadc}
.home-page .services .eyebrow{color:#c8a579!important}
.home-page .services .section-heading>.btn{background:transparent;color:#f3eadc;border-color:#bca18166}
.home-page .home-services>a{background:#3b3026;border:1px solid #bba18042;box-shadow:none}
.home-page .home-services h3{color:#f6eee3}.home-page .home-services p{color:#cbbfb0}
.home-page .service-icon img{filter:brightness(0) invert(.87) sepia(.2)}
.home-page .home-services .service-home-arrow{color:#d1ac7f}
.home-page .home-services>a:hover{background:#71573d!important;border-color:#bca181;color:#fff}
.home-page .projects,.work-index{background:#f3efe7}
.home-page .partnership-section,.partnership-section{background:#e9e0d3}
.brand-list>span,.finance-panel,.visit-box,.faq-contact,.service-complete-card{background:#faf6ef;border-color:#b5a08440;box-shadow:0 12px 32px #3e2b1806}
.brand-list>span{border-radius:5px}.finance-panel{border-top:2px solid #a57747}
.faq-home,.faq-index{background:#f3efe7}.faq-list details{border-color:#b9a78f55}
.service-filters button{border-color:#b9a78f66}.service-filters button[aria-pressed=true]{background:#30271f;color:#fff5e8;border-color:#30271f}
.editorial-card{border:1px solid #bda17d66;border-radius:5px;box-shadow:0 12px 24px #30271f0c}
.editorial-card::after{background:linear-gradient(180deg,#22180c18,#22180ce6)}
.service-detail-hero,.work-hero{background:#30271f}
.cta-card{background:#30271f!important;border:1px solid #b2956a55;box-shadow:none}
.cta-card .eyebrow{color:#d7b78d!important}.cta-card .btn{background:#e9dac5;color:#30271f;border-color:#e9dac5}
.footer-body{background:#e5dbcd;color:#30271f}.footer-label{color:#8d663d!important}.footer-bottom{border-color:#b49c7c55}
/* Flat sheets: native sticky positioning, with no rotation, scaling or interpolation. */
main{overflow:visible}.stack-section{position:sticky!important;top:var(--stack-top,0px)!important;z-index:var(--stack-order,1);transform:none!important;transition:none!important;animation:none!important;box-shadow:0 -10px 30px #30271f0b}
main>.stack-section{background-color:var(--bg)}
.stack-section.top-less{padding-top:55px}.stack-section:focus-within{scroll-margin-top:90px}
footer{position:relative;z-index:100;background:var(--bg)}
.reveal,.scroll-reveal,.motion-ready .reveal{opacity:1!important;transform:none!important;transition:none!important;animation:none!important}
.book-leaf{transform:none!important}.book-leaf::after{display:none!important}
.cursor-fire{position:fixed;inset:0 auto auto 0;width:74px;height:112px;z-index:2147483647;pointer-events:none;opacity:0;will-change:transform;filter:drop-shadow(0 0 9px #ef9b4638);transition:opacity .18s linear}
.cursor-fire.visible{opacity:.9}
@media(max-width:760px){.home-page .hero.fireplace-hero{height:auto;min-height:620px;padding-top:112px;gap:25px;max-height:none}.fireplace-scene{width:100%;aspect-ratio:1.65;margin-top:20px}.fireplace-motion{bottom:12px;right:5%;font-size:11px}.stack-section.top-less{padding-top:35px}.home-page .services{padding-top:55px}.cursor-fire{display:none!important}}
@media(prefers-reduced-motion:reduce){.cursor-fire{display:none!important}.stack-section{position:relative!important;top:auto!important}}
/* A continuous, softly lit room fills the home hero. */
.home-page .hero.fireplace-hero{display:flex;flex-direction:column;align-items:center;justify-content:flex-start;gap:26px;padding:145px 0 0;height:820px;min-height:720px;max-height:1100px;background:#f3efe7}
.home-page .fireplace-hero>.fireplace-scene{position:absolute;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;aspect-ratio:auto;z-index:0;border-radius:0}
.home-page .fireplace-hero>.fireplace-scene::after{content:"";position:absolute;inset:0;z-index:1;pointer-events:none;background:linear-gradient(180deg,#f3efe7 0%,#f3efe7f5 14%,#f3efe7de 28%,#f3efe780 38%,#f3efe710 46%,transparent 52%)}
.home-page .fireplace-hero>.cinema-kicker,.home-page .fireplace-hero>h1{position:relative;z-index:3;flex:none;color:#292621!important}
.home-page .fireplace-hero>h1{max-width:1300px;text-shadow:0 1px 24px #f3efe745}
.home-page .fireplace-hero>.hero-aura{display:block!important;z-index:2;mix-blend-mode:multiply;transition:opacity .65s ease}
.home-page .fireplace-hero>.hero-aura i{width:420px;height:420px;filter:blur(30px);background:radial-gradient(ellipse,#e8b57766 0%,#c8874e38 28%,#b8664510 48%,transparent 70%)}
.home-page .fireplace-hero>.hero-aura i:nth-child(2){width:330px;height:330px;opacity:.4;filter:blur(36px)}
.home-page .fireplace-hero>.hero-aura i:nth-child(3){width:260px;height:260px;opacity:.2;filter:blur(40px)}
.home-page .fireplace-hero .fireplace-motion{z-index:2}
@media(max-width:760px){.home-page .hero.fireplace-hero{padding-top:112px;height:740px;min-height:680px;max-height:900px;gap:23px}.home-page .fireplace-hero>.fireplace-scene{inset:auto 0 0;height:70%;margin:0}.home-page .fireplace-hero>.fireplace-scene::after{background:linear-gradient(180deg,#f3efe7 0%,#f3efe7d9 17%,#f3efe755 36%,transparent 58%)}.home-page .fireplace-hero>.hero-aura{display:none!important}}
@media(prefers-reduced-motion:reduce){.home-page .fireplace-hero>.hero-aura{display:none!important}}
/* One home overlap, balanced opening and shared CTA treatment. */
header.at-page-top:not(:has([aria-expanded="true"])){background:transparent!important;border-color:transparent!important;box-shadow:none!important;backdrop-filter:none!important;-webkit-backdrop-filter:none!important}
.home-opening{position:relative;isolation:isolate}
.home-page .home-opening>.fireplace-hero{position:sticky;top:var(--opening-top,0);z-index:1;padding-top:var(--hero-copy-top,130px);gap:var(--hero-gap,28px)}
.home-opening>.about-preview{position:relative;z-index:2;background:#e9e0d3}
.home-page main>.section{position:relative;z-index:2}
.home-page .fireplace-hero .fireplace-photo,.home-page .fireplace-hero .fireplace-flame{transform:translateY(var(--photo-shift,0px))}
.home-page .fireplace-hero>.hero-aura{display:none!important}
.titan-cta .cta-card .btn{background:#30271f;color:#fff;border-color:#a68d7070}
.titan-cta .cta-card .btn:hover,.titan-cta .cta-card .btn:focus-visible{background:#967147;color:#fff;border-color:#967147}
.cta-watermark{letter-spacing:.01em!important;font-kerning:normal;line-height:1.12;word-spacing:.02em}
@media(max-width:760px){.home-page .home-opening>.fireplace-hero{padding-top:var(--hero-copy-top,108px);gap:var(--hero-gap,24px)}.home-page .fireplace-hero>.fireplace-scene{inset:0;height:100%}.home-page .fireplace-hero>.fireplace-scene::after{background:linear-gradient(180deg,#f3efe7 0%,#f3efe7f2 23%,#f3efe7a6 35%,#f3efe720 46%,transparent 54%)}}
@media(prefers-reduced-motion:reduce){.home-page .home-opening>.fireplace-hero{position:relative;top:auto}}
/* Keep the service photography visible behind its transparent title panel. */
.service-detail-hero>.editorial-backdrop{z-index:0;filter:blur(3px) brightness(.85)!important}
.service-detail-hero::after{z-index:1;background:linear-gradient(180deg,#211a1266,#211a1299)}
.service-detail-hero>.page-intro{position:relative;z-index:2;background:transparent;border-bottom:0}
.page-chi-siamo .about-section{background:var(--bg);border-top:0}
.hero-hearth-caption{position:absolute;top:var(--hearth-caption-top,72%);left:5%;right:5%;z-index:2;margin:0;text-align:center;color:#403225;font-size:14px;font-weight:400;letter-spacing:.14em;line-height:1.5;text-transform:uppercase;text-shadow:0 1px 8px #f3efe7aa;pointer-events:none}
.home-page .home-services>a{transition:background-color .5s ease,border-color .5s ease,box-shadow .5s ease,transform .35s ease}
.home-page .home-services>a:hover,.home-page .home-services>a:focus-visible{background:#554434!important;border-color:#bda18088;box-shadow:inset 0 0 70px #d8b17c12,0 8px 24px #17100812}
html{scroll-behavior:smooth}
@media(max-width:760px){.hero-hearth-caption{font-size:11px;letter-spacing:.09em;left:7%;right:7%;max-width:310px;margin:0 auto}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}.home-page .home-services>a{transition:none}}

/* Soft page entrances preserve sticky geometry and native navigation. */
@keyframes page-arrival{from{opacity:0}to{opacity:1}}
@media(prefers-reduced-motion:no-preference){main{animation:page-arrival 1.1s cubic-bezier(.22,.61,.36,1) both}}
.service-work-grid[aria-busy="true"],.work-grid[aria-busy="true"],.faq-groups[aria-busy="true"]{overflow:hidden}
.service-filters button{transition:background-color .45s ease,color .45s ease,border-color .45s ease}
@media(prefers-reduced-motion:reduce){.service-filters button{transition:none}}
/* Balance the divider between each introduction and its category count. */
main>.page-intro:has(+ :is(.service-index,.work-index,.faq-index)){padding-bottom:28px}
main>:is(.service-index,.work-index,.faq-index,.about-section).section{padding-top:28px}
@media(max-width:760px){main>.page-intro:has(+ :is(.service-index,.work-index,.faq-index)){padding-bottom:20px}main>:is(.service-index,.work-index,.faq-index,.about-section).section{padding-top:20px}}

.home-page .fireplace-hero .fireplace-motion{right:var(--fireplace-control-right,5%)}
/* Keep the left edge clear and soften only the last part of the carousel. */
.home-page .marquee-viewport{mask-image:linear-gradient(90deg,#000 0%,#000 94%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 94%,transparent 100%)}
@media(max-width:760px){.home-page .marquee-viewport{mask-image:linear-gradient(90deg,#000 0%,#000 90%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 90%,transparent 100%)}}
/* Stable section rhythm: content determines height; spacing is in CSS pixels. */
.home-page main>.section,.home-page .home-opening>.about-preview{height:auto;min-height:0;padding-top:72px;padding-bottom:72px}
.home-page .services{display:block}
.home-page .section-heading{margin-bottom:40px;gap:35px}
.home-page .about-preview .section-heading{margin-bottom:32px}
.home-page .home-services{grid-template-rows:none;grid-auto-rows:1fr;gap:20px}
.home-page .home-services>a{min-height:210px;padding:28px;gap:18px}
.home-page .home-services h3{margin-bottom:12px}
.home-page .service-icon{width:38px;height:38px}
.home-page .projects{padding-left:0;padding-right:0}
.home-page .projects .section-heading{padding-left:5%;padding-right:5%}
.home-page .marquee-window{--gallery-photo-height:360px}
.home-page .marquee-set>.project-card{display:grid;grid-template-rows:360px 74px}
.home-page .gallery-controls{margin-top:24px;margin-bottom:0}
.home-page .home-opening>.hero.fireplace-hero{height:820px;min-height:820px;max-height:none;padding-top:var(--hero-copy-top,122px)}
.home-page .hero.fireplace-hero>h1{max-width:1180px;font-size:56px!important;line-height:1.08!important;margin:0 auto}
.hero-hearth-content{position:absolute;top:var(--hearth-caption-top,640px);left:5%;right:5%;z-index:2;display:flex;flex-direction:column;align-items:center;gap:var(--hearth-cta-gap,48px);text-align:center}
.hero-hearth-content .hero-hearth-caption{position:static;max-width:none;margin:0;pointer-events:auto}
.hero-hearth-content .hero-contact{flex:none;min-width:180px;min-height:48px}
/* The supplied palette changes surfaces only; existing text colors are retained. */
.home-page .hero.fireplace-hero,.home-page .projects,.work-index,.faq-home,.faq-index,.page-chi-siamo .about-section{background:var(--cream)}
.home-page .home-opening>.about-preview,.home-page .partnership-section,.partnership-section,.soft,.footer-body{background:var(--beige)}
.home-page .services{background:var(--stone)}
.brand-list>span,.finance-panel,.visit-box,.faq-contact,.service-complete-card{background:var(--cream)}
.home-page .marquee-window>.marquee-end{background:var(--beige)}
header{background:#F1EADFe8}.mega{background:var(--cream)}
.work-hero:before{background:linear-gradient(180deg,#F1EADF00,var(--cream))}
.home-page .fireplace-hero>.fireplace-scene::after{background:linear-gradient(180deg,#F1EADF 0%,#F1EADFf5 14%,#F1EADFde 28%,#F1EADF80 38%,#F1EADF10 46%,transparent 52%)}
@media(max-width:1059px){
 .home-page .home-opening>.hero.fireplace-hero{height:780px;min-height:780px}
 .home-page .hero.fireplace-hero>h1{font-size:44px!important;max-width:900px}
}
@media(max-width:760px){
 .home-page main>.section,.home-page .home-opening>.about-preview{padding-top:48px;padding-bottom:48px}
 .home-page .section-heading,.home-page .projects .section-heading{margin-bottom:30px}
 .home-page .home-services{gap:18px}
 .home-page .home-services>a{min-height:190px;padding:25px;gap:15px}
 .home-page .service-icon{width:32px;height:32px}
 .home-page .home-opening>.hero.fireplace-hero{height:740px;min-height:740px}
 .home-page .hero.fireplace-hero>h1{font-size:32px!important;max-width:620px;padding:0 6%}
 .hero-hearth-content{left:7%;right:7%;gap:var(--hearth-cta-gap,40px)}
 .hero-hearth-content .hero-hearth-caption{max-width:310px}
 .home-page .fireplace-hero>.fireplace-scene::after{background:linear-gradient(180deg,#F1EADF 0%,#F1EADFf2 23%,#F1EADFa6 35%,#F1EADF20 46%,transparent 54%)}
 #navigation{background:var(--cream)}
}
/* Mobile project gallery: square photographs and one shared left gutter. */
.home-page .home-opening>.hero.fireplace-hero{height:var(--hero-height,820px)}
@media(max-width:1059px){.home-page .home-opening>.hero.fireplace-hero{height:var(--hero-height,780px)}}
@media(max-width:760px){.home-page .home-opening>.hero.fireplace-hero{height:var(--hero-height,740px)}}
@media(max-width:760px){
 .home-page .projects{padding-left:0;padding-right:0}
 .home-page .projects .section-heading{padding-left:6vw;padding-right:6vw}
 .home-page .projects .marquee-window{--gallery-photo-height:240px}
 .home-page .projects .marquee-set{padding-left:6vw;padding-right:6vw}
 .home-page .projects .marquee-set>.project-card{width:240px;flex-basis:240px;grid-template-rows:240px 74px}
 .home-page .projects .marquee-set .project-photo{width:100%;height:240px;aspect-ratio:1}
 .home-page .projects .marquee-set .project-card>span{padding-left:0;padding-right:0}
}

/* Golden Ember: quiet warm surfaces, deep readable type, restrained fire accents. */
:root{--gold:#FAF6EF;--orange:#F48A28;--ember:#933D1C;--brick:#74452D;--wood:#322119;--cream:#FAF6EF;--beige:#F2E9DD;--stone:#EADBCD;--bg:var(--cream);--ink:var(--wood);--muted:#6B5142;--accent:var(--ember);--line:#74452D38;--section-space:72px}
body{color:var(--ink)}
header{background:#FAF6EFe8;border-color:var(--line)}
header.on-dark,header.on-dark .mega,header.on-dark #navigation.open{background:#322119f2}
.home-page .services{background:var(--beige);color:var(--ink)}
.home-page .services .eyebrow{color:var(--ember)!important}
.home-page .services .section-heading>.btn{color:var(--ink);border-color:var(--brick);background:transparent}
.home-page .home-services>a{background:var(--cream);border-color:var(--line)}
.home-page .home-services h3{color:var(--ink)}
.home-page .home-services p{color:var(--muted)}
.home-page .service-icon img{filter:brightness(0);opacity:.8}
.home-page .home-services .service-home-arrow{color:var(--ember)}
.home-page .home-services>a:hover,.home-page .home-services>a:focus-visible{background:#F8EEDC!important;border-color:var(--orange);box-shadow:inset 0 0 40px #FAF6EF0c;transform:none}
.btn,.hero .btn,.titan-cta .cta-card .btn{background:var(--wood);border-color:var(--wood);color:#fff}
.btn:hover,.hero .btn:hover,.titan-cta .cta-card .btn:hover,.titan-cta .cta-card .btn:focus-visible{background:var(--ember);border-color:var(--ember);color:#fff}
.home-page .services .section-heading>.btn:hover{background:var(--ember);border-color:var(--ember);color:#fff}
.home-page .marquee-window>.marquee-end:hover,.home-page .marquee-window>.marquee-end:focus-visible{background:var(--ember);border-color:var(--ember);color:#fff}
.finance-panel{border-top:2px solid var(--orange)}
.brand-list>span,.finance-panel,.visit-box,.faq-contact,.service-complete-card{border-color:var(--line)}
.finance-panel{border-top-color:var(--orange)}
.footer-body{color:var(--ink)}.footer-label{color:var(--ember)!important}
.cta-card{background:var(--wood)!important;border-color:#74452D66}
.cta-card .eyebrow{color:var(--gold)!important}.titan-cta h2{color:#fff}.titan-cta p:not(.eyebrow){color:#F2E9DD}
.titan-cta .cta-card .btn{border-color:#FAF6EF80}
.service-filters button[aria-pressed=true]{background:var(--wood);border-color:var(--wood);color:#fff}
.service-detail-hero,.work-hero{background:var(--wood)}
.service-detail-hero .page-intro .eyebrow{color:var(--gold)!important}
.home-page .hero.fireplace-hero>h1{color:var(--wood)!important}
.hero-hearth-caption{color:var(--wood)}
.home-page .fireplace-hero>.fireplace-scene::after{background:linear-gradient(180deg,#FAF6EF 0%,#FAF6EFf5 14%,#FAF6EFde 28%,#FAF6EF80 38%,#FAF6EF10 46%,transparent 52%)}
.work-hero:before{background:linear-gradient(180deg,#FAF6EF00,var(--cream))}
/* Equal distance on both sides of the Partnership / footer section boundary. */
.partnership-section,.home-page .partnership-section{padding-top:var(--section-space);padding-bottom:var(--section-space)}
footer .contact-banner.titan-cta{padding-top:var(--section-space);padding-bottom:var(--section-space)}
@media(max-width:760px){
 :root{--section-space:48px}
 .home-page .fireplace-hero>.fireplace-scene::after{background:linear-gradient(180deg,#FAF6EF 0%,#FAF6EFf2 23%,#FAF6EFa6 35%,#FAF6EF20 46%,transparent 54%)}
}

/* One shared gap before the footer CTA, without adding two section paddings. */
.page-chi-siamo .about-section,.page-faq .faq-index{padding-bottom:0}
.page-faq .faq-groups{display:flow-root}
.page-faq .faq-group:not([hidden]):not(:has(~ .faq-group:not([hidden]))){margin-bottom:0}
.page-faq .faq-contact{margin-top:var(--section-space)}
.home-page .services{background:#63402c;color:#FAF6EF}
.home-page .services .eyebrow{color:#FAF6EF!important}
.home-page .services .section-heading>.btn{color:#FAF6EF;border-color:#FAF6EF80}
.home-page .home-services>a:hover,.home-page .home-services>a:focus-visible{background:#74452D!important;border-color:#FAF6EF80;box-shadow:none}
.home-page .home-services>a:is(:hover,:focus-visible) h3{color:#fff}
.home-page .home-services>a:is(:hover,:focus-visible) p{color:#FAF6EF}
.home-page .home-services>a:is(:hover,:focus-visible) .service-home-arrow{color:#FAF6EF}
.home-page .home-services>a:is(:hover,:focus-visible) .service-icon img{filter:brightness(0) invert(1);opacity:1}
/* Disabled reveal transforms must also clear the independent translate property. */
.reveal,.scroll-reveal,.motion-ready .reveal{translate:none!important}

/* Service index shares the single pre-CTA gap used by About and FAQ. */
.page-servizi .service-index{padding-bottom:0}
/* Restore the light home services surface and a warm beige hover. */
.home-page .services{background:var(--beige);color:var(--ink)}
.home-page .services .eyebrow{color:var(--ember)!important}
.home-page .services .section-heading>.btn{color:var(--ink);border-color:var(--brick)}
.home-page .services .section-heading>.btn:hover{color:#fff}
.home-page .home-services>a:hover,.home-page .home-services>a:focus-visible{background:#C9B39B!important;border-color:#A18572;box-shadow:none}
.home-page .home-services>a:is(:hover,:focus-visible) h3,.home-page .home-services>a:is(:hover,:focus-visible) p{color:var(--ink)}
.home-page .home-services>a:is(:hover,:focus-visible) .service-home-arrow{color:var(--ember)}
.home-page .home-services>a:is(:hover,:focus-visible) .service-icon img{filter:brightness(0);opacity:.8}
/* The old left CTA overlay was #292621: use that exact solid surface. */
:root{--dark-surface:#292621}
.cta-card{background:var(--dark-surface)!important;background-image:none!important}
.cta-card::after{display:none!important;background:none!important}
header.on-dark,header.on-dark .mega,header.on-dark #navigation.open{background:var(--dark-surface)}
@media(max-width:760px){header.on-dark:has(.mobile-toggle[aria-expanded="true"]){background:var(--dark-surface)}header.on-dark #navigation .mega{background:transparent}}

/* Shared action and card tokens: identical states across every page. */
:root{--action-bg:#292621;--action-text:#FAF6EF;--action-hover:#C9B39B;--action-hover-text:#292621;--card-bg:#FAF6EF;--card-ink:#292621}
.home-page .home-opening>.about-preview{background:var(--cream)}
.finance-panel{border-top-color:var(--dark-surface)}
body :is(.btn,.fireplace-motion,.motion-toggle,.gallery-controls button,.service-filters button){background:var(--action-bg)!important;color:var(--action-text)!important;border-color:var(--action-bg)!important;text-transform:uppercase!important}
body :is(.btn,.fireplace-motion,.motion-toggle,.gallery-controls button,.service-filters button):is(:hover,:focus-visible){background:var(--action-hover)!important;color:var(--action-hover-text)!important;border-color:var(--action-hover)!important}
body .service-filters button[aria-pressed="true"]{background:var(--action-hover)!important;color:var(--action-hover-text)!important;border-color:var(--action-hover-text)!important}
body :is(.btn,.fireplace-motion,.motion-toggle,.gallery-controls button,.service-filters button) :is(span,svg){color:inherit!important}
.home-page .home-services>a{background:var(--card-bg);color:var(--card-ink);border-color:var(--line)}
.home-page .home-services>a:is(:hover,:focus-visible),a.product-card:not(.editorial-card):is(:hover,:focus-visible){background:var(--card-hover)!important;color:var(--action-text)!important;border-color:var(--card-hover)!important}
.home-page .home-services>a :is(h3,p,.service-home-arrow),a.product-card:not(.editorial-card) :is(h3,.service-more){color:var(--card-ink)!important}
.home-page .home-services>a:is(:hover,:focus-visible) :is(h3,p,.service-home-arrow),a.product-card:not(.editorial-card):is(:hover,:focus-visible) :is(h3,.service-more){color:var(--action-text)!important}
:is(.home-services,.marquee-window,.product-card,.editorial-card,.project-card) :is(h3,strong),.service-more,.marquee-end>strong,.project-card small{text-transform:uppercase!important}
.service-more{color:inherit}
a.product-card,a.project-card{transition:background-color .3s ease,color .3s ease}
@media(prefers-reduced-motion:reduce){a.product-card,a.project-card{transition:none}}

/* Balanced intro gaps measured from the bottom of the fixed header. */
:is(.page-servizi,.page-realizzazioni,.page-faq,.page-contatti,.page-chi-siamo) main>.page-intro{padding-top:150px;padding-bottom:68px}
:is(.page-servizi,.page-realizzazioni,.page-faq,.page-contatti,.page-chi-siamo) main>.page-intro>:last-child{margin-bottom:0}
:root{--card-hover:#74452D}
.home-page .home-services>a:is(:hover,:focus-visible) .service-icon img{filter:brightness(0) invert(1);opacity:1}
body .cta-card .btn{background:var(--gold)!important;color:var(--dark-surface)!important;border-color:var(--gold)!important}
body .cta-card .btn:is(:hover,:focus-visible){background:var(--orange)!important;color:var(--dark-surface)!important;border-color:var(--orange)!important}
@media(max-width:760px){:is(.page-servizi,.page-realizzazioni,.page-faq,.page-contatti,.page-chi-siamo) main>.page-intro{padding-top:120px;padding-bottom:48px}}

/* Home cards share the solid CTA surface on interaction. */
:root{--card-hover:var(--dark-surface)}
.home-page .marquee-window>.marquee-end:is(:hover,:focus-visible){background:var(--dark-surface)!important;border-color:var(--dark-surface)!important;color:var(--cream)!important}
.home-page .marquee-window>.marquee-end:is(:hover,:focus-visible) :is(strong,span,svg){color:var(--cream)!important}
body .cta-card .btn:is(:hover,:focus-visible){background:var(--stone)!important;color:var(--dark-surface)!important;border-color:var(--stone)!important}
/* Shared column edges for Partnership, FAQ and contact form. */
@media(min-width:1060px){
 .home-page .partner-layout,.home-page .faq-home,.home-page .contact-form-section{grid-template-columns:repeat(2,minmax(0,1fr));column-gap:7%}
}
@media(max-width:1059px){.home-page .partner-layout,.home-page .faq-home{display:grid;grid-template-columns:1fr;gap:32px}.home-page .faq-home-intro{min-height:0;padding-right:0}.home-page .faq-home .faq-list{margin-top:0}}
/* Detail-page closing panels use the same outline as the FAQ contact box. */
.service-complete-card{border:1px solid var(--line);border-radius:var(--radius)}
@media(max-width:760px){
 .project-invitation{padding-bottom:0}
 main>.detail-layout:has(+ .service-complete-card){padding-bottom:var(--section-space)}
 main>.detail-layout:has(+ .service-complete-card) .steps li:last-child{padding-bottom:0}
 .service-complete-card{margin-bottom:0}
}
/* Cream menu label stays readable on both header surfaces. */
header .mega-intro .eyebrow{color:var(--cream)!important;background:var(--dark-surface);padding:8px 12px;border-radius:var(--radius)}
header.on-dark .mega-intro .eyebrow{background:transparent;padding-left:0}
@media(prefers-reduced-motion:no-preference){
 .mega-links>a{transition:background-color .22s ease,border-color .22s ease}
 .mega-links>a>div,.mega-links>a>span{transition:transform .22s ease}
 .mega-links>a:is(:hover,:focus-visible)>div{transform:translateX(4px)}
 .mega-links>a:is(:hover,:focus-visible)>span{transform:translateX(5px)}
 .nav-toggle{transition:color .2s ease}
 .nav-toggle:is(:hover,:focus-visible){color:var(--ember)}
 header.on-dark .nav-toggle:is(:hover,:focus-visible){color:var(--cream)}
}
.mega-links>a:is(:hover,:focus-visible){background:#74452D0a}
header.on-dark .mega-links>a:is(:hover,:focus-visible){background:#FAF6EF0a}
/* Gallery invitation blends into the section until interaction. */
.home-page .marquee-window>.marquee-end{background:var(--cream)}
.home-page .marquee-window>.marquee-end .arrow-right{color:var(--dark-surface)}

/* Mobile: show the entire firebox without stretching the room image. */
@media(max-width:760px){
 .home-page .fireplace-hero>.fireplace-scene{background:var(--cream)}
 .home-page .fireplace-hero .fireplace-photo,.home-page .fireplace-hero .fireplace-flame{position:absolute;inset:auto;left:-12.5%;top:var(--mobile-room-top,240px);width:125%;height:var(--mobile-room-height,275px);object-fit:cover;transform:none;mask-image:linear-gradient(to bottom,transparent,#000 28%,#000 82%,transparent);-webkit-mask-image:linear-gradient(to bottom,transparent,#000 28%,#000 82%,transparent)}
 .home-page .fireplace-hero>.fireplace-scene::after{display:none}
 .home-page .fireplace-hero .fireplace-motion{left:50%;right:auto;bottom:16px;transform:translateX(-50%);width:max-content;min-height:32px;padding:7px 11px;font-size:9px}
 .home-page .marquee-window{--invitation-width:152px}
 .home-page .marquee-window>.marquee-end{padding:18px 10px;border:0!important;border-radius:0!important;box-shadow:none}
 .home-page .marquee-end>strong{font-size:14px;line-height:1.35;letter-spacing:-.035em;word-break:normal;overflow-wrap:normal}
 .home-page .marquee-end .arrow-right{display:block;margin-top:10px}
 .home-page .marquee-viewport{mask-image:linear-gradient(90deg,#000 0%,#000 58%,#000c 72%,#0006 86%,transparent 100%);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 58%,#000c 72%,#0006 86%,transparent 100%)}
 .home-page .gallery-controls{justify-content:flex-start}
 .home-page .gallery-controls .motion-toggle{min-width:0;min-height:32px;height:auto;padding:7px 11px;font-size:9px;margin-right:auto}
}

/* Keep the original mobile firebox height; include both horizontal edges. */
.home-page .marquee-window>.marquee-end{border:0!important;box-shadow:none}
@media(max-width:760px){
 .home-page .fireplace-hero .fireplace-photo,.home-page .fireplace-hero .fireplace-flame{top:0;left:-12.5%;width:125%;height:100%;object-fit:fill;transform:translateY(var(--photo-shift,0px));mask-image:none;-webkit-mask-image:none}
 .home-page .fireplace-hero>.fireplace-scene::after{display:block;background:linear-gradient(180deg,#FAF6EF 0%,#FAF6EFf2 23%,#FAF6EFa6 35%,#FAF6EF20 46%,transparent 54%)}
}
/* Mobile gallery fades well before the sticky invitation edge. */
@media(max-width:760px){
 .home-page .marquee-viewport{mask-image:linear-gradient(90deg,#000 0%,#000 34%,#000e 46%,#000a 59%,#0005 72%,#0001 85%,transparent 94%);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 34%,#000e 46%,#000a 59%,#0005 72%,#0001 85%,transparent 94%)}
}
/* Desktop gallery softens before the fixed invitation, keeping text clear. */
@media(min-width:761px){
 .home-page .marquee-viewport{mask-image:linear-gradient(90deg,#000 0%,#000 75%,#000e 80%,#000a 85%,#0005 90%,#0001 95%,transparent 98%);-webkit-mask-image:linear-gradient(90deg,#000 0%,#000 75%,#000e 80%,#000a 85%,#0005 90%,#0001 95%,transparent 98%)}
}

/* The home opening scrolls normally; the footer sits behind its closing CTA. */
.home-page .home-opening>.fireplace-hero{position:relative;top:auto}
footer{isolation:isolate}
footer>.contact-banner{position:relative;z-index:2;background:var(--bg)}
footer>.footer-body{position:sticky;bottom:var(--footer-reveal-bottom,0px);z-index:1}
@media(prefers-reduced-motion:reduce){footer>.footer-body{position:relative;bottom:auto}}
/* Content enters once; geometry, sticky sections and hover transforms stay intact. */
@media(prefers-reduced-motion:no-preference){
 body .page-reveal{opacity:0!important;translate:0 18px!important;transition:opacity .7s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms),translate .7s cubic-bezier(.22,.61,.36,1) var(--reveal-delay,0ms),background-color .25s ease,color .25s ease,border-color .25s ease!important}
 body .page-reveal.page-reveal-visible{opacity:1!important;translate:0 0!important}
}
@media(prefers-reduced-motion:reduce){body .page-reveal{opacity:1!important;translate:none!important}}
@media print{body .page-reveal{opacity:1!important;translate:none!important;transition:none!important}}
/* Fade the decorative CTA lettering away from the main copy. */
.cta-card .cta-watermark{mask-image:linear-gradient(90deg,#0003 0%,#0005 18%,#0008 38%,#000b 62%,#000 90%);-webkit-mask-image:linear-gradient(90deg,#0003 0%,#0005 18%,#0008 38%,#000b 62%,#000 90%)}

/* Exact CTA color for the logo on the light header. */
header:not(.on-dark) .brand img{filter:url("/assets/logo-cta-filter.svg#cta")!important;opacity:1}
/* Refined interactions and a consistently light navigation surface. */
header .mega-footer{display:flex;justify-content:flex-end;grid-column:1/-1;margin-top:20px;padding-top:20px;border-top:1px solid var(--line)}
header .mega-links>a{border-radius:10px;padding-left:12px;padding-right:12px}
header .mega-links>a:is(:hover,:focus-visible){background:#74452D0d}
.mobile-form-trigger{display:none}
@media(prefers-reduced-motion:no-preference){
 body .finance-panel{transition:opacity .7s ease var(--reveal-delay,0ms),translate .7s ease var(--reveal-delay,0ms),background-color .45s ease,border-color .45s ease,box-shadow .45s ease!important}
 .finance-panel:is(:hover,:focus-within){background:#F7F0E6;border-color:#74452D66;box-shadow:0 10px 28px #2926210b;transform:none!important}
 body .home-services>a{transition:opacity .7s ease var(--reveal-delay,0ms),translate .7s ease var(--reveal-delay,0ms),background-color .6s ease,border-color .6s ease,color .6s ease!important}
 .home-services>a :is(h3,p,.service-home-arrow){transition:color .6s ease}
 .home-services>a .service-icon img{transition:filter .6s ease,opacity .6s ease}
 header .mega-links>a{transition:background-color .4s ease,border-color .4s ease}
 header .mega-links>a>div,header .mega-links>a>span{transition:transform .4s cubic-bezier(.22,.61,.36,1)}
}
@media(max-width:760px){header .mega-footer{margin-top:12px;padding-top:12px}header .mega-footer .btn{font-size:11px;min-height:44px}#navigation .mega-links>a{padding-left:10px;padding-right:10px;border-radius:8px}.mobile-form-trigger{display:flex;margin-top:18px;justify-content:center}}
/* Native dialog provides focus containment and Escape dismissal. */
#contact-dialog{width:min(760px,calc(100% - 32px));max-width:none;max-height:calc(100dvh - 32px);margin:auto;padding:36px;background:var(--cream);color:var(--ink);border:1px solid var(--line);border-radius:14px;overflow-y:auto;overscroll-behavior:contain}
#contact-dialog::backdrop{background:#29262199;backdrop-filter:blur(5px)}
#contact-dialog h2{font-size:30px;line-height:1.15;padding-right:36px;margin:0 0 14px}
#contact-dialog .contact-dialog-intro{font-size:15px;line-height:1.6;margin-bottom:24px;color:var(--muted)}
#contact-dialog .contact-form{padding:0;border:0;box-shadow:none}
.contact-dialog-close{position:absolute;right:14px;top:12px;width:40px;height:40px;border:0;border-radius:50%;background:var(--beige);color:var(--ink);font-size:28px;cursor:pointer}
.contact-dialog-close:focus-visible{outline:2px solid var(--ink);outline-offset:2px}
@media(prefers-reduced-motion:no-preference){#contact-dialog[open]{animation:contact-dialog-enter .25s ease-out}@keyframes contact-dialog-enter{from{opacity:0;transform:translateY(12px)}to{opacity:1;transform:translateY(0)}}}
@media(max-width:760px){#contact-dialog{padding:28px 20px}#contact-dialog h2{font-size:25px}#contact-dialog .contact-fields{gap:15px}#contact-dialog .contact-form-actions{gap:10px}}
/* Softer interaction for the fixed home gallery invitation. */
@media(prefers-reduced-motion:no-preference){
 .home-page .marquee-window>.marquee-end{transition:background-color .6s ease,color .6s ease,border-color .6s ease!important}
 .home-page .marquee-window>.marquee-end :is(strong,span,svg){transition:color .6s ease}
}
/* Geometric close icon: independent of the font's baseline. */
.contact-dialog-close{display:grid;place-items:center;padding:0;font-size:0;line-height:1}
.contact-dialog-close::before,.contact-dialog-close::after{content:"";position:absolute;left:50%;top:50%;width:14px;height:3px;border-radius:1px;background:currentColor;transform:translate(-50%,-50%) rotate(45deg)}
.contact-dialog-close::after{transform:translate(-50%,-50%) rotate(-45deg)}

/* Clear dropdown footer and centered mobile action. */
header .mega-footer{border-top:0}
@media(max-width:760px){header .mega-footer{justify-content:center}header .mega-footer .btn{margin-left:0;margin-right:0}}
/* Cream branding only while the header is transparent over a dark hero. */

header.at-page-top.over-dark-hero:not(:has([aria-expanded="true"])) .brand img{filter:url("/assets/logo-cta-filter.svg#cream")!important;opacity:1}
/* Matching full-width actions in the mobile navigation. */
@media(max-width:760px){
 header #navigation :is(.mega-footer .btn,.mobile-form-trigger){display:flex;width:100%;min-width:0;min-height:50px;padding:12px 22px;font-size:12px!important;line-height:24px;box-sizing:border-box;justify-content:center}
}

/* Informational panels stay still while their surface eases in and out. */
body :is(.service-complete-card,.faq-contact),body :is(.service-complete-card,.faq-contact):is(:hover,:focus-within){transform:none!important}
@media(prefers-reduced-motion:no-preference){
 body :is(.service-complete-card,.faq-contact){transition:opacity .7s ease var(--reveal-delay,0ms),translate .7s ease var(--reveal-delay,0ms),background-color .5s ease,border-color .5s ease,box-shadow .5s ease!important}
}
@media(hover:hover){body :is(.service-complete-card,.faq-contact):hover{background:#F7F0E6;border-color:#74452D66;box-shadow:0 10px 28px #2926210b}}
body :is(.service-complete-card,.faq-contact):focus-within{background:#F7F0E6;border-color:#74452D66;box-shadow:0 10px 28px #2926210b}

/* Two FAQ categories per row, with headings above their questions. */
.page-faq .faq-index .faq-groups{margin:40px 0 0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:48px;align-items:start}
.page-faq .faq-index .faq-group{display:block;min-width:0;margin:0}
.page-faq .faq-group h2{font-size:26px;line-height:1.2;margin:0 0 26px;padding-top:0;overflow-wrap:anywhere}
.page-faq .faq-list summary{font-size:17px;line-height:1.5;padding:24px 0;gap:16px}
.page-faq .faq-list .faq-number{flex:0 0 22px;font-size:12px}
.page-faq .faq-list .plus{flex-shrink:0}
.page-faq .faq-list details>p{font-size:16px;line-height:1.75;padding:0 38px 24px}
.page-faq .faq-contact{margin-top:var(--section-space);padding:36px 40px;display:grid;grid-template-columns:minmax(0,1fr) auto;column-gap:40px;align-items:center}
.page-faq .faq-contact h2{font-size:32px;line-height:1.15;margin:0 0 16px}
.page-faq .faq-contact p{margin:0;max-width:620px}
.page-faq .faq-contact>.btn{grid-column:2;grid-row:1/3}
@media(max-width:760px){
 .page-faq .faq-index .faq-groups{grid-template-columns:1fr;margin-top:32px;gap:36px}
 .page-faq .faq-index .faq-group{grid-template-columns:1fr;gap:18px}
 .page-faq .faq-group h2{font-size:24px;padding-top:0}
 .page-faq .faq-list summary{font-size:16px;padding:20px 0;gap:12px}
 .page-faq .faq-list details>p{font-size:15px;padding:0 0 20px 34px}
 .page-faq .faq-contact{display:block;padding:28px 24px}
 .page-faq .faq-contact h2{font-size:28px}
 .page-faq .faq-contact>.btn{margin-top:24px}
}

/* The complete desktop enquiry form fits typical laptop viewports. */
@media(min-width:761px){
 #contact-dialog{width:min(960px,calc(100% - 40px));padding:24px 28px}
 #contact-dialog h2{font-size:26px;margin-bottom:8px}
 #contact-dialog .contact-dialog-intro{font-size:14px;line-height:1.5;margin:0 0 12px}
 #contact-dialog .form-help{font-size:12px;margin-bottom:14px;line-height:1.5}
 #contact-dialog .contact-fields{grid-template-columns:repeat(3,minmax(0,1fr));gap:12px 18px}
 #contact-dialog .contact-field{gap:5px}
 #contact-dialog .contact-field label{font-size:13px}
 #contact-dialog .contact-field:has(select){grid-column:span 2}
 #contact-dialog .contact-field :is(input,select,textarea){min-height:42px;padding:9px 12px;font-size:15px;line-height:1.4}
 #contact-dialog .contact-field textarea{height:80px;min-height:80px}
 #contact-dialog .message-preview{margin-top:12px}
 #contact-dialog .message-preview summary{font-size:13px;padding:10px 0}
 #contact-dialog .contact-form-actions{margin-top:12px;gap:14px}
 #contact-dialog .contact-form-actions .btn{min-height:44px;padding:10px 20px}
 #contact-dialog .form-privacy{font-size:11px;line-height:1.4;margin:12px 0 0}
 #contact-dialog .form-status:not(:empty){margin:10px 0 0}
}
.page-faq .faq-group h2{font-size:26px!important;letter-spacing:-.025em;overflow-wrap:normal}
.page-faq .faq-contact h2{font-size:32px!important}
#contact-dialog h2{font-size:26px!important}

@media(max-width:760px){.page-faq .faq-group h2{font-size:24px!important}.page-faq .faq-contact h2{font-size:28px!important}#contact-dialog h2{font-size:25px!important}}

.message-preview{overflow:hidden}
@media(prefers-reduced-motion:no-preference){.message-preview .plus{transition:transform .5s cubic-bezier(.22,1,.36,1)}}
/* Gentle hover for the About image and supporting cards, alongside scroll reveal. */
@media(hover:hover) and (pointer:fine) and (prefers-reduced-motion:no-preference){
 body :is(.about-image,.about-strength){transition:opacity .7s ease var(--reveal-delay,0ms),translate .7s ease var(--reveal-delay,0ms),transform .85s cubic-bezier(.22,1,.36,1),box-shadow .85s ease!important}
 body :is(.about-image,.about-strength):hover{transform:translateY(-2px)!important}
 body .about-image:hover{box-shadow:0 12px 28px #2926210d}
}
/* Project cards match Services: the surface stays still and the image zooms gently. */
body .work-grid .editorial-card,body .work-grid .editorial-card:is(:hover,:focus-visible){transform:none!important}
.work-grid .editorial-card .editorial-backdrop{transform:scale(1.02);transition:transform .7s ease,filter .7s ease}
.work-grid .editorial-card:is(:hover,:focus-visible) .editorial-backdrop{transform:scale(1.065)}
@media(prefers-reduced-motion:reduce){
 .work-grid .editorial-card .editorial-backdrop{transition:none!important}
 .work-grid .editorial-card:is(:hover,:focus-visible) .editorial-backdrop{transform:scale(1.02)}
}
/* Equal breathing room on both sides of the introductory divider. */
:is(.page-servizi,.page-realizzazioni,.page-faq,.page-chi-siamo){--intro-divider-gap:68px}
:is(.page-servizi,.page-realizzazioni,.page-faq,.page-chi-siamo) main>.page-intro{padding-bottom:var(--intro-divider-gap)}
:is(.page-servizi,.page-realizzazioni,.page-faq,.page-chi-siamo) main>.page-intro>:last-child{margin-bottom:0}
:is(.page-servizi,.page-realizzazioni,.page-faq,.page-chi-siamo) main>.page-intro+.section{padding-top:var(--intro-divider-gap)}
@media(max-width:760px){:is(.page-servizi,.page-realizzazioni,.page-faq,.page-chi-siamo){--intro-divider-gap:48px}}

/* Category changes use only the grid fade, without staggered card entrances. */
body .filter-fade-only .page-reveal{opacity:1!important;translate:none!important}
/* Animate arrow movement together with its color, in both hover directions. */
.home-page .home-services>a .service-home-arrow{transform:translateX(0);transition:transform .6s cubic-bezier(.22,1,.36,1),color .6s ease}
.home-page .home-services>a:is(:hover,:focus-visible) .service-home-arrow{transform:translateX(3px)}
@media(prefers-reduced-motion:reduce){.home-page .home-services>a .service-home-arrow{transition:none!important;transform:none!important}}
/* One shared surface and restrained hover for all Partnership cards. */
.partnership-section .brand-list{border-top:0;gap:24px}
body .partnership-section :is(.brand-list>span,.finance-panel){background:var(--cream);border:1px solid var(--line);border-radius:5px;box-shadow:0 8px 24px #29262106;transform:none!important}
@media(prefers-reduced-motion:no-preference){
 body .partnership-section :is(.brand-list>span,.finance-panel){transition:opacity .7s ease var(--reveal-delay,0ms),translate .7s ease var(--reveal-delay,0ms),background-color .55s ease,border-color .55s ease,box-shadow .55s ease!important}
}
@media(hover:hover) and (pointer:fine){
 body .partnership-section :is(.brand-list>span,.finance-panel):hover{background:#F7F0E6;border-color:#74452D66;box-shadow:0 10px 28px #2926210b;transform:none!important}
}
body .partnership-section :is(.brand-list>span,.finance-panel):focus-within{background:#F7F0E6;border-color:#74452D66;box-shadow:0 10px 28px #2926210b;transform:none!important}
@media(max-width:760px){.partnership-section .brand-list{gap:16px}}
@media(prefers-reduced-motion:reduce){body .partnership-section :is(.brand-list>span,.finance-panel){transition:none!important}}
/* Matching Partnership columns: headings outside equally tall card areas. */
.partnership-section .partner-layout{grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch}
.partnership-section .partner-layout>div{display:flex;flex-direction:column;min-width:0}
.partnership-section .partner-layout>div>h3{margin:0 0 25px}
.partnership-section .finance-panel{flex:1;display:flex;flex-direction:column;justify-content:space-between;gap:20px}
.partnership-section .finance-panel>p,.partnership-section .finance-logos{margin:0}
.partnership-section .finance-panel>.btn{align-self:flex-start}
.partnership-section .finance-logos{align-items:flex-start;gap:28px}
.partnership-section .finance-logos img{width:min(220px,calc(50% - 14px));max-width:calc(50% - 14px);height:auto;object-fit:contain}
@media(max-width:1059px){.partnership-section .partner-layout{grid-template-columns:1fr;gap:32px}}
/* The remaining gallery invitation aligns to the section's right edge. */
.home-page .marquee-window>.marquee-end{text-align:right;align-items:flex-end;padding-right:0}
.home-page .marquee-end>strong{width:100%}
@media(max-width:760px){.home-page .marquee-window>.marquee-end{padding-right:10px}.home-page .marquee-end .arrow-right{margin-left:auto}}
/* A compact text link replaces the gallery invitation card. */
.home-page .marquee-window>div.marquee-end,.home-page .marquee-window>div.marquee-end:is(:hover,:focus-visible){background:transparent!important;border:0!important;box-shadow:none!important}
.home-page .marquee-end .gallery-invitation{display:inline-block;max-width:100%;color:var(--dark-surface)!important;text-align:right;text-decoration:underline;text-decoration-color:#29262155;text-underline-offset:6px;text-decoration-thickness:1px;transition:text-decoration-color .4s ease}
.home-page .marquee-end .gallery-invitation strong{font-size:27px;line-height:1.15}
.home-page .marquee-window>.marquee-end .gallery-invitation :is(strong,svg){color:var(--dark-surface)!important}
.home-page .marquee-end .gallery-invitation:is(:hover,:focus-visible){text-decoration-color:var(--dark-surface)}
.home-page .marquee-end .gallery-invitation:focus-visible{outline:2px solid var(--dark-surface);outline-offset:6px}
@media(max-width:760px){.home-page .marquee-end .gallery-invitation strong{font-size:14px;line-height:1.35;letter-spacing:-.035em;word-break:normal;overflow-wrap:normal}}
@media(prefers-reduced-motion:reduce){.home-page .marquee-end .gallery-invitation{transition:none}}
/* Keep the invitation as plain text, comfortably inset and left-aligned. */
.home-page .marquee-window>div.marquee-end{text-align:left;align-items:flex-start;padding:30px}
.home-page .marquee-end .gallery-invitation{text-align:left;text-decoration:none;line-height:1.25}
.home-page .marquee-end .gallery-invitation strong{font-size:24px;line-height:1.25}
.home-page .marquee-end .gallery-invitation .arrow-right{display:block;margin:14px 0 0;transition:transform .5s ease}
.home-page .marquee-end .gallery-invitation:is(:hover,:focus-visible) .arrow-right{transform:translateX(3px)}
@media(max-width:760px){
 .home-page .marquee-window>div.marquee-end{padding:18px 10px}
 .home-page .marquee-end .gallery-invitation strong{font-size:14px;line-height:1.35}
 .home-page .marquee-end .gallery-invitation .arrow-right{margin:10px 0 0}
}
@media(prefers-reduced-motion:reduce){.home-page .marquee-end .gallery-invitation .arrow-right{transition:none;transform:none}}
/* Right-align the link block with the section margin; keep its text left-aligned. */
.home-page .marquee-window>div.marquee-end{align-items:flex-end;padding-right:0}
@media(max-width:760px){.home-page .marquee-window>div.marquee-end{right:6%;padding-left:0;padding-right:0}}
/* Center and evenly space the category controls on all three index pages. */
body :is(.service-index,.work-index,.faq-index)>.service-filters.service-filters{display:flex;justify-content:center;align-items:center;flex-wrap:wrap;gap:20px 44px;margin:0 auto 40px;width:100%}
body :is(.service-index,.work-index,.faq-index)>.service-filters.service-filters>button{min-height:46px;padding:12px 24px;text-align:center}
body .faq-index>.filter-status{text-align:center}
.faq-home>.faq-contact{grid-column:1/-1;text-align:center;margin-top:0;padding-top:40px;border-top:1px solid var(--line)}
.faq-home>.faq-contact h2{font-size:32px;margin-bottom:20px}
.faq-home>.faq-contact p{margin:0 auto 24px;max-width:580px}
@media(max-width:760px){body :is(.service-index,.work-index,.faq-index)>.service-filters.service-filters{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin-bottom:28px}body :is(.service-index,.work-index,.faq-index)>.service-filters.service-filters>button{width:100%;padding:12px 8px}.faq-home>.faq-contact{margin-top:36px;padding-top:32px}.faq-home>.faq-contact h2{font-size:28px}}
/* One compact header action size; the shorter menu label fits the same footprint. */
@media(min-width:761px){
 body header :is(.header-contact,.mega-footer .btn){width:190px;height:48px;min-height:48px;padding:11px 18px;box-sizing:border-box;font-size:12px!important;line-height:24px;gap:16px;justify-content:space-between;white-space:nowrap}
}
/* Clear left-aligned hierarchy with generous spacing and compact, consistent controls. */
body :is(.service-index,.work-index,.faq-index)>.service-filters.category-hierarchy{display:flex;flex-direction:column;align-items:flex-start;justify-content:flex-start;gap:0;margin:12px 0 56px;text-align:left}
body .category-hierarchy>button{width:auto!important;min-width:0}
body .category-hierarchy .category-children{margin:30px 0 0;padding:0 0 0 24px;border-left:1px solid #b5a18b;max-width:100%;box-sizing:border-box}
body .category-hierarchy .category-label{display:block;font-size:11px;line-height:18px;letter-spacing:.06em;text-transform:uppercase;color:var(--muted);margin:0 0 20px}
body .category-hierarchy .category-options{display:flex;flex-wrap:wrap;justify-content:flex-start;gap:16px}
body .category-hierarchy.category-hierarchy.category-hierarchy button{width:auto;min-height:44px;padding:11px 20px;font-size:12px;line-height:20px;letter-spacing:.025em;border:1px solid #b5a18b!important;background:transparent!important;color:var(--ink)!important;border-radius:var(--radius);text-align:left;white-space:normal}
body .category-hierarchy.category-hierarchy.category-hierarchy>button{min-height:48px;padding:13px 24px}
body .category-hierarchy.category-hierarchy.category-hierarchy button[aria-pressed="true"]{background:var(--action-bg)!important;border-color:var(--action-bg)!important;color:var(--action-text)!important}
body .category-hierarchy.category-hierarchy.category-hierarchy button:hover:not([aria-pressed="true"]){background:var(--beige)!important;border-color:var(--ink)!important}
body .category-hierarchy button:focus-visible{outline:2px solid var(--accent);outline-offset:4px}
body .faq-index>.filter-status{text-align:left}
@media(max-width:760px){
 body :is(.service-index,.work-index,.faq-index)>.service-filters.category-hierarchy{margin-top:8px;margin-bottom:40px}
 body .category-hierarchy .category-children{margin-top:26px;padding-left:20px;width:100%}
 body .category-hierarchy .category-label{margin-bottom:18px}
 body .category-hierarchy .category-options{gap:12px}
 body .category-hierarchy.category-hierarchy.category-hierarchy button{padding:11px 16px}
 body .category-hierarchy.category-hierarchy.category-hierarchy>button{padding:13px 22px}
}
/* One shared hover palette, including every nested arrow. Layered important rules
   take precedence over the older page-specific important declarations. */
@layer shared-action-interactions{
 body :is(.btn,.fireplace-motion,.motion-toggle,.gallery-controls button,.service-filters button):is(:hover,:focus-visible):not(:disabled){background:var(--hover-bg,var(--action-hover))!important;border-color:var(--hover-border,var(--hover-bg,var(--action-hover)))!important;color:var(--hover-text,var(--action-hover-text))!important}
 body :is(.btn,.fireplace-motion,.motion-toggle,.gallery-controls button,.service-filters button):is(:hover,:focus-visible):not(:disabled) :is(span,svg,path){color:inherit!important}
 body :is(.btn,.fireplace-motion,.motion-toggle,.gallery-controls button,.service-filters button):is(:hover,:focus-visible):not(:disabled) svg:not([fill="none"]){fill:currentColor!important}
 body :is(.btn,.fireplace-motion,.motion-toggle,.gallery-controls button,.service-filters button):is(:hover,:focus-visible):not(:disabled) [stroke]:not([stroke="none"]){stroke:currentColor!important}
}
/* The same editorial FAQ invitation on the home and FAQ page. */
body :is(.faq-home,.faq-index)>.faq-contact{display:grid;grid-template-columns:minmax(0,1fr) 190px;column-gap:40px;align-items:center;text-align:left;padding:36px 22px;margin-top:56px}
body .faq-home>.faq-contact{grid-column:1/-1;margin-top:0}
body :is(.faq-home,.faq-index)>.faq-contact h2{font-size:32px!important;line-height:1.15;margin:0 0 16px;text-align:left}
body :is(.faq-home,.faq-index)>.faq-contact p{margin:0;max-width:620px;text-align:left}
body :is(.faq-home,.faq-index)>.faq-contact>.btn{grid-column:2;grid-row:1/3;justify-self:end;width:190px;height:48px;min-height:48px;max-width:100%;padding:11px 16px;box-sizing:border-box;font-size:12px;line-height:24px;gap:12px;justify-content:space-between;white-space:nowrap;margin:0}
@media(max-width:760px){
 body :is(.faq-home,.faq-index)>.faq-contact{display:block;padding:28px 20px;margin-top:36px}
 body :is(.faq-home,.faq-index)>.faq-contact h2{font-size:28px!important}
 body :is(.faq-home,.faq-index)>.faq-contact>.btn{display:flex;margin:24px 0 0 auto}
}

/* Gentle, symmetric feedback for both animation controls. */
@media(prefers-reduced-motion:no-preference){
 body .fireplace-motion,body .motion-toggle{transition:background-color .7s cubic-bezier(.22,.61,.36,1),color .7s cubic-bezier(.22,.61,.36,1),border-color .7s cubic-bezier(.22,.61,.36,1),box-shadow .7s cubic-bezier(.22,.61,.36,1),opacity .7s ease,translate .7s ease!important}
}
@media(prefers-reduced-motion:reduce){body .fireplace-motion,body .motion-toggle{transition:none!important}}
