/* Reveal Gallery Pro — shared (home + service inner pages) */
.folio{padding:clamp(48px,7vh,88px) 0 0;overflow:hidden}
.folio .head{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:1.25rem;margin-bottom:clamp(1.1rem,2.2vh,1.8rem)}
.folio .head h2{font-size:clamp(2rem,4.4vw,3.6rem);color:var(--ink)}
.folio .head h2 em{color:var(--purple)}
.folio-intro{margin:.85rem 0 0;color:var(--muted);line-height:1.75;max-width:none;font-size:.92rem;font-weight:300}
.reveal-gal{display:flex;gap:0;height:clamp(260px,min(52dvh,48vh),520px);width:100%;
  max-width:100%;margin:0;padding:0;box-sizing:border-box}
.rg-panel{position:relative;flex:1 1 0;min-width:0;overflow:hidden;cursor:pointer;
  border-radius:0;border:0;background:var(--velvet);color:var(--pearl);isolation:isolate;
  transition:flex .85s cubic-bezier(.22,1,.36,1);
  display:flex;flex-direction:column;justify-content:flex-end}
.rg-panel.is-on{flex:3.2 1 0}
.rg-panel:not(.is-on){flex:.55 1 0}
.rg-media{position:absolute;inset:0;z-index:0;overflow:hidden}
.rg-media .plate{position:absolute;inset:0;transform:scale(1.12);transition:transform 1.35s cubic-bezier(.22,1,.36,1);
  will-change:transform}
.rg-panel.is-on .rg-media .plate{transform:scale(1)}
.rg-veil{position:absolute;inset:0;z-index:1;pointer-events:none;
  background:linear-gradient(180deg,rgba(23,21,26,.2) 0%,rgba(23,21,26,.35) 42%,rgba(23,21,26,.92) 100%);
  transition:background .55s var(--ease)}
.rg-panel.is-on .rg-veil{
  background:linear-gradient(180deg,rgba(23,21,26,.08) 0%,rgba(23,21,26,.28) 45%,rgba(23,21,26,.9) 100%)}
.rg-body{position:relative;z-index:2;padding:clamp(1.2rem,2.2vw,2rem);
  display:flex;flex-direction:column;align-items:flex-start;gap:.2rem;min-width:0;width:100%;box-sizing:border-box}
.rg-idx{font-family:var(--font-serif);font-weight:400;font-size:clamp(2.4rem,5vw,4.5rem);
  line-height:1;color:rgba(238,240,242,.18);letter-spacing:-.02em;
  transition:color .45s var(--ease),font-size .55s var(--ease),transform .55s var(--ease)}
.rg-panel.is-on .rg-idx{color:var(--gold);font-size:clamp(1.1rem,1.6vw,1.35rem);letter-spacing:.18em;
  font-family:var(--font-sans);font-weight:500;margin-bottom:.35rem}
.rg-title{font-family:var(--font-serif);font-weight:500;font-size:clamp(1.05rem,1.5vw,1.35rem);
  line-height:1.12;margin:0;color:var(--pearl);max-width:18ch;
  text-shadow:0 2px 18px rgba(0,0,0,.55),0 1px 2px rgba(0,0,0,.4);
  transition:font-size .55s var(--ease),opacity .4s var(--ease),max-width .55s var(--ease)}
.rg-panel.is-on .rg-title{font-size:clamp(1.55rem,2.6vw,2.45rem);max-width:14ch}
.rg-panel:not(.is-on) .rg-title{writing-mode:vertical-rl;transform:rotate(180deg);max-width:none;
  white-space:nowrap;font-size:clamp(.95rem,1.2vw,1.15rem);letter-spacing:.04em;opacity:.85;
  position:absolute;right:clamp(.85rem,1.4vw,1.4rem);bottom:clamp(1.2rem,2.2vw,2rem);left:auto}
.rg-panel:not(.is-on) .rg-idx{position:absolute;left:clamp(.7rem,1.2vw,1.2rem);top:clamp(1rem,1.8vw,1.6rem)}
.rg-panel:not(.is-on) .rg-body{min-height:100%;padding:0}
.rg-copy{margin:.4rem 0 0;color:rgba(238,240,242,.88);font-size:.9rem;line-height:1.55;
  max-width:36ch;max-height:0;opacity:0;overflow:hidden;
  text-shadow:0 1px 12px rgba(0,0,0,.45);
  transition:max-height .6s var(--ease),opacity .45s var(--ease),margin .45s var(--ease)}
.rg-panel.is-on .rg-copy{max-height:5.5em;opacity:1;margin:.55rem 0 0}
.rg-cta{margin-top:.95rem;opacity:0;transform:translateY(10px);pointer-events:none;
  transition:opacity .45s var(--ease),transform .45s var(--ease);
  font-size:.62rem;padding:.75em 1.25em;background:rgba(212,175,55,.18);color:var(--gold);
  border-color:var(--gold)}
.rg-panel.is-on .rg-cta{opacity:1;transform:none;pointer-events:auto}
.rg-cta:hover{background:var(--gold);color:var(--velvet);border-color:var(--gold)}
.rg-cta .dot{background:var(--gold)}
.rg-cta:hover .dot{background:var(--velvet)}

/* Keep four-panel galleries' expanded width consistent with the standard
   five-panel gallery proportion. */
@media(min-width:641px){
  .reveal-gal[data-rg-count="4"] .rg-panel:not(.is-on){flex:.73 1 0}
}
@media(min-width:641px) and (max-width:1024px){
  .reveal-gal[data-rg-count="4"] .rg-panel:not(.is-on){flex:.93 1 0}
}

@media(min-width:1280px){
  .reveal-gal{height:clamp(300px,min(54dvh,50vh),540px)}
}
@media(max-width:1024px){
  .folio .head{align-items:flex-start}
  .reveal-gal{height:clamp(240px,min(48dvh,44vh),440px)}
  .rg-panel.is-on{flex:2.6 1 0}
  .rg-panel:not(.is-on){flex:.7 1 0}
}
@media(min-width:1600px){
  .reveal-gal{height:clamp(320px,min(56dvh,52vh),560px)}
  .folio .head h2{font-size:clamp(2.2rem,3.6vw,4rem)}
}
@media(max-width:640px){
  .reveal-gal{flex-direction:column;height:auto;gap:.55rem;padding:0 var(--edge) clamp(2rem,6vh,3rem)}
  .rg-panel,.rg-panel.is-on,.rg-panel:not(.is-on){flex:none;width:100%;min-height:120px;border-radius:4px}
  .rg-panel.is-on{min-height:min(42dvh,240px)}
  .rg-panel:not(.is-on) .rg-title{writing-mode:horizontal-tb;transform:none;position:static;
    white-space:normal;font-size:1.15rem;opacity:1;max-width:16ch}
  .rg-panel:not(.is-on) .rg-idx{position:static;font-size:1rem;color:var(--gold);
    font-family:var(--font-sans);letter-spacing:.18em;margin-bottom:.25rem}
  .rg-panel:not(.is-on) .rg-body{min-height:0;padding:1.1rem 1.2rem;justify-content:flex-end}
  .rg-panel:not(.is-on) .rg-copy,.rg-panel:not(.is-on) .rg-cta{display:none}
}
