/*
 * Greer Adams Fine Art — front-end styles.
 *
 * Ported from the approved HTML references (design_handoff_wordpress/*.html).
 * Values are final; tokens come from theme.json. Where a reference page used a
 * slightly different value for the same selector, the rule is scoped with a
 * body class: .gafa-home, .gafa-about, .gafa-listing, .gafa-news, .gafa-article.
 */

/* ============================================================ Tokens + base */
:root{
  --ground:var(--wp--preset--color--ground,#FCFBF8);
  --ink:var(--wp--preset--color--ink,#2D1711);
  --accent:var(--wp--preset--color--accent,#BEA99D);
  --surface:var(--wp--preset--color--surface,#F1EDE4);
  --kicker:var(--wp--preset--color--kicker,#8A7468);
  --plate:var(--wp--preset--color--plate,#E9E1D6);
  --soft:rgba(45,23,17,.66);
  --line:rgba(45,23,17,.14);
  --serif:'EB Garamond', Georgia, serif;
}
*{box-sizing:border-box;margin:0;padding:0}
html{-webkit-text-size-adjust:100%}
body{font-family:var(--serif);color:var(--ink);background:var(--ground);line-height:1.6;font-size:19px}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
.wp-site-blocks{padding:0}
.ti{width:1em;height:1em;display:inline-block;vertical-align:-.125em;flex:none}

/* Page-level section rhythm (reference: bare `section` rules, so specificity stays 0,0,1). */
:where(.gafa-home) section{padding:72px 0}
:where(.gafa-about) section{padding:80px 0}

/* WordPress block wrappers: keep them layout-neutral. */
.wp-block-image{margin:0}
.wp-block-image img{height:auto}
/* Button wrappers behave like the reference's bare inline <a>: no flex layout, no extra line-box height. */
.wp-block-buttons{display:block!important;gap:0}
.wp-block-buttons>.wp-block-button{display:inline-block;margin:0}
/* In the quote box the reference link is a flex item (no line box around it). */
.about-quote .wp-block-buttons,.about-quote .wp-block-button{line-height:0}
.about-quote .wp-block-button__link{vertical-align:top}
.wp-block-quote{margin:0;padding:0;border:0}
.wp-block-post-content>*:where(:not(.alignleft):not(.alignright)){max-width:none}
:where(.wp-site-blocks) :where(.is-layout-constrained)>*{margin-left:0;margin-right:0}

/* ================================================================= Shared */
.wrap{max-width:1180px;margin:0 auto;padding:0 56px}
.kick,.is-style-kick{font-size:13px;letter-spacing:.26em;text-transform:uppercase;color:var(--kicker);font-weight:500}
.rule{width:48px;height:1px;background:var(--accent)}
.plate{background:var(--plate);display:flex;align-items:center;justify-content:center;color:rgba(45,23,17,.20);position:relative;overflow:hidden}
.plate .ti{font-size:34px}
.plate>img,.plate>a>img{width:100%;height:100%;object-fit:cover}
.plate.cap::after{content:attr(data-cap);position:absolute;bottom:14px;left:0;right:0;text-align:center;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:rgba(45,23,17,.30)}
:where(.gafa-news,.gafa-article) .plate.cap::after{bottom:16px;letter-spacing:.2em;color:rgba(45,23,17,.34)}
.center{text-align:center}
.band{background:var(--surface)}

/* Links + buttons. `.lnk` is the default treatment; filled ink buttons are
   reserved for the hero and the article enquiry band. */
.lnk,
.wp-block-button.is-style-lnk .wp-block-button__link,
.wp-block-button:not([class*="is-style-"]) .wp-block-button__link{font-size:15px;letter-spacing:.14em;text-transform:uppercase;border:0;border-bottom:1px solid var(--accent);border-radius:0;padding:0 0 4px;display:inline-block;background:none;color:inherit;line-height:1.6;text-align:left}
.btn,
.wp-block-button.is-style-ink .wp-block-button__link,
.wp-block-button.is-style-line .wp-block-button__link{display:inline-flex;align-items:center;gap:8px;font-size:15px;letter-spacing:.04em;padding:13px 26px;border-radius:2px;transition:opacity .2s;text-transform:none}
.wp-block-button.is-style-ink .wp-block-button__link,.wp-block-button.is-style-line .wp-block-button__link{line-height:1.6}
.btn:hover,.wp-block-button.is-style-ink .wp-block-button__link:hover,.wp-block-button.is-style-line .wp-block-button__link:hover{opacity:.82}
.btn-ink,.wp-block-button.is-style-ink .wp-block-button__link{background:var(--ink);color:var(--ground);border:0}
.btn-line,.wp-block-button.is-style-line .wp-block-button__link{border:1px solid rgba(45,23,17,.4);color:var(--ink);background:none}
:where(.gafa-news,.gafa-article) a:hover{color:var(--kicker)}
:where(.gafa-news,.gafa-article) .lnk:hover,
:where(.gafa-news,.gafa-article) .wp-block-button.is-style-lnk .wp-block-button__link:hover{color:var(--ink);border-bottom-color:var(--ink)}

/* ================================================================= Header */
.site-header{border-bottom:1px solid var(--line);background:var(--ground);position:sticky;top:var(--wp-admin--admin-bar--height,0);z-index:20}
.hrow{display:flex;align-items:center;justify-content:space-between;padding:22px 56px;max-width:1180px;margin:0 auto}
.mark{font-size:25px;letter-spacing:.2em;font-weight:500}
.mark small{display:block;font-size:13px;letter-spacing:.42em;color:var(--kicker);margin-top:3px}
nav.main{display:flex;gap:30px;align-items:center}
nav.main a{font-size:15px;letter-spacing:.04em;color:var(--soft);transition:color .2s}
nav.main a:hover{color:var(--ink)}
nav.main .enq-lnk{color:var(--ink);font-weight:500}
nav.main a.current{color:var(--ink);border-bottom:1px solid var(--accent);padding-bottom:3px}
.has-sub{position:relative}
.has-sub>a{display:inline-flex;align-items:center;gap:5px}
.has-sub .caret{font-size:10px;transition:transform .2s;vertical-align:0}
.has-sub:hover .caret,.has-sub:focus-within .caret{transform:rotate(180deg)}
.submenu{position:absolute;top:100%;left:0;padding-top:14px;opacity:0;visibility:hidden;transform:translateY(-6px);transition:opacity .18s,transform .18s,visibility .18s}
.has-sub:hover .submenu,.has-sub:focus-within .submenu{opacity:1;visibility:visible;transform:translateY(0)}
.submenu-inner{background:var(--ground);border:1px solid var(--line);border-radius:3px;min-width:170px;box-shadow:0 12px 30px rgba(45,23,17,.1);padding:8px 0}
.submenu-inner a{display:block;padding:11px 20px;font-size:14px;color:var(--soft)}
.submenu-inner a:hover{color:var(--ink);background:var(--surface)}
.submenu-inner a.current{color:var(--ink);border-bottom:none;padding:11px 20px}
.burger{display:none;font-size:26px;color:var(--ink);background:none;border:0;padding:0;line-height:1;cursor:pointer}
.burger .ti{display:block}

/* Mobile drawer */
.mnav{position:fixed;inset:0;z-index:380;display:none}
.mnav.open{display:block}
.mnav-bd{position:absolute;inset:0;background:rgba(45,23,17,.55)}
.mnav-panel{position:absolute;top:0;right:0;height:100%;width:min(86vw,340px);background:var(--ground);padding:22px 24px 40px;box-shadow:-16px 0 50px rgba(45,23,17,.22);animation:mnavin .3s cubic-bezier(.2,.7,.3,1);overflow-y:auto}
@keyframes mnavin{from{transform:translateX(100%)}to{transform:none}}
.mnav-top{display:flex;justify-content:space-between;align-items:center;margin-bottom:14px}
.mnav-close{background:none;border:none;font-size:26px;color:var(--ink);cursor:pointer;padding:6px;line-height:1}
.mnav-close .ti{display:block}
.mnav-panel a{display:block;padding:15px 0;font-size:20px;color:var(--ink);border-bottom:1px solid var(--line)}
.mnav-panel a.mnav-sub{font-size:16px;padding:12px 0 12px 16px;color:var(--soft)}
.mnav-panel a.enq-lnk{margin-top:24px;border:none;background:var(--ink);color:var(--ground);text-align:center;padding:16px 0;font-size:15px;letter-spacing:.1em;text-transform:uppercase}

/* =================================================================== Hero
 * HERO CROP — keep this block contiguous. Values here are tuned with
 * "Hero Viewport Tuner.html"; paste retuned values straight in.
 * ---------------------------------------------------------------------- */
.hero-photo{position:relative;min-height:660px;overflow:hidden}
.hero-bg{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 100%}
.hero-scrim{position:absolute;inset:0;background:linear-gradient(90deg,rgba(45,23,17,0.60) 0%,rgba(45,23,17,0.56) 18%,rgba(45,23,17,0.43) 31%,rgba(45,23,17,0.22) 44%,rgba(45,23,17,.10) 56%,rgba(45,23,17,.04) 72%,rgba(45,23,17,.20) 100%)}
@media(min-width:601px){
  .hero-photo{min-height:clamp(660px, calc(660px + 30 * (100vw - 600px) / 1320), 690px)}
  .hero-bg{object-fit:cover;object-position:clamp(45%, calc(45% + 5% * ((100vw - 600px) / 1320px)), 50%) clamp(50%, calc(100% + -50% * ((100vw - 600px) / 1320px)), 100%)}
  .hero-scrim{background:linear-gradient(90deg,rgba(45,23,17,0.60) 0%,rgba(45,23,17,0.56) 18%,rgba(45,23,17,0.43) 31%,rgba(45,23,17,0.22) 44%,rgba(45,23,17,.10) 56%,rgba(45,23,17,.04) 72%,rgba(45,23,17,.20) 100%)}
}
@media(max-width:600px){
  .hero-photo{min-height:710px}
  .hero-scrim{background:linear-gradient(180deg,rgba(45,23,17,0.15) 0%,rgba(45,23,17,0.10) 24%,rgba(45,23,17,0.38) 44%,rgba(45,23,17,0.57) 64%,rgba(45,23,17,0.66) 100%)}
  .hero-bg{object-fit:cover;object-position:68% 50%}
}
/* ------------------------------------------------------- end hero crop */
.hero-content{position:absolute;inset:0;z-index:2;text-align:left;padding:0 56px;width:100%;display:flex;align-items:center;justify-content:flex-start}
.hero-content .inner{max-width:420px}
.hero-content .lede{max-width:400px}
.hero-content .rule{margin:0 0 18px!important}
.hero-content .cta{justify-content:flex-start!important}
.hero-content .cta{margin-top:18px}
.hero-content .name,.hero-content .tag{color:var(--ground)}
.hero-content .kick{color:var(--accent)}
.hero-content .lede{color:rgba(252,251,248,.82)}
.hero-content .rule{background:var(--accent)}
.hero-content .btn-ink,.hero-content .is-style-ink .wp-block-button__link{background:var(--ground);color:var(--ink)}
.hero-content .btn-line,.hero-content .is-style-line .wp-block-button__link{border-color:rgba(252,251,248,.6);color:var(--ground)}
@media(min-width:601px) and (max-width:1240px){.hero-content .inner{max-width:340px}}

/* ============================================================ Credibility */
.creds{text-align:center;padding:30px 0}
:where(.gafa-about) .creds{background:var(--surface)}
.creds-marquee{margin-top:12px;overflow:hidden;-webkit-mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent);mask-image:linear-gradient(90deg,transparent,#000 8%,#000 92%,transparent)}
.creds-track{display:flex;width:max-content;gap:44px;animation:creds-scroll 64s linear infinite}
.creds-track span{font-size:19px;white-space:nowrap}
.creds-marquee:hover .creds-track{animation-play-state:paused}
@keyframes creds-scroll{from{transform:translateX(0)}to{transform:translateX(-50%)}}
@media(prefers-reduced-motion:reduce){.creds-track{animation-duration:240s}}

/* ============================================================= Home: about */
.about{display:grid;grid-template-columns:0.8fr 1.2fr;gap:56px;align-items:center}
.about h2{font-size:38px;font-weight:500;line-height:1.18;margin:16px 0 20px}
.about p{color:var(--soft);margin-bottom:26px}
.about .plate{height:560px}
.about .plate img{width:100%;height:100%;object-fit:cover;object-position:50% 16%}
.about-quote{margin-top:36px;background:var(--surface);border-radius:4px;padding:34px 40px 36px;position:relative;display:flex;flex-direction:column;align-items:flex-start;gap:14px}
.about-quote::before{content:'“';position:absolute;top:6px;left:20px;font-size:88px;line-height:1;color:var(--accent);opacity:.5}
.about-quote blockquote{margin:0;position:relative;z-index:1;font-style:italic;font-size:21px;line-height:1.5;color:var(--ink);text-wrap:pretty}
.about .about-quote blockquote p{margin:0;color:var(--ink)}
.about .about-quote .cite,.about-quote cite{font-style:normal;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:rgba(45,23,17,.5);margin:0}

/* ========================================================== Home: services */
#practice{scroll-margin-top:220px}
.svc-head{text-align:center;margin-bottom:44px}
.svc-head h2{font-size:40px;font-weight:500;margin-top:12px}
.svc{display:grid;grid-template-columns:repeat(3,1fr);gap:0;border-top:1px solid var(--line)}
.svc-item{padding:36px 30px;border-bottom:1px solid var(--line)}
.svc-item:not(:last-child){border-right:1px solid var(--line)}
.svc-num{font-size:15px;letter-spacing:.2em;color:var(--accent)}
.svc-item h3{font-size:27px;font-weight:500;margin:14px 0 12px}
.svc-item p{font-size:17px;color:var(--soft);line-height:1.55}
.svc-item .more{margin-top:20px}

.svc-overlay{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:32px}
.svc-overlay.open{display:flex}
.svc-overlay .backdrop{position:absolute;inset:0;background:rgba(45,23,17,.62);animation:svcfade .25s ease}
.svc-modal{position:relative;background:var(--ground);border-radius:4px;max-width:640px;width:100%;max-height:86vh;overflow-y:auto;padding:52px 56px 48px;box-shadow:0 30px 80px rgba(45,23,17,.3);animation:svcrise .28s cubic-bezier(.2,.8,.3,1)}
.svc-modal .svc-num{font-size:15px;letter-spacing:.2em;color:var(--accent)}
.svc-modal h3{font-size:38px;font-weight:500;margin:12px 0 20px;line-height:1.14}
.svc-modal .mrule{width:48px;height:1px;background:var(--accent);margin-bottom:24px}
.svc-modal p{color:var(--soft);margin-bottom:18px;font-size:18px}
.svc-modal p:last-of-type{margin-bottom:0}
.svc-modal .svc-sub{font-family:var(--serif,inherit);font-size:15px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin:30px 0 12px}
.svc-list{list-style:none;margin:0 0 8px;padding:0}
.svc-list li{color:var(--soft);font-size:17.5px;padding:0 0 9px 18px;position:relative;line-height:1.5}
.svc-list li:before{content:"";position:absolute;left:0;top:11px;width:5px;height:1px;background:var(--accent)}
.svc-modal .svc-eng{font-size:16.5px;border-top:1px solid var(--line);padding-top:18px;margin-top:26px}
.svc-modal .svc-eng strong{display:block;font-weight:400;font-size:14px;letter-spacing:.14em;text-transform:uppercase;color:var(--accent);margin-bottom:7px}
.svc-cta{display:inline-block;margin-top:30px}
.svc-close{position:absolute;top:18px;right:18px;width:40px;height:40px;border:none;background:transparent;color:var(--soft);font-size:26px;cursor:pointer;border-radius:50%;line-height:1;transition:background .2s,color .2s}
.svc-close:hover{background:var(--surface);color:var(--ink)}
@keyframes svcfade{from{opacity:0}to{opacity:1}}
@keyframes svcrise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

/* ============================================================ Home: sales */
.sale{text-align:center}
.sale-lede{color:var(--soft);font-size:18px;margin-top:10px}
.sale-carousel{position:relative;max-width:720px;margin:28px auto 0}
.sale-track{overflow:hidden;border-radius:2px}
.sale-slides{display:flex;transition:transform .45s cubic-bezier(.2,.7,.3,1)}
.sale-slide{flex:0 0 100%;width:100%}
.sale .plate{height:520px}
.sale .title{font-style:italic;font-size:30px;margin-bottom:8px;margin-top:22px}
.sale .title .yr{font-style:normal}
.sale .prov{font-size:16px;color:var(--soft);letter-spacing:.02em;margin-bottom:6px;max-width:600px;margin-left:auto;margin-right:auto}
.sale-nav{position:absolute;top:260px;transform:translateY(-50%);width:46px;height:46px;border-radius:50%;background:var(--ground);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:20px;color:var(--ink);transition:background .2s}
.sale-nav:hover{background:var(--surface)}
.sale-prev{left:-23px}
.sale-next{right:-23px}
.sale-dots{display:flex;justify-content:center;gap:9px;margin:22px 0 26px}
.sale-dot{width:8px;height:8px;border-radius:50%;background:var(--line);border:none;cursor:pointer;padding:0}
.sale-dot.active{background:var(--accent)}

/* ============================================================= Home: news */
.news{display:grid;grid-template-columns:1.1fr 1.4fr;gap:48px;align-items:center}
.news .plate{height:300px}
.news h2{font-size:32px;font-weight:500;line-height:1.22;margin:14px 0 16px}
.news p{color:var(--soft);margin-bottom:22px}

/* ======================================================== Home: Instagram */
.ig-wrap{padding-top:0}
.ig-head{display:flex;justify-content:space-between;align-items:flex-end;margin-bottom:26px;flex-wrap:wrap;gap:14px}
.ig-head h2{font-size:32px;font-weight:500}
.ig-carousel{position:relative}
.ig-track{overflow:hidden}
.ig-slides{display:flex;gap:18px;transition:transform .45s cubic-bezier(.2,.7,.3,1)}
.ig-slide{flex:0 0 calc((100% - 36px)/3);aspect-ratio:1/1;position:relative;border-radius:3px;overflow:hidden}
.ig-slide .plate{width:100%;height:100%}
.ig-slide>a{display:block;height:100%}
.ig-slide .ig-icon{position:absolute;top:12px;right:12px;width:28px;height:28px;border-radius:50%;background:rgba(252,251,248,.85);display:flex;align-items:center;justify-content:center;color:var(--ink);font-size:15px}
.ig-nav{position:absolute;top:50%;transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:var(--ground);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;cursor:pointer;font-size:19px;color:var(--ink);transition:background .2s;z-index:2}
.ig-nav:hover{background:var(--surface)}
.ig-prev{left:-22px}
.ig-next{right:-22px}

/* ============================================================== Subscribe */
.sub{background:var(--ink);color:var(--ground);text-align:center;padding:84px 0}
.sub .kick{color:var(--accent)}
.sub h2{font-size:42px;font-weight:500;margin:16px 0 14px}
.sub p{color:rgba(252,251,248,.72);margin-bottom:30px}
.subform{display:flex;gap:12px;justify-content:center;max-width:520px;margin:0 auto}
.subform input{flex:1;background:var(--ground);border:none;border-radius:2px;height:52px;padding:0 20px;font-family:var(--serif);font-size:17px;color:var(--ink)}
.subform .btn{background:var(--accent);color:var(--ink);cursor:pointer}
.subform input.invalid{box-shadow:inset 0 -2px 0 #9C3B23}
.sub .sub-msg{margin:0 auto;max-width:520px;color:var(--ground);font-style:italic}
.subform.is-sending{opacity:.6;pointer-events:none}

/* ============================================================ About page */
.gafa-about .about-hero-section{padding-bottom:0}
.about-hero{display:grid;grid-template-columns:0.8fr 1.2fr;gap:64px;align-items:center;padding-top:76px;padding-bottom:84px}
.about-hero .aphoto{height:620px;border-radius:4px;overflow:hidden}
.about-hero .aphoto img{width:100%;height:100%;object-fit:cover;object-position:50% 20%}
.about-hero h1{font-size:52px;font-weight:500;line-height:1.14;margin:16px 0 22px}
.about-hero .intro{font-size:20px;color:var(--ink);margin-bottom:20px;line-height:1.55}
.about-hero p{color:var(--soft);margin-bottom:18px;font-size:18px}
.narrative{max-width:760px}
.narrative .kick{margin-bottom:14px}
.narrative h2{font-size:36px;font-weight:500;margin-bottom:26px}
.narrative p{color:var(--soft);margin-bottom:20px;font-size:18px;line-height:1.65}
.narrative p:last-child{margin-bottom:0}
.narrative a{border-bottom:1px solid var(--accent);color:var(--ink)}
.narrative .wp-block-button__link{margin-top:6px}
.narrative .closer{color:var(--ink);font-size:19px}

.testi{background:var(--ink);color:var(--ground);border-radius:4px;padding:52px 60px 34px;margin-top:10px}
.testi-slide{display:none}
.testi-slide.on{display:grid;grid-template-columns:0.85fr 1.15fr;gap:0 64px;align-items:start;animation:tfade .55s ease}
@keyframes tfade{from{opacity:0;transform:translateY(8px)}to{opacity:1;transform:none}}
.testi-lead{font-style:italic;font-size:28px;line-height:1.38;color:var(--ground);margin:0;text-wrap:pretty}
.testi-body{display:flex;flex-direction:column;gap:14px}
.testi-body p{font-style:normal;font-size:17.5px;line-height:1.72;color:rgba(252,251,248,.88);margin:0;text-wrap:pretty}
.testi-body strong{font-weight:600;color:var(--ground)}
.testi-by{margin-top:22px;grid-column:2;font-style:normal;font-size:12px;letter-spacing:.18em;text-transform:uppercase;color:var(--accent)}
.testi-nav{display:flex;align-items:center;gap:18px;margin-top:30px;padding-top:20px;border-top:1px solid rgba(252,251,248,.16)}
.testi-dots{display:flex;gap:9px;flex:1}
.testi-dot{width:7px;height:7px;border-radius:50%;border:none;padding:0;background:rgba(252,251,248,.3);cursor:pointer;transition:background .25s}
.testi-dot.on{background:var(--accent)}
.testi-arrow{width:38px;height:38px;border-radius:50%;border:1px solid rgba(252,251,248,.28);background:none;color:var(--ground);cursor:pointer;display:grid;place-items:center;font-size:17px;transition:border-color .2s,background .2s}
.testi-arrow:hover{border-color:var(--accent);background:rgba(252,251,248,.06)}

/* ======================================================== Listing pages */
.phead{padding:70px 0 50px;text-align:center}
:where(.gafa-news) .phead{padding-bottom:46px}
.phead h1{font-size:48px;font-weight:500;margin:16px 0 14px}
.phead p{color:var(--soft);max-width:560px;margin:0 auto;font-size:18px}

.sales-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:36px 30px}
.sale-card.is-hidden,.news-card.is-hidden{display:none}
.js [data-reveal]:not(.is-ready) .reveal-grid>:nth-child(n+4){display:none}
.more-row{display:flex;justify-content:center;align-items:center;gap:26px;padding:44px 0 96px}
.more-row.done{display:block;padding:0;height:96px;pointer-events:none}
.more-row.done .btn-more,.more-row.done .btn-less{display:none}
html:not(.js) .more-row{display:block;padding:0;height:96px}
html:not(.js) .more-row button{display:none}
.btn-less{font-family:inherit;font-size:13px;letter-spacing:.16em;text-transform:uppercase;background:none;border:none;color:var(--soft);cursor:pointer;padding:6px 0;border-bottom:1px solid transparent;transition:color .2s ease,border-color .2s ease}
.btn-less:hover{color:var(--ink);border-bottom-color:var(--accent)}
.btn-less.hide,.btn-more.hide{display:none}
.btn-more{font-family:inherit;font-size:13px;letter-spacing:.16em;text-transform:uppercase;padding:15px 34px;border:1px solid var(--line);background:none;color:var(--ink);cursor:pointer;transition:background .2s ease,border-color .2s ease}
.btn-more:hover{background:var(--surface);border-color:var(--ink)}
.btn-more .count{color:var(--soft);letter-spacing:.1em}
.grid-empty{text-align:center;color:var(--soft);padding:10px 0 0}

.sale-card{cursor:pointer;background:none;border:none;text-align:left;padding:0;font-family:inherit;color:inherit;display:block}
.sale-card.is-static{cursor:default}
.sale-card .plate{aspect-ratio:4/5;width:100%}
.sale-card .plate img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.sale-card:hover .plate img{transform:scale(1.035)}
.sale-card .meta{margin-top:16px}
.sale-card .t{font-style:italic;font-size:21px}
.sale-card .t .yr{font-style:normal}
.sale-card .a{font-size:15px;color:var(--soft);margin-top:4px}
.cat-grid .sale-card .plate{aspect-ratio:1}
.cat-grid .sale-card .t{font-size:19px;line-height:1.34;text-wrap:pretty}
.cat-grid .sale-card .a{margin-top:6px;line-height:1.45;font-size:14px}
.sale-card .tag{display:inline-block;margin-top:10px;font-size:11px;letter-spacing:.14em;text-transform:uppercase;color:var(--kicker);border:1px solid var(--line);border-radius:30px;padding:5px 13px}
/* Cover rotation for covers supplied on their side (Catalogue → Cover rotation). */
.plate.rotate-left img{transform:rotate(-90deg)}
.plate.rotate-right img{transform:rotate(90deg)}
.sale-card:hover .plate.rotate-left img{transform:rotate(-90deg) scale(1.035)}
.sale-card:hover .plate.rotate-right img{transform:rotate(90deg) scale(1.035)}

.sec-block{border-top:1px solid var(--line);padding-top:76px;scroll-margin-top:104px}
.sec-head{text-align:center;padding-bottom:44px}
.sec-head h2{font-size:38px;font-weight:500;margin:14px 0 12px}
.sec-head p{color:var(--soft);max-width:520px;margin:0 auto;font-size:17px}
.sec-head .rule{margin:0 auto}

.sec-block.tight{padding-top:56px}
.news-rail{position:relative}
.news-track{display:flex;gap:26px;overflow-x:auto;scroll-snap-type:x mandatory;scroll-behavior:smooth;scrollbar-width:none;-ms-overflow-style:none}
.news-track::-webkit-scrollbar{display:none}
.news-item{flex:0 0 calc((100% - 52px)/3);scroll-snap-align:start;display:block;text-align:left}
.news-item .plate{aspect-ratio:16/11;width:100%}
.news-item .plate img{width:100%;height:100%;object-fit:cover;transition:transform .4s ease}
.news-item:hover .plate img{transform:scale(1.035)}
.news-item .d{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--kicker);margin:18px 0 9px}
.news-item h3{font-size:22px;font-weight:500;line-height:1.26;margin-bottom:9px;text-wrap:pretty}
.news-item p{font-size:15px;color:var(--soft);line-height:1.52;text-wrap:pretty}
.news-item .lnk{font-size:12px;margin-top:16px;letter-spacing:.16em}
.news-nav{position:absolute;top:calc((100% - 170px)/2);transform:translateY(-50%);width:44px;height:44px;border-radius:50%;background:var(--ground);border:1px solid var(--line);display:flex;align-items:center;justify-content:center;font-size:20px;color:var(--ink);cursor:pointer;z-index:3;transition:background .2s ease,opacity .2s ease}
.news-nav:hover{background:var(--surface)}
.news-nav[disabled]{opacity:.28;cursor:default}
.news-prev{left:-22px}
.news-next{right:-22px}
.news-cta{display:flex;justify-content:center;padding:46px 0 96px}
.news-cta .btn-more{display:inline-block;text-decoration:none}

/* Artwork overlay */
.sale-overlay{position:fixed;inset:0;z-index:200;display:none;align-items:center;justify-content:center;padding:32px}
.sale-overlay.open{display:flex}
.sale-overlay .backdrop{position:absolute;inset:0;background:rgba(45,23,17,.62);animation:svcfade .25s ease}
.sale-modal{position:relative;background:var(--ground);border-radius:4px;max-width:920px;width:100%;max-height:88vh;overflow-y:auto;display:grid;grid-template-columns:1.1fr 1fr;box-shadow:0 30px 80px rgba(45,23,17,.3);animation:svcrise .28s cubic-bezier(.2,.8,.3,1)}
.sale-modal .mimg{background:var(--plate);min-height:340px}
.sale-modal .mimg img{width:100%;height:100%;object-fit:contain}
.sale-modal .mbody{padding:48px 46px}
.sale-modal .kick{margin-bottom:10px}
.sale-modal h3{font-size:32px;font-weight:500;line-height:1.16;font-style:italic;margin-bottom:6px}
.sale-modal h3 .yr{font-style:normal}
.sale-modal .artist{font-size:18px;color:var(--soft);margin-bottom:22px}
.mrule{width:40px;height:1px;background:var(--accent);margin-bottom:22px}
.sale-modal .facts{font-size:16px;color:var(--soft);margin-bottom:22px;line-height:1.7}
.sale-modal .prov-label{font-size:12px;letter-spacing:.16em;text-transform:uppercase;color:var(--kicker);margin-bottom:10px}
.sale-modal .prov{font-size:15.5px;color:var(--soft);line-height:1.65;margin-bottom:22px}
.sale-modal .prov:last-of-type{margin-bottom:0}
.sale-modal .menq{margin-top:26px;display:inline-block}
.sale-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border:none;background:var(--ground);color:var(--soft);font-size:24px;cursor:pointer;border-radius:50%;line-height:1;transition:background .2s,color .2s;z-index:2}
.sale-close:hover{background:var(--surface);color:var(--ink)}

/* =========================================================== News archive */
.lead{display:grid;grid-template-columns:1.15fr 1fr;gap:52px;align-items:center;padding-bottom:64px}
.lead .plate{aspect-ratio:4/3;width:100%}
.lead .d{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--kicker);margin-bottom:12px}
.lead h2{font-size:38px;font-weight:500;line-height:1.18;margin-bottom:16px;text-wrap:pretty}
.lead p{color:var(--soft);margin-bottom:24px;text-wrap:pretty}
.grid-top{border-top:1px solid var(--line);padding-top:56px}
.news-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:52px 30px}
.news-card{display:block;text-align:left}
.news-card .plate{aspect-ratio:16/11;width:100%}
.news-card .d{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--kicker);margin:18px 0 9px}
.news-card h3{font-size:23px;font-weight:500;line-height:1.24;margin-bottom:9px;text-wrap:pretty}
.rel-grid .news-card h3{font-size:21px}
.news-card p{font-size:15px;color:var(--soft);line-height:1.52;text-wrap:pretty}
.news-card .lnk{font-size:12px;margin-top:16px;letter-spacing:.16em}
:where(.gafa-news) .more-row{padding:52px 0 100px}
:where(.gafa-news) .more-row.done,html:not(.js) :where(.gafa-news) .more-row{padding:0;height:100px}

/* ================================================================ Article */
.crumbs{padding:26px 0 0;font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--kicker)}
.crumbs a:hover{color:var(--ink)}
.ahead{max-width:760px;margin:0 auto;text-align:center;padding:44px 0 40px}
.ahead .d{font-size:12px;letter-spacing:.2em;text-transform:uppercase;color:var(--kicker);margin-bottom:18px}
.ahead h1{font-size:46px;font-weight:500;line-height:1.14;margin-bottom:20px;text-wrap:pretty}
.ahead .stand{font-style:italic;font-size:22px;color:var(--soft);line-height:1.4;text-wrap:pretty}
.ahead .rule{margin:26px auto 0}
.ahero{margin:0 0 12px}
.ahero .plate{aspect-ratio:16/9;width:100%}
.cap-line{font-size:14px;color:var(--soft);font-style:italic;padding-top:12px;text-align:center}
.prose{max-width:680px;margin:0 auto;padding:46px 0 0}
.prose p{margin-bottom:24px;text-wrap:pretty}
.prose.prose>:last-child{margin-bottom:24px} /* WP's flow layout zeroes the last child's margin; the reference keeps it. */
.prose h2{font-size:26px;font-weight:500;margin:40px 0 16px}
.prose blockquote{margin:38px 0;padding:0 0 0 26px;border-left:1px solid var(--accent);font-style:italic;font-size:24px;line-height:1.38;color:var(--ink)}
.prose blockquote p{margin:0}
.prose blockquote cite{display:block;margin-top:12px;font-size:14px;font-style:normal;letter-spacing:.14em;text-transform:uppercase;color:var(--kicker)}
.prose figure{margin:40px 0}
.prose figure .plate{aspect-ratio:4/3;width:100%}
.prose figure img{width:100%;height:auto}
.prose figcaption{font-size:14px;color:var(--soft);font-style:italic;padding-top:10px;margin:0;text-align:left}
.prose ul,.prose ol{margin:0 0 24px;padding-left:1.25em}
.prose li{margin-bottom:6px}
.prose a{border-bottom:1px solid var(--accent)}
.ameta{max-width:680px;margin:0 auto;border-top:1px solid var(--line);padding:28px 0 0;display:flex;justify-content:space-between;flex-wrap:wrap;gap:14px;font-size:15px;color:var(--soft)}
.aenq{background:var(--surface);text-align:center;padding:64px 0;margin-top:76px}
.aenq h2{font-size:32px;font-weight:500;margin:14px 0 14px}
.aenq p{color:var(--soft);max-width:480px;margin:0 auto 24px}
.btn-ink.solid,.aenq .is-style-ink .wp-block-button__link{display:inline-block;background:var(--ink);color:var(--ground);font-size:14px;letter-spacing:.16em;text-transform:uppercase;padding:16px 34px;border-radius:0}
.aenq .is-style-ink .wp-block-button__link:hover{color:var(--ground);opacity:.88}
.pager{display:flex;justify-content:space-between;gap:24px;border-top:1px solid var(--line);padding:26px 0 0;margin-top:0}
.pager a{font-size:13px;letter-spacing:.16em;text-transform:uppercase;color:var(--soft)}
.pager a:hover{color:var(--ink)}
.more-news{padding:78px 0 96px}
.more-news .head{display:flex;justify-content:space-between;align-items:flex-end;gap:14px;flex-wrap:wrap;margin-bottom:30px}
.more-news h2{font-size:28px;font-weight:500}
.rel-grid{display:grid;grid-template-columns:repeat(3,1fr);gap:30px}

/* Generic page (privacy, terms, etc.) */
.page-body{max-width:760px;margin:0 auto;padding:0 0 96px}
.page-body p{color:var(--soft);margin-bottom:20px;font-size:18px;line-height:1.65}
.page-body h2{font-size:30px;font-weight:500;margin:40px 0 16px}
.page-body h3{font-size:24px;font-weight:500;margin:32px 0 12px}
.page-body ul,.page-body ol{margin:0 0 20px;padding-left:1.25em;color:var(--soft)}
.page-body a{border-bottom:1px solid var(--accent);color:var(--ink)}

/* ================================================================= Footer */
.site-footer{background:var(--surface);padding:60px 0 44px}
.gafa-fade-footer .site-footer{position:relative}
.gafa-fade-footer .site-footer::before{content:"";position:absolute;left:0;right:0;top:0;height:130px;background:linear-gradient(180deg,var(--ground) 0%,var(--surface) 100%);pointer-events:none}
.gafa-fade-footer .site-footer .wrap{position:relative;z-index:1}
.frow{display:flex;justify-content:space-between;flex-wrap:wrap;gap:30px;border-bottom:1px solid var(--line);padding-bottom:34px}
.fcol h4{font-size:13px;letter-spacing:.2em;text-transform:uppercase;color:var(--kicker);margin-bottom:16px;font-weight:500}
.fcol a{display:block;color:var(--soft);font-size:17px;margin-bottom:10px}
.fcreds{display:flex;flex-direction:column;align-items:flex-end;gap:6px;text-align:right}
.mbr{display:none}
.ack{font-style:italic;font-size:18px;color:var(--soft);line-height:1.6;max-width:620px;margin-top:30px}
.fbase{display:flex;justify-content:space-between;align-items:flex-end;flex-wrap:wrap;gap:14px 30px;margin-top:30px;font-size:14px;color:var(--soft);letter-spacing:.03em}

/* ======================================================= Enquiry overlay */
.enq-overlay{position:fixed;inset:0;z-index:400;display:none;align-items:center;justify-content:center;padding:32px}
.enq-overlay.open{display:flex}
.enq-overlay .enq-backdrop{position:absolute;inset:0;background:rgba(45,23,17,.62);animation:enqfade .25s ease}
.enq-modal{position:relative;background:var(--ground);border-radius:4px;max-width:660px;width:100%;max-height:90vh;overflow-y:auto;padding:52px 56px 46px;box-shadow:0 30px 80px rgba(45,23,17,.3);animation:enqrise .28s cubic-bezier(.2,.8,.3,1)}
.enq-modal h3{font-size:34px;font-weight:500;line-height:1.14;margin:10px 0 10px}
.enq-modal .enq-intro{color:var(--soft);font-size:17px;margin-bottom:28px;max-width:44ch}
.enq-close{position:absolute;top:16px;right:16px;width:40px;height:40px;border:none;background:none;color:var(--soft);font-size:26px;cursor:pointer;border-radius:50%;line-height:1;transition:background .2s,color .2s}
.enq-close:hover{background:var(--surface);color:var(--ink)}
.enq-form{display:grid;grid-template-columns:1fr 1fr;gap:22px 24px}
.enq-field{display:flex;flex-direction:column;gap:7px}
.enq-field.full{grid-column:1/-1}
.enq-field label{font-size:11.5px;letter-spacing:.18em;text-transform:uppercase;color:var(--kicker)}
.enq-field input,.enq-field textarea{font-family:var(--serif);font-size:18px;color:var(--ink);background:none;border:none;border-bottom:1px solid var(--line);padding:8px 0;transition:border-color .2s;border-radius:0}
.enq-field textarea{resize:vertical;min-height:92px;line-height:1.55}
.enq-field input:focus,.enq-field textarea:focus{outline:none;border-bottom-color:var(--ink)}
.enq-field input::placeholder,.enq-field textarea::placeholder{color:rgba(45,23,17,.3)}
.enq-field .invalid{border-bottom-color:#9C3B23}
.enq-foot{grid-column:1/-1;display:flex;align-items:center;justify-content:space-between;gap:20px;margin-top:8px}
.enq-note{font-size:13.5px;color:var(--soft);font-style:italic;max-width:30ch}
.enq-send{font-family:inherit;font-size:15px;letter-spacing:.04em;padding:14px 34px;border:none;border-radius:2px;background:var(--ink);color:var(--ground);cursor:pointer;transition:opacity .2s}
.enq-send:hover{opacity:.84}
.enq-form.is-sending .enq-send{opacity:.5;pointer-events:none}
.enq-error{grid-column:1/-1;font-size:14px;font-style:italic;color:#9C3B23}
.enq-hp{position:absolute!important;left:-9999px;width:1px;height:1px;overflow:hidden}
.enq-thanks{display:none;text-align:center;padding:18px 0 6px}
.enq-thanks .rule{margin:22px auto}
.enq-thanks h3{margin-bottom:12px}
.enq-thanks p{color:var(--soft);max-width:38ch;margin:0 auto}
.enq-modal.sent .enq-form,.enq-modal.sent .enq-head{display:none}
.enq-modal.sent .enq-thanks{display:block}
@keyframes enqfade{from{opacity:0}to{opacity:1}}
@keyframes enqrise{from{opacity:0;transform:translateY(14px)}to{opacity:1;transform:translateY(0)}}

/* ============================================================ ≤ 600px */
@media(max-width:600px){
  body{font-size:17px}
  .wrap{padding:0 22px}
  .hrow{padding:16px 22px}
  nav.main{display:none}
  .burger{display:block}
  .mark{font-size:21px}

  /* hero copy (crop lives in the hero block above) */
  .hero-content{padding:56px 22px 48px;text-align:center;display:flex;align-items:flex-end;justify-content:center}
  .hero-content .inner{max-width:none;width:100%}
  .hero-content .lede,.hero-content .tag{max-width:none;margin-left:auto;margin-right:auto}
  .hero-content .rule{margin:0 auto 18px!important}
  .hero-content .cta{justify-content:center!important}

  :where(.gafa-home) section{padding:50px 0}
  :where(.gafa-about) section{padding:52px 0}
  .creds{padding:24px 0}
  :where(.gafa-about) .creds{padding:30px 0}
  .creds-track span{font-size:16px}
  .creds-track{gap:28px;animation-duration:64s}
  :where(.gafa-about) .creds-track{animation-duration:64s}

  .about{grid-template-columns:1fr;gap:30px}
  .about .plate{height:400px;order:-1}
  .about h2{font-size:30px}
  .about-quote{margin-top:28px;padding:26px 24px 28px}
  .about-quote::before{font-size:64px;left:14px}
  .about-quote blockquote{font-size:18px}
  .svc{grid-template-columns:1fr}
  .svc-item{border-right:none!important}
  .svc-item h3{font-size:24px}
  .svc-overlay{padding:16px}
  .svc-modal{padding:42px 26px 34px}
  .svc-modal h3{font-size:29px}
  .sale .plate{height:300px}
  .sale .title{font-size:25px}
  .sale-nav{display:none}
  .sale-carousel{max-width:none;margin-top:20px}
  .news{grid-template-columns:1fr;gap:24px}
  .news .plate{height:220px}
  .ig-slide{flex:0 0 calc((100% - 18px)/2)}
  .ig-nav{display:none}
  .sub{padding:60px 0}
  .sub h2{font-size:32px}
  .subform{flex-direction:column}
  .subform input{height:48px}

  .about-hero{grid-template-columns:1fr;gap:30px;padding-top:38px;padding-bottom:48px}
  .about-hero .aphoto{height:380px;order:-1}
  .about-hero h1{font-size:34px}
  .about-hero .intro{font-size:18px}
  .narrative h2{font-size:27px}
  .narrative p{font-size:16px}
  .testi{padding:36px 26px 28px}
  .testi-slide.on{grid-template-columns:1fr;gap:22px}
  .testi-lead{font-size:20px}
  .testi-by{grid-column:1;margin-top:0}
  .testi-body p{font-size:16.5px}

  .phead{padding:44px 0 34px}
  :where(.gafa-news) .phead{padding-bottom:30px}
  .phead h1{font-size:30px}
  .sales-grid{grid-template-columns:1fr 1fr;gap:24px 16px}
  .more-row{padding:30px 0 60px}
  .more-row.done,html:not(.js) .more-row{height:60px}
  .sale-card .t{font-size:17px}
  .sec-block{padding-top:48px}
  .sec-head{padding-bottom:28px}
  .sec-head h2{font-size:26px}
  .sec-block.tight{padding-top:40px}
  .news-item{flex:0 0 78%}
  .news-item h3{font-size:19px}
  .news-track{gap:16px}
  .news-nav{display:none}
  .news-cta{padding:30px 0 60px}
  .sale-overlay{padding:16px}
  .sale-modal{grid-template-columns:1fr;max-height:90vh}
  .sale-modal .mimg{min-height:220px}
  .sale-modal .mbody{padding:32px 24px}
  .sale-modal h3{font-size:25px}

  .lead{grid-template-columns:1fr;gap:24px;padding-bottom:40px}
  .lead h2{font-size:26px}
  .grid-top{padding-top:36px}
  .news-grid{grid-template-columns:1fr;gap:40px}
  .news-card h3{font-size:20px}
  :where(.gafa-news) .more-row{padding:36px 0 64px}
  :where(.gafa-news) .more-row.done,html:not(.js) :where(.gafa-news) .more-row{padding:0;height:64px}

  .ahead{padding:30px 0 28px}
  .ahead h1{font-size:29px}
  .ahead .stand{font-size:19px}
  .prose{padding:32px 0 0}
  .prose blockquote{font-size:20px;margin:28px 0}
  .aenq{padding:46px 0;margin-top:52px}
  .aenq h2{font-size:25px}
  .more-news{padding:48px 0 60px}
  .rel-grid{grid-template-columns:1fr;gap:36px}
  .rel-grid .news-card h3{font-size:21px}

  .frow{display:grid;grid-template-columns:1fr 1fr;gap:26px 18px}
  .frow .fcol:first-child{grid-column:1/-1;max-width:none!important}
  .fcol h4{margin-bottom:12px}
  .fcol a{font-size:16px;margin-bottom:8px}
  .fbase{align-items:flex-start;gap:10px}
  .fcreds{align-items:flex-start;text-align:left}
  .mbr{display:inline}

  .enq-overlay{padding:14px}
  .enq-modal{padding:40px 24px 30px}
  .enq-modal h3{font-size:26px}
  .enq-form{grid-template-columns:1fr;gap:18px}
  .enq-foot{flex-direction:column;align-items:flex-start}
}

/* Artist first, work second (sales carousel, sale cards, sale modal) */
.sale .title.is-artist,.sale-card .t.is-artist,.sale-modal h3.is-artist{font-style:normal}
.sale .prov.is-work,.sale-card .a.is-work,.sale-modal .artist.is-work{font-style:italic}
.is-work .yr{font-style:normal}

/* Optional copyright credit line */
.sale-modal .copyright{font-size:13.5px;color:var(--soft);line-height:1.6;margin-top:22px}
.sale-modal .prov:last-of-type{margin-bottom:0}

/* Keep grid cards aligned when an artist name wraps onto extra lines:
   image tops stay level, work title and tag sit on a common baseline. */
.sale-card{display:flex;flex-direction:column;align-items:stretch;height:100%}
.sale-card .plate{flex:0 0 auto}
.sale-card .meta{flex:1 1 auto}
.sale-card .t.is-artist{line-height:1.25}

/* Optional note line in the work overlay */
.sale-modal .note{font-size:15px;color:var(--soft);line-height:1.65;margin-top:22px}
.sale-modal .note p{margin:0 0 8px}
.sale-modal .note p:last-child{margin-bottom:0}
.sale-modal .note a{color:inherit;text-decoration:underline;text-underline-offset:3px}

/* [Greer feedback 5] Homepage news feature: show the whole image, portrait or
   landscape, without cropping. To revert, delete this block. */
.news .plate{height:auto;background:none;display:flex;justify-content:center;align-items:center}
.news .plate img{display:block;width:auto;max-width:100%;height:auto;max-height:440px;object-fit:contain}
@media(max-width:600px){.news .plate img{max-height:380px}}

/* [Greer feedback, About 1] Space above the About intro matches the space below it
   (desktop 84px, mobile 48px). To revert, delete this block. */
.gafa-about .about-hero-section{padding-top:0}
.about-hero{padding-top:84px}
@media(max-width:600px){.about-hero{padding-top:48px}.about-hero > :last-child > :last-child{margin-bottom:0}}

/* [Greer feedback, Sales 1] Rich-text Exhibited and Literature in the work overlay. */
.sale-modal .prov-rich p{margin:0}
.sale-modal .prov-rich p + p{margin-top:8px}
.sale-modal .prov-rich u{text-underline-offset:3px}

/* [Greer feedback, Sales 3] Work overlay: the image is centred in its panel, and
   stays in view when the details run longer than the panel. To revert, delete this block. */
.sale-modal .mimg img{display:block;height:auto}
@media(min-width:601px){
	.sale-modal .mimg{align-self:start;position:sticky;top:0;height:100%;max-height:88vh;display:flex;align-items:center;justify-content:center}
	.sale-modal .mimg img{max-height:100%}
}

/* [Greer feedback] Enquiry panel: intro and confidentiality lines each on one line.
   On phones they wrap evenly if the screen is too narrow. To revert, delete this block. */
.enq-modal .enq-intro,.enq-note{max-width:none}
@media(min-width:601px){.enq-modal .enq-intro,.enq-note{white-space:nowrap}}
@media(max-width:600px){.enq-modal .enq-intro,.enq-note{text-wrap:balance}}

/* [Greer feedback, News 1] Hide news dates on the website. The dates stay on each
   post in the admin. To revert, delete this block. */
.news-card .d,.news-item .d,.lead .d,.ahead .d{display:none}
/* Article byline and date line removed entirely. */
.ameta{display:none}
.news-card .plate,.news-item .plate{margin-bottom:18px}

/* [Greer feedback, News 2] Article page: the featured image shows in full,
   portrait or landscape, without cropping. To revert, delete this block. */
.ahero .plate{aspect-ratio:auto;height:auto;background:none;display:flex;justify-content:center;align-items:center}
.ahero .plate img{display:block;width:auto;max-width:100%;height:auto;max-height:min(80vh,720px);object-fit:contain}
@media(max-width:600px){.ahero .plate img{max-height:70vh}}

/* [Greer feedback, News 2] News page lead story: the image shows in full,
   portrait or landscape. To revert, delete this block. */
.lead .plate{aspect-ratio:auto;height:auto;background:none;display:flex;justify-content:center;align-items:center}
.lead .plate img{display:block;width:auto;max-width:100%;height:auto;max-height:520px;object-fit:contain}
@media(max-width:600px){.lead .plate img{max-height:420px}}

/* [Greer feedback] Newsletter opt-in on the enquiry form. */
.enq-consent{margin-top:4px}
.enq-consent label{display:flex;align-items:flex-start;gap:10px;font-size:14.5px;color:var(--soft);line-height:1.5;cursor:pointer}
.enq-consent input[type=checkbox]{flex:0 0 auto;width:16px;height:16px;margin-top:4px;accent-color:var(--ink)}
.enq-consent label:hover{color:var(--ink)}

/* [Greer feedback, News 3] News previews: the whole featured image shows, uncropped.
   A 5:4 box keeps the cards in a row aligned; images sit on a common baseline just
   above the headline. To revert, delete this block. */
.news-item .plate,.news-card .plate{aspect-ratio:5/4}
.news-item .plate:has(img),.news-card .plate:has(img){background:none;align-items:flex-end}
.news-item .plate img,.news-card .plate img{width:auto;height:auto;max-width:100%;max-height:100%;object-fit:contain}

/* [Greer feedback] Homepage sales carousel: credit line set smaller, matching the
   work overlay. To revert, delete this block. */
.sale .prov.copyright{font-size:13.5px;margin-top:12px}

/* [Greer feedback, mobile grid] Fit four artworks in a phone viewport on Significant
   Sales and Stockroom: square tile, tighter spacing, slightly smaller type. Catalogue
   cards keep their own square tile and sizes. Desktop is unchanged.
   To revert, delete this block. */
@media(max-width:600px){
	.sales-grid:not(.cat-grid) .sale-card .plate{aspect-ratio:1}
	.sales-grid:not(.cat-grid) .sale-card .meta{margin-top:10px}
	.sales-grid:not(.cat-grid) .sale-card .t{font-size:15px}
	.sales-grid:not(.cat-grid) .sale-card .a{font-size:14px}
	.sales-grid:not(.cat-grid) .sale-card .tag{margin-top:8px}
	.sales-grid:not(.cat-grid){row-gap:16px}
}

/* [Greer feedback] Section headings: display leading at every width, and the
   Practice heading steps down on phones like every other section heading.
   To revert, delete this block. */
.svc-head h2,.sub h2,.narrative h2,.sec-head h2,.ig-head h2{line-height:1.18}
@media(max-width:600px){
	.svc-head h2{font-size:30px}
}

/* [Greer feedback] Artist life dates never split across lines. The line breaks
   before the brackets instead, so a long artist name keeps its dates intact.
   To revert, delete this block. */
.dates{white-space:nowrap}
.sale .title.is-artist{line-height:1.22}

/* [Greer feedback] News page on phones: the lead story matches the stories below it.
   On desktop the two-column layout still marks it as the headline, so desktop is
   unchanged. To revert, delete this block. */
@media(max-width:600px){
	.lead h2{font-size:20px}
	.lead .plate{aspect-ratio:5/4;align-items:flex-end}
	.lead .plate img{max-height:100%}
}

/* [Greer feedback] About page on phones: the narrative sections read at the same
   size as the opening section, as they already do on desktop. To revert, delete
   this block. */
@media(max-width:600px){
	.narrative p{font-size:18px}
}

/* [Greer feedback] Hero kicker reads across its full width on phones, where the
   scrim runs thin behind that line. Desktop keeps the taupe accent. The photograph
   and the scrim are unchanged at every width. To revert, delete this block. */
@media(max-width:600px){
	.hero-content .kick{color:rgba(252,251,248,.88)}
}

/* [Greer feedback] Stay informed band: the email field and Subscribe button follow
   the site's own form style. The button was rendering in the browser default font
   with its default bevel, because the shared .btn rule was written for link buttons
   and never resets those on a real button element. The field now matches the
   underline fields in the enquiry forms, tuned for the dark band.
   To revert, delete this block. */
.subform .btn{font-family:inherit;border:0;justify-content:center}
@media(min-width:601px){
	.subform{align-items:flex-end}
}
.subform input{flex:1 1 auto;background:none;border:0;border-bottom:1px solid rgba(252,251,248,.3);border-radius:0;height:auto;padding:0 2px 12px;font-size:18px;color:var(--ground)}
.subform input::placeholder{color:rgba(252,251,248,.45)}
.subform input:focus{outline:none;border-bottom-color:var(--ground)}
.subform input.invalid{box-shadow:none;border-bottom-color:#E8907A}
/* On a phone the button sits inline and centred under the field, as the site sizes
   its other filled buttons to their label. For a full-width tap target instead,
   delete the two lines below. */
@media(max-width:600px){
	.subform .btn{align-self:center}
	.subform input{text-align:center}
}
