/* Greenpoint homepage. Black canvas, real photography, yellow at decision points. */
.gps-home { --home-rule:rgba(255,255,255,.2); --home-muted:#c9c8c2; background:#000; color:#fff; }
.gps-home .wrap { max-width:1320px; }
.gps-home .home-eyebrow { margin:0; font:600 11px/1.5 var(--sans); letter-spacing:.12em; text-transform:uppercase; color:var(--home-muted); }
.gps-home .home-eyebrow > span { margin-inline:10px; color:var(--gps-yellow); }
.home-hero { padding:24px 0 0; }
.home-hero__grid { display:grid; gap:26px; }
.home-hero__copy { align-self:center; padding:12px 0 0; }
.home-hero h1 { margin:20px 0 18px; font:400 clamp(52px,7.5vw,106px)/.94 var(--display); letter-spacing:-.015em; text-transform:uppercase; color:#fff; }
.home-hero h1 em { color:var(--gps-yellow); font-style:normal; }
.home-hero__intro { max-width:39ch; margin:0; font:400 15px/1.65 var(--sans); color:var(--home-muted); }
.home-actions { display:flex; flex-wrap:wrap; align-items:center; gap:4px 26px; margin-top:24px; }
.gps-home .home-actions > .btn { gap:14px; min-height:50px; border-radius:4px; padding:15px 18px; font:700 13px/1.3 var(--sans); text-transform:none; letter-spacing:0; background:var(--gps-yellow); color:#000; }
.gps-home .home-link { display:inline-flex; align-items:center; justify-content:space-between; gap:16px; min-height:44px; max-width:100%; color:#fff; font:600 13px/1.4 var(--sans); text-decoration:underline; text-decoration-color:rgba(255,255,255,.4); text-underline-offset:5px; text-decoration-thickness:1px; }
.gps-home .home-link > span[aria-hidden] { font-size:19px; text-decoration:none; flex:none; }
.gps-home .home-link:hover { text-decoration-color:#fff; color:#fff; }
.home-hero__visual { margin:0; min-width:0; position:relative; }
.home-hero__image { position:relative; overflow:hidden; height:220px; background:#000; border-radius:3px; }
.home-hero__photo { display:block; width:100%; height:100%; object-fit:cover; object-position:center 18%; }
.home-hero__visual--custom .home-hero__photo { object-position:center; }
.home-hero__mark { width:min(78%,360px); height:100%; object-fit:contain; margin:auto; padding:24px; }
.home-hero__visual figcaption a { display:flex; align-items:center; justify-content:space-between; gap:16px; padding:12px 0 18px; font:500 10px/1.5 var(--sans); text-transform:uppercase; letter-spacing:.08em; color:var(--home-muted); }
.home-hero__visual figcaption strong { display:block; margin-top:3px; color:#fff; font:600 13px/1.4 var(--sans); text-transform:none; letter-spacing:0; }
.home-hero__visual figcaption a > span:last-child { color:var(--gps-yellow); font-size:25px; }
.home-hero__visual figcaption a:hover strong { text-decoration:underline; text-underline-offset:4px; }
.home-proof { border-block:1px solid var(--home-rule); }
.home-proof > .wrap { display:flex; flex-wrap:wrap; justify-content:space-between; gap:0 24px; padding-block:8px; }
.home-proof a { display:flex; align-items:center; gap:8px; min-height:40px; font:500 11px/1.5 var(--sans); color:var(--home-muted); }
.home-proof a:first-child { flex-basis:100%; }
.home-proof strong { color:#fff; font-weight:700; }
.home-proof__star { color:var(--gps-yellow); font-size:19px; }
.home-proof a:hover { color:#fff; text-decoration:underline; text-underline-offset:4px; }
.home-section { padding:48px 0 0; }
.home-heading.sec__head { display:flex; flex-wrap:wrap; align-items:flex-end; gap:10px 24px; justify-content:space-between; margin-bottom:20px; }
.gps-home h2 { font:400 clamp(34px,4.1vw,54px)/1.03 var(--display); letter-spacing:.005em; text-transform:uppercase; color:#fff; }
.gps-home .home-heading .home-eyebrow { margin:0 0 9px; }
.gps-home .home-heading .home-note { margin:10px 0 0; max-width:43ch; font:400 14px/1.6 var(--sans); color:var(--home-muted); }
.gps-home .home-products { gap:14px; padding:0; }
.gps-home .home-products .card { border-radius:4px; }
.home-empty { border-block:1px solid var(--home-rule); padding:26px 0; }
.home-empty > p { max-width:45ch; color:var(--home-muted); }
.home-campaign { margin-top:48px; }
.home-campaign .art { margin-bottom:0; }
.home-finder { display:grid; gap:20px; margin-bottom:20px; padding-top:2px; }
.home-finder label { display:block; margin-bottom:9px; font:500 12px/1.4 var(--sans); color:var(--home-muted); }
.home-finder form { display:flex; border:1px solid #83837d; border-radius:4px; background:#fff; color:#111; }
.home-finder input[type=search] { width:100%; min-width:0; min-height:50px; margin:0; border:0; border-radius:4px 0 0 4px; box-shadow:none; padding:12px 14px; background:#fff; color:#111; font:400 16px/1.4 var(--sans); }
.home-finder input::placeholder { color:#65655f; opacity:1; }
.home-finder input:focus-visible { outline:2px solid #000; outline-offset:-4px; }
.home-finder button { display:grid; place-items:center; flex:none; width:52px; min-height:50px; padding:0; margin:0; border:0; border-radius:0 4px 4px 0; background:#fff; color:#111; cursor:pointer; }
.home-finder button:focus-visible { outline:2px solid #111; outline-offset:-4px; }
.home-finder button:hover { background:#f0eee6; }
.home-lineage { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:56px; font:400 12px/1.5 var(--sans); color:var(--home-muted); }
.home-lineage strong { display:block; margin-top:4px; color:#fff; font:600 16px/1.5 var(--sans); text-decoration:underline; text-underline-offset:5px; text-decoration-color:#777; }
.home-lineage:hover strong { text-decoration-color:#fff; }
.home-lineage > span:last-child { color:#fff; font-size:25px; }
.gps-home .home-types { display:grid; grid-template-columns:1fr; gap:0; padding:0; border-top:1px solid var(--home-rule); }
.gps-home .home-type { display:grid; grid-template-columns:76px minmax(0,1fr); align-items:center; gap:10px; padding:12px 0; border:0; border-bottom:1px solid var(--home-rule); border-radius:0; }
.home-type picture { display:grid; place-items:center; }
.home-type picture img { width:58px; height:58px; object-fit:contain; }
.home-type__caption { display:flex; justify-content:space-between; align-items:center; gap:12px; padding-right:8px; }
.home-type__caption strong { display:block; font:600 17px/1.4 var(--sans); }
.home-type__caption small { display:block; margin-top:3px; color:var(--home-muted); font:400 12px/1.5 var(--sans); }
.home-type__caption > span:last-child { font:400 23px/1 var(--sans); }
.home-type:hover strong { text-decoration:underline; text-underline-offset:5px; }
.home-subheading { display:flex; flex-wrap:wrap; justify-content:space-between; align-items:center; gap:4px 20px; margin:32px 0 14px; }
.home-subheading h3 { font:600 19px/1.4 var(--sans); color:#fff; }
.gps-home .home-hubs { display:grid; gap:28px; padding:0; }
.gps-home .home-hub { display:flex; flex-direction:column; align-items:stretch; gap:0; padding:26px 0 0; border:0; border-top:1px solid var(--home-rule); border-radius:0; background:#000; }
.home-hub__top { display:flex; align-items:center; justify-content:space-between; gap:16px; margin-bottom:17px; }
.gps-home .home-hub h3 { font:400 34px/1.04 var(--display); margin:0 0 16px; color:#fff; }
.gps-home .home-hub > p { color:var(--home-muted); font:400 14px/1.7 var(--sans); margin:0 0 18px; max-width:40ch; }
.home-dates { list-style:none; margin:0; padding:0; }
.home-dates li { border-top:1px solid var(--home-rule); }
.home-dates li:last-child { border-bottom:1px solid var(--home-rule); }
.home-dates a { display:grid; grid-template-columns:44px minmax(0,1fr) 18px; align-items:center; gap:16px; padding:17px 0; min-height:86px; }
.home-dates time { color:var(--gps-yellow); text-align:center; }
.home-dates time span { display:block; font:600 10px/1.4 var(--sans); text-transform:uppercase; letter-spacing:.1em; }
.home-dates time strong { display:block; font:400 35px/1 var(--display); }
.home-dates a > span > strong { display:block; font:600 14px/1.4 var(--sans); overflow-wrap:anywhere; }
.home-dates small { display:block; margin-top:4px; color:var(--home-muted); font:400 11px/1.5 var(--sans); }
.home-dates a:hover > span > strong { text-decoration:underline; text-underline-offset:4px; }
.gps-home .home-fine, .gps-home .home-hub > .home-fine { color:var(--home-muted); font:400 11px/1.6 var(--sans); margin:10px 0 0; }
.home-hub__top > .home-fine { margin:0; }
.home-tester-path { display:flex; flex-direction:column; gap:0; margin:0 0 20px; }
.home-tester-path span { display:flex; align-items:center; gap:12px; border-bottom:1px solid var(--home-rule); min-height:44px; font:500 13px/1.5 var(--sans); }
.home-tester-path span::before { content:""; width:4px; height:4px; background:var(--gps-yellow); flex:none; }
.home-hub--testers > .home-link { align-self:flex-start; margin-top:auto; }
.home-farm__grid { display:grid; gap:28px; align-items:center; }
.home-farm__media { min-width:0; }
.home-film { display:block; position:relative; overflow:hidden; background:#000; border:1px solid var(--home-rule); border-radius:4px; aspect-ratio:16/9; }
.home-film > img { width:100%; height:100%; object-fit:cover; }
.home-film__play { position:absolute; inset:auto 16px 16px; display:flex; align-items:center; gap:10px; padding:13px 14px; background:#000; color:#fff; border:1px solid rgba(255,255,255,.5); border-radius:3px; font:600 12px/1.4 var(--sans); }
.home-film__play > svg { width:16px; height:16px; color:var(--gps-yellow); flex:none; }
.home-film__play > span { margin-left:auto; color:var(--home-muted); font-weight:400; }
.home-film:hover .home-film__play { border-color:#fff; }
.home-farm__copy .home-eyebrow { margin-bottom:14px; }
.home-farm__copy > p:not(.home-eyebrow) { color:var(--home-muted); margin:18px 0 10px; font:400 15px/1.7 var(--sans); }
.home-farm__media .art { margin:0; padding:0; border-radius:4px; overflow:hidden; }
.home-farm__media .art__img { aspect-ratio:16/9; object-fit:cover; }
.home-farm__fallback { display:grid; justify-items:center; gap:16px; padding:24px; border:1px solid var(--home-rule); }
.home-farm__fallback > img { width:180px; }
.home-farm__fallback > span { font:600 13px/1.5 var(--sans); }
.home-reviews { padding-bottom:56px; }
.home-quotes { display:grid; gap:28px; }
.home-quotes blockquote { margin:0; padding:24px 0 0; border-top:1px solid var(--home-rule); }
.home-review-stars { color:var(--gps-yellow); font-size:14px; letter-spacing:2px; margin-bottom:12px; }
.home-quotes blockquote > p { margin:0 0 20px; max-width:50ch; font:400 16px/1.75 var(--sans); color:#fff; }
.home-quotes footer { display:flex; flex-wrap:wrap; gap:4px 16px; justify-content:space-between; font:400 12px/1.5 var(--sans); color:var(--home-muted); }
.home-quotes footer a { color:#fff; text-decoration:underline; text-underline-offset:4px; text-decoration-color:#777; }
.gps-home :focus-visible { outline:2px solid #fff; outline-offset:4px; }
.gps-home .home-actions > .btn:focus-visible { outline-color:#fff; }
@media(min-width:640px) {
 .home-proof a:first-child { flex-basis:auto; }
 .home-proof > .wrap { padding-block:12px; }
 .gps-home .home-types { grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; border-top:0; }
 .gps-home .home-type { display:block; padding:0 0 18px; }
 .home-type picture img { width:100%; height:auto; aspect-ratio:1400/488; object-fit:contain; }
 .home-type__caption { margin-top:14px; padding:0; align-items:flex-start; }
 .home-type__caption strong { font-size:17px; }
 .home-quotes { grid-template-columns:repeat(2,minmax(0,1fr)); gap:48px; }
 .home-hero__image { height:340px; }
}
@media(min-width:820px) {
 .home-hero { padding:34px 0 24px; }
 .home-hero__grid { grid-template-columns:minmax(0,1.06fr) minmax(0,1fr); gap:36px; align-items:center; }
 .home-hero__copy { padding:16px 0 40px; }
 .home-hero__image { height:auto; aspect-ratio:1.05; }
 .home-hero__visual figcaption a { padding-bottom:0; }
 .home-hero__intro { font-size:16px; }
 .home-proof a { font-size:12px; }
 .home-section { padding-top:72px; }
 .home-heading.sec__head { margin-bottom:26px; }
 .gps-home .home-products { grid-template-columns:repeat(4,minmax(0,1fr)); gap:20px; }
 .home-finder { grid-template-columns:minmax(0,1.25fr) minmax(0,1fr); align-items:end; gap:clamp(32px,7vw,100px); margin-bottom:28px; }
 .home-lineage { padding-bottom:3px; }
 .home-subheading { margin-top:42px; }
 .gps-home .home-hubs { grid-template-columns:repeat(2,minmax(0,1fr)); gap:56px; }
 .home-hub h3 { font-size:40px; }
 .home-farm__grid { grid-template-columns:minmax(0,1.1fr) minmax(0,1fr); gap:56px; }
 .home-farm__copy h2 { font-size:clamp(38px,4vw,52px); }
 .home-reviews { padding-bottom:80px; }
}
@media(min-width:1100px) { .home-actions { margin-top:30px; } .home-hero__intro { font-size:17px; } }
@media(max-width:359px) { .home-hero h1 { font-size:46px; } .home-proof a { font-size:10px; } .home-hub__top { flex-wrap:wrap; gap:4px; } }
@media(prefers-reduced-motion:no-preference) and (hover:hover) {
 .home-type img { transition:transform 250ms ease; }
 .home-type:hover img { transform:translateY(-2px); }
}
@media(forced-colors:active) {
 .home-finder form, .home-film, .home-film__play { border-color:CanvasText; }
 .home-tester-path span::before { background:CanvasText; }
}
