@import url("/theme.css");
@import url("/embed.css");
*{box-sizing:border-box}body{margin:0;font:18px/1.75 var(--body-font);background:var(--sand);color:var(--navy)}h1,h2,h3{font-family:var(--heading-font);font-weight:400;line-height:1.1;margin:0 0 24px}h1{font-size:clamp(35px,4.5vw,68px)}h2{font-size:clamp(30px,3.3vw,48px)}h3{font-size:30px}p{margin:0 0 24px}a{color:inherit}button,input,textarea,select{font:inherit}button,a,summary{touch-action:manipulation}a:focus-visible,button:focus-visible,summary:focus-visible{outline:3px solid currentColor;outline-offset:5px}.section{padding:80px max(6vw,24px);background:var(--surface);color:var(--text)}.section h1,.section h2{color:var(--heading)}.palette-sand{--surface:var(--sand);--text:var(--navy);--heading:#9b8176}.palette-teal{--surface:var(--teal);--text:var(--paper);--heading:var(--paper)}.palette-rose{--surface:var(--rose);--text:#233d57;--heading:#233d57}.palette-paper{--surface:var(--paper);--text:var(--navy);--heading:#9b8176}.palette-navy{--surface:var(--navy);--text:var(--paper);--heading:var(--paper)}.site-header{display:flex;justify-content:space-between;align-items:center;padding:24px 6vw;background:var(--sand);height:110px}.brand{width:72px;display:block}.brand .media{aspect-ratio:1;background:transparent}.brand img{object-fit:contain}.navigation{position:relative}.navigation summary{cursor:pointer;list-style:none;font-size:20px}.navigation nav{position:absolute;right:0;top:40px;background:var(--paper);padding:24px;width:min(340px,85vw);z-index:10;box-shadow:0 10px 30px #0002}.navigation nav a{display:block;font-size:16px;margin-bottom:8px}.hero{display:grid;grid-template-columns:1.1fr 1fr;align-items:center;padding-top:50px;min-height:var(--hero-height);position:relative;overflow:hidden;border-bottom:1px solid #9b817655}.hero-copy{z-index:1}.hero h1{color:#bc9e91}.hero p{max-width:650px;font-size:clamp(18px,1.6vw,24px)}.hero-art{position:absolute;right:0;bottom:0;width:100%;height:100%;opacity:.75}.hero-art .media{height:100%;aspect-ratio:auto;background:none}.hero-art img{object-fit:cover}.media{overflow:hidden;aspect-ratio:4/3;background:#ffffff14}.media img{display:block;width:100%;height:100%;object-fit:cover;object-position:var(--fx) var(--fy);transform:scale(var(--zoom));transform-origin:var(--fx) var(--fy)}.booking{text-align:center}.booking .integration{max-width:800px;min-height:260px;margin:40px auto 0}.integration{border:1px solid currentColor;padding:32px;text-align:center;display:flex;flex-direction:column;justify-content:center;gap:16px}.integration p{margin:0}.integration small,small{font-size:13px;line-height:1.6;display:block}input{width:100%;padding:10px;border:1px solid #38516b55;background:#ffffff55}.service-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:35px}.service-grid h3{margin-top:22px}.service-grid details{border-top:1px solid #ffffff66;padding:14px 0}.service-grid details p{font-size:15px;margin:16px 0}.service-grid summary{cursor:pointer;line-height:1.5;font-size:17px}.image-link{display:block}.event-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:36px}.event-grid h3{margin-top:24px}.event-grid .media{aspect-ratio:1.3}.two-column{display:grid;grid-template-columns:1fr 1fr;gap:8vw;align-items:start}.two-column .media{margin-bottom:24px}.about .media{aspect-ratio:3/4}.about .signature{width:170px}.signature .media{aspect-ratio:3/1;background:transparent}.signature img{object-fit:contain}.button,button{display:inline-block;padding:13px 28px;border:1px solid currentColor;border-radius:0;background:transparent;color:inherit;text-decoration:none;width:fit-content;cursor:pointer}.button:hover{background:#ffffff30}.integration .button{align-self:center}.heading{padding-bottom:16px}.reviews{padding-top:16px}.cta{text-align:center}.social-grid{display:grid;grid-template-columns:repeat(6,1fr);gap:15px}.social-grid .media{aspect-ratio:1}footer{display:grid;grid-template-columns:1fr 1fr 1fr;gap:40px;padding:60px 6vw;font-size:15px}footer h3{font-size:26px}button:disabled{cursor:default;opacity:.6}@media(max-width:1000px){.service-grid{grid-template-columns:repeat(2,1fr)}}@media(max-width:767px){body{font-size:16px}.site-header{height:82px}.brand{width:40px}.section{padding:44px 6vw}.hero{display:block;min-height:var(--hero-mobile-height);padding-top:18px}.hero h1{font-size:35px;max-width:340px}.hero p{font-size:18px;max-width:330px;line-height:1.75}.hero-art{width:100%;right:0;opacity:.65}.two-column,.service-grid,.event-grid{grid-template-columns:1fr;gap:36px}.social-grid{grid-template-columns:repeat(3,1fr)}.media img{object-position:var(--mfx) var(--mfy);transform:scale(var(--mzoom));transform-origin:var(--mfx) var(--mfy)}footer{grid-template-columns:1fr 1fr}.booking .integration{min-height:240px}.section h2{font-size:30px}}

.sr-only{position:absolute;width:1px;height:1px;padding:0;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}

/* Canonical global tokens; structural component rules stay above. */
body{font-family:var(--body-font);font-size:var(--body-size);font-weight:var(--body-weight);line-height:var(--body-line);color:var(--main-text)}h1,h2,h3,h4,h5,h6{font-family:var(--heading-font);font-weight:var(--heading-weight);line-height:var(--heading-line);letter-spacing:var(--letter-spacing);margin-bottom:var(--rhythm)}h1{font-size:clamp(35px,4.5vw,var(--h1))}h2{font-size:clamp(30px,3.3vw,var(--h2))}h3{font-size:var(--h3)}h4{font-size:var(--h4)}h5{font-size:var(--h5)}h6{font-size:var(--h6)}p{margin-bottom:var(--rhythm)}.section{padding:var(--section-y) max(6vw,var(--section-x))}.section:not(.hero):not(.embed-section)>*{max-width:var(--content-width);margin-left:auto;margin-right:auto}.palette-sand{--text:var(--sand-contrast);--heading:var(--main-heading)}.palette-paper{--text:var(--paper-contrast);--heading:var(--main-heading)}.palette-teal{--text:var(--teal-contrast);--heading:var(--teal-contrast)}.palette-rose{--text:var(--rose-contrast);--heading:var(--rose-contrast)}.palette-navy{--text:var(--navy-contrast);--heading:var(--navy-contrast)}.service-grid,.event-grid,.two-column,.social-grid{gap:var(--gap)}.media{border-radius:var(--image-radius)}.site-header{height:var(--header-height)}footer{padding:var(--footer-padding) 6vw}.button,button{font-family:var(--body-font);font-size:var(--button-size);border-radius:var(--button-radius);border-width:var(--button-border);padding:var(--button-y) var(--button-x);transition:background-color var(--transition),color var(--transition),border-color var(--transition),transform var(--transition)}.button:hover,button:hover{background:var(--hover-bg);color:var(--hover-text);border-color:var(--button-outline)}body>p a,footer a{color:var(--link-color)}.hero h1{color:var(--accent)}@media(max-width:767px){body{font-size:max(14px,calc(var(--body-size) - 2px))}.section{padding-top:calc(var(--section-y)*.55);padding-bottom:calc(var(--section-y)*.55)}.hero h1{font-size:clamp(28px,8vw,var(--h1))}.section h2{font-size:clamp(24px,6vw,var(--h2))}.site-header{height:calc(var(--header-height)*.75)}}@media(prefers-reduced-motion:reduce){.button,button{transition:none!important;transform:none!important}}

.palette-sand{--text:var(--sand-text);--heading:var(--sand-heading);--links:var(--sand-link)}.palette-teal{--text:var(--teal-text);--heading:var(--teal-heading);--links:var(--teal-link)}.palette-rose{--text:var(--rose-text);--heading:var(--rose-heading);--links:var(--rose-link)}.palette-paper{--text:var(--paper-text);--heading:var(--paper-heading);--links:var(--paper-link)}.palette-navy{--text:var(--navy-text);--heading:var(--navy-heading);--links:var(--navy-link)}
.section a:not(.button){color:var(--links)}.booking .integration{max-width:var(--narrow-width)}.hero-copy{max-width:var(--wide-width)}
/* Shared section library, also used by the CMS-only Design Test Page. */
.media{aspect-ratio:var(--usage-ratio,4/3)}.section .media[data-shape=original]{aspect-ratio:var(--usage-ratio,4/3);border-radius:0}.section .media[data-shape=circle]{aspect-ratio:1;border-radius:50%}.brand .media{aspect-ratio:1!important;border-radius:0!important}.hero-art .media{aspect-ratio:auto!important;border-radius:0!important}.signature .media{aspect-ratio:3/1!important;border-radius:0!important}
.core-container{max-width:var(--content-width);margin-inline:auto}.content-narrow,.core-form{max-width:var(--narrow-width);margin-inline:auto}.core-cards{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap)}.core-card{min-width:0;background:var(--paper);color:var(--paper-text);border:1px solid var(--paper-heading);border-radius:0;overflow:hidden}.core-card h3{color:var(--paper-heading)}.card-copy{padding:var(--rhythm)}.core-gallery{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:var(--gap);align-items:start}.core-image-text{display:grid;grid-template-columns:1fr 1fr;align-items:center;gap:var(--gap)}.action-samples{display:flex;flex-wrap:wrap;gap:var(--gap);align-items:center}.button-primary{background:var(--button-bg);color:var(--button-text);border-color:var(--button-outline)}.button-secondary{background:var(--secondary-bg);color:var(--secondary-text);border-color:var(--button-outline)}.button:focus-visible,button:focus-visible,a:focus-visible,input:focus-visible,textarea:focus-visible{outline:3px solid var(--accent);outline-offset:4px}.core-form{display:grid;gap:var(--form-gap,var(--rhythm))}.core-form label{display:grid;gap:8px}.core-form input:not([type=checkbox]),.core-form textarea,.core-form select{width:100%;font:inherit;padding:var(--form-padding,var(--button-y)) var(--form-padding,var(--button-x));background:var(--form-surface,var(--paper));color:var(--form-text,var(--paper-text));border:var(--form-borderWidth,var(--button-border)) solid var(--form-border,var(--paper-heading));border-radius:var(--form-radius,var(--button-radius))}.core-form .checkbox-label{display:flex;align-items:center;gap:12px}.core-form input[type=checkbox]{width:20px;height:20px;accent-color:var(--teal)}.core-testimonial{display:grid;grid-template-columns:160px 1fr;align-items:center;gap:var(--gap);margin:0}.core-testimonial blockquote{font-family:var(--heading-font);font-size:var(--h3);line-height:var(--heading-line);margin:0 0 var(--rhythm)}.core-testimonial .media{width:160px}.core-testimonial h3{font-size:var(--h5)}.type-scale{margin-top:var(--rhythm)}.type-scale h1{font-size:var(--h1)}@media(max-width:1000px){.core-cards,.core-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}}@media(max-width:767px){.core-cards,.core-image-text{grid-template-columns:1fr}.core-gallery{grid-template-columns:repeat(2,minmax(0,1fr))}.core-testimonial{grid-template-columns:1fr;text-align:center}.core-testimonial .media{margin-inline:auto}.core-form{width:100%}.action-samples{gap:var(--rhythm)}.core-container{min-width:0}}
/* Global controls also govern the original Home components. */
.button,button{background:var(--button-bg);color:var(--button-text);border-color:var(--button-outline)}.button-secondary{background:var(--secondary-bg);color:var(--secondary-text)}.hero p{font-size:var(--body-size);line-height:var(--body-line)}.service-grid details p,.service-grid summary,.navigation summary,.navigation nav a{font-size:var(--body-size);line-height:var(--body-line)}footer{font-size:calc(var(--body-size)*.85)}footer h3{font-size:var(--h4)}h1{font-size:var(--h1)}h2{font-size:var(--h2)}@media(max-width:767px){.hero h1{font-size:calc(var(--h1)*.52)}.hero p{font-size:var(--body-size);line-height:var(--body-line)}.section h2{font-size:calc(var(--h2)*.65)}}
footer>div{min-width:0;overflow-wrap:anywhere}@media(max-width:767px){footer{grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--rhythm)}}

/* Semantic image treatments: sections choose names, global tokens define styles. */
.section .media[data-shape=rounded]{aspect-ratio:var(--usage-ratio,4/3);border-radius:var(--image-radius);clip-path:inset(0 round var(--image-radius))}.section .media[data-shape=square]{aspect-ratio:1;border-radius:0}.section .media:not([data-shape]){border-radius:0}

/* Global visual vocabulary; section data contains only semantic references. */
.button-style-outline{border-radius:var(--button-radius);border-style:solid;border-width:var(--button-border);padding:var(--button-y) var(--button-x);font-size:var(--button-size);background:transparent;color:var(--links,var(--link-color));border-color:var(--button-outline)}.button-style-text{background:transparent;border:0;padding:0;border-radius:0;color:var(--links,var(--link-color));text-decoration:underline;text-underline-offset:.2em}.button-style-text:hover{background:transparent;color:var(--links,var(--link-color));text-decoration:underline;text-underline-offset:.2em}

.background-samples{display:grid;grid-template-columns:repeat(auto-fit,minmax(150px,1fr));gap:var(--rhythm);margin-top:var(--rhythm)}.background-samples .section{padding:var(--rhythm);margin:0}.background-samples h3{font-size:var(--h5)}

/* Semantic surface content and footer layout own their spacing. */
.section h3,.section h4,.section h5,.section h6{color:var(--heading)}
.core-card{--text:var(--paper-text);--heading:var(--paper-heading);--links:var(--paper-link)}
footer{column-gap:var(--footer-column-gap);row-gap:var(--footer-column-gap)}
footer>div{display:flex;flex-direction:column;align-items:flex-start;gap:var(--footer-item-gap);min-width:0}
footer p,footer h3{margin:0}
footer h3{margin-bottom:calc(var(--footer-heading-gap) - var(--footer-item-gap))}

.background-samples{grid-template-columns:repeat(auto-fit,minmax(min(240px,100%),1fr))}

footer{background:var(--surface,var(--sand));color:var(--text,var(--main-text))}footer h3{color:var(--heading,var(--main-heading))}footer a{color:var(--links,var(--link-color))}

/* One shared comparison grid preserves matching Light/Dark columns. */
.button-surface-samples{display:grid;grid-template-columns:1fr;gap:0;overflow-x:auto}
.button-surface-samples>.section{display:grid;grid-template-columns:76px minmax(600px,1fr);align-items:center;gap:16px;padding:16px;margin:0;min-width:724px}
.button-surface-samples h3{font-size:var(--h5);margin:0}
.button-surface-samples .action-samples{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px;align-items:center}
.button-surface-samples .button{white-space:nowrap;margin:0;justify-self:start}
.button-surface-samples>.section>.action-samples{margin:0;max-width:none;width:100%}.button-surface-samples>.section>h3{margin:0;max-width:none}

/* Contrast families own their rows; cards wrap within their family only. */
.background-samples{display:flex;flex-direction:column;gap:var(--rhythm)}
.background-family>h3{margin:0 0 12px}
.background-family-cards{display:grid;grid-template-columns:repeat(auto-fill,minmax(min(240px,100%),1fr));gap:16px;align-items:stretch}
.background-family-cards>.section{min-width:0;margin:0;padding:var(--rhythm);display:flex;flex-direction:column}
.background-family-cards>.section>h3,.background-family-cards>.section>p{margin-left:0;margin-right:0;max-width:none}
.background-family-cards>.section>p:last-child{margin-top:auto;margin-bottom:0}

/* Visual slot capabilities: visual frame + optional independent overlay/content. */
.visual-media-frame{position:relative;isolation:isolate}
.visual-media-frame video{display:block;width:100%;height:100%;object-fit:cover}
.media-overlay{position:absolute;inset:0;z-index:1;pointer-events:none}
.media-over-content{position:absolute;inset:0;display:flex;flex-direction:column;padding:var(--rhythm);z-index:2;pointer-events:none;overflow:auto;color:var(--text)}
.media-over-content>div{max-width:100%;min-width:0}.media-over-content h3{font-size:var(--h3);color:var(--heading)}.media-over-content p{font-size:var(--body-size);line-height:var(--body-line)}.media-over-content .media-eyebrow{font-size:.85em;letter-spacing:var(--letter-spacing)}
.media-horizontal-left{text-align:left;align-items:flex-start}.media-horizontal-center{text-align:center;align-items:center}.media-horizontal-right{text-align:right;align-items:flex-end}
.media-vertical-top{justify-content:flex-start}.media-vertical-center{justify-content:center}.media-vertical-bottom{justify-content:flex-end}
.media-content-light{--text:var(--content-light-text);--heading:var(--content-light-heading);--links:var(--content-light-links)}
.media-content-dark{--text:var(--content-dark-text);--heading:var(--content-dark-heading);--links:var(--content-dark-links)}

.media-over-content a{pointer-events:auto}.media-over-content .button-style-outline{border-color:currentColor}

/* Semantic appearances share approved surfaces and global content families. */
/* Long content remains reachable inside the fixed visual frame. */
.media-over-content>div{flex-shrink:0;display:flex;flex-direction:column;gap:calc(var(--rhythm)*.35);pointer-events:auto}
.media-over-content h3,.media-over-content p{margin:0}
.media-vertical-bottom,.media-vertical-center{justify-content:flex-start}
.media-vertical-bottom>div{margin-top:auto}.media-vertical-center>div{margin-block:auto}
.media-horizontal-center .button{align-self:center}.media-horizontal-right .button{align-self:flex-end}
.visual-media-frame:has(video[controls]) .media-over-content{bottom:44px}
.content-audio{display:flex;align-items:center;gap:var(--rhythm)}.content-audio>.media{width:72px;flex:none;aspect-ratio:1}.content-audio h3,.content-audio p{margin-bottom:calc(var(--rhythm)*.35)}.content-audio audio{width:min(100%,420px);display:block}.content-audio>div:last-of-type{min-width:0;flex:1}
/* Shared media vocabulary: page sections supply content/layout, Global Design supplies treatment. */
.video-component{max-width:var(--video-width,960px);margin-inline:auto}
.content-audio{max-width:var(--audio-width,640px);padding:var(--audio-padding,20px);gap:var(--audio-gap,16px);border-radius:var(--audio-radius,12px);overflow:hidden;background:var(--surface,var(--paper));border:1px solid currentColor;margin-inline:auto;align-items:center}
.content-audio>.media{width:var(--audio-coverSize,72px);flex:0 0 var(--audio-coverSize,72px)}
.content-audio>div:last-of-type{flex:1;min-width:0}.content-audio h3,.content-audio p{margin:0 0 var(--audio-gap,16px)}.content-audio audio{width:100%;max-width:none;border-radius:var(--audio-radius,12px);clip-path:inset(0 round var(--audio-radius,12px))}.content-audio audio::-webkit-media-controls-panel{border-radius:var(--audio-radius,12px)}
.gallery-track{display:grid;grid-template-columns:repeat(var(--gallery-columns,3),minmax(0,1fr));gap:var(--gallery-gap,24px)}
.gallery-item{margin:0;min-width:0;cursor:pointer}.gallery-item:focus-visible{outline:2px solid currentColor;outline-offset:4px}
[data-gallery-layout="carousel"] .gallery-track{display:flex;overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;position:relative}
[data-gallery-layout="carousel"] .gallery-item{flex:0 0 calc((100% - (var(--gallery-itemsVisible,3) - 1)*var(--gallery-gap,24px))/var(--gallery-itemsVisible,3));scroll-snap-align:start}
[data-gallery-layout="masonry"] .gallery-track{display:block;columns:var(--gallery-columns,3);column-gap:var(--gallery-gap,24px)}
[data-gallery-layout="masonry"] .gallery-item{break-inside:avoid;margin-bottom:var(--gallery-gap,24px)}
.gallery-navigation{display:flex;justify-content:center;align-items:center;gap:var(--gallery-gap,24px);margin-top:16px}.gallery-arrows{display:var(--gallery-arrows,flex);gap:12px}.gallery-dots{display:var(--gallery-dots,flex);gap:8px;flex-wrap:wrap}
.gallery-navigation button,.gallery-lightbox button{font:inherit;border:1px solid currentColor;border-radius:var(--button-radius);padding:8px 14px;color:inherit;background:transparent;cursor:pointer;transition:background var(--gallery-transition,180ms)}
.gallery-dots button{width:10px;height:10px;padding:0;border-radius:50%}.gallery-dots [aria-current="true"]{background:currentColor}
[data-gallery-navigation="light"] .gallery-navigation{color:var(--content-dark-text)}[data-gallery-navigation="dark"] .gallery-navigation{color:var(--content-light-text)}
.gallery-lightbox{position:fixed;inset:0;width:100%;height:100%;max-width:none;max-height:none;margin:0;padding:clamp(16px,4vw,60px);border:0;background:transparent;color:var(--content-dark-text);overflow:auto}
.gallery-lightbox::backdrop{background:var(--lightbox-background,#16212b);opacity:var(--lightbox-opacity,.94)}
.gallery-lightbox[open]{display:grid;grid-template-columns:auto minmax(0,1fr) auto;grid-template-rows:minmax(0,1fr) auto;gap:16px;align-items:center}
.lightbox-media{grid-column:2;min-height:0;display:flex;justify-content:center;align-items:center;height:100%}.lightbox-media img,.lightbox-media video{max-width:100%;max-height:80vh;object-fit:contain;display:block}
.lightbox-close{position:absolute;right:20px;top:16px;display:var(--lightbox-close,flex)}.lightbox-prev,.lightbox-next{display:var(--lightbox-arrows,flex)}.lightbox-meta{grid-column:1/-1;display:flex;justify-content:center;gap:24px}.lightbox-counter{display:var(--lightbox-counter,flex)}.lightbox-caption{display:var(--lightbox-captions,flex)}
@media(max-width:767px){.gallery-track{grid-template-columns:repeat(var(--gallery-mobile-columns,min(2,var(--gallery-columns,3))),minmax(0,1fr))}[data-gallery-layout="masonry"] .gallery-track{columns:var(--gallery-mobile-columns,2)}[data-gallery-layout="carousel"] .gallery-item{flex-basis:85%}.gallery-lightbox{padding:52px 12px 16px}.gallery-lightbox[open]{gap:8px}.gallery-lightbox button{padding:8px}.lightbox-meta{flex-wrap:wrap;gap:8px}.content-audio{flex-wrap:wrap}}
@media(prefers-reduced-motion:reduce){.gallery-track{scroll-behavior:auto}.gallery-navigation button{transition:none}}

.gallery-lightbox{color:var(--lightbox-ink,var(--content-dark-text))}

.gallery-item{position:relative}.gallery-open{position:absolute;top:8px;right:8px;border:0;border-radius:var(--button-radius);background:var(--button-light-bg);color:var(--button-light-ink);padding:6px 10px;cursor:pointer}

.gallery-navigation button:hover{background:color-mix(in srgb,currentColor 12%,transparent)}
/* Shared state contrast follows the enclosing semantic family, including media overlays. */
.media-content-dark{--interaction-bg:var(--button-light-bg);--interaction-text:var(--button-light-text);--interaction-border:var(--button-light-bg);--focus-ink:var(--button-light-bg)}
.media-content-light{--interaction-bg:var(--button-dark-bg);--interaction-text:var(--button-dark-text);--interaction-border:var(--button-dark-bg);--focus-ink:var(--button-dark-bg)}
.button:not(.button-style-text):is(:hover,:focus-visible){background:var(--interaction-bg,var(--hover-bg));color:var(--button-custom-hover-text,var(--interaction-text,var(--hover-text)));border-color:var(--interaction-border,var(--button-outline))}.button:focus-visible{outline-color:var(--focus-ink,var(--accent))}.button-style-text:is(:hover,:focus-visible){background:transparent;color:var(--links,var(--link-color));text-decoration:underline}
[data-gallery-layout="carousel"] .gallery-item>.media{aspect-ratio:4/3}[data-gallery-layout="carousel"] .gallery-item>.media:is([data-shape="square"],[data-shape="circle"]){aspect-ratio:1}
.gallery-navigation{flex-direction:column}.gallery-navigation .gallery-arrows{justify-content:center}.gallery-caption{display:block;order:3;text-align:center}
.gallery-lightbox[open]{inset:9vh 7vw;width:86vw;height:82vh;max-width:1000px;max-height:720px;margin:auto;padding:48px 24px 20px;grid-template-columns:44px minmax(0,1fr) 44px}.lightbox-media img,.lightbox-media video{max-width:100%;max-height:100%;width:auto;height:auto}.gallery-lightbox .lightbox-close{width:40px;height:40px;min-width:40px;aspect-ratio:1;border-radius:50%;padding:0;align-items:center;justify-content:center;font-size:24px;line-height:1}.gallery-lightbox :is(.lightbox-prev,.lightbox-next){display:var(--lightbox-arrows,grid)}
.content-audio>.media{display:var(--audio-cover-display,block)}.audio-copy{display:var(--audio-content-display,block)}
.content-audio{color-scheme:var(--player-scheme,light)}.content-audio.audio-appearance-light{color-scheme:light;--surface:var(--button-light-bg);--text:var(--content-light-text);--heading:var(--content-light-heading);--links:var(--content-light-links);color:var(--text)}.content-audio.audio-appearance-dark{color-scheme:dark;--surface:var(--button-dark-bg);--text:var(--content-dark-text);--heading:var(--content-dark-heading);--links:var(--content-dark-links);color:var(--text)}.content-audio h3{color:var(--heading)}.content-audio audio{color-scheme:inherit}
@media(max-width:767px){.gallery-lightbox[open]{inset:3vh 3vw;width:94vw;height:94vh;padding:50px 8px 16px;grid-template-columns:40px minmax(0,1fr) 40px;gap:4px}}

/* Component radii are shared tokens; semantic shape and local crop remain independent. */
.core-card{border-radius:var(--card-radius,0);--image-radius:var(--card-image-radius)}
.button:not(.button-style-text):active{background:var(--interaction-bg,var(--hover-bg));color:var(--button-custom-hover-text,var(--interaction-text,var(--hover-text)));border-color:var(--interaction-border,var(--button-outline))}
.gallery-lightbox .lightbox-close{top:20px;right:20px}
.gallery-lightbox :is(.lightbox-prev,.lightbox-next){display:var(--lightbox-arrows,grid)}
.gallery-lightbox svg{width:24px;height:24px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
.gallery-lightbox button:focus:not(:focus-visible){outline:none;box-shadow:none}
.gallery-lightbox button:hover{background:color-mix(in srgb,currentColor 12%,transparent);box-shadow:none}
.gallery-lightbox button:focus-visible{outline:2px solid currentColor;outline-offset:4px}


/* One geometry for all previous/next controls. */
button.navigation-arrow,.gallery-navigation button.navigation-arrow,.gallery-lightbox button.navigation-arrow{width:44px;height:44px;min-width:44px;min-height:44px;max-width:44px;max-height:44px;aspect-ratio:1/1;border-radius:50%;padding:0;flex:0 0 44px;display:grid;place-items:center;border:1px solid currentColor;background:transparent;color:inherit;box-shadow:none;outline:none;transform:none;line-height:1}
.navigation-arrow svg{width:24px;height:24px;display:block;fill:none;stroke:currentColor;stroke-width:2;stroke-linecap:round;stroke-linejoin:round;pointer-events:none}
button.navigation-arrow:is(:hover,:active,:focus){border:1px solid currentColor;box-shadow:none;outline:none;transform:none;background:color-mix(in srgb,currentColor 12%,transparent);color:inherit}
button.navigation-arrow:focus-visible{outline:none;box-shadow:inset 0 0 0 2px currentColor}
.carousel-navigation{display:flex;flex-direction:column;align-items:center;gap:12px;margin-top:16px}.carousel-dots{justify-content:center;order:0}.carousel-arrows{justify-content:center;order:1;gap:12px}
.core-card-frame{container-type:inline-size;min-width:0}.core-card{--card-top-radius:var(--card-padded-radius,0px);border:0;border-radius:var(--card-top-radius) var(--card-top-radius) var(--card-radius,0) var(--card-radius,0)}
.core-card:has(>.media[data-shape=rounded]){--card-top-radius:var(--card-padded-radius,min(var(--card-image-radius,var(--image-radius)),50cqw,calc(50cqw / var(--card-media-ratio,1.333333))))}
.core-card:has(>.media[data-shape=circle]){--card-top-radius:50cqw}
.core-card>.card-copy{border:1px solid var(--paper-heading);border-top:0;border-radius:0 0 var(--card-radius,0) var(--card-radius,0)}
.content-audio audio{border:0;outline:0;box-shadow:none;border-radius:0;clip-path:none;background:transparent}
.content-audio audio::-webkit-media-controls-panel{border:0;border-radius:0;box-shadow:none;background:transparent}

.gallery-lightbox button.navigation-arrow{display:var(--lightbox-arrows,grid)}
@media(max-width:767px){.gallery-lightbox[open]{grid-template-columns:44px minmax(0,1fr) 44px}}

.core-card{position:relative}.core-card::after{content:"";position:absolute;inset:0;border:1px solid var(--paper-heading);border-radius:inherit;pointer-events:none}.core-card>.card-copy{border:0}
/* Global structural Header; pages only supply content and the surface behind it. */
.website-header{position:relative;z-index:20;height:var(--header-height);padding:0 max(24px,6vw);margin-bottom:calc(-1 * var(--header-height));background:transparent;isolation:isolate;color:var(--header-ink);--header-ink:var(--content-light-text);--links:var(--content-light-links);--heading:var(--content-light-heading)}
.website-header::before{content:'';position:absolute;inset:0;background:color-mix(in srgb,var(--header-background) calc(var(--header-opacity) * 100%),transparent);backdrop-filter:blur(var(--header-blur));z-index:-1;pointer-events:none}
.website-header[data-header-family=dark]{--header-ink:var(--content-dark-text);--links:var(--content-dark-links);--heading:var(--content-dark-heading);--interaction-bg:var(--button-light-bg);--interaction-text:var(--content-light-text)}
.header-inner{display:flex;width:100%;max-width:var(--content-width);margin:auto;align-items:center;gap:32px;height:100%;min-width:0}.site-identity{flex:none;color:var(--heading);font-family:var(--heading-font);font-size:var(--h4);text-decoration:none!important}.header-logo{display:block;width:var(--header-logo-size);height:var(--header-logo-size);object-fit:contain}
[data-logo-treatment=monochrome] .header-logo{filter:brightness(0)}[data-logo-treatment=monochrome][data-header-family=dark] .header-logo{filter:brightness(0) invert(1)}
.header-navigation{margin-left:auto;min-width:0;flex:1;border:0;padding:0}.header-navigation summary{display:none;list-style:none;padding:8px;color:var(--header-ink);cursor:pointer}.header-navigation summary::-webkit-details-marker{display:none}.header-navigation summary svg{width:24px;height:24px;fill:none;stroke:currentColor;stroke-width:2}.header-navigation nav{display:flex;align-items:center;justify-content:flex-end;gap:var(--header-navigation-gap);white-space:nowrap}.header-navigation nav a:not(.navigation-cta){font:inherit;color:var(--links);text-decoration:none}.header-navigation nav a:not(.navigation-cta):hover{text-decoration:underline}.header-cta{display:var(--header-cta-display);flex:none;align-items:center;justify-content:center}
.website-header.header-compact .header-navigation{flex:none;margin-left:auto}.website-header.header-compact summary{display:flex;align-items:center;gap:8px}.website-header.header-compact nav{display:none;position:absolute;top:100%;right:max(24px,6vw);width:min(380px,88vw);max-height:70vh;overflow:auto;white-space:normal;flex-direction:column;align-items:stretch;gap:var(--header-navigation-gap);padding:24px;background:var(--paper);color:var(--paper-text);border:1px solid var(--paper-heading);border-radius:var(--card-radius,0);box-shadow:0 8px 24px #0002}.website-header.header-compact nav a:not(.navigation-cta){color:var(--paper-link)}.website-header.header-compact details[open] nav{display:flex}
.website-header+:is(#page,.section-stack)>.section:first-child{padding-top:calc(var(--section-y) + var(--header-height))}
@media(max-width:767px){.header-navigation summary{display:flex;align-items:center;gap:8px}.header-navigation nav{display:none;position:absolute;top:100%;right:24px;width:min(380px,88vw);max-height:70vh;overflow:auto;white-space:normal;flex-direction:column;align-items:stretch;gap:var(--header-navigation-gap);padding:24px;background:var(--paper);color:var(--paper-text);border:1px solid var(--paper-heading)}.header-navigation nav a:not(.navigation-cta){color:var(--paper-link)}.header-navigation[open] nav{display:flex}.header-navigation{flex:none;margin-left:auto}.header-inner{gap:16px}.header-cta{font-size:min(var(--button-size),16px);padding:8px 12px}.website-header+:is(#page,.section-stack)>.section:first-child{padding-top:calc(var(--section-y)*.55 + var(--header-height))}}

/* Component-owned media radii; standalone images never set Cards or Gallery radius. */
.gallery-component{--image-radius:var(--gallery-radius,15px)}
.video-component{--image-radius:var(--video-radius,15px)}

/* Full navigation remains a single row; runtime selects the existing compact menu when needed. */
.website-header:not(.header-compact) .header-navigation nav{flex-wrap:nowrap;gap:8px var(--header-navigation-gap)}
.core-card{background:var(--card-surface,var(--paper));color:var(--card-text,var(--paper-text));--text:var(--card-text,var(--paper-text));--heading:var(--card-heading,var(--paper-heading));--links:var(--card-links,var(--paper-link))}
.core-card>.card-copy h3{color:var(--card-heading,var(--paper-heading))}.core-card::after{border-width:var(--card-border-width,1px);border-color:var(--card-heading,var(--paper-heading))}

.core-card{--surface:var(--card-surface);--surface-family:var(--card-family,light)}

.header-languages{display:var(--header-language-display,none);gap:8px;align-items:center;flex:none}.header-languages a{font:inherit;font-size:.8em;color:var(--header-ink)}.header-languages a[aria-disabled=true]{cursor:default}
/* Shared grouped navigation: pointer hover, keyboard focus and disclosure click. */
.website-header .nav-group{position:relative;margin:0;padding:0;border:0;flex:none;color:inherit}
.website-header .nav-group>summary{display:flex;align-items:center;gap:8px;padding:0;white-space:nowrap;font:inherit;color:var(--header-ink);list-style:none}
.website-header .nav-group>summary svg{width:12px;height:8px;flex:none;stroke:currentColor;fill:none;stroke-width:1.5}
.website-header .nav-dropdown{position:absolute;top:100%;left:0;width:max-content;min-width:220px;max-width:calc(100vw - 32px);padding:12px;display:flex;flex-direction:column;gap:10px;background:var(--paper);border:1px solid var(--paper-heading);color:var(--paper-text);box-shadow:0 8px 20px #0002;z-index:25}
.website-header .header-navigation .nav-dropdown a:not(.navigation-cta){color:var(--paper-link);white-space:nowrap;padding:3px 6px}
.website-header .nav-dropdown .nav-group>summary{color:var(--paper-text)}
.website-header.header-compact .nav-dropdown{position:static;width:auto;min-width:0;max-width:100%;box-shadow:none;margin-top:10px}
.website-header.header-compact .nav-group>summary{color:var(--paper-text)}
.website-header.header-compact .header-navigation .nav-dropdown a:not(.navigation-cta){white-space:normal;overflow-wrap:anywhere}

.core-card{padding:var(--cards-paddingVertical,0px) var(--cards-paddingHorizontal,0px)}

.gallery-item[hidden],.carousel-navigation[hidden]{display:none!important}

/* Native controls stay borderless; one shared, higher-contrast playback strip. */
.content-audio audio{background:color-mix(in srgb,var(--text) 18%,var(--surface));color:var(--text)}
.content-audio audio::-webkit-media-controls-panel{background:color-mix(in srgb,var(--text) 18%,var(--surface));color:var(--text)}
/* Blog uses shared surface, typography, border and radius tokens. Only relationships are Blog-specific. */
.blog-grid{display:grid;grid-template-columns:repeat(var(--blog-columns,3),minmax(0,1fr));column-gap:var(--blog-column-gap);row-gap:var(--blog-row-gap)}
.blog-card{min-width:0;overflow:hidden;display:flex;flex-direction:column;border-radius:var(--card-radius)}.blog-card.blog-contained{background:var(--card-surface);--text:var(--card-text);--heading:var(--card-heading);--links:var(--card-links);color:var(--text)}.blog-contained.blog-bordered{border:1px solid var(--card-heading)}
.blog-card:has(.media[data-shape=rounded]){border-top-left-radius:var(--card-image-radius);border-top-right-radius:var(--card-image-radius)}.blog-image{display:block;padding:0}.blog-contained .blog-image{padding:var(--blog-image-padding)}.blog-copy{display:flex;flex-direction:column;padding:0;margin-top:var(--blog-image-title-gap)}.blog-contained .blog-copy{padding:0 var(--blog-text-padding) var(--blog-text-padding)}.blog-copy h3,.blog-copy p{margin:0}.blog-copy h3 a{color:var(--heading);text-decoration:none}.blog-excerpt{padding-top:var(--blog-title-excerpt-gap)}.blog-copy .blog-metadata{padding-top:var(--blog-metadata-gap);font-size:.8em}.blog-card .media{border-radius:var(--card-image-radius)}.blog-card .media[data-shape=square]{border-radius:0}
.blog-hero{display:grid;gap:var(--rhythm)}.blog-hero-copy{max-width:var(--narrow-width);margin-inline:auto}.blog-hero-copy h1{margin:var(--rhythm) 0}.blog-hero .media{border-radius:var(--card-image-radius)}
.website-page.with-page-hero{position:relative}.with-page-hero>.website-header{position:absolute;top:0;left:0;right:0;z-index:5}
.page-hero{position:relative;padding:0;min-height:var(--hero-height);display:flex;align-items:center;justify-content:center}.page-hero>.media{width:100%;height:var(--hero-height);aspect-ratio:auto!important;border-radius:0!important}.page-hero>.media img,.page-hero>.media video{width:100%;height:100%;object-fit:cover}.page-hero .media-over-content{padding-top:calc(var(--header-height) + 24px);padding-inline:max(24px,calc((100% - var(--content-width))/2));}.page-hero-text{width:min(100% - 48px,var(--content-width));padding-top:var(--header-height);padding-bottom:32px}.page-hero[data-hero-horizontal=center] .page-hero-text{text-align:center}.page-hero[data-hero-horizontal=right] .page-hero-text{text-align:right}.page-hero[data-hero-vertical=top]{align-items:flex-start}.page-hero[data-hero-vertical=bottom]{align-items:flex-end}
@media(max-width:1023px){.blog-grid{grid-template-columns:repeat(min(var(--blog-columns),2),minmax(0,1fr))}}@media(max-width:767px){.blog-grid{grid-template-columns:1fr}.page-hero{min-height:var(--hero-mobile-height)}.page-hero>.media{height:var(--hero-mobile-height)}}
.blog-card,.blog-hero{--image-radius:var(--card-image-radius)}.blog-image>.media{width:100%}.page-hero.section>.media{max-width:none;margin:0}.blog-card .media[data-shape=square]{aspect-ratio:var(--usage-ratio,4/3)}.page-hero .media-content-dark h1,.page-hero .media-content-light h1{color:inherit}.page-hero-text.media-content-dark{color:var(--content-dark-text)}.page-hero-text.media-content-dark h1{color:var(--content-dark-heading)}.page-hero-text.media-content-light{color:var(--content-light-text)}.page-hero-text.media-content-light h1{color:var(--content-light-heading)}
.with-page-hero>.website-header+:is(#page,.section-stack)>.page-hero:first-child{padding:0}
.blog-card[data-image-inset=true]{border-top-left-radius:var(--card-radius);border-top-right-radius:var(--card-radius)}

.page-hero>.media{background:transparent}

.page-hero .media-over-content>div,.page-hero-text{display:flex;flex-direction:column;gap:0;align-items:flex-start}.page-hero h1,.page-hero p{margin:0}.page-hero :is(.media-over-content>div,.page-hero-text)>:is(h1,p)+:is(h1,p){padding-top:16px}.page-hero .button{align-self:auto;margin:0}.page-hero .hero-cta-spacer{height:var(--hero-cta-gap);flex-shrink:0}.page-hero[data-hero-horizontal=center] .page-hero-text{align-items:center}.page-hero[data-hero-horizontal=right] .page-hero-text{align-items:flex-end}
.page-hero .media-horizontal-center>div{align-items:center}.page-hero .media-horizontal-right>div{align-items:flex-end}
.blog-hero[data-layout=split]{grid-template-columns:minmax(0,1fr) minmax(0,1fr);align-items:center;gap:var(--gap)}.blog-hero[data-layout=split]>.media{width:100%;min-width:0}.blog-hero[data-layout=split] .blog-hero-copy{margin:0;max-width:none;min-width:0}.blog-hero[data-layout=split][data-image-position=right]>.media{grid-column:2;grid-row:1}.blog-hero[data-layout=split][data-image-position=right]>.blog-hero-copy{grid-column:1;grid-row:1}@media(max-width:767px){.blog-hero[data-layout=split]{grid-template-columns:1fr}.blog-hero[data-layout=split][data-image-position]>.media,.blog-hero[data-layout=split][data-image-position]>.blog-hero-copy{grid-column:auto;grid-row:auto}}
.blog-hero[data-layout=split]>.media{aspect-ratio:var(--usage-ratio,4/3)}
.article-author-section{padding-block:var(--rhythm,24px)}.article-author{display:flex;align-items:center;justify-content:center;gap:var(--gap,24px)}.article-author-picture{flex:0 0 var(--article-portrait-size,72px);width:var(--article-portrait-size,72px);height:var(--article-portrait-size,72px)}.article-author-picture .media{width:100%;height:100%;aspect-ratio:1;border-radius:50%;overflow:hidden}.article-author-picture img{object-fit:cover}.article-author-signature{display:block;width:var(--article-signature-size,120px);max-width:100%;height:auto;object-fit:contain}@media(max-width:767px){.article-author{gap:var(--rhythm,16px);flex-wrap:wrap}}
.section.article-author-section{padding-block:var(--rhythm,24px)}
.article-blocks{max-width:var(--narrow-width,800px);margin:auto}.article-content-block{margin-block:var(--rhythm,24px)}.article-image-text{gap:var(--gap,24px);align-items:center}.article-image-text[data-image-position=right]>.visual-media-frame,.article-image-text[data-image-position=right]>.media{order:2}.article-blocks blockquote{margin-inline:0;padding-inline-start:var(--rhythm,24px);border-inline-start:2px solid currentColor}.article-blocks hr{border:0;border-top:1px solid currentColor;opacity:.2}@media(max-width:767px){.article-image-text[data-image-position=right]>.visual-media-frame,.article-image-text[data-image-position=right]>.media{order:0}}

:is(.core-image-text,.about-layout)[data-image-position=right]>:first-child{order:2}@media(max-width:767px){:is(.core-image-text,.about-layout)[data-image-position=right]>:first-child{order:0}}

.blog-grid [data-blog-index][hidden]{display:none!important}.blog-pagination{display:flex;align-items:center;justify-content:center;flex-wrap:wrap;gap:16px;margin-top:var(--rhythm,24px)}.blog-pagination a{color:var(--links);text-decoration:none;padding:4px}.blog-pagination [aria-current=page]{font-weight:700;text-decoration:underline;text-underline-offset:5px}.blog-pagination [aria-disabled=true]{opacity:.35;pointer-events:none}

/* Shared article introduction: published page and writing canvas. */
.article-introduction{container-type:inline-size;background:var(--surface,var(--paper));color:var(--text,var(--main-text))}.article-template-hero>.media{height:var(--article-hero-height,520px);aspect-ratio:auto!important;border-radius:0!important}.article-template-hero>.media img{width:100%;height:100%;object-fit:cover}.article-intro-copy{max-width:780px;padding-block:32px}.article-sharing{display:flex;flex-wrap:wrap;gap:10px;align-items:center;margin-top:24px}.article-sharing :is(a,button){font:inherit;font-size:13px;color:inherit;background:transparent;border:1px solid currentColor;border-radius:3px;padding:7px 10px;text-decoration:none}.article-sharing [role=status]{font-size:13px}.article-template-hero h1{color:inherit;margin:0}.article-template-hero .media-over-content{padding:clamp(24px,5vw,72px)}
@container(max-width:700px){.article-template-hero>.media{height:var(--article-hero-mobile-height,360px)}.article-template-hero>.media img{object-position:var(--mfx) var(--mfy);transform:scale(var(--mzoom))}.article-template-hero h1{font-size:clamp(28px,7cqi,44px)}}

/* Kypseli Living shared compact icon treatment. */
.article-sharing{justify-content:center;gap:6px;margin:40px auto 18px;position:relative}.article-sharing :is(a,button){display:grid;place-items:center;box-sizing:border-box;width:38px;height:36px;padding:7px;border:1px solid #c9cdca;border-radius:0;background:#fff;cursor:pointer;transition:transform .18s ease,border-color .18s ease}.article-sharing :is(a,button):hover{transform:translateY(-2px);border-color:#946b3f}.article-sharing img{display:block;width:18px;height:18px;object-fit:contain}.article-sharing :is(.share-whatsapp-icon,.share-facebook-icon){display:block;width:18px;height:18px;background:currentColor;mask-repeat:no-repeat;mask-position:center;mask-size:contain;-webkit-mask-repeat:no-repeat;-webkit-mask-position:center;-webkit-mask-size:contain}.article-sharing .share-whatsapp-icon{color:#25d366;mask-image:url('/icons/sharing/whatsapp-icon-black.png');-webkit-mask-image:url('/icons/sharing/whatsapp-icon-black.png')}.article-sharing .share-facebook-icon{color:#4267a9;mask-image:url('/icons/sharing/share-facebook-white.png');-webkit-mask-image:url('/icons/sharing/share-facebook-white.png')}.article-sharing .share-copy-icon{position:relative;width:16px;height:16px}.article-sharing .share-copy-icon::before,.article-sharing .share-copy-icon::after{content:"";position:absolute;width:10px;height:10px;border:1.4px solid #39764b;background:#fff}.article-sharing .share-copy-icon::before{left:1px;top:1px}.article-sharing .share-copy-icon::after{right:1px;bottom:1px}.article-sharing [role=status]{position:absolute;width:1px;height:1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap}
@container(max-width:560px){.article-sharing{gap:5px}.article-sharing :is(a,button){width:36px;height:35px;padding:7px}.article-sharing img,.article-sharing .share-whatsapp-icon,.article-sharing .share-facebook-icon{width:17px;height:17px}}
/* Shared pricing: horizontal rows, automatic leaders, no visitor JavaScript. */
.service-prices{width:100%;max-width:420px;margin:16px 0;font-size:var(--body-size);line-height:var(--body-line)}
.service-price-row{display:flex;align-items:baseline;gap:var(--price-gap,8px);margin:6px 0;min-width:0}
.service-price-duration{min-width:0;overflow-wrap:anywhere}
.service-price-value{flex:0 0 auto}
.service-price-separator{flex:var(--price-separator-grow,1) 0 12px;border-bottom:2px var(--price-separator-border,dotted) currentColor;align-self:baseline;position:relative;min-width:8px}
.service-price-separator::after{content:var(--price-separator-character,"")}
.section:not(.hero):not(.embed-section)>.service-prices{max-width:420px;margin-left:0;margin-right:0}

/* Shared section composition keeps canonical sections independently editable. */
#page{display:grid;grid-template-columns:repeat(10,minmax(0,1fr))}
:is(#page,.section-stack)>.section{grid-column:1/-1;min-width:0}
:is(#page,.section-stack)>.section[data-section-width=half]{grid-column:span 5;padding:40px max(24px,4vw)}
.section[data-content-alignment=center]{text-align:center}
.section[data-content-alignment=center] .embed-intro{max-width:min(100%,640px);margin-inline:auto}
.section[data-content-alignment=center]>h2{max-width:640px}

.section[data-section-width=half] .core-container{width:100%}
.section[data-section-width=half] .blog-card .media{border-radius:0}
@media(max-width:767px){:is(#page,.section-stack)>.section[data-section-width=half]{grid-column:1/-1;padding:32px 24px}}

:is(#page,.section-stack)>.section[data-section-width=half]{--section-inline-padding:max(24px,4vw)}
.section[data-content-alignment=center]>p{max-width:640px}
.section.about>.two-column{grid-template-columns:minmax(180px,.55fr) minmax(0,1fr);max-width:var(--section-layout-width,var(--content-width));gap:var(--gap)}
.section.about>.two-column[data-image-position=right]{grid-template-columns:minmax(0,1fr) minmax(180px,.55fr)}
.about .two-column>div:first-child{max-width:260px;width:100%;justify-self:center}
.about .media{aspect-ratio:var(--usage-ratio)}
.about .signature{width:var(--article-signature-size,120px);margin-inline:auto}
.about .signature .media{aspect-ratio:var(--source-ratio);background:transparent}
.about .signature img{object-fit:contain}
@media(max-width:767px){.section.about>.two-column,.section.about>.two-column[data-image-position=right]{grid-template-columns:1fr;gap:var(--gap)}:is(#page,.section-stack)>.section[data-section-width=half]{--section-inline-padding:24px}}

/* Service and event collections use the same card shell as the Design preview. */
.service-grid .card-copy h3,.event-grid .card-copy h3{margin-top:0}
.service-grid .card-copy details{border-color:color-mix(in srgb,var(--heading) 35%,transparent)}
.core-card>.image-link>.media{border-radius:var(--card-image-radius)}
.core-card:has(>.image-link>.media[data-shape=rounded]){--card-top-radius:var(--card-padded-radius,var(--card-image-radius))}
/* Keep card copy readable in narrower CMS canvases as well as public pages. */
.services{container-type:inline-size}
@container(max-width:1067px){.service-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@container(max-width:560px){.service-grid{grid-template-columns:1fr}}

/* Native, static reviews use the same section, palette and typography tokens. */
.reviews-source{display:flex;align-items:center;flex-wrap:wrap;gap:12px;margin-block:16px 28px;font-size:.85em}.reviews-source img{width:92px;height:30px;object-fit:contain}.reviews-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:24px}.review-card{padding:24px;border:1px solid currentColor;border-radius:var(--card-radius,0)}.review-card blockquote{margin:16px 0;white-space:pre-wrap;overflow-wrap:anywhere}.review-rating{letter-spacing:.1em}.review-card time,.review-card>a{font-size:.85em}@media(max-width:700px){.reviews-grid{grid-template-columns:1fr}}

/* Sparse Cards overrides; legacy collections without settings are untouched. */
.core-card{overflow:hidden;border-radius:var(--card-top-radius,0px) var(--card-top-radius,0px) var(--local-card-radius,var(--card-radius,0px)) var(--local-card-radius,var(--card-radius,0px))}
.core-card[data-card-shape=oval]{border-top-left-radius:50cqw calc(50cqw / var(--card-media-ratio,1.333333));border-top-right-radius:50cqw calc(50cqw / var(--card-media-ratio,1.333333))}
.core-card>.card-copy{border-radius:0}
/* Without media, all four corners follow the existing Card corner radius. */
.core-card[data-card-text-only]{border-radius:var(--local-card-radius,var(--card-radius,0px))}
.core-card[data-card-design]{text-align:var(--local-card-alignment,inherit)}
.core-card[data-card-design]>.card-copy{padding:var(--local-card-content-padding,var(--rhythm));padding-top:var(--local-card-image-title-gap,var(--local-card-content-padding,var(--rhythm)))}
.core-card[data-card-design]>.card-copy>h3{margin-bottom:var(--local-card-title-description-gap,var(--rhythm))}
.core-card[data-card-design]>.card-copy>p{margin-bottom:var(--local-card-description-button-gap,var(--rhythm))}
.core-card[data-card-design]>.card-copy>h3:has(+.button){margin-bottom:var(--local-card-description-button-gap,var(--rhythm))}
.core-card[data-card-design] .media{width:min(100%,var(--local-card-image-size,100%));margin-inline:auto;border:var(--local-card-image-border,0px) solid var(--card-heading,var(--heading))}
.core-card[data-card-design][data-card-shape=circle] .media{aspect-ratio:1;border-radius:50%}
.core-card[data-card-design][data-card-shape=square] .media{aspect-ratio:1;border-radius:0}
.core-card[data-card-design][data-card-shape=rectangle] .media{aspect-ratio:var(--usage-ratio,4/3);border-radius:0}
.core-card[data-card-design][data-card-shape=rounded] .media{aspect-ratio:var(--usage-ratio,4/3);border-radius:var(--card-image-radius,var(--image-radius))}
.core-card[data-card-design][data-card-shape=oval] .media{aspect-ratio:var(--usage-ratio,4/3);border-radius:50%}

.reviews-widget{background:transparent}.reviews-widget .review-card{border-radius:var(--review-card-radius,var(--card-radius,0));background:var(--review-card-background,transparent);color:var(--review-card-text,inherit)}

.reviews-widget .reviews-grid{gap:var(--review-card-gap,24px)}

/* One shared content-width system; section backgrounds remain edge-to-edge. */
#page .section[data-section-layout]{box-sizing:border-box;min-width:0;padding-inline:var(--section-layout-gutter,24px)!important}
#page .section[data-section-layout]>:is(.core-container:not(.article-bio),.embed-container,.content-narrow,.two-column,.integration,.event-grid,.service-grid,.social-grid,h1,h2,p){width:100%;max-width:min(100%,var(--section-layout-width,var(--content-width)))!important;min-width:0;margin-inline:auto!important;box-sizing:border-box}
#page .section[data-section-layout=custom]>.core-container>.content-narrow{max-width:100%;width:100%}
#page .section[data-section-layout] :is(img,video,iframe){max-width:100%;box-sizing:border-box}
#page .section:is(.page-hero,.blog-hero)[data-section-layout=contained]{padding-inline:0!important}
/* Inset only Hero foreground: preserve text geometry, height and full-bleed art. */
#page .hero[data-section-layout]{padding-inline:0!important;--hero-safe-inline:var(--text-safe-inline)}
#page .hero[data-section-layout]>.hero-copy{width:100%;margin-inline:var(--hero-safe-inline);max-width:var(--wide-width);min-width:0}

/* Custom width also contains media-free Hero text; default heroes keep Global Design. */
#page .page-hero[data-section-layout=custom]>.page-hero-text{box-sizing:border-box;width:min(100% - 48px,var(--section-layout-width));max-width:100%;flex-shrink:1}

/* Reviews have one compact, native horizontal layout at every breakpoint. */
.reviews-track{--review-columns:3;display:flex;align-items:stretch;gap:var(--review-card-gap,24px);overflow-x:auto;scroll-snap-type:x mandatory;scrollbar-width:thin;padding-bottom:8px;min-width:0}
.reviews-track>.review-card{flex:0 0 calc((100% - (var(--review-columns) - 1)*var(--review-card-gap,24px))/var(--review-columns));min-width:0;box-sizing:border-box;scroll-snap-align:start;display:flex;flex-direction:column;overflow-wrap:anywhere}
.reviews-track .review-author{margin-top:auto;padding-top:16px}.reviews-track .review-text{margin-bottom:16px}.review-expand summary{cursor:pointer;text-decoration:underline;list-style:none}.review-expand summary::-webkit-details-marker{display:none}.review-expand .review-less{display:none}.review-expand[open] .review-less{display:inline}.review-expand[open] .review-more,.review-text:has(.review-expand[open])>.review-excerpt{display:none}.review-expand blockquote{margin-bottom:0}.reviews-navigation .carousel-arrows{display:flex}
@media(max-width:1000px){.reviews-track{--review-columns:2}}@media(max-width:600px){.reviews-track{--review-columns:1}}

/* Compact review copy and source information; no flexible vertical spacer. */
.reviews-track{align-items:flex-start;overflow-y:hidden}
.reviews-track>.review-card{text-align:left}
.review-card-body{display:flex;flex-direction:column;gap:16px}
.review-card-body>p,.review-card-body blockquote,.reviews-track .review-text{margin:0}
.review-card-body .review-text{display:flex;flex-direction:column;gap:8px}
.review-footer{display:flex;justify-content:space-between;align-items:baseline;gap:8px 16px;flex-wrap:wrap}
.reviews-track .review-author{margin:0;padding:0;min-width:0}
.review-footer>a{font-size:.85em;margin-left:auto}
/* Five-line excerpts reserve one shared text area without changing saved text. */
.review-text>.review-excerpt{display:-webkit-box;-webkit-box-orient:vertical;-webkit-line-clamp:5;line-clamp:5;overflow:hidden;min-height:5lh;max-height:5lh}
.review-text[data-expandable=false]::after{content:"";display:block;height:1lh}
.reviews-carousel-shell{display:grid;grid-template-columns:44px minmax(0,1fr) 44px;align-items:center;column-gap:8px}
.reviews-dots{display:flex;grid-column:1/-1;gap:8px;flex-wrap:wrap;justify-content:center;margin-top:16px}
.reviews-dots[hidden],.reviews-page-spacer[hidden],.review-expand[hidden]{display:none}
.reviews-dots button{width:10px;height:10px;min-height:10px;padding:0;border:1px solid currentColor;background:transparent;color:inherit;border-radius:50%}
.reviews-dots [aria-current=true]{background:currentColor}
.review-text:has(.review-expand[open])>.review-excerpt{display:none}

.reviews-carousel-shell>button.navigation-arrow,.reviews-carousel-shell>button.navigation-arrow:is(:hover,:active,:focus){border:0;border-radius:0;background:transparent;box-shadow:none}
.reviews-carousel-shell>button.navigation-arrow:focus-visible{outline:2px solid currentColor;outline-offset:2px}

.button.button-style-forest{border-radius:var(--button-radius)}

/* Inset strokes keep button dimensions stable when border visibility/width changes. */
.button
.button.button-style-forest{--filled-stroke:var(--forest-border,var(--button-outline))}

/* Additional hero titles retain H1 presentation while using H2 semantics. */
h2.heading-display-h1{font-size:var(--h1)}
.hero h2.heading-display-h1{color:#bc9e91}
.page-hero h2.heading-display-h1{margin:0}
.page-hero :is(.media-over-content>div,.page-hero-text)>:is(h2.heading-display-h1,p)+:is(h2.heading-display-h1,p){padding-top:16px}
.page-hero .media-content-dark h2.heading-display-h1,.page-hero .media-content-light h2.heading-display-h1{color:inherit}
.page-hero-text.media-content-dark h2.heading-display-h1{color:var(--content-dark-heading)}
.page-hero-text.media-content-light h2.heading-display-h1{color:var(--content-light-heading)}
.blog-hero-copy h2.heading-display-h1{margin:var(--rhythm) 0}
.article-template-hero h2.heading-display-h1{color:inherit;margin:0}
@media(max-width:767px){.hero h2.heading-display-h1{font-size:calc(var(--h1)*.52);max-width:340px}}
@container(max-width:700px){.article-template-hero h2.heading-display-h1{font-size:clamp(28px,7cqi,44px)}}

/* Explicit card image curvature is independent of shape and ordinary image tokens. */
.core-card[data-card-image-corners]:not([data-card-shape=circle]):not([data-card-shape=oval]){--card-top-radius:min(var(--card-image-corner-radius),50cqw,calc(50cqw / var(--card-media-ratio,1.333333)))}
.core-card[data-card-image-corners]:not([data-card-shape=circle]):not([data-card-shape=oval]) .media:not([data-shape=circle]):not([data-shape=oval]){border-radius:var(--card-image-corner-radius);clip-path:inset(0 round var(--card-image-corner-radius))}

.about .signature[data-image-alignment=left]{margin-left:0;margin-right:auto}.about .signature[data-image-alignment=center]{margin-inline:auto}.about .signature[data-image-alignment=right]{margin-left:auto;margin-right:0}

.about .about-portrait-column{display:flex;flex-direction:column;align-items:center}.about-portrait-column>.media{width:100%}.about-social-links{display:flex;flex-wrap:wrap;justify-content:center;gap:16px;margin:0 0 var(--rhythm)}.about-social-links a{display:inline-flex;width:var(--social-icons-size,24px);height:var(--social-icons-size,24px)}.about-social-links svg{width:100%;height:100%;fill:none;stroke:currentColor;stroke-width:1.7;stroke-linecap:round;stroke-linejoin:round}.about-portrait-column>.button{align-self:center}.about .about-portrait-column .media[data-shape=pill]{aspect-ratio:var(--usage-ratio);border-radius:999px;clip-path:inset(0 round 999px)}

/* Plain-text section copy keeps the same author-entered breaks in both renderers. */
.section-copy{white-space:pre-wrap;overflow-wrap:break-word}

.about-social-links img{display:block;width:var(--social-icons-size,24px);height:var(--social-icons-size,24px);object-fit:contain;mix-blend-mode:multiply}

/* Mirror the composed image only; focal zoom, frame and overlay remain independent. */
.media>.image-plane{display:block;width:100%;height:100%;transform:scaleX(var(--image-flip,1));transform-origin:center}

/* Optional proportions extend the existing paired-section grid. */
@media(min-width:768px){:is(#page,.section-stack)>.section[data-section-width=half][data-section-share="40"]{grid-column:span 4}:is(#page,.section-stack)>.section[data-section-width=half][data-section-share="60"]{grid-column:span 6}}

footer{background:var(--footer-background,var(--surface,var(--sand)))}

/* Optional section presentation reuses the standard global vertical rhythm. */
:is(#page,.section-stack)>.section[data-section-spacing=standard]{padding-top:var(--section-padding-top,var(--section-y))!important;padding-bottom:var(--section-padding-bottom,var(--section-y))!important}
@media(max-width:767px){:is(#page,.section-stack)>.section[data-section-spacing=standard]{padding-top:calc(var(--section-padding-top,var(--section-y))*.55)!important;padding-bottom:calc(var(--section-padding-bottom,var(--section-y))*.55)!important}}

/* Footer content follows the same automatic surface families as the CMS. */
footer{color:var(--footer-text,var(--text));}footer h3{color:var(--footer-heading,var(--heading))}footer a{color:var(--footer-links,var(--links))}

.section .review-card a{color:var(--review-card-links,var(--links))}

/* Navigation CTA links consume the shared button library; ordinary links are unchanged. */
.header-navigation .navigation-cta{display:inline-flex;align-items:center;justify-content:center;flex:none}

/* One Header, with unchanged net document space; mobile is deliberately excluded. */
.website-header.header-full-navigation{position:sticky;top:0}.website-header.header-stuck{--header-opacity:1}.website-header.header-stuck::before{height:60px;bottom:auto}.website-header.header-stuck .site-identity{display:none}.website-header.header-stuck .header-inner{height:60px;align-self:flex-start;margin-block:0}

.website-header.header-transparent:not(.header-stuck){--header-opacity:0}

/* Optional Transparent-header foreground choice reuses the existing surface families.
   CTA buttons and solid dropdown/menu surfaces retain their own contrast rules. */

.header-transparent:not(.header-stuck)[data-header-text=light]{--header-selected-links:var(--content-dark-links);--header-selected-heading:var(--content-dark-heading)}
.header-transparent:not(.header-stuck)[data-header-text=dark]{--header-selected-links:var(--content-light-links);--header-selected-heading:var(--content-light-heading)}
.header-transparent:not(.header-stuck):is([data-header-text=light],[data-header-text=dark]) :is(.header-navigation>summary,.header-languages a){color:var(--header-selected-links)}
.header-transparent:not(.header-stuck):is([data-header-text=light],[data-header-text=dark]) .site-identity{color:var(--header-selected-heading)}
.header-transparent:not(.header-stuck):not(.header-compact):is([data-header-text=light],[data-header-text=dark]) :is(.header-navigation nav>a:not(.navigation-cta),.header-navigation nav>.nav-group>summary){color:var(--header-selected-links)}
.header-transparent:not(.header-stuck)[data-logo-treatment=monochrome][data-header-text=light] .header-logo{filter:brightness(0) invert(1)}
.header-transparent:not(.header-stuck)[data-logo-treatment=monochrome][data-header-text=dark] .header-logo{filter:brightness(0)}

/* Both Hero render paths consume the same resolved dimensions. */
.hero{min-height:var(--hero-height)}
.hero[data-hero-horizontal=center] .hero-copy{text-align:center}
.hero[data-hero-horizontal=right] .hero-copy{text-align:right}
.hero[data-hero-horizontal=center] .hero-copy p{margin-inline:auto}
.hero[data-hero-horizontal=right] .hero-copy p{margin-left:auto}
.hero[data-hero-vertical=top]{align-items:start}
.hero[data-hero-vertical=bottom]{align-items:end}
.hero[data-hero-appearance=light] .hero-copy{color:var(--content-dark-text)}
.hero[data-hero-appearance=dark] .hero-copy{color:var(--content-light-text)}
.hero[data-hero-appearance=light] .hero-copy :is(h1,h2){color:var(--content-dark-heading)}
.hero[data-hero-appearance=dark] .hero-copy :is(h1,h2){color:var(--content-light-heading)}
@media(max-width:767px){.hero{min-height:var(--hero-mobile-height)}}

/* Filled variants share geometry and select independent colors through existing appearances. */

/* Outline keeps its stroke dimensions in every state; hover stroke matches fill. */
.button.button-style-outline{box-shadow:none;background:transparent;color:var(--outline-normal-ink,var(--button-outline));border-color:var(--outline-normal-ink,var(--button-outline))}
.button.button-style-outline:is(:hover,:focus-visible,:active){background:var(--outline-hover-bg,var(--button-outline));color:var(--outline-hover-ink,#ffffff);border-color:var(--outline-hover-bg,var(--button-outline))}

/* Shared background-video frame, with the selected image retained underneath. */
.media.youtube-background{container-type:size}.youtube-background-player{position:absolute;left:50%;top:50%;width:max(100%,177.778cqh);height:max(100%,56.25cqw);transform:translate(-50%,-50%);border:0;pointer-events:none}
@media(min-width:768px){.core-cards:has(>:nth-child(2)):not(:has(>:nth-child(3))){grid-template-columns:repeat(2,minmax(0,1fr))}}

.youtube-background-viewport{position:absolute;inset:0;overflow:clip;pointer-events:none}
/* Transparent pages have no Header surface or backdrop; compact sticky remains solid. */
.website-header.header-transparent:not(.header-stuck)::before{content:none;background:transparent;backdrop-filter:none}

/* Optional formatted lists inherit the same body surface and vertical rhythm. */
.formatted-copy{margin-block:1em}.media-over-content .formatted-copy,.page-hero .formatted-copy{margin:0}.hero .formatted-copy{font-size:var(--body-size);line-height:var(--body-line);max-width:330px}

/* Article introduction is a direct page-grid child, just like ordinary sections. */
#page>.article-introduction{grid-column:1/-1;min-width:0}.section-stack>.article-introduction{grid-column:1/-1;min-width:0}
.article-image-text>figure{margin:0;min-width:0}.article-image-text figcaption{margin-top:12px;font:inherit;font-size:.9em;overflow-wrap:anywhere}.article-image-text>div{min-width:0}

.article-intro-copy{width:calc(100% - 48px);box-sizing:border-box}

/* Article banners use the existing transparent Page header and contrast sampling. */
.with-page-hero .article-template-hero .media-over-content{padding-top:calc(var(--header-height) + 24px)}
.article-image-text{align-items:start}

/* Keep the sharing row close to the article body and align in-flow signoffs. */
.article-intro-copy{padding-bottom:0}.article-intro-copy .article-sharing{margin-bottom:0}
.section.article-body-section{padding-top:var(--rhythm,24px)}
.article-body>.article-blocks>.article-content-block:first-child{margin-top:0}
.article-body>.article-blocks>.article-content-block:first-child>p:first-child{margin-top:0}
:is(.article-content-block,.writing-block)>.article-author-section{padding:0}
:is(.article-content-block,.writing-block)>.article-author-section .article-author{justify-content:flex-start}
:is(.article-content-block,.writing-block)>.article-author-section .article-author-signature{width:calc(var(--article-signature-size,120px)*.6)}

/* The sharing row has equal outer breathing room above and below. */
.article-intro-copy{padding-block:32px}.article-intro-copy .article-sharing{margin-block:40px}
.section.article-body-section{padding-top:0}
/* The shared Bio keeps portrait/social and biography in independent columns. */
.section.article-bio-section{padding-block:var(--rhythm,24px)}
.section.article-bio-section>.article-bio{display:grid;grid-template-columns:auto minmax(0,1fr);column-gap:var(--gap,32px);align-items:start;max-width:var(--narrow-width,800px);border-block:1px solid color-mix(in srgb,currentColor 25%,transparent);padding-block:var(--gap,32px)}
.author-bio-portrait{grid-column:1;grid-row:1 / span 2;width:var(--bio-photo-size,160px);max-width:100%;margin:0}.article-bio>h2,.author-bio-copy{grid-column:2;min-width:0}.author-bio-photo>.media{width:100%;aspect-ratio:1}.author-bio-photo .media[data-shape=circle]{border-radius:50%}.author-bio-portrait .about-social-links{justify-content:center;margin:20px 0 0;gap:12px}.article-bio h2{margin-top:0;font-size:var(--h3)}.article-bio p:last-child{margin-bottom:0}
@media(max-width:600px){.section.article-bio-section>.article-bio{grid-template-columns:minmax(0,1fr)}.author-bio-portrait{grid-column:1;grid-row:auto;margin:0 auto 24px}.article-bio>h2,.author-bio-copy{grid-column:1}.article-bio h2{font-size:var(--h3)}}
/* Tighten only the space after the article signoff, leaving Bio internals intact. */
.section.article-body-section:has(.article-author-signature){padding-bottom:max(0px,calc(var(--section-y,80px)*.5 - var(--rhythm,24px)))}
:is(#page,.section-stack)>.section.article-author-section{padding-bottom:0}
@media(max-width:767px){.section.article-body-section:has(.article-author-signature){padding-bottom:0}}

.article-image{margin:0}.article-image figcaption{margin-top:12px;font:inherit;font-size:.9em;overflow-wrap:anywhere}

/* Blog editorial flow: the caption stays with its floated image; copy resumes full width below it. */
.article-image-text{display:flow-root;container-type:inline-size;container-name:article-flow}
.article-image-text figcaption{text-align:left}
.article-image-text[data-image-position=right] figcaption{text-align:right}
/* List line boxes wrap around the float and resume full width below it. */
.article-image-text :is(ul,ol){display:block;list-style-position:outside;padding-inline-start:1.4em}
/* Native list items share the float's line boxes, including within one item. */
.article-image-text li{display:list-item;overflow:visible;overflow-wrap:break-word}
.article-image-text>:last-child>:last-child{margin-bottom:0}
.article-image-text>:first-child{float:left;width:calc((100% - var(--gap,24px)) * var(--image-share,.5));margin:0 var(--gap,24px) var(--rhythm,24px) 0}
.article-image-text[data-image-position=right]>:first-child{float:right;margin:0 0 var(--rhythm,24px) var(--gap,24px)}
@media(max-width:767px){.article-image-text>:first-child,.article-image-text[data-image-position=right]>:first-child{float:none;width:100%;margin:0 0 var(--gap,24px)}}
/* The writing canvas uses the same flow when its preview is narrower than the window. */
@container article-preview (max-width:767px){.article-image-text>:first-child,.article-image-text[data-image-position=right]>:first-child{float:none;width:100%;margin:0 0 var(--gap,24px)}}

/* Optional section-side overrides leave the other side's responsive defaults intact. */
:is(#page,.section-stack)>.section[data-section-padding-top]{padding-top:var(--section-padding-top)!important}
:is(#page,.section-stack)>.section[data-section-padding-bottom]{padding-bottom:var(--section-padding-bottom)!important}
@media(max-width:767px){:is(#page,.section-stack)>.section[data-section-padding-top]{padding-top:calc(var(--section-padding-top)*.55)!important}:is(#page,.section-stack)>.section[data-section-padding-bottom]{padding-bottom:calc(var(--section-padding-bottom)*.55)!important}}

/* Opt-in service-page price line; existing Rows and Cards remain unchanged. */
.service-prices-inline{display:block;max-width:none;margin-bottom:var(--rhythm);overflow-wrap:anywhere}.service-prices-inline .service-price-inline-option{white-space:nowrap}.service-price-description{white-space:normal}

/* FAQ reuses native disclosure and the section typography/surface tokens. */
:is(.faq-list,.disclosure-list) details{border-top:1px solid color-mix(in srgb,var(--text) 22%,transparent);padding:20px 0}:is(.faq-list,.disclosure-list) details:last-child{border-bottom:1px solid color-mix(in srgb,var(--text) 22%,transparent)}:is(.faq-list,.disclosure-list,.service-grid) summary{cursor:pointer;color:var(--heading);font-family:var(--heading-font);font-size:calc(var(--h3)*.67);line-height:1.3;list-style:none;display:flex;justify-content:space-between;gap:24px}:is(.faq-list,.disclosure-list,.service-grid) summary::-webkit-details-marker{display:none}:is(.faq-list,.disclosure-list,.service-grid) summary:after{content:'';display:block;flex:0 0 1em;width:1em;height:1em;align-self:center;background:var(--text);mask:url('/cms-icons/21.png') center/contain no-repeat;transition:transform var(--transition,180ms)}:is(.faq-list,.disclosure-list,.service-grid) details[open]>summary:after{transform:rotate(180deg)}:is(.faq-list,.disclosure-list) details>p,:is(.faq-list,.disclosure-list) details>.formatted-copy{margin:24px 0 0}.faq-list>h2{text-align:center;margin-bottom:48px}

/* Optional Prices media shares existing image composition and overlay controls. */
.section-prices{position:relative;isolation:isolate}.section-prices>.core-container{position:relative;z-index:1}.prices-background{position:absolute;inset:0;overflow:hidden;border-radius:var(--image-radius,0);z-index:0}.prices-background>.media{height:100%;width:100%;aspect-ratio:auto;border-radius:inherit}.prices-service{margin:32px 0}.prices-service h3{color:var(--heading)}.section-prices .service-prices{max-width:none}

.section-prices>.prices-background{max-width:none!important;margin:0}.section-prices>.core-container{color:var(--text)}

/* Opt-in reusable frame: media, overlay and outline share one clipping edge. */
:is(#page,.section-stack)>.section[data-section-corners]{position:relative;isolation:isolate;overflow:clip;border-radius:0}:is(#page,.section-stack)>.section[data-section-corners=rounded]{border-radius:var(--section-radius,var(--image-radius,0))}:is(#page,.section-stack)>.section[data-section-corners]>.prices-background{border-radius:inherit}:is(#page,.section-stack)>.section[data-section-outline=true]::after{content:'';position:absolute;inset:0;border:var(--button-border,1px) solid var(--accent);border-radius:inherit;pointer-events:none;z-index:3}

/* Custom Hero position distributes available space around the entire text group.
   Intrinsic content can increase the minimum height, including on narrow screens. */
.page-hero[data-hero-vertical=custom]{--custom-hero-height:var(--hero-height);display:block}
.page-hero[data-hero-vertical=custom]>.media{height:auto;min-height:var(--custom-hero-height)}
.page-hero[data-hero-vertical=custom]>.media>.image-plane,.page-hero[data-hero-vertical=custom]>.media>video{position:absolute;inset:0}
.page-hero[data-hero-vertical=custom] .media-over-content{position:relative;min-height:var(--custom-hero-height);overflow:visible;justify-content:flex-start}
.page-hero[data-hero-vertical=custom] .media-over-content>div{margin-block:0;flex-shrink:0}
.page-hero[data-hero-vertical=custom] .media-over-content::before{content:'';flex:var(--hero-position,50) 1 0px}
.page-hero[data-hero-vertical=custom] .media-over-content::after{content:'';flex:var(--hero-position-rest,50) 1 0px}
.page-hero[data-hero-vertical=custom]>.page-hero-text{min-height:var(--custom-hero-height);margin-block:0;display:flex;justify-content:flex-start}
.page-hero[data-hero-vertical=custom]>.page-hero-text::before{content:'';flex:var(--hero-position,50) 1 0px}
.page-hero[data-hero-vertical=custom]>.page-hero-text::after{content:'';flex:var(--hero-position-rest,50) 1 0px}
.hero[data-hero-vertical=custom]{display:flex;flex-direction:column;align-items:stretch}
.hero[data-hero-vertical=custom]::before{content:'';flex:var(--hero-position,50) 1 0px}
.hero[data-hero-vertical=custom]::after{content:'';flex:var(--hero-position-rest,50) 1 0px}
.hero[data-hero-vertical=custom]>.hero-copy{flex-shrink:0}
@media(max-width:767px){.page-hero[data-hero-vertical=custom]{--custom-hero-height:var(--hero-mobile-height)}}

/* Background-only continuation: no negative content margins or overlapping text. */
#page>.section-stack{grid-column:1/-1;position:relative;min-width:0}
.section-stack>.section{position:relative}.section-stack>.section[data-section-corners]{z-index:1}
.section-background-extension{clip-path:polygon(0 0,100% 0,100% var(--preceding-section-radius,0px),0 var(--preceding-section-radius,0px));position:absolute;inset:calc(-1 * var(--preceding-section-radius,0px)) 0 0;z-index:0;overflow:hidden;pointer-events:none;background:var(--surface)}
.section-background-extension>.media{position:absolute;inset:0;max-width:none;width:100%;height:100%;aspect-ratio:auto!important;border-radius:0!important}

/* Preserve the first section's existing header spacing through surface shells. */
.website-header+#page>.section-stack:first-child>.section{padding-top:calc(var(--section-y) + var(--header-height))}
.with-page-hero>.website-header+#page>.section-stack:first-child>.page-hero{padding:0}
@media(max-width:767px){.website-header+#page>.section-stack:first-child>.section{padding-top:calc(var(--section-y)*.55 + var(--header-height))}.with-page-hero>.website-header+#page>.section-stack:first-child>.page-hero{padding:0}}
/* Background images use the same continued geometry on both sides of the join. */
.section-stack>.prices-with-background>.prices-background{top:calc(-1 * var(--preceding-section-radius,0px));height:calc(100% + var(--preceding-section-radius,0px))}
.hero[data-hero-vertical=custom]>.hero-copy{width:52.38095%;max-width:var(--wide-width)}
.hero[data-hero-vertical=custom][data-hero-horizontal=center]>.hero-copy{align-self:center;text-align:center}
.hero[data-hero-vertical=custom][data-hero-horizontal=right]>.hero-copy{align-self:flex-end;text-align:right}
@media(max-width:767px){.hero[data-hero-vertical=custom]>.hero-copy{width:100%}}

/* Unified Quote is opt-in; untouched legacy testimonials retain their layout. */
.core-quote{--quote-effective-size:var(--quote-size,28px);display:block;max-width:730px;margin-inline:auto;align-items:start;color:var(--text)}
.core-quote.quote-with-photo{display:grid;width:fit-content;grid-template-columns:4em minmax(0,1fr);gap:3.5em;font-size:var(--quote-effective-size)}
.core-quote figcaption{min-width:0}
.core-quote blockquote{position:relative;margin:0 0 1.43em;padding:0;border:0;font-family:var(--quote-font,var(--heading-font));font-size:var(--quote-effective-size);font-weight:var(--quote-weight,400);font-style:var(--quote-italic,normal);line-height:var(--quote-line,1.55);text-align:var(--quote-align,left);color:var(--text);overflow-wrap:anywhere}
.core-quote blockquote p{font:inherit;color:inherit;margin:0}
.core-quote>.media{width:4em;height:4em;margin-top:.32em;max-width:100%;aspect-ratio:1}
.core-quote blockquote::before,.core-quote .quote-last-word::after{content:'';display:block;background:currentColor;mask:url('/quote-icons/25.png') center/contain no-repeat;pointer-events:none}
.core-quote[data-quote-decoration=classic] blockquote::before{position:absolute;width:.837em;height:.837em;left:-2.7em;top:-.162em}
.core-quote .quote-last-word{white-space:nowrap}
.core-quote[data-quote-decoration=classic] .quote-last-word::after{display:inline-block;width:.9em;height:.9em;margin-left:.7em;vertical-align:-.55em;mask-image:url('/quote-icons/26.png')}
.core-quote:not(.quote-with-photo)[data-quote-decoration=classic]{padding-inline:3em}
.core-quote[data-quote-decoration=centered] blockquote{text-align:center}
.core-quote[data-quote-decoration=centered] blockquote::before{width:2em;height:2em;margin:0 auto 1em}
.core-quote[data-quote-decoration=none] blockquote::before{content:none}
.core-quote .quote-byline{display:flex;justify-content:flex-end;align-items:baseline;flex-wrap:wrap;gap:0;width:100%;box-sizing:border-box;font:italic max(14px,calc(var(--quote-effective-size)*.643))/1.5 var(--body-font);color:var(--text)}
.core-quote .quote-author+.quote-source::before{content:' – ';white-space:pre}
.core-quote .quote-byline:empty{display:none}
.article-blocks .core-quote{padding-inline:3em}
@media(max-width:767px){.core-quote{--quote-effective-size:clamp(18px,6vw,var(--quote-size,28px))}.core-quote.quote-with-photo{grid-template-columns:1fr;gap:24px}.core-quote.quote-with-photo figcaption{margin-inline:1.5em}.core-quote[data-quote-decoration=classic] blockquote::before{left:-1.5em}.core-quote .quote-byline{font-size:14px}.core-quote>.media{margin-top:0}.core-quote:not(.quote-with-photo)[data-quote-decoration=classic],.article-blocks .core-quote{padding-inline:1.5em}}
/* Writing canvas keeps its semantic editable tree; decoration remains generated. */
.writing-block .core-quote[data-quote-decoration=classic] blockquote>:last-child::after{content:'';display:inline-block;width:.9em;height:.9em;margin-left:.7em;vertical-align:-.55em;background:currentColor;mask:url('/quote-icons/26.png') center/contain no-repeat;pointer-events:none}

/* Explicit fills select existing Global Design definitions on the button itself. */


/* All filled styles share geometry and use fixed Global Design colors. */
.button:is(.button-style-default,.button-style-caramel,.button-style-cream,.button-style-forest){background:var(--fill-bg);color:var(--fill-text);border-width:0;box-shadow:inset 0 0 0 var(--filled-border-width,0px) var(--fill-border)}
.button:is(.button-style-default,.button-style-caramel,.button-style-cream,.button-style-forest):is(:hover,:focus-visible,:active){background:var(--fill-hover-bg);color:var(--fill-hover-text);box-shadow:inset 0 0 0 var(--filled-border-width,0px) var(--fill-border)}
.button-style-default{--fill-bg:var(--global-button-bg);--fill-text:var(--global-button-text);--fill-hover-bg:var(--global-button-hover-bg);--fill-hover-text:var(--global-button-hover-text);--fill-border:var(--global-button-border)}
.button-style-caramel{--fill-bg:var(--button-bg);--fill-text:var(--button-text);--fill-hover-bg:var(--hover-bg);--fill-hover-text:var(--hover-text);--fill-border:var(--caramel-border)}
.button-style-cream{--fill-bg:var(--cream-bg);--fill-text:var(--cream-text);--fill-hover-bg:var(--cream-hover-bg);--fill-hover-text:var(--cream-hover-text);--fill-border:var(--caramel-border)}
.button-style-forest{--fill-bg:var(--forest-bg);--fill-text:var(--forest-text);--fill-hover-bg:var(--forest-hover-bg);--fill-hover-text:var(--forest-hover-text);--fill-border:var(--forest-border)}

/* An inset image outline follows the existing crop shape without changing layout. */
.media[style*="--image-outline-width"]::after{content:"";position:absolute;inset:0;border:var(--image-outline-width) solid var(--image-outline-color);border-radius:inherit;pointer-events:none;z-index:3;box-sizing:border-box}

/* Centered article Hero shares the existing media and copy components. */
.blog-hero[data-layout=centered]{grid-template-columns:minmax(0,1fr);justify-items:center;gap:var(--gap)}
.blog-hero[data-layout=centered]>.media,.blog-hero[data-layout=centered]>.blog-hero-copy{width:100%;max-width:var(--narrow-width);margin:0 auto;min-width:0}
.blog-hero[data-layout=centered]>.blog-hero-copy{text-align:center}
/* Editing replaces inline text nodes; the closing decoration must survive paste. */
.core-quote[data-quote-decoration=classic] blockquote[data-inline-path] .quote-last-word::after{content:none}
.core-quote[data-quote-decoration=classic] blockquote[data-inline-path]::after{content:'';display:inline-block;width:.9em;height:.9em;margin-left:.7em;vertical-align:-.55em;background:currentColor;mask:url('/quote-icons/26.png') center/contain no-repeat;pointer-events:none}

.core-quote blockquote:has(+.quote-signature){margin-bottom:.15em}
.core-quote .quote-signature{display:flex;justify-content:flex-end;width:var(--quote-signature-end,100%);max-width:100%;padding-inline-end:0;box-sizing:border-box}
.core-quote .quote-signature>.media{width:var(--quote-signature-size,120px);max-width:100%;height:auto;aspect-ratio:var(--source-ratio);background:transparent;border-radius:0}
.core-quote .quote-signature .image-plane{position:relative;display:block;width:100%;height:100%}
.core-quote .quote-signature img{object-fit:contain;transform:none;opacity:0}
.core-quote .quote-signature .image-plane::after{content:"";position:absolute;inset:0;background:var(--text);mask:var(--quote-signature-mask) center/contain no-repeat;pointer-events:none}

/* Form is shared by Global Design and every page; submission is a separate runtime. */
.contact-form-layout{display:grid;grid-template-columns:minmax(0,1fr);gap:var(--gap);max-width:var(--content-width);margin-inline:auto}
.contact-form-layout .core-form{width:100%;max-width:var(--form-width,var(--narrow-width));gap:var(--form-gap,var(--rhythm));align-content:start}
.contact-form-layout[data-form-aside=true]:not([data-form-layout=vertical]){grid-template-columns:repeat(2,minmax(0,1fr));align-items:start}
.contact-form-layout[data-form-layout=right]>.form-aside{grid-column:2;grid-row:1}
.contact-form-layout[data-form-layout=right]>.core-form{grid-column:1;grid-row:1}
.form-aside{min-width:0;text-align:center}.form-aside>.media{width:var(--form-photoSize,220px);max-width:100%;margin-inline:auto}.form-contact-details{margin-top:var(--rhythm)}.form-contact-details p{margin-bottom:8px}
.contact-form-layout[data-form-layout=vertical]>.form-aside{max-width:var(--form-width,var(--narrow-width));width:100%;margin-inline:auto}
.form-name-fields{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:var(--form-gap,var(--rhythm))}.form-name-fields:empty{display:none}.form-name-fields>label:only-child{grid-column:1/-1}
.contact-form-layout .core-form :is(input:not([type=checkbox]),textarea,select){min-width:0;border-style:solid;border-radius:var(--form-radius,var(--button-radius));border-width:var(--form-borderWidth,1px);padding:var(--form-padding,14px);background:transparent;color:var(--text);border-color:currentColor}
.contact-form-layout .core-form[data-field-appearance=filled] :is(input:not([type=checkbox]),textarea,select){background:var(--form-surface,var(--paper));color:var(--form-text,var(--paper-text));border:1px solid transparent}
.core-form .form-trap{display:none}.contact-form-layout .form-status{margin:0}.contact-form-layout .form-status:empty{display:none}
@media(max-width:767px){.contact-form-layout[data-form-aside=true]:not([data-form-layout=vertical]){grid-template-columns:minmax(0,1fr)}.contact-form-layout[data-form-layout=right]>.form-aside,.contact-form-layout[data-form-layout=right]>.core-form{grid-column:auto;grid-row:auto}.form-name-fields{grid-template-columns:minmax(0,1fr)}}

.contact-form-layout .core-form[data-field-appearance=global] :is(input:not([type=checkbox]),textarea,select){background:var(--form-global-bg,transparent);color:var(--form-global-text,var(--text));border-color:var(--form-global-border,var(--text))}

.section-form>.core-container>h2{text-align:center}.contact-form-layout .core-form{text-align:left}

/* Squarespace article grid: half of a page with 4vw gutters; Blog only. */
.blog-article #page,.article-main{--article-content-width:min(1400px,46vw)}
.blog-article :is(.article-body,.article-blocks,.article-intro-copy,.article-bio),.article-main .article-blocks{width:100%;max-width:var(--article-content-width);margin-inline:auto}
.blog-article .article-body .article-blocks{max-width:100%}
.blog-article .article-author-section{background:var(--sand);color:var(--sand-text)}
.core-form input:not([type=checkbox]):focus:not(:focus-visible),.core-form textarea:focus:not(:focus-visible){outline:none;box-shadow:none}
.core-form input:not([type=checkbox]):focus-visible,.core-form textarea:focus-visible{outline:2px dashed currentColor;outline-offset:3px;box-shadow:none}
@media(max-width:767px){.blog-article #page,.article-main{--article-content-width:92vw}.blog-article :is(.article-body,.article-bio,.article-intro-copy){max-width:100%}}

.experience-copy{margin:0;min-width:0}.experience-copy blockquote{margin:0 0 var(--rhythm);font:inherit;line-height:inherit;color:inherit}.experience-copy figcaption{font:inherit}.experience-author{display:block}.experience-copy figcaption p{margin-top:.25em}.experience-layout .media{width:100%}.youtube-playback{position:relative;aspect-ratio:var(--usage-ratio,16/9)}.youtube-playback>img,.youtube-playback>.image-plane{visibility:hidden}.youtube-playback>.youtube-player{position:absolute;inset:0;width:100%;height:100%;border:0}.youtube-playback:has(.youtube-player){aspect-ratio:var(--usage-ratio,16/9)}

.experience-copy figcaption{margin-bottom:var(--gap)}.experience-track{display:flex;gap:var(--experience-card-gap,var(--gap));overflow-x:auto;scroll-snap-type:x mandatory}.experience-track>.experience-copy{flex:0 0 calc((100% - 2*var(--experience-card-gap,var(--gap)))/3);scroll-snap-align:start;background:var(--paper);color:var(--paper-text);padding:var(--rhythm);box-sizing:border-box}.experience-track blockquote{font-style:italic}@media(max-width:767px){.experience-track>.experience-copy{flex-basis:100%}}

:root[data-form-input=pointer] .core-form :is(input,textarea):focus{outline:none;box-shadow:none}
.blog-article #page :is(.article-body,.article-blocks,.article-intro-copy,.article-bio){max-width:var(--article-content-width);margin-inline:auto}
@media(max-width:767px){.blog-article #page :is(.article-body,.article-bio,.article-intro-copy){max-width:100%}}

.youtube-playback:not(.youtube-started)>:is(img,.image-plane){visibility:visible}.youtube-play{position:absolute;inset:0;display:grid;place-items:center;width:100%;height:100%;padding:0;border:0;background:transparent;color:white;cursor:pointer}.youtube-play span{display:grid;place-items:center;width:56px;height:56px;border-radius:50%;background:#0008;font-size:28px}.youtube-play[hidden],.youtube-player[hidden]{display:none}.youtube-playback.youtube-started>:is(img,.image-plane){visibility:hidden}
.blog-article #page :is(.article-body-section,.article-bio-section,.blog-comments){padding-inline:4vw}

/* Shared playback control must not inherit filled-button hover surfaces. */
.youtube-play:is(:hover,:active,:focus-visible){background:transparent;color:white;border:0;transform:none}
.youtube-play:focus-visible{outline:2px solid white;outline-offset:-4px}
/* Equal outer tracks center navigation on the entire header, independently of logo/actions. */
.header-inner{display:grid;grid-template-columns:minmax(0,1fr) auto minmax(0,1fr);gap:16px}
.header-inner>.site-identity{grid-column:1;grid-row:1;justify-self:start}
.header-inner>.header-navigation{grid-column:2;grid-row:1;justify-self:center;margin-left:0;min-width:0;width:max-content;max-width:var(--header-nav-max,50vw)}
.website-header:not(.header-compact) .header-navigation nav{justify-content:center}
.header-actions{grid-column:3;grid-row:1;justify-self:end;display:flex;align-items:center;gap:20px;flex-direction:row-reverse}
.header-languages{display:flex;gap:5px;white-space:nowrap}
.header-languages a{font:inherit;color:inherit;text-decoration:none;border:0;background:transparent}
.header-languages a[aria-current=true]{text-decoration:underline;text-underline-offset:5px}
.header-languages{display:var(--header-language-display,none)}
@media(max-width:767px){
 .header-inner{grid-template-columns:auto minmax(0,1fr) auto}
 .header-inner>.header-navigation{justify-self:end;width:auto;max-width:none}
 .header-actions{gap:10px;flex-direction:column-reverse;align-items:flex-end}
 .header-languages{font-size:13px}
}
/* Preserve line breaks already stored by the existing content editors. */
.page-hero .media-over-content p,.page-hero-text p,.experience-copy blockquote{white-space:pre-line}
.header-actions>.navigation-cta{display:inline-flex;align-items:center;justify-content:center;flex:none;white-space:nowrap}
.header-languages{color:var(--header-ink)}
.header-transparent:not(.header-stuck):is([data-header-text=light],[data-header-text=dark]) .header-languages{color:var(--header-selected-links)}
/* Shared split compositions; no typography, colors or defaults are overridden. */
.core-image-text[data-split-presentation=spacious]{--image-column-gap:clamp(32px,8vw,112px);gap:var(--image-column-gap)}
.core-image-text[data-split-presentation=flush]{gap:0;grid-template-columns:minmax(0,42fr) minmax(0,58fr);align-items:stretch}
.core-image-text[data-split-presentation=flush][data-image-position=right]{grid-template-columns:minmax(0,58fr) minmax(0,42fr)}
.core-image-text[data-split-presentation=flush]>.media{height:100%;min-height:100%;aspect-ratio:auto}
.core-image-text[data-split-presentation=flush]>div:not(.media){padding:64px clamp(24px,8vw,110px)}
@media(max-width:767px){.core-image-text[data-split-presentation]{grid-template-columns:minmax(0,1fr);gap:32px}.core-image-text[data-split-presentation=flush][data-image-position=right]{grid-template-columns:minmax(0,1fr)}.core-image-text[data-split-presentation=flush]>.media{height:auto;min-height:0;aspect-ratio:var(--usage-ratio,3/4)}.core-image-text[data-split-presentation=flush]>div:not(.media){padding:24px}}
/* Continuous Gallery retains the existing track, Lightbox and navigation runtime. */
/* Shared side-arrow placement: only the track determines the navigation area. */
[data-carousel-navigation=side]{position:relative;display:grid;grid-template-columns:minmax(0,1fr)}
[data-carousel-navigation=side]>.carousel-track{grid-area:1/1;min-width:0}
[data-carousel-navigation=side]>.carousel-navigation{grid-area:1/1;align-self:stretch;position:relative;margin:0;pointer-events:none;z-index:2}
[data-carousel-navigation=side] .carousel-arrows{position:absolute;inset:50% var(--carousel-side-inset,16px) auto;transform:translateY(-50%);display:flex;justify-content:space-between}
[data-carousel-navigation=side] .navigation-arrow{pointer-events:auto}
/* Keep controls outside text cards without changing card gap or internal padding. */
.experience-carousel{margin-inline:52px;--carousel-side-inset:max(-76px,calc((100% - 100vw)/2 + 12px))}
[data-gallery-presentation=strip] .gallery-item>.media{aspect-ratio:3/2}
[data-gallery-presentation=strip] .gallery-dots{display:none}
[data-gallery-presentation=strip] button.navigation-arrow{pointer-events:auto;background:var(--paper);color:var(--paper-text);border:0;border-radius:50%;box-shadow:0 1px 8px #0003}
[data-gallery-presentation=strip] button.navigation-arrow:is(:hover,:active,:focus){background:var(--paper);color:var(--paper-text);border:0;transform:none}
[data-gallery-presentation=strip] button.navigation-arrow:focus-visible{outline:2px solid var(--paper-text);outline-offset:3px}
@media(max-width:767px){[data-gallery-presentation=strip]{--carousel-side-inset:12px}.experience-carousel{margin-inline:48px;--carousel-side-inset:max(-60px,calc((100% - 100vw)/2 + 12px))}[data-gallery-presentation=strip] .gallery-item{flex-basis:85%}}

.section[data-content-spacing=compact]{--rhythm:16px}
[data-gallery-presentation=strip]>.gallery-track{scrollbar-width:none}
[data-gallery-presentation=strip]>.gallery-track::-webkit-scrollbar{display:none}
[data-gallery-presentation=strip]>.gallery-caption{grid-area:auto;margin-top:16px}
/* One content column with its existing decorative media behind the whole section. */
.core-image-text[data-split-presentation=background]{display:block;position:relative;isolation:isolate;overflow:hidden}
.core-image-text[data-split-presentation=background]>.media{position:absolute;inset:0;width:100%;height:100%;min-height:0;aspect-ratio:auto;background:transparent;z-index:-1;pointer-events:none}
.core-image-text[data-split-presentation=background]>div:not(.media){position:relative;padding:40px clamp(24px,16vw,220px)}
@media(max-width:767px){.core-image-text[data-split-presentation=background]>div:not(.media){padding:32px 24px 180px}}
/* Filled and Outline are separate appearances; reserve border space to prevent hover shifts. */
.contact-form-layout .core-form[data-field-appearance=global][data-resolved-field-appearance=filled] :is(input:not([type=checkbox]),textarea,select){border:1px solid transparent}
@media(hover:hover){.contact-form-layout .core-form:is([data-field-appearance=filled],[data-field-appearance=global][data-resolved-field-appearance=filled]) :is(input:not([type=checkbox]),textarea,select):hover{border-color:#c7c7c7}}

/* Opt-in Divider elements inherit the surrounding surface contrast by default. */
section:has(.cms-divider[data-full-width=true]){container-type:inline-size}
.article-content-block>hr.cms-divider{box-sizing:border-box;border:0;background:var(--divider-color,currentColor);border-radius:999px;opacity:1;height:var(--divider-thickness,1px);width:var(--divider-width,100%);max-width:none;margin-block:var(--rhythm,24px);margin-inline:auto}
.article-content-block>hr.cms-divider[data-divider-align=left]{margin-left:0;margin-right:auto}
.article-content-block>hr.cms-divider[data-divider-align=right]{margin-left:auto;margin-right:0}
.article-content-block>hr.cms-divider[data-full-width=true]{width:100cqw;margin-inline:calc((100% - 100cqw)/2)}
.section-elements-canvas{container-type:inline-size}

/* Standalone Divider uses section padding for spacing, without element rhythm. */
.section-divider .article-content-block>hr.cms-divider{margin-block:0}

/* Background compositions cover the section padding as well as its content. */
.section:has(>.core-container>.core-image-text[data-split-presentation=background]){position:relative;isolation:isolate}
.section>.core-container>.core-image-text[data-split-presentation=background]{position:static;isolation:auto;overflow:visible}

/* The image plane cannot contribute intrinsic height to a text-sized grid row. */
.core-image-text:not([data-split-presentation=background])>.media{position:relative;min-width:0}
@media(min-width:768px){
.core-image-text[data-split-presentation=flush]>.media[data-frame-desktop=auto],
.core-image-text:not([data-split-presentation=background])>.media[data-frame-desktop=match]{height:auto;min-height:0;aspect-ratio:auto;align-self:stretch}
.core-image-text[data-split-presentation=flush]>.media[data-frame-desktop=auto]>.image-plane,
.core-image-text:not([data-split-presentation=background])>.media[data-frame-desktop=match]>.image-plane{position:absolute;inset:0}
.core-image-text:not([data-split-presentation=background])>.media[data-frame-desktop=ratio]{height:auto;min-height:0;aspect-ratio:var(--usage-ratio);align-self:center}
.core-image-text:not([data-split-presentation=background])>.media[data-frame-desktop=custom]{height:var(--frame-height);min-height:0;aspect-ratio:auto;align-self:center}
}
@media(max-width:767px){
.core-image-text:not([data-split-presentation=background]):has(>.media[data-frame-mobile=match]){grid-auto-rows:1fr}
.core-image-text:not([data-split-presentation=background])>.media[data-frame-mobile=match]{height:auto;min-height:0;aspect-ratio:auto;align-self:stretch}
.core-image-text:not([data-split-presentation=background])>.media[data-frame-mobile=match]>.image-plane{position:absolute;inset:0}
.core-image-text:not([data-split-presentation=background])>.media[data-frame-mobile=ratio]{height:auto;min-height:0;aspect-ratio:var(--usage-ratio);align-self:center}
.core-image-text:not([data-split-presentation=background])>.media[data-frame-mobile=custom]{height:var(--mobile-frame-height);min-height:0;aspect-ratio:auto;align-self:center}
}

/* Below navigation shares Gallery's established 16px offset and 12px button gap. */
[data-carousel-navigation=below]>.carousel-navigation{display:flex;flex-direction:column;align-items:center;justify-content:center;margin-top:16px}
[data-carousel-navigation=below] .carousel-arrows{justify-content:center;gap:12px}
.experience-navigation>.carousel-arrows{display:flex}

/* Keep arrow slots stable while unavailable controls disappear from view and focus. */
.navigation-arrow[data-unavailable=true]{visibility:hidden;pointer-events:none}
.experience-carousel[data-carousel-navigation=below]>.carousel-navigation{margin-top:32px;margin-bottom:32px}

.experience-carousel[data-carousel-navigation=below]{display:flow-root}

/* Full-width paired images may reach the section edge; copy keeps safe side insets. */
.section[data-section-layout]>.core-container>.core-image-text:not([data-split-presentation=flush]):not([data-split-presentation=background])>div:not(.media){padding-inline:0px;min-width:0}

@media(max-width:767px){#page .hero[data-section-layout]>.hero-copy{width:calc(100% - 48px)}}

/* Full-bleed card images stay unchanged; copy uses the shared responsive safe inset. */


/* One responsive text safe zone, shared with the homepage Hero. */
#page{--text-safe-inline:clamp(var(--section-x,24px),5vw,calc(var(--section-x,24px) * 3))}

/* Text protection is based on the actual page edges, never the image-facing edge. */
#page [data-text-safe]{padding-left:var(--text-safe-left)!important;padding-right:var(--text-safe-right)!important;box-sizing:border-box;min-width:0}
@media(min-width:768px){
 .core-image-text{column-gap:calc(var(--gap) * 4 / 3)}
 .core-image-text[data-split-presentation=spacious]{--image-column-gap:calc(clamp(32px,8vw,112px) * 4 / 3);column-gap:var(--image-column-gap)}
 .core-image-text[data-split-presentation=flush]{column-gap:0}
 .core-image-text[data-split-presentation=flush]>div:not(.media){padding-inline:calc(clamp(24px,8vw,110px) * 4 / 3)}
}

@media(min-width:768px){
 .two-column:has(.media),.blog-hero[data-layout=split]{column-gap:calc(var(--gap) * 4 / 3)}
 .article-image-text>:first-child{margin-right:calc(var(--gap,24px) * 4 / 3)}
 .article-image-text[data-image-position=right]>:first-child{margin-right:0;margin-left:calc(var(--gap,24px) * 4 / 3)}
}

/* Content lists only: the same rhythm in page rich text, articles and writing surfaces.
   Native markers/numbering and block paragraphs preserve semantics and indentation.
   Navigation, interface menus and embedded controls keep their own styling. */
:is(.formatted-copy,.article-body,.article-blocks,.article-writing-canvas,.author-bio-copy,[data-inline-path]) :is(ul,ol):not(:where(nav *,[role="navigation"],[role="navigation"] *,[role="menu"],[role="menu"] *,[role="menubar"],[role="menubar"] *,[role="listbox"],[role="listbox"] *,[data-cms-ui] *))>li{line-height:var(--body-line,1.75);margin-block:0}
:is(.formatted-copy,.article-body,.article-blocks,.article-writing-canvas,.author-bio-copy,[data-inline-path]) :is(ul,ol):not(:where(nav *,[role="navigation"],[role="navigation"] *,[role="menu"],[role="menu"] *,[role="menubar"],[role="menubar"] *,[role="listbox"],[role="listbox"] *,[data-cms-ui] *))>li :is(p,span,strong,b,em,i,a){line-height:inherit}
:is(.formatted-copy,.article-body,.article-blocks,.article-writing-canvas,.author-bio-copy,[data-inline-path]) :is(ul,ol):not(:where(nav *,[role="navigation"],[role="navigation"] *,[role="menu"],[role="menu"] *,[role="menubar"],[role="menubar"] *,[role="listbox"],[role="listbox"] *,[data-cms-ui] *))>li>p{display:block;margin-block:0}
:is(.formatted-copy,.article-body,.article-blocks,.article-writing-canvas,.author-bio-copy,[data-inline-path]) :is(ul,ol):not(:where(nav *,[role="navigation"],[role="navigation"] *,[role="menu"],[role="menu"] *,[role="menubar"],[role="menubar"] *,[role="listbox"],[role="listbox"] *,[data-cms-ui] *))>li+li{margin-block-start:max(0em,calc((2.3 - var(--body-line,1.75)) * 1em))}
:is(.formatted-copy,.article-body,.article-blocks,.article-writing-canvas,.author-bio-copy,[data-inline-path]) :is(ul,ol):not(:where(nav *,[role="navigation"],[role="navigation"] *,[role="menu"],[role="menu"] *,[role="menubar"],[role="menubar"] *,[role="listbox"],[role="listbox"] *,[data-cms-ui] *))>li>:is(ul,ol){margin-block:max(0em,calc((2.3 - var(--body-line,1.75)) * 1em)) 0}
:is(.formatted-copy,.article-body,.article-blocks,.article-writing-canvas,.author-bio-copy,[data-inline-path]) :is(ul,ol):not(:where(nav *,[role="navigation"],[role="navigation"] *,[role="menu"],[role="menu"] *,[role="menubar"],[role="menubar"] *,[role="listbox"],[role="listbox"] *,[data-cms-ui] *))>li>p+p{margin-block-start:var(--rhythm,24px)}
/* Stack the existing image + caption unit when its content column is too narrow. */
@container article-flow (max-width:560px){.article-image-text>:first-child,.article-image-text[data-image-position=right]>:first-child{float:none;width:100%;margin:0 0 var(--gap,24px)}}

/* Featured articles reuse Blog layout and shared card surface variables. */
.blog-hero-copy h1 a{color:var(--heading);text-decoration:none}


/* Non-overlay introductions keep the shared Header in normal document flow. */
.website-page.header-in-flow>.website-header{margin-bottom:0}

/* Shared content pretitle and long-copy wrapping. */
.section-eyebrow{font-family:var(--body-font);font-size:var(--body-size);font-weight:var(--body-weight);color:var(--text);margin-block:0 0 12px}
.section :is(.section-copy,.formatted-copy,.page-hero-text,.core-text,.blog-copy,.content-narrow){min-width:0;overflow-wrap:anywhere;white-space:normal}
.blog-article-link{align-self:flex-start;margin-top:var(--rhythm,24px)}

.section-blog-hero .button-style-text,.blog-article-link{--link-decoration:underline;text-underline-offset:.2em}

/* Shared editorial emphasis; glyph and label inherit the same weight. */
.button-style-text,.section-eyebrow,.section-blog-hero :is(.blog-metadata,.media-eyebrow){font-weight:700}
.blog-feature-text-surface{background:var(--card-surface);--text:var(--card-text);--heading:var(--card-heading);--links:var(--card-links);color:var(--text);padding:var(--featured-text-padding,40px);align-self:stretch;display:flex;flex-direction:column;justify-content:center}
.blog-hero[data-layout=split]:has(>.blog-feature-text-surface){gap:0}
@media(max-width:767px){.blog-feature-text-surface{padding:min(var(--featured-text-padding,40px),24px)}}

.blog-hero[data-layout=split]:has(>.blog-feature-text-surface)>.media{align-self:stretch;height:100%;aspect-ratio:auto}

/* Blog editorial hierarchy shares the site's fonts, weight and rhythm. */
.blog-landing #page>.section-stack:first-child>.section-text :is(h1,h2){font-size:var(--h1);margin-top:0}
.blog-landing #page>.section-stack:first-child>.section-text .section-eyebrow{margin-bottom:14px}
.blog-hero-copy{display:flex;flex-direction:column;justify-content:center}
.blog-hero-copy>.blog-category{font-size:14px;font-weight:700;line-height:1.4;letter-spacing:.1em;text-transform:uppercase;margin:0 0 18px}
.blog-hero-copy>.blog-feature-title{font-size:clamp(28px,3vw,34px);font-weight:var(--heading-weight);line-height:1.15;margin:0 0 22px}
.blog-hero-copy>.blog-feature-title a{color:var(--heading);text-decoration:none}
.blog-hero-copy>p:not(.blog-category){margin:0}
.blog-hero-copy>.blog-article-link{margin:22px 0 0}
.blog-hero-copy>:last-child{margin-bottom:0}
.section-blog-grid .blog-section-title{font-size:clamp(30px,3.6vw,40px);line-height:1.15}
.section-blog-grid .section-eyebrow{font-size:14px;font-weight:700;line-height:1.4;letter-spacing:.12em;text-transform:uppercase;margin:0 0 16px}
.blog-card .blog-copy h3{font-size:clamp(24px,2.5vw,28px);font-weight:var(--heading-weight);line-height:1.18}
@media(max-width:767px){.blog-landing #page>.section-stack:first-child>.section-text :is(h1,h2){font-size:clamp(32px,8vw,var(--h1))}}

/* Hidden synchronous fit measurement, using the actual desktop navigation. */
.website-header.header-measuring .header-navigation{position:absolute;visibility:hidden;width:max-content;max-width:none}
.website-header.header-measuring .header-navigation nav{display:flex;position:static;width:max-content;max-width:none;flex-direction:row;flex-wrap:nowrap;white-space:nowrap;padding:0;border:0;gap:var(--header-navigation-gap)}
.website-header.header-compact .header-inner{grid-template-columns:auto minmax(0,1fr) auto}
.website-header.header-compact .header-inner>.header-navigation{justify-self:end;width:auto;max-width:none}

/* Compact tablet Header: logo/menu together, actions remain on the far right. */
@media(min-width:768px){
 .website-header.header-compact .header-inner{grid-template-columns:auto auto minmax(0,1fr);column-gap:28px}
 .website-header.header-compact .header-inner>.header-navigation{position:relative;justify-self:start;margin-left:0}
 .website-header.header-compact .header-navigation>summary{padding-inline:0}
 .website-header.header-compact .header-navigation>nav{top:calc(100% + 16px);left:0;right:auto;width:min(380px,calc(100vw - 2 * max(24px,6vw)))}
}

/* Narrow phones keep the existing controls without squeezing them together. */
@media(max-width:359px){
 .website-header.header-compact .header-inner{column-gap:8px}
 .website-header.header-compact .header-logo{width:min(var(--header-logo-size),48px);height:min(var(--header-logo-size),48px)}
 .website-header.header-compact .header-navigation>summary>span{display:none}
}

/* Optional carousel photos use ordinary media frames; text-only carousels retain their layout. */
[data-experience-carousel] .experience-track{align-items:stretch}
[data-experience-photos] .experience-copy{flex-basis:calc((100% - 3*var(--experience-card-gap,var(--gap)))/4);background:var(--sand);color:var(--sand-text);text-align:center}
[data-experience-photos] .experience-copy>.media{aspect-ratio:1;border-radius:0;margin-bottom:24px}
[data-experience-photos] .experience-author{font-family:var(--heading-font);font-size:var(--h3);line-height:var(--heading-line)}
[data-experience-photos] blockquote{font-style:normal}
@media(min-width:768px) and (max-width:1000px){[data-experience-photos] .experience-copy{flex-basis:calc((100% - var(--experience-card-gap,var(--gap)))/2)}}
@media(max-width:767px){[data-experience-photos] .experience-copy{flex-basis:100%}}

/* Optional Hero foreground image: same shared Asset usage, contained below the copy. */
:is(.page-hero,.embed-section) .hero-signature{flex:none;width:clamp(86px,7.7vw,107px);height:clamp(48px,4vw,55px);max-width:100%;margin-top:8px}
:is(.page-hero,.embed-section) .hero-signature>.media{width:100%;height:100%;aspect-ratio:auto!important;border-radius:0;background:transparent}
:is(.page-hero,.embed-section) .hero-signature>.media img{object-fit:contain}
:is(.page-hero,.embed-section) .hero-signature .cms-media-label{top:0;left:100%}

/* Explicit Image + Text widths leave legacy compositions unchanged. */
@media(min-width:768px){
 .core-image-text[data-image-width]{grid-template-columns:minmax(0,var(--image-column)) minmax(0,var(--text-column))}
 .core-image-text[data-image-width][data-image-position=right]{grid-template-columns:minmax(0,var(--text-column)) minmax(0,var(--image-column))}
}
.core-image-text:not([data-split-presentation=background])>.media[data-image-fit]{height:auto;min-height:0;aspect-ratio:var(--source-ratio);align-self:center}
.core-image-text:not([data-split-presentation=background])>.media[data-image-fit=crop]{aspect-ratio:var(--usage-ratio)}
.core-image-text:not([data-split-presentation=background])>.media[data-image-fit][data-frame-desktop=custom]{height:var(--frame-height);aspect-ratio:auto}
.core-image-text>.media[data-image-fit]>.image-plane{position:absolute;inset:0}
.core-image-text>.media[data-image-fit=natural]>.image-plane img{object-fit:contain;object-position:center;transform:scaleX(var(--image-flip,1))}
@media(max-width:767px){
 .core-image-text:not([data-split-presentation=background])>.media[data-image-fit]{height:auto;aspect-ratio:var(--source-ratio)}
 .core-image-text:not([data-split-presentation=background])>.media[data-image-fit=crop]{aspect-ratio:var(--usage-ratio)}
 .core-image-text:not([data-split-presentation=background])>.media[data-image-fit][data-frame-mobile=custom]{height:var(--mobile-frame-height);aspect-ratio:auto}
}

/* Reuse saved image alignment within the existing inter-column space. */
@media(min-width:768px){
 .core-image-text[data-image-placement]>.media{position:relative;left:calc(var(--image-column-gap,var(--gap)) * var(--image-placement) / 100)}
 .core-image-text[data-image-placement][data-image-position=right]>.media{left:calc(var(--image-column-gap,var(--gap)) * (var(--image-placement) - 100) / 100)}
}

/* Sized Image + Text: retain saved track widths, put all spare space outside
   the pair, and use the single shared Design gap between actual media and copy. */
@media(min-width:768px){
 .core-image-text[data-image-width]:not([data-split-presentation=background]):not([data-split-presentation=flush]){
  --split-track-space:calc(100% - max(var(--gap),var(--image-column-gap,calc(var(--gap) * 4 / 3))));
  grid-template-columns:minmax(0,calc(var(--split-track-space) * var(--image-share))) minmax(0,calc(var(--split-track-space) * var(--text-share)));
  column-gap:var(--gap);justify-content:center;
 }
 .core-image-text[data-image-width][data-image-position=right]:not([data-split-presentation=background]):not([data-split-presentation=flush]){
  grid-template-columns:minmax(0,calc(var(--split-track-space) * var(--text-share))) minmax(0,calc(var(--split-track-space) * var(--image-share)));
 }
}
@media(max-width:767px){
 .core-image-text[data-image-width]:not([data-split-presentation=background]):not([data-split-presentation=flush]){gap:var(--gap)}
}

/* The shared Content gap also owns legacy standard/Spacious pairs.
   Flush is deliberately edge-to-edge; Background is an overlay composition. */
.core-image-text:not([data-split-presentation=background]):not([data-split-presentation=flush]){column-gap:var(--gap)}
@media(max-width:767px){
 .core-image-text:not([data-split-presentation=background]):not([data-split-presentation=flush]){row-gap:var(--gap)}
}

/* Natural images with an explicit height keep any letterbox space on the
   outer edge, so the visible image still meets the shared content gap. */
@media(min-width:768px){
 .core-image-text[data-image-position=left]>.media[data-image-fit=natural]>.image-plane img{object-position:right center}
 .core-image-text[data-image-position=right]>.media[data-image-fit=natural]>.image-plane img{object-position:left center}
}
/* A three-item Services collection fills its row, as shared Cards already do. */
@media(min-width:1001px){.service-grid:has(>:nth-child(3)):not(:has(>:nth-child(4))){grid-template-columns:repeat(3,minmax(0,1fr))}}

/* Explicit zero section padding also removes text’s outside boundary margins. */
:is(#page,.section-stack)>.section[data-section-padding-top="0"]>.core-container>:first-child,
:is(#page,.section-stack)>.section[data-section-padding-top="0"]>.core-container>.content-narrow>:first-child,
:is(#page,.section-stack)>.section[data-section-padding-top="0"]>.core-container>.article-blocks>:first-child,
:is(#page,.section-stack)>.section[data-section-padding-top="0"]>.core-container>.article-blocks>:first-child>:first-child,
:is(#page,.section-stack)>.section[data-section-padding-top="0"]>.core-container>.content-narrow>.article-blocks>:first-child,
:is(#page,.section-stack)>.section[data-section-padding-top="0"]>.core-container>.content-narrow>.article-blocks>:first-child>:first-child{margin-top:0}
:is(#page,.section-stack)>.section[data-section-padding-bottom="0"]>.core-container>:last-child,
:is(#page,.section-stack)>.section[data-section-padding-bottom="0"]>.core-container>.content-narrow>:last-child,
:is(#page,.section-stack)>.section[data-section-padding-bottom="0"]>.core-container>.article-blocks>:last-child,
:is(#page,.section-stack)>.section[data-section-padding-bottom="0"]>.core-container>.article-blocks>:last-child>:last-child,
:is(#page,.section-stack)>.section[data-section-padding-bottom="0"]>.core-container>.content-narrow>.article-blocks>:last-child,
:is(#page,.section-stack)>.section[data-section-padding-bottom="0"]>.core-container>.content-narrow>.article-blocks>:last-child>:last-child{margin-bottom:0}
/* Relative to the heading's responsive Global Design size; semantic level is unchanged. */
[data-heading-scale]>.heading-scale{display:block;font-size:calc(var(--heading-scale)*1%);line-height:var(--heading-line,1.1)}
@media(max-width:767px){[data-heading-scale]>.heading-scale{font-size:min(calc(var(--heading-scale)*1%),max(100%,12vw));overflow-wrap:anywhere}}

/* Optional inset content frame; existing section surfaces stay edge-to-edge. */
:is(#page,.section-stack)>.section[data-content-panel=true]{background:transparent!important;overflow:visible;border-radius:0}
:is(#page,.section-stack)>.section[data-content-panel=true]::after{display:none}
.section[data-content-panel=true]>.core-container{background:var(--surface);padding:var(--section-padding-top,var(--section-y,48px)) clamp(20px,4vw,56px) var(--section-padding-bottom,var(--section-y,48px));border-radius:inherit}
.section[data-content-panel=true][data-section-corners=rounded]>.core-container{border-radius:var(--section-radius,var(--image-radius,0))}
.section[data-content-panel=true][data-section-outline=true]>.core-container{border:var(--button-border,1px) solid var(--accent)}
.reviews-direct .review-direct{background:transparent;text-align:center;padding:0}
.review-direct-logo{display:block;width:130px;max-width:100%;height:auto;margin:0 auto 24px}
.review-direct h3{margin-bottom:20px}.review-direct blockquote{margin:0;white-space:pre-line}

#page .section[data-section-layout][data-content-panel=true]{padding-inline:max(var(--section-layout-gutter,0px),min(var(--section-x,24px),4vw))!important}

/* Shared optional contact choice fields use the existing Form appearance. */
.core-form .form-choice-group{min-width:0;margin:0;padding:0;border:0;display:grid;gap:12px}.core-form .form-choice-group legend{padding:0;margin-bottom:12px}.core-form input[type=checkbox]{flex-shrink:0}

/* Optional shared top boundary. Straight sections retain their existing geometry. */
.section[data-section-transition=wave]{overflow:visible!important}
.section[data-section-transition=wave]>.section-wave{max-width:none;margin:0;position:absolute;left:0;bottom:calc(100% - 1px);width:100%;height:clamp(36px,6vw,110px);display:block;pointer-events:none;fill:var(--surface);overflow:visible}
.section-wave-edge{fill:none;stroke:var(--accent);stroke-width:2}

/* Standalone rich-text action links retain clear affordance and wrap as whole links. */
.section .rich-text-link-row{display:flex;flex-wrap:wrap;align-items:center;justify-content:center;column-gap:clamp(24px,5.5vw,72px);row-gap:16px}
.section .rich-text-link-row[style*="text-align:left"]{justify-content:flex-start}
.section .rich-text-link-row[style*="text-align:right"]{justify-content:flex-end}
.section .rich-text-link-row>a{color:var(--accent);text-decoration:underline;text-decoration-color:currentColor;text-decoration-thickness:1px;text-underline-offset:.2em;max-width:100%}

/* An article without media keeps the same centered title/metadata group. */
.article-heading{box-sizing:border-box;padding-block:clamp(32px,5vw,72px);text-align:center}
.article-heading h1{margin:0}
.article-introduction h1 + .blog-metadata{margin:var(--blog-metadata-gap,12px) 0 0}

/* Blog image sizing stays within the existing body; mobile uses the full content width. */
.article-image[data-image-width]{width:var(--article-image-width,100%)}
.article-image[data-image-align=center]{margin-inline:auto}
.article-image[data-image-align=right]{margin-left:auto;margin-right:0}
@media(max-width:767px){.article-image[data-image-width]{width:100%}}
@container article-preview (max-width:767px){.article-image[data-image-width]{width:100%}.article-blocks .gallery-track{grid-template-columns:repeat(var(--gallery-mobile-columns,min(2,var(--gallery-columns,3))),minmax(0,1fr))}}

@media(max-width:767px){.article-image-text[data-mobile-image-position=after]{display:flex;flex-direction:column}.article-image-text[data-mobile-image-position=after]>:first-child{order:2;margin:0}}
@container article-preview (max-width:767px){.article-image-text[data-mobile-image-position=after]{display:flex;flex-direction:column}.article-image-text[data-mobile-image-position=after]>:first-child{order:2;margin:0}}
@container article-flow (max-width:560px){.article-image-text[data-mobile-image-position=after]>:first-child{float:none;width:100%}}

@container article-preview (max-width:767px){.article-blocks [data-gallery-layout=masonry] .gallery-track{columns:var(--gallery-mobile-columns,2)}}

/* Keep long headings within the available line beside floated Blog media. */
.article-image-text :is(h2,h3){hyphens:auto;overflow-wrap:anywhere}

/* Explicit source columns reuse the shared Image + Text grid; wrapped copy stays the default. */
@media(min-width:768px){
 .article-image-text[data-text-flow=columns]{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}
 .article-image-text[data-text-flow=columns]>:first-child{float:none;width:auto;margin:0}
 .article-image-text[data-text-flow=columns][data-image-position=right]>:first-child{order:2}
}
@container article-preview (max-width:767px){
 .article-image-text[data-text-flow=columns]{display:flex;flex-direction:column}
 .article-image-text[data-text-flow=columns]>:first-child{float:none;width:100%;margin:0;order:0}
 .article-image-text[data-text-flow=columns][data-mobile-image-position=after]>:first-child{order:2}
}

@container article-flow (max-width:560px){.article-image-text[data-text-flow=columns]>:first-child,.article-image-text[data-text-flow=columns]>:last-child{grid-column:1/-1;width:100%;margin:0}.article-image-text[data-text-flow=columns]>:first-child{order:0}.article-image-text[data-text-flow=columns][data-mobile-image-position=after]>:first-child{order:2}}

@media(max-width:767px){.article-image-text[data-text-flow=columns]{display:flex;flex-direction:column}.article-image-text[data-text-flow=columns]>:first-child{margin:0;order:0}.article-image-text[data-text-flow=columns][data-mobile-image-position=after]>:first-child{order:2}}

/* Opt-in rich Hero copy keeps the shared paragraph rhythm. */
.page-hero .formatted-copy>:is(p,h2,h3,ul,ol)+:is(p,h2,h3,ul,ol){margin-top:var(--rhythm,24px)}

.page-hero .formatted-copy{max-width:min(100%,var(--narrow-width,var(--content-width)))}

/* Optional foreground artwork uses the same media/FILE handling as Hero imagery. */
.page-hero>.hero-graphic{position:absolute;z-index:2;left:var(--hero-graphic-x);top:var(--hero-graphic-y);width:var(--hero-graphic-width);transform:translate(-50%,-50%);pointer-events:none}
.page-hero>.hero-graphic>.media{width:100%;height:auto;aspect-ratio:auto!important;border-radius:0!important;background:transparent}
.page-hero>.hero-graphic>.media img{width:100%;height:auto;object-fit:contain}
.page-hero>.hero-graphic .cms-media-label{pointer-events:auto}
@media(max-width:767px){.page-hero>.hero-graphic{left:var(--hero-graphic-mobile-x);top:var(--hero-graphic-mobile-y);width:var(--hero-graphic-mobile-width)}}
/* Background video must be allowed to cover its frame at narrow aspect ratios. */
#page .media.youtube-background .youtube-background-player{max-width:none}
/* Optional Hero scale keeps typography tied to the shared H1 token. */
@media(max-width:767px){.page-hero[data-hero-mobile-title-scale] :is(h1,h2.heading-display-h1){font-size:calc(var(--h1) * var(--hero-mobile-title-scale))}}

/* Blog polish: retain shared palette inheritance and the existing grid geometry. */
.section-blog-grid .blog-copy h3 a{color:var(--card-heading,var(--heading))}
.section-blog-grid .blog-card .blog-article-link{color:var(--card-heading,var(--heading));text-decoration:underline;text-decoration-color:currentColor}
.section-blog-grid .blog-card .blog-article-link:is(:hover,:focus-visible){color:var(--card-heading,var(--heading));text-decoration-thickness:2px}
/* Transparent source artwork must reveal the article surface, not a media placeholder. */
:is(.blog-article,.article-main) .article-blocks .media{background:transparent}
/* Same body width/fonts as before; restrained desktop-only heading adjustment. */
@media(min-width:768px){
 .article-image-text[data-text-flow=wrap][data-image-width]>figure{width:calc(var(--split-track-space) * var(--image-share))}
 :is(.blog-article,.article-main) .article-blocks h2{font-size:calc(var(--h2)*.88)}
 :is(.blog-article,.article-main) .article-blocks h3{font-size:calc(var(--h3)*.94)}
}
@container article-preview (max-width:767px){
 .article-image-text[data-text-flow=wrap][data-image-width]>figure{width:100%}
 .article-main .article-blocks h2{font-size:calc(var(--h2)*.65)}
 .article-main .article-blocks h3{font-size:var(--h3)}
}
@container article-flow (max-width:560px){.article-image-text[data-text-flow=wrap][data-image-width]>figure{width:100%}}
:is(.blog-article,.article-main) .article-blocks a:not(.button){color:var(--article-inline-link,var(--heading));text-decoration:underline;text-decoration-color:currentColor;text-decoration-thickness:1px;text-underline-offset:.2em}
:is(.blog-article,.article-main) .article-blocks a:not(.button) :is(strong,b,em,i,span){color:inherit}
:is(.blog-article,.article-main) .article-blocks a:not(.button):is(:hover,:focus-visible){text-decoration-thickness:2px}

/* Keep full desktop navigation where it fits between the existing outer controls. */
.website-header.header-fit-navigation .header-inner{grid-template-columns:auto minmax(0,1fr) auto}
/* Service disclosures share the supplied chevron while retaining their typography. */
.service-grid summary{font-family:var(--body-font);font-size:17px;line-height:1.5;color:var(--text)}

/* Optional Image + Text inset; absent overrides preserve every saved layout. */
.core-image-text[data-text-horizontal-padding]>div:not(.media){padding-inline:min(var(--image-text-horizontal-padding),25%)}
@media(max-width:767px){.core-image-text[data-text-horizontal-padding]>div:not(.media){padding-inline:min(var(--image-text-horizontal-padding),24px)}}

/* Compact menus stay closed on arrival and use their own light surface. */
@media (min-width:768px){
 .website-header:not(.header-compact) .header-navigation::details-content{content-visibility:visible}
}
@media (max-width:767px){
 .website-header .header-navigation:not([open])>nav{display:none}
 .website-header .header-navigation>nav :is(a:not(.navigation-cta),.nav-group>summary){color:var(--paper-link)}
}
@media (max-width:767px){
 #page{--mobile-card-gutter:24px}
 #page .section.events[data-section-layout]>.event-grid,.section-cards .core-cards,
 .core-image-text:not([data-split-presentation=flush],[data-split-presentation=background])>.media{width:min(100% - 2 * var(--mobile-card-gutter,24px),var(--content-width));margin-inline:auto}
 .event-grid .core-card>.media[data-shape=circle]{max-width:calc(100% - 2 * var(--mobile-card-gutter,24px));margin-inline:auto}
 #page .instagram-publication{max-width:min(640px,100vw - 2 * var(--mobile-card-gutter))}
 .section-blog-grid .blog-grid{width:100%;max-width:calc(100vw - 2 * var(--mobile-card-gutter,24px));margin-inline:auto}
 .blog-card:not(.blog-contained)>.blog-copy{padding-inline:var(--blog-text-padding)}
 .service-grid .core-card> :is(.media,.image-link){width:100%;max-width:calc(100vw - 2 * var(--text-safe-inline,24px));margin-inline:auto}
 .experience-carousel{margin-inline:0}
 .experience-copy figcaption{margin-bottom:.65em}
 .experience-copy figcaption p{margin-bottom:0}
 .experience-track .experience-copy{padding:clamp(16px,5vw,24px)}
 .experience-copy blockquote{margin-bottom:0}
 footer:has(.footer-identity){grid-template-columns:minmax(0,1fr) minmax(0,max-content);gap:clamp(12px,4vw,24px)}
 .footer-identity{grid-column:1/-1}
 .footer-identity h3{font-size:clamp(22px,7vw,32px);overflow-wrap:normal}
 .footer-contact{grid-column:1;grid-row:2}
 .footer-hours{grid-column:2;grid-row:2}
 :is(.footer-contact,.footer-hours) h3{font-size:clamp(20px,6vw,30px)}
}
@media (max-width:350px){
 footer:has(.footer-identity){grid-template-columns:minmax(0,1fr)}
 .footer-contact,.footer-hours{grid-column:1;grid-row:auto}
}
.blog-grid[id]{scroll-margin-top:calc(var(--header-height,0px) + 16px)}
/* The fragment focuses the grid as a reading start. Its links retain normal focus rings. */
.blog-grid[tabindex="-1"]:focus{outline:none}

.experience-dots,[data-mobile-gallery-carousel]>.gallery-navigation{display:none}
@media (max-width:767px){
 [data-mobile-gallery-carousel]>.gallery-track{
  display:flex;position:relative;overflow-x:auto;scroll-snap-type:x mandatory
 }
 :is([data-gallery-layout=carousel],[data-mobile-gallery-carousel]) .gallery-item{
  flex:0 0 100%;scroll-snap-align:start;scroll-snap-stop:always
 }
 :is([data-gallery-layout=carousel],[data-mobile-gallery-carousel])>.gallery-track,
 .experience-track,.reviews-track{scrollbar-width:none}
 :is(.gallery-track,.experience-track,.reviews-track)::-webkit-scrollbar{height:0}
 :is(.gallery-component,.experience-carousel)[data-carousel-navigation=side]{display:block}
 :is(.gallery-component,.experience-carousel)[data-carousel-navigation=side]>.carousel-navigation{
  display:flex;position:static;margin:16px 0 0;pointer-events:auto
 }
 :is(.gallery-component,.experience-carousel)[data-carousel-navigation=side] .carousel-arrows{
  position:static;transform:none;justify-content:center;gap:12px
 }
 [data-mobile-gallery-carousel]>.gallery-navigation,
 .gallery-navigation :is(.gallery-dots,.gallery-arrows),.experience-dots{display:flex;gap:8px;flex-wrap:wrap}
 .carousel-dots button{position:relative}
 .carousel-dots button::after{content:'';position:absolute;inset:-4px}
 .experience-dots button{width:10px;height:10px;padding:0;border:1px solid currentColor;border-radius:50%;background:transparent;color:inherit}
 .experience-dots [aria-current=true]{background:currentColor}
 .reviews-track{--review-columns:1;grid-row:1;grid-column:1/-1}
 .reviews-carousel-shell{grid-template-columns:1fr 1fr;column-gap:16px}
 .reviews-carousel-shell>[data-reviews-prev]{grid-row:3;grid-column:1;justify-self:end}
 .reviews-carousel-shell>[data-reviews-next]{grid-row:3;grid-column:2;justify-self:start}
 .reviews-dots{grid-row:2;margin:8px 0 4px}
}

@media (max-width:767px){
 .section-video .video-component{margin-block:clamp(12px,4vw,24px)}
}
