/* Favorite graphite composition, with warm accent colors sampled from the original logo. */
:root{
 --ink:oklch(.96 .006 105);--muted:oklch(.79 .012 235);--paper:oklch(.186 .008 230);--surface:oklch(.239 .009 240);--soft:var(--surface);
 --navy:var(--paper);--action:oklch(.907086 .184477 99.2060);--action-hover:oklch(.784936 .162046 81.2114);--on-action:var(--paper);--line:oklch(1 0 0 / .16);--focus:var(--action);--radius:.65rem;--outer:oklch(.93 .005 90);
 --mi-backdrop-color:oklch(0 0 0 / .7);--mi-backdrop-blur:0px;--mi-drawer-button-shadow:none;
 font-family:'Manrope',sans-serif;font-size:100%;color:var(--ink);background:var(--outer);-webkit-font-smoothing:antialiased;-moz-osx-font-smoothing:grayscale;
}
*{box-sizing:border-box}body{margin:0;padding-block:1rem 2rem}html{--header-height:7rem;--header-top:0px;scroll-padding-block-start:calc(var(--header-height) + var(--header-top) + 1rem);scroll-behavior:smooth}img{max-width:100%;display:block}a{color:inherit;text-decoration:none}button,input,textarea,select{font:inherit}button{cursor:pointer}
p,li,figcaption{overflow-wrap:anywhere;text-wrap:pretty}p{margin:0 0 1.2rem;line-height:1.7;color:var(--muted)}h1,h2,h3{margin:0;color:var(--ink);text-wrap:balance;overflow-wrap:anywhere;letter-spacing:-.045em}
h1{font-size:clamp(3rem,2.4rem + 3vw,5.7rem);line-height:1.04;font-weight:700}h2{font-size:clamp(2rem,1.55rem + 1.4vw,3.1rem);line-height:1.12;font-weight:700}h3{font-size:1.35rem;line-height:1.35;letter-spacing:-.025em;font-weight:700}
:focus-visible{outline:3px solid var(--focus);outline-offset:4px}.site-header,main,.site-footer{width:min(90rem,calc(100% - 4rem));margin-inline:auto;background:var(--paper)}.shell{width:min(80rem,calc(100% - 8rem));margin-inline:auto}.section{padding-block:4.5rem}.lead{font-size:1.1rem;line-height:1.7}.aa-icon{width:1.3rem;height:1.3rem;flex:none}.skip-link{position:fixed;left:1rem;top:-8rem;z-index:10000;padding:1rem;border-radius:var(--radius);background:var(--action);color:var(--on-action)}.skip-link:focus{top:1rem}
.site-header{--header-radius:1.75rem;position:sticky;top:0;z-index:30;color:var(--ink);border-radius:var(--header-radius) var(--header-radius) 0 0}.header-inner{display:flex;align-items:center;gap:1.5rem;min-height:7rem;container-name:header;container-type:inline-size;border-bottom:1px solid var(--line)}.brand{display:block;width:10.5rem;min-width:0;flex-shrink:1}.brand img{width:100%;height:auto}.desktop-nav{display:flex;align-items:center;gap:.1rem;margin-inline:auto}.desktop-nav a{min-height:2.75rem;display:flex;align-items:center;padding:.6rem .7rem;font-size:.84rem;font-weight:500;border-radius:.35rem;transition:background-color 130ms,color 130ms}.desktop-nav a:hover{background:var(--surface);color:var(--action)}.header-contact{display:flex;flex-direction:column;align-items:flex-end;flex:none}.header-contact a{font-size:1rem;font-weight:700;font-variant-numeric:tabular-nums;min-height:2.75rem;display:flex;align-items:center}.header-contact span{font-size:.73rem;color:var(--muted)}.header-phone,.menu-toggle{display:none;flex-shrink:0}.icon-link{display:none;align-items:center;justify-content:center;min-width:max(44px,2.75rem);min-height:max(44px,2.75rem);border-radius:.5rem;color:var(--ink);background:var(--surface)}
.site-menu{--mi-drawer-surface:var(--paper);--mi-drawer-text:var(--ink);--mi-drawer-muted:var(--muted);--mi-drawer-accent:var(--action);--mi-drawer-font:'Manrope',sans-serif;--mi-drawer-width:25rem;--mi-drawer-padding:1.4rem;--mi-drawer-gap:1.5rem;--mi-drawer-radius:0px;--mi-drawer-button-radius:.5rem;--mi-drawer-button-surface:var(--surface);--mi-drawer-button-text:var(--ink);--mi-drawer-button-border:transparent}.site-menu .mi-drawer__surface{box-shadow:none}.mi-drawer-button:hover{--mi-drawer-button-surface:oklch(.29 .009 240)}.icon-link{transition:background-color 130ms}.icon-link:hover{background:oklch(.29 .009 240)}.mi-drawer__header h2{font-size:1.6rem}.menu-toggle{--mi-drawer-button-surface:var(--surface);--mi-drawer-button-text:var(--ink);--mi-drawer-button-radius:.5rem;--mi-drawer-button-border:transparent}.mobile-nav{display:flex;flex-direction:column}.mobile-nav a{padding:.85rem .2rem;min-height:2.75rem;border-bottom:1px solid var(--line);font-size:1.05rem;font-weight:600}.menu-contact{display:grid;gap:.8rem;margin-top:1.4rem;border-top:1px solid var(--line);padding-top:1.4rem}.menu-contact a{font-size:1.15rem;min-height:2.75rem;display:flex;align-items:center;font-weight:700}.menu-contact span{font-size:.9rem;color:var(--muted);line-height:1.6}.mi-drawer__footer>.button{display:flex}.nojs-nav{display:flex;flex-wrap:wrap;gap:1rem;padding-block:1rem}
.button{display:inline-flex;flex-wrap:wrap;min-width:0;overflow-wrap:anywhere;align-items:center;justify-content:center;gap:.6rem;min-height:max(44px,3.25rem);max-width:100%;padding:.85rem 1.3rem;border-radius:.55rem;background:var(--action);color:var(--on-action);font-size:.93rem;line-height:1.5;font-weight:700;text-align:center;border:0;transition:scale 150ms ease-out,background-color 130ms,color 130ms}.button:hover{background:var(--action-hover)}.button:active{scale:.96}.button-light{background:var(--action);color:var(--on-action)}.button-light:hover{background:var(--action-hover)}.button-outline,.button-quiet{background:var(--surface);color:var(--ink)}.button-outline:hover,.button-quiet:hover{background:oklch(.29 .009 240)}.text-link{display:inline-flex;align-items:center;gap:.65rem;min-height:2.75rem;max-width:100%;min-width:0;overflow-wrap:anywhere;font-size:.9rem;font-weight:600;line-height:1.5;color:var(--action);text-decoration:underline;text-underline-offset:.3em;text-decoration-color:transparent;transition:color 130ms,text-decoration-color 130ms}.text-link:hover{text-decoration-color:currentColor}.text-link .aa-icon{width:1.1rem;height:1.1rem}.work-photo{margin:0;min-width:0}.photo-open{position:relative;display:block;overflow:hidden;background:var(--surface);isolation:isolate;min-width:0;border-radius:var(--radius)}.photo-open img{width:100%;height:100%;object-fit:cover;object-position:center;outline:1px solid oklch(1 0 0 / .1);outline-offset:-1px}.work-photo figcaption{font-size:.8rem;line-height:1.5;padding:.85rem 0 0;color:var(--muted)}.photo-open--contain{display:flex;align-items:center;justify-content:center}.work-grid .photo-open--contain img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}
.photo-badge{display:flex;align-items:center;justify-content:center;position:absolute;right:.8rem;bottom:.8rem;width:2.7rem;height:2.7rem;border-radius:.5rem;background:var(--paper);color:var(--ink);opacity:0;scale:.25;filter:blur(4px);transition:opacity 300ms cubic-bezier(.2,0,0,1),scale 300ms cubic-bezier(.2,0,0,1),filter 300ms cubic-bezier(.2,0,0,1);pointer-events:none}.photo-open:focus-visible{outline-offset:-4px;outline-color:var(--action);z-index:1}.photo-open:focus-visible .photo-badge{opacity:1;scale:1;filter:blur(0)}@media(hover:hover){.photo-open:hover .photo-badge{opacity:1;scale:1;filter:blur(0)}}
.section-heading{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(0,1fr);gap:3.5rem;align-items:end;margin-bottom:2.5rem}.section-heading h2{max-width:36rem}.section-heading p{margin:.8rem 0 0;font-size:.94rem;max-width:34rem}.section-heading>p{margin:0}.gallery-hint{display:flex;align-items:center;gap:.55rem;font-size:.78rem!important;line-height:1.5}.gallery-hint .aa-icon{width:1rem;height:1rem}.services>.shell,.works-section>.shell,.about-section>.shell,.process-section>.shell,.contacts>.shell,.faq-section>.shell{border-top:1px solid var(--line);padding-top:3rem}.services,.works-section,.about-section,.process-section,.contacts,.faq-section{padding-top:0}
.service-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem;container-name:services;container-type:inline-size}.service-card{display:flex;flex-direction:column;min-width:0;background:var(--surface);border-radius:.8rem;overflow:hidden}.service-photo{position:relative;height:13rem;background:var(--surface);overflow:hidden;flex:none}.service-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;outline:1px solid oklch(1 0 0 / .1);outline-offset:-1px}.service-card:first-child .service-photo img{object-fit:contain}.service-copy{min-width:0;display:flex;flex:1;flex-direction:column;align-items:flex-start;padding:1.5rem}.service-copy h3{font-size:1.35rem}.service-copy p{font-size:.9rem;line-height:1.7;margin:.85rem 0 .9rem}.service-copy .text-link{margin-top:auto;font-size:.86rem}
.work-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2rem 1.5rem;container-name:works;container-type:inline-size}.work-grid .photo-open{aspect-ratio:4/3}.work-grid figcaption{font-size:.83rem}
.material-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem;align-items:stretch}.material-photo{position:relative;min-height:25rem;overflow:hidden;border-radius:var(--radius)}.material-photo img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;outline:1px solid oklch(1 0 0 / .1);outline-offset:-1px}.material-copy{min-width:0;padding-block:.5rem}.material-copy h2{margin-bottom:1.4rem;max-width:27rem}.material-copy p{font-size:1rem;max-width:32rem}.material-tags{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 1rem;list-style:none;padding:0;margin:1.5rem 0;border-top:1px solid var(--line)}.material-tags li{padding:.85rem 0;font-size:.88rem;border-bottom:1px solid var(--line);color:var(--ink)}.material-copy .small-note{font-size:.85rem}
.about-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:4rem}.about-layout h2{max-width:27rem}.about-layout .lead{font-size:1.1rem;max-width:42rem}.check-list{list-style:none;padding:0;margin:1.6rem 0 0;display:grid;gap:.9rem}.check-list li{display:flex;align-items:flex-start;gap:.65rem;font-size:.93rem;line-height:1.7;color:var(--ink)}.check-list .aa-icon{width:1.1rem;height:1.1rem;color:var(--action);margin-top:.2rem}
.process-list{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:2.5rem;list-style:none;padding:0;margin:2.5rem 0 3rem}.process-list li{min-width:0}.step-number{display:block;font-size:.9rem;color:var(--action);font-weight:700;font-variant-numeric:tabular-nums;margin-bottom:1.2rem}.process-list h3{font-size:1.3rem;margin-bottom:.8rem}.process-list p{font-size:.93rem;line-height:1.7;margin:0;max-width:26rem}.cost-box{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.7fr) auto;gap:2rem;align-items:center;background:var(--surface);padding:2rem;border-radius:.8rem}.cost-box h3{font-size:1.65rem;max-width:14rem}.cost-box p{font-size:.9rem;line-height:1.7;margin:0}.cost-box .button{font-size:.86rem}
.contact-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:4rem}.contact-layout>div{min-width:0}.contact-layout h2{margin-bottom:1.4rem;max-width:30rem}.contact-layout .lead{font-size:1rem;max-width:32rem}.contact-phones{display:grid;gap:.35rem;margin-top:1.7rem}.contact-phones a{display:inline-flex;align-items:center;gap:.8rem;min-height:3rem;width:fit-content;max-width:100%;overflow-wrap:anywhere;font-size:clamp(1.3rem,1rem + .6vw,1.6rem);font-weight:700;font-variant-numeric:tabular-nums;letter-spacing:-.02em}.contact-phones .aa-icon{color:var(--action);width:1.25rem;height:1.25rem}.contact-email{display:inline-flex;align-items:center;gap:.8rem;min-height:2.75rem;margin-top:.5rem;max-width:100%;overflow-wrap:anywhere;font-size:1rem;color:var(--action)}.visit-card{padding-left:3rem;border-left:1px solid var(--line);display:flex;align-items:flex-start;flex-direction:column}.visit-card>.aa-icon{width:1.8rem;height:1.8rem;color:var(--action);margin-bottom:1.5rem}.visit-card h3{font-size:1.8rem;max-width:25rem;margin-bottom:1rem}.visit-card p{font-size:.95rem;max-width:28rem}.visit-card .button{margin-top:auto}
.site-footer{border-radius:0 0 1.75rem 1.75rem;padding-bottom:2rem}.footer-inner{display:flex;align-items:center;gap:2.5rem;border-top:1px solid var(--line);padding-top:2rem}.footer-brand{width:9rem;max-width:100%;flex:none}.footer-brand img{width:100%;height:auto}.footer-inner p{font-size:.8rem;line-height:1.6;color:var(--muted);margin:0}.footer-inner nav{display:flex;flex-wrap:wrap;gap:1.5rem;margin-left:auto;font-size:.83rem}.footer-inner nav a{min-height:2.75rem;display:flex;align-items:center}
.breadcrumbs{display:flex;flex-wrap:wrap;gap:.7rem;font-size:.76rem;line-height:1.7;color:var(--muted);margin-bottom:2.2rem}.breadcrumbs a{text-decoration:underline;text-underline-offset:.25em}.intro-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:4rem;margin-bottom:2rem}.intro-layout h2{max-width:28rem}.intro-layout .lead{font-size:1rem;max-width:40rem;margin:0}.option-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1.5rem;margin-top:2.5rem}.option-grid article{min-width:0;border-top:1px solid var(--line);padding-top:1.4rem}.option-symbol{display:block;margin-bottom:1.3rem;color:var(--action)}.option-grid h3{font-size:1.18rem}.option-grid p{font-size:.9rem;margin:.7rem 0 0}.service-work-grid{grid-template-columns:repeat(4,minmax(0,1fr))}.service-work-grid .photo-open{aspect-ratio:3/4}
.faq-layout h2{max-width:35rem;margin-bottom:2.3rem}.mi-accordion{--mi-accordion-text:var(--ink);--mi-accordion-muted:var(--muted);--mi-accordion-hover:oklch(.28 .009 240);--mi-accordion-divider:transparent;--mi-accordion-focus:var(--focus);--mi-accordion-padding-inline:1.5rem;--mi-accordion-padding-block:1.3rem;--mi-accordion-font-size:1.07rem;--mi-accordion-radius:.65rem;min-width:0;display:grid;gap:.55rem}.mi-accordion>.mi-accordion__item{border:0;border-radius:.65rem;background:var(--surface)}.mi-accordion__question{font-weight:700}.mi-accordion__icon{color:var(--action)}.mi-accordion__content p{font-size:1rem;max-width:58rem}
.pswp--atelier{--pswp-icon-color:oklch(1 0 0);--pswp-icon-color-secondary:oklch(0 0 0)}.pswp--atelier .pswp__button--close,.pswp--atelier .pswp__button--zoom{background:oklch(1 0 0 / .08);border-radius:.5rem;margin:.4rem .4rem 0 0}.pswp--atelier .pswp__button:focus-visible{outline-color:var(--action);outline-offset:-4px}.prose{max-width:52rem}.prose h1{margin-bottom:2rem}
@media(min-width:70rem){body.admin-bar .site-header{top:32px}}
@media(max-width:79.99rem){.shell{width:calc(100% - 5rem)}.header-inner{gap:1rem}.desktop-nav a{padding-inline:.5rem}.section-heading{gap:2rem}.cost-box{grid-template-columns:minmax(0,1fr) minmax(0,2fr)}.cost-box .button{grid-column:2;justify-self:start}}
@media(max-width:69.99rem){.site-header,main,.site-footer{width:calc(100% - 2rem)}.desktop-nav,.header-contact{display:none}.header-phone,.menu-toggle{display:inline-flex}.header-phone{margin-left:auto}.header-inner{min-height:5.4rem;gap:.7rem}.brand{width:10rem}.section{padding-bottom:3.5rem}.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-heading{align-items:start}.material-layout,.contact-layout,.about-layout,.intro-layout{gap:2.5rem}.material-photo{min-height:24rem}.option-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.footer-inner{gap:1.5rem}}
@media(max-width:54.99rem){.section-heading,.about-layout,.intro-layout{grid-template-columns:minmax(0,1fr);gap:1.5rem}.section-heading>p br{display:none}.work-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.process-list{gap:1.5rem}.process-list h3{font-size:1.18rem}}
@media(max-width:47.99rem){body{padding-block:.25rem}.site-header,main,.site-footer{width:calc(100% - .5rem)}.site-header{--header-radius:1.25rem;border-radius:var(--header-radius) var(--header-radius) 0 0}.site-footer{border-radius:0 0 1.25rem 1.25rem}.shell{width:calc(100% - 2rem)}.header-inner{min-height:5rem}.brand{width:9rem}.work-photo figcaption{font-size:.76rem;padding-top:.65rem}.section{padding-bottom:3rem}.services>.shell,.works-section>.shell,.about-section>.shell,.process-section>.shell,.contacts>.shell,.faq-section>.shell{padding-top:2.5rem}.section-heading{margin-bottom:1.8rem}.section-heading p{font-size:.93rem}.service-grid{gap:1.2rem}.service-photo{height:12rem}.service-copy{padding:1.2rem}.service-copy h3{font-size:1.18rem}.service-copy p{font-size:.85rem}.service-copy .text-link{font-size:.84rem}.work-grid{gap:1.5rem 1rem}.material-layout{grid-template-columns:minmax(0,1fr);gap:1.8rem}.material-photo{height:21rem;min-height:0}.material-copy{padding:0}.material-copy h2{max-width:none}.material-copy p{font-size:.95rem}.about-layout .lead{font-size:1rem}.process-list{grid-template-columns:minmax(0,1fr);gap:1.5rem;margin:1.8rem 0}.process-list li{display:grid;grid-template-columns:2rem minmax(0,1fr);gap:0 1rem}.step-number{grid-row:1/3;margin:.2rem 0 0}.process-list h3{font-size:1.2rem;grid-column:2}.process-list p{grid-column:2}.cost-box{grid-template-columns:minmax(0,1fr);padding:1.5rem;gap:1.2rem}.cost-box h3{max-width:none;font-size:1.6rem}.cost-box .button{grid-column:1;justify-self:start}.contact-layout{grid-template-columns:minmax(0,1fr);gap:2rem}.visit-card{border-left:0;border-top:1px solid var(--line);padding:2rem 0 0}.visit-card h3{font-size:1.6rem}.visit-card .button{margin-top:.4rem}.footer-inner{flex-wrap:wrap;gap:1.5rem}.footer-brand{width:8.5rem}.footer-inner p{font-size:.75rem;margin-left:auto}.footer-inner nav{margin-left:0;width:100%;font-size:.8rem}.breadcrumbs{font-size:.72rem;margin-bottom:1.6rem}.option-grid{gap:1.5rem}.option-grid h3{font-size:1.1rem}.mi-accordion{--mi-accordion-font-size:1rem;--mi-accordion-padding-inline:1rem;--mi-accordion-padding-block:1.2rem}.faq-layout h2{margin-bottom:1.8rem}}
@media(max-width:35rem){.service-grid{grid-template-columns:minmax(0,1fr)}.service-photo{height:14rem}.service-copy{padding:1.4rem}.service-copy h3{font-size:1.35rem}.service-copy p{font-size:.93rem}.service-copy .text-link{font-size:.88rem}.contact-phones a{font-size:1.3rem;gap:.65rem}.material-photo{height:18rem}.option-grid{grid-template-columns:minmax(0,1fr)}.option-grid article{display:grid;grid-template-columns:1.3rem minmax(0,1fr);column-gap:.8rem}.option-symbol{grid-row:1/3;margin:.15rem 0 0}.option-grid p{grid-column:2}.footer-inner nav{gap:1rem}}
@container header (max-width:18rem){.header-phone{display:none}.menu-toggle{margin-left:auto}}
@container works (max-width:18rem){.work-photo{grid-column:1/-1}}
@media(prefers-reduced-motion:reduce){.button,.photo-badge,.text-link,.desktop-nav a{transition:none}.button:active{scale:none}.photo-badge{scale:1;filter:none}}

/* Classic hero: one reading column and one real work photograph. */
.hero-classic{padding-block:3.2rem 3.8rem}.hero-layout{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,1fr);gap:4rem;align-items:center}.hero-copy{min-width:0}.location-line{display:flex;align-items:center;gap:.5rem;color:var(--muted);font-size:.82rem;font-weight:500;margin:0}.location-line .aa-icon{width:1.1rem;height:1.1rem}.hero-copy h1{font-size:clamp(3rem,2.3rem + 2.3vw,4.7rem);max-width:11em;line-height:1.07;margin:1.3rem 0 1.5rem;color:var(--ink)}.hero-copy .lead{font-size:1.03rem;max-width:32rem;margin-bottom:1.7rem}.hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:1rem 1.4rem;max-width:100%;min-width:0}.hero-actions .button{font-size:.91rem}.hero-actions .text-link{font-size:.88rem;color:var(--ink)}.hero-note{display:flex;align-items:center;gap:.5rem;margin:1.5rem 0 0;font-size:.8rem;color:var(--muted);line-height:1.6;max-width:31rem}.hero-note .aa-icon{width:1.1rem;height:1.1rem;color:var(--action)}.hero-visual{min-width:0;width:100%}.hero-visual .photo-open{aspect-ratio:1 / 1;height:auto}.hero-visual .photo-open img{object-position:50% 62%}.hero-visual .photo-open--contain img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}.hero-visual figcaption{font-size:.8rem;padding-top:.8rem}.hero-classic.service-hero{padding-top:1.8rem}.service-hero .hero-copy h1{font-size:clamp(2.7rem,1.9rem + 2.05vw,4.1rem);max-width:13em}.service-hero .hero-visual{width:min(100%,23rem);justify-self:center}.service-hero .hero-visual .photo-open{aspect-ratio:798 / 1257}
@media(max-width:69.99rem){.hero-layout{gap:2.5rem}.hero-copy h1{font-size:3.6rem}.service-hero .hero-copy h1{font-size:3.05rem}.hero-copy .lead{font-size:.98rem}.hero-actions{gap:.9rem 1.2rem}.hero-actions .button,.hero-actions .text-link{font-size:.84rem}.hero-visual .photo-open{aspect-ratio:4 / 5}.service-hero .hero-visual{width:min(100%,21rem)}}
@media(max-width:54.99rem){.hero-layout{grid-template-columns:minmax(0,1fr);gap:2rem}.hero-copy h1{max-width:13em;font-size:3.7rem}.hero-copy .lead{max-width:39rem;font-size:1rem}.hero-visual{max-width:42rem}.hero-visual .photo-open{aspect-ratio:4 / 3}.service-hero .hero-copy h1{font-size:3.1rem}.service-hero .hero-visual{width:min(100%,23rem);justify-self:start}}
@media(max-width:47.99rem){.hero-classic{padding-block:2.2rem 2.6rem}.hero-copy h1{font-size:3.15rem;margin:1.1rem 0 1.35rem}.hero-copy .lead{font-size:.97rem;margin-bottom:1.5rem}.hero-actions{gap:.7rem 1.1rem}.hero-note{margin-top:1.3rem;font-size:.79rem}.hero-visual .photo-open{aspect-ratio:1 / 1}.hero-visual figcaption{font-size:.77rem}.service-hero .hero-copy h1{font-size:2.7rem}.service-hero .hero-visual{width:min(100%,21rem);justify-self:center}}
@media(max-width:35rem){.hero-copy h1{font-size:2.7rem}.service-hero .hero-copy h1{font-size:2.4rem}.hero-actions .button,.hero-actions .text-link{font-size:.85rem}}
@media(max-width:22rem){.service-hero .hero-copy h1{font-size:2.25rem}}

/* Bento page sections: separate information groups on the existing outer canvas. */
main{display:grid;grid-template-columns:repeat(12,minmax(0,1fr));gap:1.25rem;background:transparent}
main>.hero,main>.section{grid-column:1 / -1;min-width:0;background:var(--paper);border-radius:1.75rem}
main>.hero{border-top-left-radius:0;border-top-right-radius:0}
main>.section{padding-block:3.5rem}
main>.section>.shell{border-top:0;padding-top:0}
.site-footer{margin-top:1.25rem;border-radius:1.75rem;padding-block:1.5rem}
.footer-inner{border-top:0;padding-top:0}
.service-grid{gap:1rem}
.service-card{border-radius:.85rem}
.service-copy{padding:1.4rem}
.service-copy h3{font-size:1.2rem}
.service-photo{height:12rem}
@media(min-width:80rem){
 .service-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
 .service-card:nth-child(-n+2){grid-column:span 2;display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1fr)}
 .service-card:nth-child(-n+2) .service-photo{height:100%;min-height:20rem}
 .service-card:nth-child(-n+2) .service-copy{padding:1.7rem}
 .service-card:nth-child(-n+2) h3{font-size:1.6rem}
 .page-home>.materials{grid-column:span 7}
 .page-home>.about-section{grid-column:span 5}
 .page-home>.materials>.shell,.page-home>.about-section>.shell{width:calc(100% - 4rem)}
 .page-home .material-layout{grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:1.5rem}
 .page-home .material-photo{min-height:22rem}
 .page-home .material-copy h2,.page-home .about-layout h2{font-size:2.3rem}
 .page-home .material-tags{grid-template-columns:minmax(0,1fr);margin-block:1rem}
 .page-home .material-tags li{padding-block:.6rem}
 .page-home .about-layout{grid-template-columns:minmax(0,1fr);gap:1.75rem}
 .page-home .about-layout .lead{font-size:1rem}
}
@container services (max-width:60rem){
 .service-card:nth-child(-n+2){display:flex}
 .service-card:nth-child(-n+2) .service-photo{height:14rem;min-height:0}
 .service-card:nth-child(-n+2) .service-copy{padding:1.4rem}
 .service-card:nth-child(-n+2) h3{font-size:1.2rem}
}
@media(min-width:35.01rem) and (max-width:79.99rem){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:79.99rem){main>.section{padding-block:3rem}}
@media(max-width:47.99rem){
 main{gap:.85rem}
 main>.hero,main>.section{border-radius:1.25rem}
 main>.hero{border-top-left-radius:0;border-top-right-radius:0}
 main>.section{padding-block:2.4rem}
 .site-footer{margin-top:.85rem;border-radius:1.25rem;padding-block:1.5rem}
 .service-copy,.service-card:nth-child(-n+2) .service-copy{padding:1.25rem}
}
@container services (max-width:28rem){.service-card{grid-column:1 / -1}}

/* Align homepage section asides with the outside edge in the two-column layout. */
@media(min-width:55rem){.page-home .services .section-heading>p,.page-home .works-section .section-heading>p{justify-self:end;text-align:right;justify-content:flex-end}}

/* Warm feedback for the two homepage card collections, without moving their content. */
.page-home{
 --card-wash:linear-gradient(135deg,oklch(.907086 .184477 99.206 / .14),oklch(.718831 .165998 59.1708 / .10) 58%,oklch(.613863 .203098 33.5524 / .04));
 --card-edge:oklch(.907086 .184477 99.206 / .6);
}
.page-home .service-card{position:relative;isolation:isolate}
.page-home .service-card::before,.page-home .service-card::after,.page-home .works-section .photo-open::after{content:"";position:absolute;inset:0;border-radius:inherit;pointer-events:none;opacity:0;transition:opacity 150ms ease-out}
.page-home .service-card::before{z-index:0;background:var(--card-wash)}
.page-home .service-card::after{z-index:2;box-shadow:inset 0 0 0 1px var(--card-edge)}
.page-home .service-photo,.page-home .service-copy{position:relative;z-index:1}
.page-home .works-section .photo-open::after{z-index:1;box-shadow:inset 0 0 0 2px var(--action)}
.page-home .works-section .photo-badge{z-index:2;background:var(--action);color:var(--on-action)}
.page-home .works-section figcaption{transition:color 150ms ease-out}
.page-home .service-card:has(a:focus-visible)::before,.page-home .service-card:has(a:focus-visible)::after,.page-home .works-section .photo-open:focus-visible::after{opacity:1}
.page-home .works-section .work-photo:has(a:focus-visible) figcaption{color:var(--ink)}
@media(hover:hover) and (pointer:fine){
 .page-home .service-card:hover::before,.page-home .service-card:hover::after,.page-home .works-section .photo-open:hover::after{opacity:1}
 .page-home .works-section .work-photo:hover figcaption{color:var(--ink)}
}
@media(prefers-reduced-motion:reduce){
 .page-home .service-card::before,.page-home .service-card::after,.page-home .works-section .photo-open::after,.page-home .works-section figcaption{transition:none}
}
@media(forced-colors:active){
 .page-home .service-card::before,.page-home .service-card::after,.page-home .works-section .photo-open::after{display:none}
}

/* Fade the divider and round the pinned header without changing its geometry. */
.site-header{
 --header-divider-inset:max(4rem,calc((100% - 80rem) / 2));
 transition:border-bottom-left-radius 240ms ease-out,border-bottom-right-radius 240ms ease-out;
}
.header-inner{border-bottom-color:transparent}
.site-header::before{content:"";position:absolute;pointer-events:none}
.site-header::before{
 bottom:0;left:var(--header-divider-inset);right:var(--header-divider-inset);height:1px;
 border-bottom:1px solid var(--line);opacity:1;
 transition:left 240ms ease-out,right 240ms ease-out,opacity 240ms ease-out;
}
.site-header.is-floating{border-bottom-left-radius:var(--header-radius);border-bottom-right-radius:var(--header-radius)}
.site-header.is-floating::before{left:var(--header-radius);right:var(--header-radius);opacity:0}
@media(max-width:79.99rem){.site-header{--header-divider-inset:2.5rem}}
@media(max-width:47.99rem){.site-header{--header-divider-inset:1rem}}
@media(prefers-reduced-motion:reduce){.site-header,.site-header::before{transition:none}}

/* Responsive anchor offset is measured once per header resize, never counted twice. */
@media(max-width:69.99rem){html{--header-height:5.4rem}}
@media(max-width:47.99rem){html{--header-height:5rem}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}}

/* Leading contact icons reuse the existing SVG set and contact colors. */
.contact-action{display:inline-flex;align-items:center;gap:.65rem}
.contact-action>.aa-icon{width:1.25em;height:1.25em;flex:none;color:var(--action)}
.header-contact>.contact-action{display:grid;grid-template-columns:1.125rem auto;align-items:start;align-content:center;gap:.55rem;min-height:2.75rem}
.header-contact .header-contact-label{display:grid;gap:.125rem;text-align:right}
.header-contact .header-contact-number{font-size:1rem;line-height:1.375;color:var(--ink)}
.header-contact .header-contact-city{font-size:.73rem;line-height:1.25;font-weight:400}
.header-contact .contact-action>.aa-icon{width:1.125rem;height:1.125rem;margin-block-start:.125rem}

/* Additional agreed pages use the existing graphite islands and shared controls. */
.content-hero h1{font-size:clamp(2.25rem,1.9rem + 1.8vw,4.15rem);max-width:24ch}
.content-hero--text .hero-layout{grid-template-columns:minmax(0,1fr)}
.content-hero--text .hero-copy{max-width:64rem}
.content-hero--text .lead{max-width:46rem}
.content-hero--text .hero-actions{margin-bottom:0}
.section-action{margin-top:1.75rem}
.category-jumps{display:flex;flex-wrap:wrap;gap:.75rem;margin-top:1.5rem}
.category-jumps a{display:flex;align-items:center;min-height:2.75rem;padding:.75rem 1rem;border-radius:.55rem;background:var(--surface);font-size:.93rem;line-height:1.5;color:var(--ink);transition:background-color 150ms,color 150ms}
.category-jumps a:hover,.category-jumps a:focus-visible{background:oklch(.30 .02 85);color:var(--action)}
.catalog-links{list-style:none;margin:0;padding:0;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:.65rem}
.catalog-links li{min-width:0}
.catalog-links a{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;min-height:4.5rem;height:100%;padding:1.25rem 1.4rem;border-radius:.7rem;background:var(--surface);line-height:1.5;font-size:1rem;font-weight:600;transition:background-color 150ms,color 150ms}
.catalog-links a span{min-width:0;overflow-wrap:anywhere}
.catalog-links a .aa-icon{color:var(--action);width:1.125rem;height:1.125rem}
.catalog-links a:hover,.catalog-links a:focus-visible{background:oklch(.30 .02 85);color:var(--action)}
.options-heading{margin-top:2rem;color:var(--muted);font-size:1rem;font-weight:500}
.page-content .option-grid{grid-template-columns:repeat(auto-fit,minmax(min(100%,14rem),1fr));margin-top:1rem}
.preparation .intro-layout{margin-bottom:0}
.preparation .check-list{margin:0}
.editorial-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:1rem}
.editorial-grid article{padding:1.6rem;border-radius:.85rem;background:var(--surface);min-width:0}
.editorial-grid h3{margin-bottom:.85rem}
.editorial-grid p{margin:0}
.page-content .hero-visual .photo-open{max-height:34rem}
@media(max-width:47.99rem){.catalog-links,.editorial-grid{grid-template-columns:minmax(0,1fr)}.catalog-links a{font-size:.94rem;padding:1.1rem}.category-jumps{gap:.5rem}.category-jumps a{font-size:.85rem}.content-hero h1{font-size:2.3rem}.editorial-grid article{padding:1.25rem}}
@media(prefers-reduced-motion:reduce){.category-jumps a,.catalog-links a{transition:none}}

.desktop-nav a[aria-current=page],.mobile-nav a[aria-current=page],.footer-inner a[aria-current=page]{color:var(--action);text-decoration:underline;text-underline-offset:.35em}
