/* Shared internal-page layouts for the staging website */
.internal-page { background: var(--ivory); }
.internal-hero {
  padding: calc(var(--header-height) + clamp(76px, 9vw, 130px)) 0 clamp(78px, 9vw, 128px);
  border-bottom: 1px solid var(--line);
}
.internal-hero-grid {
  display: grid;
  grid-template-columns: 1.15fr .85fr;
  gap: clamp(50px, 8vw, 130px);
  align-items: end;
}
.internal-hero h1 { margin-bottom: 0; font-size: clamp(64px, 7vw, 106px); }
.internal-hero-copy { max-width: 610px; color: rgba(30,30,27,.68); font-size: 18px; }
.internal-hero-copy .button-row { margin-top: 30px; }
.internal-section { padding: clamp(88px, 10vw, 145px) 0; }
.internal-section-white { background: var(--soft-white); }
.internal-heading { max-width: 850px; margin-bottom: clamp(50px, 7vw, 85px); }
.internal-heading > p:not(.eyebrow) { max-width: 680px; color: rgba(30,30,27,.68); font-size: 17px; }
.internal-gallery { display: grid; grid-template-columns: 1.15fr .85fr; gap: 24px; }
.internal-gallery figure { position: relative; min-height: 390px; margin: 0; overflow: hidden; }
.internal-gallery figure:first-child { grid-row: span 2; min-height: 804px; }
.internal-gallery img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.internal-gallery figcaption { position: absolute; z-index: 2; left: 25px; right: 25px; bottom: 22px; color: white; }
.internal-gallery figure::after { content:""; position:absolute; inset:0; background:linear-gradient(to top,rgba(15,14,13,.65),transparent 48%); }
.internal-gallery figcaption span { display:block; margin-bottom:5px; font-size:10px; font-weight:600; letter-spacing:.14em; text-transform:uppercase; }
.internal-gallery figcaption strong { display:block; font-family:var(--serif); font-size:clamp(28px,3vw,42px); font-weight:400; line-height:1; }
.internal-copy-grid { display:grid; grid-template-columns:.78fr 1.22fr; gap:clamp(55px,9vw,145px); align-items:start; }
.internal-copy-grid h2 { position:sticky; top:calc(var(--header-height) + 45px); }
.internal-prose { max-width:760px; }
.internal-prose p { color:rgba(30,30,27,.7); font-size:17px; }
.internal-prose .lead { font-family:var(--serif); font-size:clamp(29px,3vw,43px); line-height:1.15; color:var(--ink); }
.light-package-grid { display:grid; grid-template-columns:repeat(4,1fr); border-top:1px solid var(--line); border-bottom:1px solid var(--line); }
.light-package-card { min-height:430px; padding:38px 28px; border-right:1px solid var(--line); }
.light-package-card:last-child { border-right:0; }
.light-package-card .package-name { color:rgba(30,30,27,.55); }
.light-package-card h3 { min-height:80px; font-size:36px; }
.light-package-card .package-price { color:rgba(30,30,27,.62); }
.light-package-card .package-price strong { color:var(--ink); }
.light-package-card > p:last-child { color:rgba(30,30,27,.64); font-size:14px; }
.internal-note { margin-top:44px; padding:30px; background:#e8e0d4; }
.internal-note p:last-child { margin-bottom:0; color:rgba(30,30,27,.68); }
.about-portrait-grid { display:grid; grid-template-columns:.88fr 1.12fr; gap:clamp(60px,10vw,150px); align-items:center; }
.about-portrait { height:min(760px,70vw); overflow:hidden; }
.about-portrait img { width:100%; height:100%; object-fit:cover; object-position:50% 44%; }
.value-grid { display:grid; grid-template-columns:repeat(3,1fr); gap:22px; }
.value-card { padding:34px; border:1px solid var(--line); background:rgba(255,255,255,.34); }
.value-card h3 { font-size:34px; }
.value-card p { color:rgba(30,30,27,.65); }
.internal-final { padding:clamp(95px,11vw,160px) 0; background:var(--espresso); color:white; text-align:center; }
.internal-final-inner { max-width:900px; }
.internal-final h2 { font-size:clamp(56px,7vw,92px); }
.internal-final p { max-width:650px; margin:0 auto 32px; color:rgba(255,255,255,.7); font-size:18px; }
@media(max-width:900px){
  .internal-hero-grid,.internal-copy-grid,.about-portrait-grid{grid-template-columns:1fr;gap:35px}
  .internal-copy-grid h2{position:static}
  .internal-gallery{grid-template-columns:1fr 1fr}
  .internal-gallery figure:first-child{grid-column:1/-1;grid-row:auto;min-height:650px}
  .light-package-grid{grid-template-columns:1fr 1fr}
  .light-package-card:nth-child(2){border-right:0}
  .light-package-card:nth-child(-n+2){border-bottom:1px solid var(--line)}
  .value-grid{grid-template-columns:1fr}
}
@media(max-width:640px){
  .internal-gallery{grid-template-columns:1fr}
  .internal-gallery figure,.internal-gallery figure:first-child{grid-column:auto;min-height:480px}
  .light-package-grid{grid-template-columns:1fr}
  .light-package-card{min-height:auto;border-right:0;border-bottom:1px solid var(--line)!important}
  .light-package-card:last-child{border-bottom:0!important}
  .about-portrait{height:620px}
}

/* Portfolio property grid and gallery */
.portfolio-property-groups{display:grid;gap:clamp(28px,4vw,52px)}
.portfolio-triptych{display:grid;grid-template-columns:1.15fr .85fr;grid-template-rows:repeat(2,minmax(250px,390px));gap:24px}
.portfolio-triptych-reversed{grid-template-columns:.85fr 1.15fr}
.portfolio-card{position:relative;display:block;min-height:0;overflow:hidden;background:#cfc8bd;color:#fff;text-decoration:none;isolation:isolate}
.portfolio-card-featured{grid-row:1/span 2}
.portfolio-triptych-reversed .portfolio-card-featured{grid-column:2}
.portfolio-triptych-reversed .portfolio-card:not(.portfolio-card-featured){grid-column:1}
.portfolio-triptych-reversed .portfolio-card:nth-child(2){grid-row:1}
.portfolio-triptych-reversed .portfolio-card:nth-child(3){grid-row:2}
.portfolio-card>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;transition:transform .7s cubic-bezier(.2,.7,.2,1),filter .4s ease}
.portfolio-card-shade{position:absolute;z-index:1;inset:0;background:linear-gradient(to top,rgba(12,11,10,.76),rgba(12,11,10,.17) 52%,transparent 78%);transition:background .35s ease}
.portfolio-card-caption{position:absolute;z-index:2;left:clamp(22px,2.3vw,34px);right:clamp(22px,2.3vw,34px);bottom:clamp(22px,2.3vw,32px)}
.portfolio-card-meta{display:flex;align-items:center;flex-wrap:wrap;gap:8px 14px;margin-bottom:8px;font-size:10px;font-weight:600;letter-spacing:.14em;line-height:1.35;text-transform:uppercase}
.portfolio-card-meta span+span{position:relative;padding-left:16px;color:rgba(255,255,255,.76)}
.portfolio-card-meta span+span:before{content:"";position:absolute;left:0;top:50%;width:3px;height:3px;border-radius:50%;background:currentColor;transform:translateY(-50%)}
.portfolio-card-caption strong{display:block;max-width:680px;font-family:var(--serif);font-size:clamp(29px,3vw,46px);font-weight:400;line-height:.98}
.portfolio-card:not(.portfolio-card-featured) .portfolio-card-caption strong{font-size:clamp(27px,2.4vw,38px)}
.portfolio-card-action{position:absolute;z-index:3;top:22px;right:22px;display:inline-flex;align-items:center;gap:9px;padding:10px 13px;border:1px solid rgba(255,255,255,.42);background:rgba(20,19,17,.24);backdrop-filter:blur(10px);color:#fff;font-size:10px;font-weight:600;letter-spacing:.11em;text-transform:uppercase;opacity:0;transform:translateY(-7px);transition:opacity .3s ease,transform .3s ease,background .3s ease}
.portfolio-card-action span{font-size:14px;line-height:1}
.portfolio-card:hover>img,.portfolio-card:focus-visible>img{transform:scale(1.035);filter:saturate(1.02)}
.portfolio-card:hover .portfolio-card-shade,.portfolio-card:focus-visible .portfolio-card-shade{background:linear-gradient(to top,rgba(12,11,10,.82),rgba(12,11,10,.23) 58%,rgba(12,11,10,.03) 84%)}
.portfolio-card:hover .portfolio-card-action,.portfolio-card:focus-visible .portfolio-card-action{opacity:1;transform:translateY(0)}
.portfolio-card:focus-visible{outline:3px solid var(--putty);outline-offset:4px}

.portfolio-lightbox{width:min(94vw,1500px);max-width:none;height:min(94vh,980px);max-height:none;margin:auto;padding:0;border:0;background:#151411;color:#fff;box-shadow:0 28px 90px rgba(0,0,0,.5);overflow:hidden}
.portfolio-lightbox::backdrop{background:rgba(12,11,10,.84);backdrop-filter:blur(4px)}
.portfolio-lightbox[open]{animation:portfolio-lightbox-in .28s ease both}
@keyframes portfolio-lightbox-in{from{opacity:0;transform:translateY(12px) scale(.992)}to{opacity:1;transform:none}}
.portfolio-lightbox-inner{position:relative;display:grid;grid-template-rows:minmax(0,1fr) auto auto;height:100%;padding:clamp(18px,2vw,28px)}
.portfolio-lightbox-close{position:absolute;z-index:5;top:clamp(14px,2vw,24px);right:clamp(14px,2vw,24px);display:grid;place-items:center;width:45px;height:45px;padding:0;border:1px solid rgba(255,255,255,.28);border-radius:50%;background:rgba(20,19,17,.5);backdrop-filter:blur(12px);color:#fff;cursor:pointer;transition:background .25s,border-color .25s,transform .25s}
.portfolio-lightbox-close span{margin-top:-2px;font-size:30px;font-weight:300;line-height:1}
.portfolio-lightbox-close:hover,.portfolio-lightbox-close:focus-visible{border-color:rgba(255,255,255,.64);background:rgba(255,255,255,.12);transform:rotate(3deg)}
.portfolio-lightbox-stage{position:relative;display:grid;grid-template-columns:56px minmax(0,1fr) 56px;align-items:center;min-height:0;overflow:hidden}
.portfolio-lightbox-figure{display:grid;place-items:center;min-width:0;min-height:0;height:100%;margin:0;overflow:hidden}
.portfolio-lightbox-figure img{display:block;width:100%;height:100%;max-width:100%;max-height:100%;object-fit:contain;opacity:1;transform:scale(1);transition:opacity .18s,transform .28s}
.portfolio-lightbox-figure img.is-changing{opacity:.15;transform:scale(.994)}
.portfolio-lightbox-nav{position:relative;z-index:2;display:grid;place-items:center;width:46px;height:46px;margin:0 auto;padding:0;border:1px solid rgba(255,255,255,.25);border-radius:50%;background:transparent;color:#fff;cursor:pointer;transition:background .25s,border-color .25s,transform .25s}
.portfolio-lightbox-nav span{font-size:21px;line-height:1}
.portfolio-lightbox-nav:hover,.portfolio-lightbox-nav:focus-visible{border-color:rgba(255,255,255,.62);background:rgba(255,255,255,.08)}
.portfolio-lightbox-prev:hover{transform:translateX(-3px)}.portfolio-lightbox-next:hover{transform:translateX(3px)}
.portfolio-lightbox-details{display:flex;align-items:end;justify-content:space-between;gap:32px;padding:22px 62px 18px}
.portfolio-lightbox-meta{display:flex;flex-wrap:wrap;gap:9px 16px;margin:0 0 7px;color:rgba(255,255,255,.68);font-size:10px;font-weight:600;letter-spacing:.14em;text-transform:uppercase}
.portfolio-lightbox-meta span+span{position:relative;padding-left:17px}.portfolio-lightbox-meta span+span:before{content:"";position:absolute;left:0;top:50%;width:3px;height:3px;border-radius:50%;background:currentColor;transform:translateY(-50%)}
.portfolio-lightbox-details h2{max-width:880px;margin:0;color:#fff;font-family:var(--serif);font-size:clamp(32px,4vw,57px);font-weight:400;line-height:.98}
.portfolio-lightbox-count{flex-shrink:0;margin:0 0 4px;color:rgba(255,255,255,.56);font-size:11px;font-weight:600;letter-spacing:.14em}
.portfolio-lightbox-thumbnails{display:flex;justify-content:center;gap:10px;min-height:70px;padding:0 62px 2px;overflow-x:auto;scrollbar-width:thin}
.portfolio-lightbox-thumb{position:relative;flex:0 0 76px;width:76px;height:56px;padding:0;overflow:hidden;border:1px solid transparent;background:transparent;opacity:.46;cursor:pointer;transition:opacity .2s,border-color .2s,transform .2s}
.portfolio-lightbox-thumb img{width:100%;height:100%;object-fit:cover}
.portfolio-lightbox-thumb:hover,.portfolio-lightbox-thumb:focus-visible,.portfolio-lightbox-thumb[aria-current="true"]{border-color:rgba(255,255,255,.85);opacity:1}.portfolio-lightbox-thumb:hover{transform:translateY(-2px)}
body.portfolio-lightbox-open{overflow:hidden}

@media(max-width:900px){.portfolio-triptych,.portfolio-triptych-reversed{grid-template-columns:1fr 1fr;grid-template-rows:auto}.portfolio-card-featured,.portfolio-triptych-reversed .portfolio-card-featured{grid-column:1/-1;grid-row:auto;min-height:650px}.portfolio-triptych-reversed .portfolio-card:not(.portfolio-card-featured),.portfolio-triptych-reversed .portfolio-card:nth-child(2),.portfolio-triptych-reversed .portfolio-card:nth-child(3){grid-column:auto;grid-row:auto}.portfolio-card:not(.portfolio-card-featured){min-height:390px}.portfolio-lightbox{width:96vw;height:94vh}.portfolio-lightbox-stage{grid-template-columns:48px minmax(0,1fr) 48px}.portfolio-lightbox-details,.portfolio-lightbox-thumbnails{padding-inline:54px}}
@media(max-width:640px){.portfolio-property-groups{gap:22px}.portfolio-triptych,.portfolio-triptych-reversed{grid-template-columns:1fr;gap:18px}.portfolio-card,.portfolio-card-featured,.portfolio-triptych-reversed .portfolio-card-featured,.portfolio-card:not(.portfolio-card-featured){grid-column:auto;min-height:500px}.portfolio-card-action{opacity:1;transform:none}.portfolio-card-caption strong,.portfolio-card:not(.portfolio-card-featured) .portfolio-card-caption strong{font-size:34px}.portfolio-lightbox{width:100vw;height:100dvh;max-height:none}.portfolio-lightbox-inner{padding:12px}.portfolio-lightbox-stage{grid-template-columns:1fr;padding-top:42px}.portfolio-lightbox-nav{position:absolute;top:50%;width:44px;height:44px;background:rgba(20,19,17,.46);backdrop-filter:blur(9px);transform:translateY(-50%)}.portfolio-lightbox-prev{left:6px}.portfolio-lightbox-next{right:6px}.portfolio-lightbox-prev:hover,.portfolio-lightbox-next:hover{transform:translateY(-50%)}.portfolio-lightbox-figure{padding:0 6px}.portfolio-lightbox-details{align-items:start;padding:18px 9px 14px}.portfolio-lightbox-details h2{font-size:34px}.portfolio-lightbox-count{margin-top:4px}.portfolio-lightbox-thumbnails{justify-content:flex-start;min-height:62px;padding:0 9px 2px}.portfolio-lightbox-thumb{flex-basis:68px;width:68px;height:50px}}
@media(prefers-reduced-motion:reduce){.portfolio-card>img,.portfolio-card-action,.portfolio-lightbox,.portfolio-lightbox-figure img,.portfolio-lightbox-nav,.portfolio-lightbox-thumb{animation:none!important;transition:none!important}}


/* Contact page */
.contact-hero .internal-hero-copy{max-width:660px}
.contact-info-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:22px}
.contact-info-card{display:flex;flex-direction:column;min-height:310px;padding:36px;border:1px solid var(--line);background:rgba(255,255,255,.44)}
.contact-info-card h3{margin-bottom:18px;font-size:clamp(30px,3vw,42px);line-height:1.08}
.contact-info-card h3 a{text-decoration:none}
.contact-info-card>p:not(.eyebrow){max-width:490px;color:rgba(30,30,27,.66)}
.contact-info-card .text-link{margin-top:auto;align-self:flex-start}
.contact-route-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:22px}
.contact-route-card{display:flex;flex-direction:column;min-height:390px;padding:36px;border:1px solid var(--line);background:rgba(255,255,255,.3)}
.contact-route-card h3{font-size:clamp(32px,3vw,44px);line-height:1.04}
.contact-route-card>p:not(.eyebrow){color:rgba(30,30,27,.66)}
.contact-route-card .text-link{margin-top:auto;align-self:flex-start}
.contact-form-layout{display:grid;grid-template-columns:.72fr 1.28fr;gap:clamp(55px,8vw,120px);align-items:start}
.contact-form-copy{position:sticky;top:calc(var(--header-height) + 42px)}
.contact-form-copy>p:not(.eyebrow){max-width:570px;color:rgba(30,30,27,.68);font-size:17px}
.contact-form-notes{display:grid;gap:16px;margin-top:34px;padding-top:28px;border-top:1px solid var(--line)}
.contact-form-notes p{margin:0;color:rgba(30,30,27,.65);font-size:14px}
.contact-form-card{min-height:620px;padding:clamp(30px,4vw,54px);background:var(--ivory);border:1px solid var(--line)}
.contact-form-success{margin:90px auto 40px}
.contact-final .button-row{margin-top:34px}
@media(max-width:900px){.contact-info-grid,.contact-route-grid{grid-template-columns:1fr 1fr}.contact-route-card:last-child{grid-column:1/-1}.contact-form-layout{grid-template-columns:1fr}.contact-form-copy{position:static}}
@media(max-width:640px){.contact-info-grid,.contact-route-grid{grid-template-columns:1fr}.contact-route-card:last-child{grid-column:auto}.contact-info-card,.contact-route-card{min-height:auto}.contact-form-card{padding:24px}.contact-info-card h3{font-size:32px}}
