/* Promotion feature for visitors arriving from ads. */
.promo-ribbon{
  display:grid;
  grid-template-columns:minmax(280px,40%) minmax(0,1fr);
  gap:0;
  padding:0;
  color:#30271f;
  background:#f0e4d1;
  scroll-margin-top:90px;
}
.promo-visual{position:relative;min-height:540px;overflow:hidden;background:#b69a74}
.promo-visual::after{content:"";position:absolute;inset:35% 0 0;background:linear-gradient(transparent,rgba(42,31,22,.58));pointer-events:none}
.promo-visual img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:center;transition:transform .7s ease}
.promo-ribbon:hover .promo-visual img{transform:scale(1.035)}
.promo-visual-caption{position:absolute;z-index:1;left:clamp(1.5rem,4.5vw,5rem);bottom:2.1rem;color:#fff;font-size:.68rem;font-weight:600;letter-spacing:.19em;text-transform:uppercase}
.promo-visual-caption span{margin:0 .5rem;color:#e9cf9b}
.promo-body{display:flex;flex-direction:column;justify-content:center;min-width:0;padding:clamp(3rem,5vw,5.5rem) clamp(1.5rem,5.5vw,6rem)}
.promo-intro{display:block;max-width:660px}
.promo-eyebrow{display:flex;align-items:center;gap:.8rem;margin:0 0 1.2rem;color:#876a3d;font-size:.69rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase}
.promo-eyebrow span{color:#876a3d;font-family:var(--sans);font-size:.9rem}
.promo-intro h2{margin:0;font-family:var(--display);font-size:clamp(3.2rem,5.3vw,6.3rem);font-weight:400;letter-spacing:-.045em;line-height:.92;text-wrap:balance}
.promo-intro h2 em{font-family:var(--script);font-size:1.05em;font-weight:400;letter-spacing:0;color:#987345;white-space:nowrap}
.promo-lead{max-width:520px;margin:1.5rem 0 0;color:#665848;font-size:.94rem;line-height:1.7}
.promo-grid{display:grid;grid-template-columns:repeat(auto-fit,minmax(min(100%,300px),1fr));gap:1rem;margin-top:2.4rem}
.promo-card{display:grid;grid-template-columns:minmax(0,1fr) auto;align-items:start;gap:1.25rem;min-width:0;padding:1.6rem;background:#fcf8f0;border:1px solid rgba(111,82,48,.2);border-radius:0;box-shadow:0 18px 42px rgba(70,48,26,.07)}
.promo-value{grid-column:2;grid-row:1;display:flex;flex-direction:column;justify-content:center;align-items:center;width:92px;height:92px;border-radius:50%;background:#493a2d;color:#fff;text-align:center;transform:rotate(8deg)}
.promo-value strong{font-family:var(--display);font-size:clamp(1.7rem,2.4vw,2.6rem);font-weight:400;line-height:1}
.promo-value span{margin-top:.2rem;font-size:.58rem;font-weight:600;letter-spacing:.18em}
.promo-value-text{padding:.8rem;font-family:var(--display);font-size:1.3rem;line-height:1.1}
.promo-copy{grid-column:1;grid-row:1;min-width:0}
.promo-card-label{display:block;margin-bottom:.7rem;color:#8f7048;font-size:.65rem;font-weight:600;letter-spacing:.17em;text-transform:uppercase}
.promo-copy h3{margin:0;color:#30271f;font-family:var(--display);font-size:clamp(1.5rem,2vw,2.2rem);font-weight:400;line-height:1.12;text-wrap:balance}
.promo-copy p{margin:.7rem 0 0;color:#665848;font-size:.83rem;line-height:1.6;opacity:1}
.promo-copy .promo-terms{display:block;margin:.8rem 0 0;color:#756551;font-size:.69rem;line-height:1.5;opacity:1}
.promo-book{grid-column:1/-1;display:inline-flex;justify-content:space-between;align-items:center;gap:1rem;min-height:48px;width:100%;margin-top:.25rem;padding:.78rem 1rem;border:0;background:#9b7747;color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.12em;text-transform:uppercase;transition:background .25s ease,transform .25s ease}
.promo-book:hover{background:#493a2d;transform:translateY(-2px)}
.promo-book:active{transform:translateY(0)}
.promo-book span{font-size:1.15rem;line-height:1}
.promo-footnote{margin:1.2rem 0 0;color:#756551;font-size:.69rem;line-height:1.5}
.promo-footnote[hidden]{display:none}
.promo-no-offers .promo-grid{display:block;margin-top:2rem}
.promo-no-offers .promo-book{width:fit-content;min-width:190px;justify-content:center}
@media(max-width:1100px){.promo-ribbon{grid-template-columns:minmax(260px,36%) minmax(0,1fr)}.promo-visual{min-height:500px}.promo-body{padding:3.8rem 2.5rem}}
@media(max-width:760px){.promo-ribbon{display:block}.promo-visual{height:280px;min-height:0}.promo-visual img{object-position:center 54%}.promo-visual-caption{left:1.3rem;bottom:1.1rem}.promo-body{padding:3.4rem var(--pad) 4rem}.promo-intro h2{font-size:clamp(3.25rem,10vw,5rem)}.promo-grid{display:grid;grid-template-columns:1fr;overflow:visible;margin-top:2rem}.promo-card{min-width:0;padding:1.4rem}}
@media(max-width:420px){.promo-visual{height:235px}.promo-intro h2{font-size:clamp(2.85rem,11vw,3.6rem)}.promo-intro h2 em{white-space:normal}.promo-card{grid-template-columns:minmax(0,1fr) 72px;gap:.8rem}.promo-value{width:72px;height:72px}.promo-value strong{font-size:1.65rem}.promo-copy h3{font-size:1.5rem}}
@media(prefers-reduced-motion:reduce){.promo-visual img,.promo-book{transition:none}}

/* Compact, framed promotion section. */
.promo-ribbon{grid-template-columns:minmax(220px,29%) minmax(0,1fr);width:calc(100% - 2.2rem);max-width:1500px;margin:clamp(1rem,2.4vw,2rem) auto;border:1px solid #bba27e;border-radius:18px;overflow:hidden;background:#f7f0e4}
.promo-visual{min-height:320px}
.promo-visual-caption{left:1.4rem;bottom:1.1rem;font-size:.59rem}
.promo-body{padding:clamp(1.6rem,2.8vw,2.7rem) clamp(1.6rem,3.5vw,3.6rem)}
.promo-eyebrow{margin-bottom:.55rem;font-size:.62rem}
.promo-intro h2{font-size:clamp(2.4rem,3.6vw,4rem);line-height:.98}
.promo-lead{margin:.8rem 0 0;font-size:.83rem;line-height:1.55}
.promo-grid{margin-top:1.25rem;gap:.7rem}
.promo-card{gap:.7rem;padding:1rem 1.1rem;box-shadow:none}
.promo-value{width:68px;height:68px}
.promo-value strong{font-size:1.65rem}
.promo-value span{font-size:.49rem}
.promo-card-label{margin-bottom:.3rem;font-size:.58rem}
.promo-copy h3{font-size:clamp(1.2rem,1.6vw,1.65rem)}
.promo-copy p{margin:.35rem 0 0;font-size:.75rem;line-height:1.45}
.promo-copy .promo-terms{margin:.4rem 0 0;font-size:.63rem}
.promo-book{min-height:42px;padding:.6rem .85rem;font-size:.63rem}
.promo-footnote{margin:.7rem 0 0;font-size:.62rem}
.promo-no-offers .promo-grid{margin-top:1.1rem}
@media(max-width:760px){.promo-ribbon{display:block;margin:1rem auto}.promo-visual{min-height:0;height:145px}.promo-body{padding:1.7rem 1.3rem 1.9rem}.promo-intro h2{font-size:clamp(2.35rem,8vw,3.4rem)}.promo-grid{display:grid;overflow:visible;margin-top:1.1rem}.promo-card{min-width:0;padding:1rem}}
@media(max-width:420px){.promo-visual{height:115px}.promo-card{grid-template-columns:minmax(0,1fr) 62px}.promo-value{width:62px;height:62px}.promo-value strong{font-size:1.4rem}}

/* Timed new ownership poster. */
.campaign-overlay[hidden]{display:none}
.campaign-overlay{position:fixed;z-index:80;inset:0;display:grid;place-items:center;overflow-y:auto;padding:clamp(1rem,3vw,2.2rem);background:rgba(30,23,17,.72);backdrop-filter:blur(7px)}
.campaign-poster{position:relative;display:grid;grid-template-columns:minmax(240px,42%) minmax(0,1fr);width:min(920px,100%);max-height:calc(100dvh - 2rem);overflow-y:auto;border:1px solid #d7bf96;background:#fbf7ef;box-shadow:0 28px 85px rgba(20,14,9,.36)}
.campaign-poster::after{content:"";position:absolute;inset:10px;border:1px solid rgba(151,116,67,.43);pointer-events:none}
.campaign-close{position:absolute;z-index:3;top:19px;right:19px;display:grid;place-items:center;width:40px;height:40px;padding:0;border:1px solid #bba27e;border-radius:50%;background:#fbf7ef;color:#3d3023;font-size:1.65rem;line-height:1;cursor:pointer;transition:background .2s,color .2s}
.campaign-close:hover{background:#493a2d;color:#fff}
.campaign-poster-image{position:relative;min-height:560px;overflow:hidden;background:#c3ab89}
.campaign-poster-image img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:44% center}
.campaign-poster-image::after{content:"";position:absolute;inset:55% 0 0;background:linear-gradient(transparent,rgba(32,24,17,.6))}
.campaign-poster-image span{position:absolute;z-index:1;left:2rem;bottom:2rem;color:#fff;font-size:.68rem;font-weight:600;letter-spacing:.16em;text-transform:uppercase}
.campaign-poster-content{display:flex;flex-direction:column;align-items:center;justify-content:center;padding:3.6rem clamp(2rem,5vw,4.5rem);text-align:center;color:#3d3023}
.campaign-overline{margin:0 0 .85rem;color:#8b693d;font-size:.73rem;font-weight:600;letter-spacing:.22em;text-transform:uppercase}
.campaign-poster-content h2{display:flex;align-items:baseline;justify-content:center;gap:.35rem;margin:0;font-family:var(--display);font-weight:400;line-height:.82;color:#493a2d}
.campaign-poster-content h2 strong{font-size:clamp(5.2rem,9vw,8.3rem);font-weight:400;letter-spacing:-.09em}
.campaign-poster-content h2 span{font-family:var(--sans);font-size:clamp(1rem,2vw,1.7rem);font-weight:600;letter-spacing:.12em}
.campaign-all-services{margin:.75rem 0 0;color:#987345;font-family:var(--display);font-size:clamp(2rem,3.2vw,3rem);line-height:1;text-transform:uppercase}
.campaign-rule{display:flex;align-items:center;gap:1rem;width:100%;margin:1.3rem 0;color:#b29261;font-size:1rem}
.campaign-rule::before,.campaign-rule::after{content:"";flex:1;height:1px;background:#c9b28e}
.campaign-tagline{margin:0;max-width:330px;font-family:var(--display);font-size:clamp(1.55rem,2.3vw,2.25rem);line-height:1.12}
.campaign-description{max-width:370px;margin:1rem 0 0;color:#675746;font-size:.86rem;line-height:1.6}
.campaign-address{margin:1.1rem 0 0;color:#816b52;font-size:.69rem;font-weight:600;letter-spacing:.055em}
.campaign-cta{display:flex;align-items:center;justify-content:space-between;gap:1.5rem;width:100%;max-width:350px;min-height:48px;margin-top:1.4rem;padding:.75rem 1rem;background:#987345;color:#fff;font-size:.7rem;font-weight:600;letter-spacing:.1em;text-align:left;text-transform:uppercase;transition:background .2s,transform .2s}
.campaign-cta:hover{background:#493a2d;transform:translateY(-2px)}
.campaign-cta span{font-size:1.15rem}
body.campaign-open{overflow:hidden}
@media(max-width:700px){.campaign-overlay{padding:.7rem}.campaign-poster{display:block;width:min(440px,100%);max-height:calc(100dvh - 1.4rem)}.campaign-poster-image{height:145px;min-height:0}.campaign-poster-image img{object-position:center 55%}.campaign-poster-image span{left:1.6rem;bottom:1rem;font-size:.56rem}.campaign-poster-content{padding:1.7rem 2rem 2.2rem}.campaign-close{top:18px;right:18px;width:36px;height:36px}.campaign-poster-content h2 strong{font-size:clamp(5rem,20vw,6.6rem)}.campaign-all-services{font-size:2.25rem}.campaign-rule{margin:.85rem 0}.campaign-tagline{font-size:1.7rem}.campaign-description{margin:.7rem 0 0;font-size:.79rem}.campaign-address{margin:.75rem 0 0;font-size:.63rem}.campaign-cta{margin-top:1rem}}
@media(max-width:380px){.campaign-poster-image{height:105px}.campaign-poster-content{padding:1.3rem 1.5rem 1.7rem}.campaign-overline{font-size:.62rem}.campaign-poster-content h2 strong{font-size:4.9rem}.campaign-all-services{font-size:2rem}.campaign-tagline{font-size:1.5rem}.campaign-description{font-size:.75rem}}
@media(prefers-reduced-motion:reduce){.campaign-close,.campaign-cta{transition:none}}
