.as-services{position:relative;isolation:isolate;overflow:hidden;padding:clamp(7rem,10vw,11rem) 6vw;background:#f8f5ee}.as-services:before{content:"";position:absolute;z-index:-2;inset:0 0 42%;background:linear-gradient(180deg,rgba(12,45,43,.18),rgba(248,245,238,.14) 48%,#f8f5ee 100%),url('../images/services-tuscany-v1.png') center 48%/cover no-repeat}.as-services:after{content:"";position:absolute;z-index:-1;inset:0;background:linear-gradient(180deg,rgba(248,245,238,.05) 0,rgba(248,245,238,.82) 42%,#f8f5ee 64%)}.as-services-inner{max-width:1500px;margin:auto}.as-services-head{max-width:840px;margin:0 auto clamp(3rem,5vw,5rem);text-align:center}.as-services-head h2{margin:.6rem 0 1.3rem;font:400 clamp(3.3rem,5vw,5.8rem)/.95 var(--serif);letter-spacing:-.03em}.as-services-head p:last-child{max-width:680px;margin:auto;color:#51625f;font:1.1rem/1.65 var(--sans)}.as-service-detail{display:grid;grid-template-columns:.7fr 1.3fr;gap:clamp(2rem,5vw,6rem);align-items:center;min-height:260px;margin:0 auto 3rem;padding:clamp(2rem,4vw,4rem);background:rgba(252,251,248,.94);box-shadow:0 22px 60px rgba(16,43,43,.12);backdrop-filter:blur(12px)}.as-service-detail h3{margin:.35rem 0 0;font:400 clamp(2.5rem,4vw,4.6rem)/.95 var(--serif)}.as-service-detail-copy{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}.as-service-detail-copy p{margin:0;color:#536360;line-height:1.7}.as-service-detail-copy strong{display:block;margin-bottom:.65rem;color:var(--ink);font:600 .63rem var(--sans);letter-spacing:.16em;text-transform:uppercase}.as-service-benefits{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.2rem}.as-service-benefits span{padding:.55rem .75rem;border:1px solid rgba(16,43,43,.18);font-size:.68rem;color:var(--forest)}.as-service-cards{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:clamp(.8rem,1.6vw,1.5rem)}.as-service-card{position:relative;min-width:0;height:clamp(360px,29vw,500px);padding:0;overflow:hidden;border:0;background:#173f3d;color:#fff;cursor:pointer;box-shadow:0 12px 26px rgba(16,43,43,.08);transition:transform .42s ease,box-shadow .42s ease}.as-service-image{position:absolute;inset:-2%;background-image:url('../images/services-atlas-v1.png');background-size:800% 100%;background-position:var(--service-position) center;background-repeat:no-repeat;transition:transform 7s cubic-bezier(.2,.65,.25,1)}.as-service-card:after{content:"";position:absolute;inset:0;background:linear-gradient(180deg,rgba(5,26,25,.08) 35%,rgba(5,26,25,.86) 100%);transition:background .4s}.as-service-card span:last-child{position:absolute;z-index:2;inset:auto 1.2rem 1.35rem;text-align:center;font:400 clamp(1.45rem,1.7vw,2rem)/1.05 var(--serif);text-wrap:balance}.as-service-card:hover,.as-service-card:focus-visible{transform:translateY(-9px);box-shadow:0 30px 34px -20px rgba(16,43,43,.55)}.as-service-card:hover .as-service-image,.as-service-card:focus-visible .as-service-image{transform:scale(1.1)}.as-service-card:hover:after,.as-service-card:focus-visible:after{background:linear-gradient(180deg,rgba(5,26,25,0) 28%,rgba(5,26,25,.75) 100%)}.as-service-card[aria-selected="true"]{outline:2px solid var(--gold);outline-offset:4px}.as-service-mobile{position:fixed;z-index:150;inset:0;display:none;place-items:end;background:rgba(6,27,26,.58);opacity:0;visibility:hidden;transition:.3s}.as-service-mobile.is-open{opacity:1;visibility:visible}.as-service-mobile-card{position:relative;width:100%;max-height:82svh;overflow:auto;padding:3rem 1.4rem 2rem;background:#f8f5ee;transform:translateY(30px);transition:.35s}.as-service-mobile.is-open .as-service-mobile-card{transform:none}.as-service-mobile-close{position:absolute;right:1rem;top:1rem;width:42px;height:42px;border:1px solid rgba(16,43,43,.2);background:transparent;color:var(--ink);font-size:1.5rem}.as-service-mobile h3{margin:.8rem 2.5rem 1.2rem 0;font:400 2.7rem/.95 var(--serif)}.as-service-mobile p{color:#536360;line-height:1.65}.as-service-mobile .as-service-benefits{margin-top:1.5rem}@media(max-width:1100px){.as-service-cards{grid-template-columns:repeat(2,1fr)}.as-service-card{height:440px}.as-service-detail{grid-template-columns:1fr}.as-service-detail-copy{gap:1.5rem}}@media(max-width:700px){.as-services{padding:6rem 1.2rem}.as-services-head{text-align:left}.as-service-detail{display:none}.as-service-cards{grid-template-columns:repeat(2,minmax(0,1fr));gap:.7rem}.as-service-card{height:310px}.as-service-card span:last-child{inset:auto .7rem .9rem;font-size:1.25rem}.as-service-mobile{display:grid}}@media(max-width:420px){.as-service-card{height:270px}}
/* Compact placement refinement: keep the complete service grid comfortably in view. */
.as-services{padding:clamp(4.5rem,6vw,6.5rem) 6vw;overflow:visible}
.as-services-head{margin-bottom:clamp(2rem,3vw,3rem)}
.as-service-detail{min-height:190px;margin-bottom:2rem;padding:var(--as-services-detail-padding,36px);gap:clamp(2rem,4vw,4rem)}
.as-service-cards{grid-template-columns:repeat(var(--as-services-desktop-columns,4),minmax(0,1fr));gap:var(--as-services-card-gap,18px)}
.as-service-card{height:var(--as-services-card-height,280px);border-radius:var(--as-services-card-radius,0)}
.as-service-card span:last-child{font-size:clamp(1.1rem,1.7vw,var(--as-services-card-title-size,30px))}
.as-service-card:after{background:linear-gradient(180deg,rgba(5,26,25,.08) 35%,rgba(5,26,25,calc(var(--as-services-overlay,86) / 100)) 100%)}
@media(max-width:1100px){.as-service-cards{grid-template-columns:repeat(var(--as-services-tablet-columns,2),minmax(0,1fr))}.as-service-card{height:min(var(--as-services-card-height,300px),300px)}}
@media(max-width:700px){.as-services{padding:4.5rem 1.2rem}.as-service-card{height:240px}}
@media(max-width:420px){.as-service-card{height:220px}}

/* Clean editorial treatment: no competing scenic backdrop and no stretched imagery. */
.as-services{background:linear-gradient(180deg,#f8f5ee 0%,#fcfbf8 48%,#f3efe7 100%)}
.as-services:before{display:none}
.as-services:after{background:radial-gradient(circle at 50% 8%,rgba(180,149,90,.09),transparent 38%)}
.as-service-image{inset:-3%;background-size:800% auto;background-position:var(--service-position) center}

/* Image-led cards: the green reveal layer moves away to expose the artwork. */
.as-service-cards{align-items:stretch}
.as-service-card{height:max(340px,var(--as-services-card-height,420px));min-height:0;border-radius:var(--as-services-card-radius,0);isolation:isolate;text-align:left}
.as-service-image{inset:0;background-size:cover;background-position:center;transform:scale(1.02);transition:transform .7s cubic-bezier(.2,.65,.25,1)}
.as-service-card[data-image="false"] .as-service-image{background-size:800% auto;background-position:var(--service-position) center;background-repeat:no-repeat}
.as-service-overlay{position:absolute;z-index:1;inset:0;background:rgba(16,61,58,.9);transform:translateX(0);transition:transform .58s cubic-bezier(.22,.61,.36,1)}
.as-service-card-copy{position:absolute;z-index:2;inset:auto 1.6rem 1.55rem;display:grid;gap:.42rem;color:#fff;transition:opacity .35s ease,transform .35s ease}
.as-service-card-copy small{font:600 .61rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase;color:#d8c38f}
.as-service-card-copy strong{font:400 clamp(1.75rem,2.6vw,3.2rem)/.95 var(--serif);text-wrap:balance}
.as-service-card-copy em{font:600 .62rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase;font-style:normal;color:#fff9}
.as-service-card:hover .as-service-overlay,.as-service-card:focus-visible .as-service-overlay{transform:translateX(100%)}
.as-service-card:hover .as-service-image,.as-service-card:focus-visible .as-service-image{transform:scale(1.08)}
.as-service-card:hover .as-service-card-copy,.as-service-card:focus-visible .as-service-card-copy{transform:translateY(-4px)}
.as-service-detail{position:relative;display:grid;grid-template-columns:minmax(230px,.7fr) minmax(0,1.3fr);gap:clamp(2rem,5vw,6rem);align-items:start;max-height:0;min-height:0;margin:0 auto;padding:0;overflow:hidden;opacity:0;transform:translateY(-18px);background:rgba(252,251,248,.98);box-shadow:0 22px 60px rgba(16,43,43,.12);transition:max-height .5s ease,opacity .35s ease,transform .5s ease,padding .5s ease,margin .5s ease}
.as-service-detail.is-open{max-height:560px;min-height:260px;margin:2rem auto 0;padding:clamp(2rem,4vw,4rem);opacity:1;transform:none}
.as-service-detail-close{position:absolute;top:1rem;right:1rem;width:38px;height:38px;border:1px solid rgba(16,43,43,.2);background:transparent;color:var(--ink);font-size:.58rem;letter-spacing:.12em;text-transform:uppercase;cursor:pointer}
.as-service-detail-lead h3{margin:.35rem 2.5rem 0 0;font:400 clamp(2.5rem,4vw,4.6rem)/.95 var(--serif)}
.as-service-detail-copy{display:grid;grid-template-columns:1fr 1fr;gap:2.5rem}
.as-service-detail-copy p{margin:0;color:#536360;line-height:1.7}
.as-service-detail-copy strong{display:block;margin-bottom:.65rem;color:var(--ink);font:600 .63rem var(--sans);letter-spacing:.16em;text-transform:uppercase}
.as-service-benefits{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.2rem}
.as-service-benefits span{padding:.55rem .75rem;border:1px solid rgba(16,43,43,.18);font-size:.68rem;color:var(--forest)}
@media(max-width:1100px){.as-service-card{height:max(320px,var(--as-services-card-height,420px))}.as-service-detail{grid-template-columns:1fr}.as-service-detail-copy{gap:1.5rem}}
@media(max-width:700px){.as-service-card{height:max(240px,var(--as-services-card-height,310px));min-height:0}.as-service-card-copy{inset:auto .8rem .9rem}.as-service-card-copy strong{font-size:1.45rem}.as-service-card-copy em{font-size:.55rem}.as-service-overlay{background:rgba(16,61,58,.82)}.as-service-detail{display:grid}.as-service-mobile{display:grid}}
@media(max-width:420px){.as-service-card{height:max(220px,var(--as-services-card-height,270px))}}

/* Persistent two-sided cards: click a service to keep its information in the same square. */
.as-service-detail,.as-service-mobile{display:none!important}
.as-service-card{padding:0;background:transparent;border:0;perspective:1400px;overflow:visible;box-shadow:none;transform:none!important;outline-offset:5px}
.as-service-card-inner{position:relative;display:block;width:100%;height:100%;min-height:inherit;transform-style:preserve-3d;transition:transform .72s cubic-bezier(.22,.61,.36,1);border-radius:var(--as-services-card-radius,0);box-shadow:0 12px 26px rgba(16,43,43,.12)}
.as-service-card.is-flipped .as-service-card-inner{transform:rotateY(180deg)}
.as-service-card-face{position:absolute;inset:0;display:block;overflow:hidden;border-radius:inherit;backface-visibility:hidden;-webkit-backface-visibility:hidden}
.as-service-card-front{background:#173f3d;color:#fff}
.as-service-card-back{z-index:3;display:flex;flex-direction:column;align-items:flex-start;padding:clamp(4.6rem,5vw,5.2rem) clamp(1.35rem,2.3vw,2.2rem) clamp(1.35rem,2.3vw,2.2rem);background:#173f3d;color:#fff;transform:rotateY(180deg);text-align:left!important;overflow:auto}
.as-service-card-back>strong{display:block;width:100%;margin:.35rem 0 .8rem;text-align:left!important;font:400 clamp(1.8rem,2.4vw,3rem)/.95 var(--serif);color:#fff}
.as-service-back-kicker{display:block;width:100%;color:#d8c38f;text-align:left;font:600 .61rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase}
.as-service-back-label{display:block;width:100%;margin-top:1rem;color:#d8c38f;text-align:left;font:600 .58rem/1.4 var(--sans);letter-spacing:.16em;text-transform:uppercase}
.as-service-card-back p{display:block;width:100%;margin:.35rem 0;color:#ffffffc7;text-align:left;font:400 .86rem/1.55 var(--sans)}
.as-service-card-back .as-service-benefits{gap:.45rem;margin-top:1rem}
.as-service-card-back .as-service-benefits span{padding:.4rem .55rem;border-color:#ffffff3d;color:#fff;font-size:.58rem}
.as-service-back-close{display:block;margin-top:1.25rem;color:#d8c38f;font:600 .58rem/1.4 var(--sans);letter-spacing:.14em;text-transform:uppercase}
.as-service-card.is-flipped{outline:0}
.as-service-card.is-flipped .as-service-card-copy,.as-service-card.is-flipped .as-service-overlay{visibility:hidden}
.as-service-card:focus-visible{outline:2px solid rgba(180,149,90,.45);outline-offset:4px}
.as-service-card:after{display:none}
.as-service-card .as-service-card-back{position:absolute;inset:0;z-index:3;text-align:left;font:inherit}
.as-service-card .as-service-card-back > .as-service-back-close{z-index:4;flex:0 0 auto}
.as-service-card .as-service-card-back > .as-service-back-kicker{margin:0}
.as-service-card .as-service-card-back > .as-service-benefits{width:100%;justify-content:flex-start}
.as-service-card .as-service-card-back > .as-service-benefits{position:static;inset:auto;text-align:left;font:inherit;display:flex}
.as-service-card .as-service-card-back .as-service-benefits span{position:static;inset:auto;text-align:left;font:inherit}
.as-service-card .as-service-back-close{position:absolute;top:.45rem;right:.55rem;inset:auto;width:28px;height:28px;display:grid;place-items:center;margin:0;border:1px solid rgba(255,255,255,.42);border-radius:50%;color:#fff;text-align:center;font:400 1.05rem/1 var(--sans);cursor:pointer;pointer-events:auto}
.as-service-card .as-service-card-back > .as-service-back-close{position:relative;order:-1;top:auto;right:auto;align-self:flex-end;margin:-3.9rem -.8rem 1rem 0}
@media(max-width:700px){.as-service-card-back{padding:4rem 1rem 1rem}.as-service-card-back>strong{font-size:1.6rem;margin-top:.2rem}.as-service-card-back p{font-size:.74rem;line-height:1.45}.as-service-back-label{margin-top:.7rem}.as-service-back-close{margin-top:0}}

/* v1.1.2: shared service detail dialog for desktop and mobile. */
.as-service-card .as-service-card-inner{transform:none!important}
.as-service-card[aria-expanded="true"]{outline:2px solid var(--gold);outline-offset:5px}
.as-service-dialog{position:fixed;z-index:10020;inset:0;display:grid;place-items:center;padding:clamp(1.25rem,4vw,4rem);opacity:0;visibility:hidden;pointer-events:none;transition:opacity .28s ease,visibility .28s ease}
.as-service-dialog.is-open{opacity:1;visibility:visible;pointer-events:auto}
.as-service-dialog-backdrop{position:absolute;inset:0;background:rgba(5,26,25,.78);backdrop-filter:blur(7px);-webkit-backdrop-filter:blur(7px)}
.as-service-dialog-panel{position:relative;z-index:1;width:min(1080px,calc(100vw - 8vw));max-height:min(760px,calc(100svh - 8rem));overflow:auto;padding:clamp(3.8rem,6vw,6rem) clamp(2.25rem,6vw,6rem) clamp(2.8rem,5vw,5rem);border:1px solid rgba(180,149,90,.62);background:linear-gradient(145deg,#fdfcf8 0%,#f5f0e6 100%);color:var(--ink);box-shadow:0 34px 90px rgba(5,26,25,.38);transform:translateY(22px) scale(.985);transition:transform .38s cubic-bezier(.22,.61,.36,1);outline:0}
.as-service-dialog.is-open .as-service-dialog-panel{transform:none}
.as-service-dialog-close{position:absolute;z-index:2;top:1.2rem;right:1.2rem;display:grid;place-items:center;width:44px;height:44px;padding:0;border:1px solid rgba(16,43,43,.28);border-radius:50%;background:rgba(253,252,248,.78);color:var(--forest);font:300 1.65rem/1 var(--sans);cursor:pointer;transition:background .2s ease,color .2s ease,transform .2s ease}
.as-service-dialog-close:hover,.as-service-dialog-close:focus-visible{background:var(--forest);color:#fff;transform:rotate(5deg)}
.as-service-dialog-kicker{margin:0 0 .65rem;color:#9b793a;font:600 .68rem/1.4 var(--sans);letter-spacing:.18em;text-transform:uppercase}
.as-service-dialog-panel h3{max-width:820px;margin:0 0 clamp(2rem,4vw,3.5rem);font:400 clamp(3rem,6vw,6.25rem)/.88 var(--serif);letter-spacing:-.035em;text-wrap:balance}
.as-service-dialog-copy{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:clamp(2rem,5vw,5rem);padding-top:clamp(1.5rem,3vw,2.5rem);border-top:1px solid rgba(16,43,43,.18)}
.as-service-dialog-copy strong{display:block;margin:0 0 .8rem;color:var(--forest);font:600 .66rem/1.4 var(--sans);letter-spacing:.17em;text-transform:uppercase}
.as-service-dialog-copy p{max-width:62ch;margin:0;color:#536360;font:400 clamp(.98rem,1.2vw,1.13rem)/1.75 var(--sans)}
.as-service-dialog-benefits{display:flex;flex-wrap:wrap;gap:.65rem;margin-top:1.5rem}
.as-service-dialog-benefits span{padding:.62rem .8rem;border:1px solid rgba(16,43,43,.2);color:var(--forest);font:600 .64rem/1.2 var(--sans);letter-spacing:.06em}
body.as-service-dialog-open .as-responsive-menu-panel{pointer-events:none}

@media(max-width:700px){
	.as-service-dialog{place-items:center;padding:max(12px,env(safe-area-inset-top)) 12px max(12px,env(safe-area-inset-bottom))}
	.as-service-dialog-panel{width:100%;height:calc(100svh - max(24px,env(safe-area-inset-top)) - max(24px,env(safe-area-inset-bottom)));max-height:none;padding:4.5rem 1.35rem 2rem;border-radius:6px}
	.as-service-dialog-close{position:sticky;float:right;top:0;margin:-3.25rem -.25rem .5rem 1rem;width:42px;height:42px;background:#fdfcf8}
	.as-service-dialog-panel h3{margin:0 0 2rem;font-size:clamp(2.65rem,13vw,4.25rem);line-height:.92}
	.as-service-dialog-copy{grid-template-columns:1fr;gap:2rem;padding-top:1.5rem}
	.as-service-dialog-copy p{font-size:1rem;line-height:1.7}
	.as-service-dialog-benefits{padding-bottom:1rem}
}

@media(prefers-reduced-motion:reduce){
	.as-service-dialog,.as-service-dialog-panel,.as-service-dialog-close{transition:none}
}

/* Final collision fixes: legacy flip-card selectors must not collapse the new card wrapper,
 * and the detail dialog must always be positioned against the viewport. */
.as-services .as-service-card > .as-service-card-inner{
	position:relative!important;
	inset:auto!important;
	display:block!important;
	width:100%!important;
	height:100%!important;
	min-height:inherit!important;
}
.as-services .as-service-card > .as-service-card-inner > .as-service-card-face{
	position:absolute!important;
	inset:0!important;
}
.as-service-dialog{
	position:fixed!important;
	top:0!important;
	right:0!important;
	bottom:0!important;
	left:0!important;
	width:100%!important;
	height:100%!important;
	margin:0!important;
}
.as-service-dialog-close{
	position:absolute!important;
	z-index:20!important;
	pointer-events:auto!important;
	cursor:pointer!important;
}
