/* GMS: page-specific composition, using the existing OSUN components. */
.gms-hero { min-height:auto; padding-block:clamp(9rem,15vw,11rem) 2.5rem; }
.gms-hero__grid { display:grid; grid-template-columns:1.05fr 1fr; align-items:center; gap:clamp(2rem,5vw,4.5rem); }
.gms-hero h1 { font-size:clamp(2.6rem,4.8vw,4.1rem); max-width:15ch; margin:1.2rem 0 1.5rem; text-transform:uppercase; }
.gms-hero .lead { font-size:var(--step-1); line-height:1.5; max-width:36ch; }
.gms-hero__detail { margin-top:1rem; max-width:43ch; color:var(--ink-soft); }
.gms-actions { display:flex; flex-wrap:wrap; gap:1rem; margin-top:1.8rem; }
.gms-actions .btn { letter-spacing:.065em; }
.gms-download-link { display:inline-flex; gap:.8rem; align-items:center; margin-top:1rem; font-size:var(--step--1); text-decoration:underline; text-underline-offset:5px; transition:color .25s; }
.gms-download-link:hover { color:var(--brand); }
.gms-download-link span { font-size:1.4rem; }
.gms-hero__photo { position:relative; border-radius:var(--radius-lg); overflow:hidden; box-shadow:var(--shadow-card); }
.gms-hero__photo img { width:100%; height:clamp(25rem,37vw,34rem); object-fit:cover; object-position:48% center; }
.gms-hero__photo figcaption { position:absolute; bottom:0; left:0; right:0; padding:4rem 1.8rem 1.6rem; color:#fff; background:linear-gradient(transparent,rgba(15,10,9,.85)); font-weight:600; }
.gms-hero__photo figcaption span { display:block; margin-bottom:.3rem; font-size:.7rem; text-transform:uppercase; letter-spacing:.15em; font-weight:400; }
.gms-proof { display:flex; align-items:center; justify-content:space-between; flex-wrap:wrap; gap:1rem 2rem; border-top:1px solid var(--line); margin-top:3rem; padding-top:1.7rem; font-size:var(--step--1); color:var(--ink-soft); }
.gms-proof strong { color:var(--brand); font-family:var(--font-display); font-size:2rem; margin-right:.5rem; line-height:1; }
.gms-proof span { color:var(--brand); margin:0 .5rem; }
.gms-section { padding-block:clamp(3.5rem,6.5vw,6rem); }
.gms-section h2 { font-size:var(--step-4); text-transform:uppercase; margin-top:.8rem; }
.gms-section-head { display:grid; grid-template-columns:1fr .8fr; align-items:end; gap:2rem; margin-bottom:2rem; }
.gms-section-head > p { color:var(--ink-soft); max-width:43ch; }
.gms-gallery__open { display:block; position:relative; width:100%; padding:0; border:0; border-radius:var(--radius-lg); overflow:hidden; cursor:pointer; background:var(--bg-deep); text-align:left; box-shadow:var(--shadow-card); }
.gms-gallery__collage { display:grid; grid-template-columns:1.7fr 1fr 1fr; gap:.5rem; overflow:hidden; }
.gms-gallery__collage img { width:100%; height:clamp(16rem,27vw,24rem); object-fit:cover; transition:transform .8s var(--ease-out),filter .5s; }
.gms-gallery__open:hover img { transform:scale(1.025); filter:brightness(.9); }
.gms-gallery__action { position:absolute; left:1.5rem; bottom:1.5rem; display:flex; align-items:center; flex-wrap:wrap; gap:.7rem; background:var(--bg-card); color:var(--ink); border-radius:999px; padding:.8rem 1.2rem; font-size:var(--step--1); font-weight:600; }
.gms-gallery__action small { font-weight:400; color:var(--ink-soft); border-left:1px solid var(--line); padding-left:.7rem; }
.gms-gallery__action > span { color:var(--brand); font-size:1.4rem; line-height:1; }
.gms-gallery__note { margin-top:1.2rem; text-align:center; color:var(--ink-soft); font-size:var(--step--1); }
.gms-approach { background:radial-gradient(ellipse at 95% 100%,rgba(255,122,41,.07),transparent 60%),#1a1a1a; color:var(--ink-on-deep); }
.gms-approach h2 { max-width:18ch; }
.gms-steps { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:2.5rem; margin-top:2.5rem; }
.gms-steps article { border-top:1px solid var(--line-on-deep); padding-top:1.2rem; }
.gms-steps article > span { color:var(--brand); font-size:.8rem; letter-spacing:.1em; }
.gms-steps h3 { margin:.8rem 0; font-size:var(--step-2); line-height:1.1; }
.gms-steps p { color:var(--ink-on-deep-soft); font-size:var(--step--1); line-height:1.75; }
.gms-catalogue { display:flex; align-items:center; justify-content:space-between; gap:2rem; margin-top:2.7rem; padding-top:2rem; border-top:1px solid var(--line-on-deep); }
.gms-catalogue h3 { font-size:var(--step-1); line-height:1.25; letter-spacing:-.02em; }
.gms-catalogue p { max-width:48ch; margin-top:.5rem; font-size:var(--step--1); color:var(--ink-on-deep-soft); }
.gms-catalogue .btn { flex-shrink:0; letter-spacing:.06em; }
.gms-contact .contact__grid { align-items:center; gap:clamp(2rem,5vw,5rem); }
.gms-contact h2 { max-width:15ch; }
.gms-contact__copy > p:not(.eyebrow) { margin-top:1.5rem; color:var(--ink-soft); max-width:40ch; }
.gms-phone { display:block; width:fit-content; font-family:var(--font-display); font-size:var(--step-2); font-weight:700; margin-top:1.8rem; }
.gms-phone span { color:var(--brand); }
.gms-email { display:inline-block; margin-top:.3rem; color:var(--ink-soft); }
.gms-phone:hover,.gms-email:hover { color:var(--brand); }
.gms-contact textarea { min-height:8rem; }
.gms-contact .form { margin:0; }
.gms-contact .form__foot .btn { letter-spacing:.06em; }
@media(max-width:62rem) {
 .gms-hero__grid { grid-template-columns:1fr 1fr; gap:2rem; }
 .gms-hero h1 { font-size:clamp(2.4rem,5.3vw,3.4rem); }
 .gms-hero .lead { font-size:1.15rem; }
 .gms-actions .btn { padding:1rem 1.2rem; font-size:.75rem; }
 .gms-catalogue { align-items:start; flex-direction:column; }
}
@media(max-width:47.99rem) {
 .gms-hero { padding-top:8.5rem; }
 .gms-hero__grid,.gms-section-head,.gms-steps { grid-template-columns:1fr; }
 .gms-hero h1 { font-size:clamp(2.45rem,9.3vw,4rem); max-width:16ch; }
 .gms-hero__photo img { height:auto; aspect-ratio:4/3; }
 .gms-hero__photo figcaption { padding:3rem 1.25rem 1.25rem; }
 .gms-proof { margin-top:2rem; }
 .gms-proof p:first-child { max-width:30ch; }
 .gms-proof p:last-child { font-size:.8rem; }
 .gms-proof span { margin:0 .2rem; }
 .gms-section-head { gap:1.2rem; }
 .gms-gallery__collage { grid-template-columns:1.2fr 1fr; gap:.3rem; }
 .gms-gallery__collage img { height:19rem; }
 .gms-gallery__collage img:last-child { display:none; }
 .gms-gallery__action { left:1rem; bottom:1rem; padding:.7rem 1rem; }
 .gms-steps { gap:1.8rem; }
 .gms-steps p { max-width:48ch; }
 .gms-contact .form { padding:1.25rem; }
 .gms-catalogue .btn { padding:1rem 1.2rem; font-size:.75rem; }
}
@media(prefers-reduced-motion:reduce) { .gms-gallery__collage img { transition:none; } }
/* The shared contact form normally sits on a dark section. */
.gms-contact .form__field label { color:var(--ink); }
.gms-contact .form__field input,.gms-contact .form__field textarea { color:var(--ink); background:#fff; border-color:var(--line); box-shadow:inset 0 0 0 1px var(--line); }
.gms-contact .form__field input::placeholder,.gms-contact .form__field textarea::placeholder { color:var(--ink-soft); }
.gms-contact .form__field input:hover,.gms-contact .form__field textarea:hover { background:#fff; }
.gms-contact .form__field input:focus,.gms-contact .form__field textarea:focus { background:#fff; box-shadow:inset 0 0 0 2px var(--brand); }
.gms-contact .form__field[data-invalid] input,.gms-contact .form__field[data-invalid] textarea { box-shadow:inset 0 0 0 2px #bd1843; }
.gms-contact .form__error,.gms-contact .form__status[data-state="err"] { color:#a6143b; }
.gms-contact .form__status { color:var(--ink-soft); }
.gms-contact .form__status[data-state="ok"] { color:#226b42; }
