/* Editorial layout (all Dolce pages): bigger headlines, more white space,
   full-width photography, one review at a time. */

/* full-width pieces use 100vw; never let that cause sideways scrolling */
html,body{overflow-x:clip;}

/* ---------- an occasional italic word in gold ---------- */
.ed-em{font-style:italic;font-weight:400;color:var(--gold);}
.cta h2,.closing h2{color:var(--ink);opacity:1;}

/* ---------- bigger headlines ---------- */
.about-v2-copy h2{font-size:clamp(32px,4.1vw,68px);line-height:1.06;font-weight:400;}
.idx-head h2{font-size:clamp(38px,5vw,78px);line-height:1.04;font-weight:400;}
.cta h2{font-size:clamp(44px,6.4vw,104px);line-height:1;max-width:13ch;font-weight:400;}
.closing h2{font-size:clamp(34px,4.6vw,74px);line-height:1.08;max-width:19ch;font-weight:400;}
.dx-h2{font-size:clamp(40px,5.4vw,86px);line-height:1.02;}
.story-title{font-size:clamp(50px,7.4vw,118px);line-height:1;}
.story-heading{font-size:clamp(32px,3.8vw,56px);line-height:1.08;}
.psx-title{font-size:clamp(56px,8.4vw,132px);line-height:.98;}
.psx-col h2{font-size:clamp(34px,3.8vw,58px);font-weight:400;}
.psx-results-head h2{font-size:clamp(42px,5.4vw,84px);line-height:1.02;}
.idx-sub h3{font-size:clamp(28px,3vw,44px);font-weight:400;}

/* ---------- more white space ---------- */
.pad{padding-block:clamp(96px,13vw,190px);}
.cta{padding-block:clamp(100px,14vw,210px);}
.closing{padding-block:clamp(100px,14vw,210px);}
.idx-sub{margin-top:clamp(120px,14vw,200px);}
.idx-head{padding-bottom:clamp(20px,3vw,40px);}

/* ---------- full-width photography ---------- */
/* home: the three treatments become tall, edge-to-edge photographs */
.services .services-grid{width:100vw;margin-left:calc(50% - 50vw);gap:0;grid-template-columns:repeat(3,1fr);}
.services .service-tile{aspect-ratio:3/4;border-radius:0;}
.services .service-tile-label{padding:clamp(26px,3.4vw,52px);background:linear-gradient(180deg,rgba(20,14,8,0) 0%,rgba(20,14,8,.7) 80%);}
.services .service-tile-label h4{font-family:var(--font-display);font-weight:400;font-size:clamp(26px,2.6vw,42px);letter-spacing:0;text-transform:none;line-height:1.05;}
@media (max-width:760px){
  .services .services-grid{grid-template-columns:1fr;}
  .services .service-tile{aspect-ratio:4/5;}
}
/* wellness: the two photos run edge to edge */
.duo-photos{max-width:none;width:100vw;margin-left:calc(50% - 50vw);gap:4px;}
/* our story: the Dolce family without boxes */
.family-item{border:none;background:transparent;}
.family-grid{gap:clamp(20px,4vw,56px);}

/* ---------- reviews: one large quote at a time ---------- */
.ed-quotes{max-width:980px;margin:clamp(40px,6vw,72px) auto 0;text-align:center;}
.ed-quotes::before{content:"\201C";display:block;font-family:var(--font-display);font-size:clamp(96px,11vw,160px);line-height:.55;color:var(--gold);opacity:.5;}
.ed-stack{display:grid;margin-top:clamp(18px,2vw,28px);}
/* the old quote fades out first, then the new one fades in */
.ed-quote{grid-area:1/1;align-self:center;margin:0;opacity:0;transform:translateY(10px);transition:opacity .6s ease,transform .6s ease;pointer-events:none;}
.ed-quote.is-on{opacity:1;transform:none;pointer-events:auto;transition:opacity .9s ease .6s,transform 1s cubic-bezier(.2,.7,.2,1) .6s;}
.ed-quote blockquote{margin:0;font-family:var(--font-display);font-style:italic;font-weight:400;font-size:clamp(21px,2.3vw,34px);line-height:1.45;color:var(--ink);}
.ed-quote .stars{margin-top:28px;color:var(--gold);letter-spacing:.24em;font-size:14px;}
.ed-quote figcaption{margin-top:10px;font-size:12px;font-weight:600;letter-spacing:.2em;text-transform:uppercase;color:var(--ink-soft);}
.ed-dots{display:flex;justify-content:center;gap:6px;margin-top:clamp(28px,3.4vw,44px);}
.ed-dots button{all:unset;cursor:pointer;padding:12px 6px;}
.ed-dots button::before{content:"";display:block;width:34px;height:2px;background:var(--line);transition:background .4s ease;}
.ed-dots button.is-on::before{background:var(--gold);}
.ed-dots button:focus-visible::before{outline:2px solid var(--gold);outline-offset:4px;}
@media (prefers-reduced-motion:reduce){ .ed-quote{transition:none;} }
