
:root {
  --v3-paper: #f6f2eb;
  --v3-ivory: #fdfaf3;
  --v3-navy: #102d45;
  --v3-blue: #163e5d;
  --v3-accent: #be7956;
  --v3-peach: #e8bfa7;
  --v3-stroke: #d9d2ca;
  --v3-ease: cubic-bezier(.22, 1, .36, 1);
}
body { background: var(--v3-paper); }
.utility-line { display: none; }
.site-header { background: rgba(249,247,241,.98); }
.site-header.is-scrolled { background: rgba(251,249,244,.97); }
.brand-mark { border: 0; background: transparent; }
.brand-mark img { object-fit: contain; }
.header-inner { min-height: 79px; }
.nav-link { font-size: 15px; }
.site-scroll-meter { height: 3px; background: var(--v3-accent); }
.hero-v3 {
  position: relative;
  isolation: isolate;
  background: var(--v3-paper);
  overflow: clip;
  padding-block: 40px 0;
}
.hero-v3:before {
  content:""; position:absolute; top:0; bottom:0; right:calc(50% + 14px);
  width:1px; background:#112b420b; z-index:-1; pointer-events:none;
}
.hero-v3-pretitle {
  display:flex; justify-content:space-between; align-items:center; gap:24px;
  padding-bottom: 13px; border-bottom:1px solid #d7d3cf;
}
.eyebrow-v3 {
  display:inline-flex; align-items:center; gap:12px;
  color:var(--v3-blue); font-size:12px; font-weight:750; letter-spacing:.15em;
  line-height:1.55; text-transform:uppercase;
}
.eyebrow-v3-line { width:32px; height:2px; background:var(--v3-accent); flex:0 0 auto; }
.hero-v3-counter { font-size:12px; letter-spacing:.1em; font-weight:650; color:#727a7e; }
.hero-v3-shell {
  display:grid; grid-template-columns:minmax(0,.96fr) minmax(0,1.04fr);
  gap:clamp(36px,5.4vw,85px); align-items:center;
  padding-top:32px;
}
.hero-v3-copy {
  display:flex; flex-direction:column; min-width:0;
  align-self:stretch; justify-content:center;
  padding-block:38px 53px;
}
.hero-v3-title {
  color:var(--v3-navy); font-size:clamp(50px,4.82vw,75px);
  font-weight:750; line-height:1.075; letter-spacing:-.077em; max-width:630px;
}
.hero-v3-title .hero-title-line {
  display:block; text-wrap:balance;
}
.hero-v3-title .hero-title-soft {
  color:var(--v3-accent); font-family:"Fraunces",Georgia,serif;
  font-size:.93em; font-weight:450; letter-spacing:-.056em; line-height:1.1;
  margin-top:10px;
}
.hero-v3-summary { max-width:515px; padding-top:28px; }
.hero-v3-summary p { font-size:18px; line-height:1.7; color:#667078; }
.hero-v3-ctas { display:flex; flex-wrap:wrap; align-items:center; gap:15px; margin-top:28px; }
.hero-v3-ctas .button-primary {
  min-height:60px; padding:13px 14px 13px 20px;
  background:var(--v3-navy); color:#fff; border-radius:0;
}
.hero-v3-ctas .button-primary:hover { background:#245878; }
.hero-v3-ctas .button-text { color:var(--v3-navy); }
.hero-v3-caption-rail {
  display:flex; gap:10px; align-items:center; margin-top:auto; padding-top:49px;
  color:#717b80; font-size:13px; font-weight:550; letter-spacing:.015em;
}
.hero-v3-rail-dot { width:7px; height:7px; background:var(--v3-accent); flex:0 0 auto; transform:rotate(45deg); }
.hero-v3-gallery {
  position:relative; display:grid; grid-template-columns:minmax(0,1.6fr) minmax(0,.9fr);
  gap:8px; height:clamp(500px,43vw,610px); min-width:0;
  background:#d9d5d0;
}
.gallery-v3-main,.gallery-v3-tile { position:relative; overflow:hidden; min-width:0; background:#d0d4d2; }
.gallery-v3-main { margin:0; }
.gallery-v3-main:after,.gallery-v3-tile:after {
  content:""; position:absolute; pointer-events:none; inset:0; z-index:1;
  background:linear-gradient(180deg,transparent 55%,rgba(6,24,39,.67) 100%);
}
.gallery-v3-main img,.gallery-v3-tile img {
  width:100%; height:100%; object-fit:cover; display:block; object-position:center center;
  transition:transform 900ms var(--v3-ease),filter 650ms ease;
  filter:contrast(1.07) saturate(1.04);
}
.gallery-v3-main img { object-position:48% center; }
.gallery-v3-main:hover img,.gallery-v3-tile:hover img,
.gallery-v3-tile:focus-visible img { transform:scale(1.055); }
.gallery-v3-main figcaption {
  position:absolute; z-index:2; left:clamp(15px,2vw,26px); right:15px; bottom:clamp(19px,2.4vw,34px);
  display:flex; flex-direction:column; gap:9px; color:#fff;
}
.gallery-v3-small-caption { font-size:11px; letter-spacing:.14em; font-weight:800; opacity:.89; }
.gallery-v3-main figcaption strong {
  max-width:340px; font-family:"Fraunces",Georgia,serif;
  font-size:clamp(23px,2.4vw,35px); line-height:1.15; font-weight:430;
}
.gallery-v3-small-stack { display:grid; grid-template-rows:minmax(0,1fr) minmax(0,1fr); gap:8px; min-height:0; }
.gallery-v3-tile { display:block; }
.gallery-v3-tile img { object-position:center 40%; }
.gallery-v3-label {
  position:absolute; left:12px; right:12px; bottom:18px; z-index:2; color:white;
  display:flex; align-items:flex-end; justify-content:space-between; gap:8px;
  font-size:clamp(13px,1.18vw,16px); font-weight:720; line-height:1.2;
}
.gallery-v3-label span { flex:0 0 auto; font-size:24px; line-height:1; transition:transform .3s var(--v3-ease); }
.gallery-v3-tile:hover .gallery-v3-label span { transform:translate(4px,-4px); }
.gallery-v3-side-signature {
  writing-mode:vertical-rl; transform:rotate(180deg);
  position:absolute; right:-25px; top:14px; font-size:10px; font-weight:800; letter-spacing:.13em;
  color:#9d8f86; pointer-events:none;
}
.hero-v3-endline {
  min-height:68px; border-bottom:1px solid var(--v3-stroke);
  display:flex; align-items:center; justify-content:space-between; gap:18px; color:var(--v3-blue);
}
.hero-v3-scroll {
  font-size:14px; font-weight:730; min-height:45px;
  display:inline-flex; align-items:center; gap:14px;
}
.hero-v3-scroll-arrow { display:inline-grid; place-items:center; font-size:20px; transition:transform .35s var(--v3-ease); }
.hero-v3-scroll:hover .hero-v3-scroll-arrow { transform:translateY(5px); }
.hero-v3-endline-mark { font:500 14px/1 "Fraunces",Georgia,serif; letter-spacing:.19em; color:#b77d60; }


.intent-v3 { background:var(--v3-navy); color:#f8f3ec; position:relative; overflow:clip; }
.intent-v3-layout {
  min-height:180px; display:grid; grid-template-columns:1.03fr repeat(3,1fr); align-items:stretch;
}
.intent-v3-heading {
  display:flex; flex-direction:column; justify-content:center; padding:26px 22px 26px 0;
}
.eyebrow-v3--light { color:#e2c2ad; font-size:11px; }
.intent-v3-heading strong {
  display:block; margin-top:10px; font-family:"Fraunces",Georgia,serif;
  font-size:clamp(25px,2.4vw,34px); font-weight:480; line-height:1.18; color:#fff;
}
.intent-v3-item {
  position:relative; display:flex; flex-direction:column; justify-content:center; gap:12px;
  padding:30px clamp(15px,2vw,33px);
  border-left:1px solid #ffffff28; transition:background .35s ease,padding .32s var(--v3-ease);
}
.intent-v3-item:after { content:""; position:absolute; left:0; bottom:0; right:0; height:3px; background:#dfa880; transform:scaleX(0); transform-origin:left; transition:transform .36s var(--v3-ease); }
.intent-v3-item:hover,.intent-v3-item:focus-visible { background:#21465e; }
.intent-v3-item:hover:after,.intent-v3-item:focus-visible:after { transform:scaleX(1); }
.intent-v3-index { display:block; color:#d5b69e; font-size:11px; font-weight:780; letter-spacing:.15em; }
.intent-v3-title { max-width:230px; font-size:clamp(19px,1.8vw,25px); font-weight:630; line-height:1.3; letter-spacing:-.035em; }
.intent-v3-arrow {
  position:absolute; right:20px; top:19px; font-size:22px; color:#e1bc9d;
  transition:transform .3s var(--v3-ease);
}
.intent-v3-item:hover .intent-v3-arrow { transform:translate(4px,-4px); }


.solutions-section {
  background:var(--v3-navy); color:#f8f8f3; position:relative; overflow:clip;
  border-top:1px solid #ffffff25;
}
.solutions-section:before {
  content:""; position:absolute; width:850px; height:850px; right:-620px; top:100px;
  border:1px solid #ffffff17; transform:rotate(-20deg); pointer-events:none;
}
.solutions-section .overline { color:#e4bc9c; }
.solutions-section .overline-rule { background:#e8b59b; }
.solutions-section .section-heading { color:white; font-size:clamp(50px,5vw,74px); }
.solutions-section .section-heading em { color:#e2b39a; }
.solutions-section .lead-aside p { color:#bfcbd2; }
.solutions-section .inline-link { color:#fff; border-color:#8b9aab; }
.solutions-section .inline-link:hover { color:#f0ba94; border-color:#f0ba94; }
.solutions-section .solutions-list { border-top:1px solid #71899a; }
.solutions-section .solution-row { border-bottom:1px solid #71899a; color:#eaf2f1; }
.solutions-section .solution-row-main strong { color:#fff; letter-spacing:-.042em; }
.solutions-section .solution-row-top { color:#dbad91; }
.solutions-section .solution-row-description { color:#bfcbd5; }
.solutions-section .solution-arrow { color:#e5b194; }
.solutions-section .solution-row:before { background:#e7b798; }
.solutions-section .solution-row:hover,.solutions-section .solution-row:focus-visible,
.solutions-section .solution-row.is-active { background:#ffffff07; }
.solutions-section .solutions-stage { border:1px solid #b9cbcf40; box-shadow:0 25px 70px #061a2e45; }
.solutions-section .solutions-photo-stack { aspect-ratio:1/1.12; }
.solutions-section .solutions-stage-image { filter:contrast(1.08) saturate(1.1); }
.solutions-section .solutions-stage-caption {
  background:#f0ddcb; color:#183b55; font-weight:800; min-height:65px;
}
.solutions-section .solutions-stage-badge { color:#183b55; }
.solutions-section .solutions-stage-badge span { color:#b16c4d; }
.solutions-section .solutions-bottomline { border-color:#708898; color:#d6dfe7; }
.solutions-section .solutions-bottomline a { color:#f4c5a7; }


.story-section { background:#efe4d9; position:relative; }
.story-section:after { content:""; width:47%; height:1px; background:#b8c3c6; position:absolute; bottom:50px; left:0; pointer-events:none; opacity:.6; }
.story-layout { grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr); gap:clamp(65px,7vw,116px); }
.story-content { order:1; }
.story-image-shell {
  order:2; aspect-ratio:1.16 / 1; overflow:hidden; border-radius:0;
  box-shadow:22px 22px 0 #d7c3b3;
}
.story-content h2 { font-size:clamp(43px,4.6vw,71px); line-height:1.12; }
.story-content p { font-size:18px; }
.story-image-stamp { color:var(--v3-blue); background:#f8f2e8; }
.story-image-shell img { filter:contrast(1.08) saturate(1.05); }


.products-section { background:#fbf8f3; position:relative; overflow:hidden; }
.products-section:before {
  content:"PILIHAN";
  position:absolute; top:17px; right:-.07em; font-family:"Fraunces",Georgia,serif;
  font-size:clamp(155px,22vw,370px); font-weight:400; letter-spacing:-.09em;
  line-height:1; color:transparent; -webkit-text-stroke:1px #17364a10;
  pointer-events:none;
}
.products-section > .shell { position:relative; }
.product-feature-large .product-image { aspect-ratio:1.08 / 1; }
.product-feature-small .product-image { aspect-ratio:.96 / 1; }
.product-feature-small { margin-top:110px; }
.product-image { background:#d9d6d0; }
.product-image img { filter:saturate(1.08) contrast(1.055); }
.product-information {
  padding-left:17px; border-left:2px solid #c88f6f; margin-top:18px; padding-top:0;
}
.product-information .product-category { font-size:12px; }
.product-information h3 { margin-top:8px; }
.product-information p { font-size:16px; line-height:1.63; }


.closing-cta { background:#e7bea6; color:var(--v3-navy); }
.closing-cta .overline-light { color:var(--v3-navy); }
.closing-cta .overline-rule { background:var(--v3-blue); }
.closing-top > span:last-child { color:#5d5860; }
.closing-content h2 { font-size:clamp(56px,5.8vw,93px); color:var(--v3-navy); }
.closing-content h2 em { color:#a45b3f; }
.closing-right p { color:#4a4a52; }
.closing-link { color:var(--v3-navy); }
.closing-circle { background:var(--v3-navy); color:white; border-color:var(--v3-navy); }
.closing-link:hover .closing-circle { background:white; color:var(--v3-navy); }
.closing-curve { color:#b87451; opacity:.34; }
.site-footer { background:#0f2940; }


.page-intro { background:#f6f2eb; }
.listing-section { background:#fbfaf6; }
.listing-item .listing-media img { filter:contrast(1.06) saturate(1.045); }
.listing-item .listing-media { box-shadow:14px 14px 0 #ede2d8; margin-bottom:19px; }
.detail-content-section { background:#fbfaf6; }
.detail-cover img { filter:contrast(1.04); }


@media(hover:hover) and (pointer:fine) {
  .gallery-v3-tile:hover .gallery-v3-label { transform:translateY(-2px); }
  .intent-v3-item:hover .intent-v3-title { color:#fff; }
}
@media(max-width:1200px) {
  .hero-v3-shell { gap:40px; }
  .hero-v3-title { font-size:clamp(47px,4.55vw,62px); }
  .hero-v3-gallery { height:530px; }
  .gallery-v3-side-signature { display:none; }
  .intent-v3-layout { grid-template-columns:.86fr repeat(3,1fr); }
  .intent-v3-heading strong { font-size:26px; }
  .intent-v3-title { font-size:20px; }
}
@media(max-width:1060px) {
  .hero-v3 { padding-top:30px; }
  .hero-v3-shell { grid-template-columns:1fr; gap:12px; padding-top:20px; }
  .hero-v3-copy { padding-block:28px 25px; }
  .hero-v3-title { font-size:clamp(55px,6.6vw,72px); max-width:950px; }
  .hero-v3-title .hero-title-line { max-width:850px; }
  .hero-v3-summary { display:flex; justify-content:space-between; align-items:flex-end; max-width:none; gap:20px; }
  .hero-v3-summary p { max-width:415px; }
  .hero-v3-ctas { margin-top:0; }
  .hero-v3-caption-rail { padding-top:25px; }
  .hero-v3-gallery { height:400px; grid-template-columns:1.7fr .9fr; }
  .gallery-v3-main img { object-position:50% 50%; }
  .intent-v3-layout { grid-template-columns:1fr 1fr 1fr; }
  .intent-v3-heading { grid-column:1/-1; padding:22px 0 10px; }
  .intent-v3-heading strong { margin-top:5px; font-size:27px; }
  .intent-v3-heading strong br { display:none; }
  .intent-v3-item { min-height:135px; border-top:1px solid #ffffff25; padding:20px; }
}
@media(max-width:900px) {
  .hero-v3-title { font-size:clamp(50px,7vw,65px); }
  .hero-v3-gallery { height:390px; }
  .solutions-section .solutions-stage { top:105px; }
}
@media(max-width:700px) {
  .hero-v3 { padding-top:22px; }
  .hero-v3:before { display:none; }
  .hero-v3-pretitle { align-items:start; }
  .eyebrow-v3 { font-size:11px; letter-spacing:.09em; }
  .hero-v3-counter { display:none; }
  .hero-v3-shell { gap:0; padding-top:11px; }
  .hero-v3-copy { padding-block:22px 23px; }
  .hero-v3-title { font-size:clamp(43px,11.2vw,60px); line-height:1.065; max-width:100%; }
  .hero-v3-title .hero-title-soft { margin-top:4px; }
  .hero-v3-summary { display:block; padding-top:21px; }
  .hero-v3-summary p { font-size:16px; line-height:1.65; max-width:100%; }
  .hero-v3-ctas { margin-top:22px; gap:8px; }
  .hero-v3-ctas .button-primary { min-height:54px; }
  .hero-v3-caption-rail { display:none; }
  .hero-v3-gallery { height:330px; grid-template-columns:minmax(0,1.36fr) minmax(0,.88fr); gap:5px; }
  .gallery-v3-small-stack { gap:5px; }
  .gallery-v3-main img { object-position:55% center; }
  .gallery-v3-main figcaption { left:10px; bottom:12px; right:8px; gap:6px; }
  .gallery-v3-main figcaption strong { font-size:19px; line-height:1.12; }
  .gallery-v3-small-caption { font-size:10px; letter-spacing:.08em; }
  .gallery-v3-label { left:7px; right:7px; bottom:9px; font-size:12px; gap:4px; }
  .gallery-v3-label span { font-size:19px; }
  .gallery-v3-tile img { object-position:center; }
  .hero-v3-endline { min-height:55px; }
  .hero-v3-scroll { font-size:13px; }
  .intent-v3-layout { display:block; }
  .intent-v3-heading { display:flex; align-items:center; flex-direction:row; justify-content:space-between; padding:21px 0 16px; }
  .intent-v3-heading strong { font-size:25px; max-width:180px; margin:0; }
  .intent-v3-item { min-height:77px; padding:14px 36px 14px 0; display:grid; grid-template-columns:75px 1fr; gap:8px; align-items:center; border-left:0; }
  .intent-v3-index { font-size:10px; }
  .intent-v3-title { font-size:20px; }
  .intent-v3-arrow { top:20px; right:5px; }
  .solutions-section .section-heading { font-size:clamp(39px,10.1vw,52px); }
  .solutions-section .solution-row { background:transparent; }
  .solutions-section .solution-row-main strong { font-size:clamp(25px,6.5vw,32px); }
  .solutions-section .solution-row-description { color:#ced9e0; font-size:16px; }
  .solutions-section .solution-row-top { color:#e1bca0; }
  .solutions-section .solutions-bottomline { color:#e4e8ec; }
  .story-layout { display:flex; flex-direction:column; padding-block:70px 80px; gap:0; }
  .story-content { order:0; padding-top:0; padding-bottom:30px; }
  .story-image-shell { order:1; box-shadow:12px 12px 0 #d7c3b3; width:calc(100% - 12px); }
  .story-section:after { display:none; }
  .story-content h2 { font-size:clamp(39px,9.3vw,53px); margin:20px 0; }
  .products-section:before { font-size:135px; top:40px; opacity:.55; }
  .product-feature-small { margin-top:44px; }
  .product-information { margin-top:15px; }
  .closing-cta { background:#e7bea6; }
  .closing-content h2 { font-size:clamp(43px,11vw,62px); }
  .closing-right p { color:#51515a; }
  .closing-top > span:last-child { display:none; }
  .listing-item .listing-media { box-shadow:9px 9px 0 #eee2d7; }
}
@media(max-width:370px) {
  .hero-v3-title { font-size:clamp(39px,10.65vw,44px); }
  .hero-v3-gallery { height:300px; }
  .gallery-v3-main figcaption strong { font-size:18px; }
  .intent-v3-title { font-size:18px; }
  .intent-v3-item { grid-template-columns:60px 1fr; }
}
@media(prefers-reduced-motion:reduce) {
  .gallery-v3-main img,.gallery-v3-tile img,
  .gallery-v3-label span,.intent-v3-item,.intent-v3-arrow,
  .intent-v3-item:after { animation:none!important; transition:none!important; transform:none!important; }
}


.footer-editorial { padding-top: 0; }
.footer-main { padding-top: 83px; }
.footer-logo { letter-spacing: -.075em; }
@media(max-width:700px) {
  .footer-editorial { padding-top:0; }
  .footer-main { padding-top:57px; }
}


@media(max-width:700px) {
  .detail-content-section { padding-top: 48px; }
  .listing-section { padding-top: 56px; }
}
