/*
 * Víkingur 26: squad pages (page-squad.php) and the player page
 * (single-players.php), after the design's SquadPage, PlayerPage, PlayerTile
 * and PlayerStatCard. Player photos are the club's transparent cut-outs, in
 * black and white as the design treats player photos.
 *
 * Last names are sized from their length (--len, set in PHP) against the box
 * they sit in (container units), so a 17-letter Icelandic surname fits on one
 * line instead of breaking mid-word.
 */

/* ── Squad ── */
.vik-squad{padding-top:24px}
.vik-squad__photo{margin:0 0 56px}
.vik-squad__photo img{display:block;width:100%;height:auto}
.vik-squad__photo figcaption{margin-top:10px;font-size:13px;color:var(--text-secondary)}
.vik-squad__group+.vik-squad__group{margin-top:56px}
.vik-squad__title{margin:0 0 20px;padding-bottom:14px;border-bottom:1px solid var(--border-hairline);font-family:var(--font-condensed);font-weight:700;font-size:14px;letter-spacing:.08em;text-transform:uppercase}
.vik-squad__grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:24px}
.vik-squad__none{margin:0;font-size:17px;color:var(--text-secondary)}

/* ── PlayerTile ── */
.vik-ptile{--bg:var(--gray-50);--fg:var(--ink);--sub:var(--text-secondary);--shield:var(--gray-100);position:relative;display:block;aspect-ratio:4/5;overflow:hidden;container-type:inline-size;background:var(--bg);color:var(--fg);text-decoration:none;transition:background var(--dur-base) var(--ease-strike),color var(--dur-base)}
.vik-ptile:hover,.vik-ptile:focus-visible{--bg:var(--black);--fg:#fff;--sub:rgba(255,255,255,.7);--shield:#1a1a1a}
.vik-ptile:focus-visible{outline:2px solid var(--focus-ring);outline-offset:2px}
.vik-ptile__shield{position:absolute;right:-18%;bottom:-12%;width:86%;height:auto;aspect-ratio:980/1043;color:var(--shield);transition:transform 700ms var(--ease-strike),color var(--dur-base)}
.vik-ptile:hover .vik-ptile__shield{transform:scale(1.06)}
/* The cut-outs carry wide transparent margins: oversize the image so the
   player, not the margin, fills the tile (head to waist). */
.vik-ptile__img{position:absolute;top:5%;right:-26%;width:124%;height:auto;filter:grayscale(1) contrast(1.15);transition:filter var(--dur-base),transform 700ms var(--ease-strike)}
.vik-ptile:hover .vik-ptile__img,.vik-ptile:focus-visible .vik-ptile__img{filter:none;transform:scale(1.03)}
/* Fades the photo out behind the name. */
.vik-ptile::after{content:"";position:absolute;left:0;right:0;bottom:0;height:56%;background:linear-gradient(to top,var(--bg) 24%,transparent);pointer-events:none}
.vik-ptile__num{position:absolute;top:16px;left:20px;z-index:1;font-family:var(--font-display);font-weight:900;font-size:min(120px,36cqi);line-height:.8;color:var(--vik-astrida)}
.vik-ptile__names{position:absolute;left:20px;right:20px;bottom:20px;z-index:1;display:grid;gap:6px}
.vik-ptile__pos{font-family:var(--font-condensed);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--sub)}
.vik-ptile__first{font-family:var(--font-condensed);font-weight:500;font-size:20px;line-height:1;text-transform:uppercase}
.vik-ptile__last{font-family:var(--font-display);font-weight:900;font-size:min(44px,calc((100cqi - 40px) / (var(--len) * .56)));line-height:.86;text-transform:uppercase;white-space:nowrap}

/* ── Coach card: photo and name link to the coach; role; email and phone ── */
.vik-coach{display:grid;gap:8px;align-content:start;min-width:0}
.vik-coach__link{display:grid;gap:10px;color:var(--ink);text-decoration:none}
.vik-coach__photo{position:relative;display:block;aspect-ratio:4/5;overflow:hidden;background:var(--gray-50)}
.vik-coach__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 15%;filter:grayscale(1) contrast(1.1);transition:filter var(--dur-base),transform 700ms var(--ease-strike)}
.vik-coach__link:hover .vik-coach__img,.vik-coach__link:focus-visible .vik-coach__img{filter:none;transform:scale(1.03)}
.vik-coach__shield{position:absolute;right:-14%;bottom:-10%;width:80%;height:auto;aspect-ratio:980/1043;color:var(--gray-100)}
.vik-coach__initials{position:absolute;left:20px;bottom:16px;font-family:var(--font-display);font-weight:900;font-size:clamp(56px,9vw,120px);line-height:.8;color:var(--gray-200);transition:color var(--dur-base)}
.vik-coach__link:hover .vik-coach__initials{color:var(--vik-astrida)}
.vik-coach__name{font-family:var(--font-condensed);font-weight:700;font-size:20px;line-height:1.05;text-transform:uppercase}
.vik-coach__link:hover .vik-coach__name{color:var(--vik-astrida)}
.vik-coach__link:focus-visible{outline:2px solid var(--focus-ring);outline-offset:4px}
.vik-coach__role{font-size:14px;line-height:1.35;color:var(--text-secondary)}
.vik-coach__contact{display:grid;gap:4px;margin-top:2px}
.vik-coach__contact a{display:inline-flex;align-items:center;gap:6px;min-width:0;font-size:14px;color:var(--ink);text-decoration:none}
.vik-coach__contact a span{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
.vik-coach__contact a:hover span{color:var(--vik-astrida);text-decoration:underline}
.vik-coach__contact .vik-icon{flex:none;color:var(--gray-400)}

/* ── Coach listing: jump links to the groups ── */
.vik-coaches__jump{display:flex;flex-wrap:wrap;gap:8px;margin-bottom:48px}
.vik-coaches .vik-squad__group{scroll-margin-top:100px}

/* ── Player page: head ── */
.vik-phead{background:var(--white)}
.vik-phead__grid{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:56px}
.vik-phead__text{display:grid;align-content:space-between;gap:40px;padding:40px 0 48px;min-width:0}
.vik-phead__back{justify-self:start;margin-left:-12px}
.vik-phead__id{container-type:inline-size}
.vik-phead__num{display:block;font-family:var(--font-display);font-weight:900;font-size:clamp(120px,16vw,240px);line-height:.8;color:var(--vik-astrida)}
.vik-phead__name{display:grid;margin:20px 0 0;font-weight:inherit}
/* The tight line height would let accents (Á, Ó) run into the line above. */
.vik-phead__last,.vik-ptile__last,.vik-pcard__last{padding-top:.1em}
.vik-phead__first{font-family:var(--font-condensed);font-weight:500;font-size:36px;line-height:1.1;text-transform:uppercase}
.vik-phead__last{font-family:var(--font-display);font-weight:900;font-size:min(clamp(72px,9vw,140px),calc(100cqi / (var(--len) * .56)));line-height:.84;text-transform:uppercase;white-space:nowrap}
.vik-phead__stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));margin:0;border-top:1px solid var(--border-hairline)}
.vik-phead__stats>div{display:flex;flex-direction:column-reverse;justify-content:flex-end;padding:20px 0}
.vik-phead__stats>div+div{padding-left:20px;border-left:1px solid var(--border-hairline)}
.vik-phead__stats dd{margin:0;font-family:var(--font-display);font-weight:900;font-size:64px;line-height:.9}
.vik-phead__stats dt{margin-top:6px;font-family:var(--font-condensed);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}
.vik-phead__media{position:relative;min-height:520px;overflow:hidden;background:var(--gray-100)}
/* A coach's portrait is a photo, not a cut-out: it fills the panel. */
.vik-phead__portrait{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 20%;filter:grayscale(1) contrast(1.15)}
.vik-phead__role{margin:0 0 12px;font-family:var(--font-condensed);font-weight:700;font-size:15px;letter-spacing:.06em;text-transform:uppercase;color:var(--text-brand)}
.vik-phead__foot{display:grid;gap:24px}
.vik-phead__contact{display:flex;flex-wrap:wrap;gap:8px}
.vik-phead__contact .w-btn{max-width:100%;overflow:hidden;text-overflow:ellipsis;white-space:nowrap}
/* Buttons are uppercase; an email address keeps its own case. */
.vik-phead__email{text-transform:none;letter-spacing:0}
.vik-phead__places{display:flex;flex-wrap:wrap;gap:8px;align-items:center;padding-top:20px;border-top:1px solid var(--border-hairline)}
.vik-phead__label{margin-right:4px;font-family:var(--font-condensed);font-weight:700;font-size:12px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}
.vik-phead__shield{position:absolute;right:-12%;bottom:-8%;width:80%;height:auto;aspect-ratio:980/1043;color:var(--gray-50)}
/* Head to knees: the cut-out is 1:2 with transparent margins. */
.vik-phead__img{position:absolute;left:50%;top:6%;width:min(74%,560px);height:auto;transform:translateX(-50%);filter:grayscale(1) contrast(1.15)}

/* ── Player page: facts and stat card ── */
.vik-pmore{background:var(--canvas)}
.vik-pmore__grid{display:grid;grid-template-columns:minmax(0,7fr) minmax(320px,4fr);gap:40px;align-items:start}
.vik-pmore__main{display:grid;gap:32px;min-width:0}
.vik-pmore__quote{margin:0;padding:8px 0 8px 28px;border-left:4px solid var(--vik-astrida);font-family:var(--font-display);font-weight:900;font-size:clamp(32px,3.6vw,48px);line-height:.95;text-transform:uppercase}
.vik-facts{margin:0;background:var(--white);border:1px solid var(--border-hairline)}
.vik-facts>div{display:flex;justify-content:space-between;gap:16px;padding:18px 24px;border-bottom:1px solid var(--border-hairline);font-size:16px}
.vik-facts>div:last-child{border-bottom:0}
.vik-facts dt{color:var(--text-secondary)}
.vik-facts dd{margin:0;font-weight:700;text-align:right}

/* ── PlayerStatCard ── */
.vik-pcard{display:flex;flex-direction:column;background:var(--white);border:1px solid var(--black)}
.vik-pcard__media{position:relative;aspect-ratio:4/4.4;overflow:hidden;container-type:inline-size;background:var(--gray-100);border-bottom:1px solid var(--black)}
.vik-pcard__img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;object-position:50% 0;filter:grayscale(1) contrast(1.15)}
.vik-pcard__shield{position:absolute;left:50%;top:44%;width:30%;height:auto;aspect-ratio:980/1043;transform:translate(-50%,-50%);color:var(--gray-200)}
.vik-pcard__num{position:absolute;left:12px;top:8px;font-family:var(--font-display);font-weight:900;font-size:96px;line-height:.86;color:var(--vik-astrida)}
.vik-pcard__names{position:absolute;left:0;right:0;bottom:0;display:grid;padding:28px 12px 10px;background:linear-gradient(transparent,rgba(0,0,0,.7));color:#fff}
.vik-pcard__first{font-family:var(--font-condensed);font-weight:500;font-size:14px;letter-spacing:.04em;text-transform:uppercase}
.vik-pcard__last{font-family:var(--font-display);font-weight:900;font-size:min(44px,calc((100cqi - 24px) / (var(--len) * .56)));line-height:.86;text-transform:uppercase;white-space:nowrap}
.vik-pcard__pos{padding:8px 12px;border-bottom:1px solid var(--black);font-family:var(--font-condensed);font-weight:700;font-size:13px;letter-spacing:.08em;text-transform:uppercase}
.vik-pcard__stats{display:grid;grid-template-columns:repeat(var(--n,3),minmax(0,1fr))}
.vik-pcard__stats>div{display:grid;padding:10px 12px}
.vik-pcard__stats>div+div{border-left:1px solid var(--black)}
.vik-pcard__value{font-family:var(--font-display);font-weight:900;font-size:40px;line-height:.9;color:var(--vik-astrida);font-variant-numeric:tabular-nums}
.vik-pcard__label{margin-top:2px;font-family:var(--font-condensed);font-weight:500;font-size:11px;letter-spacing:.08em;text-transform:uppercase;color:var(--text-secondary)}

@media (max-width:900px){
	.vik-squad__grid{grid-template-columns:repeat(2,minmax(0,1fr))}
	.vik-phead__grid{grid-template-columns:1fr;gap:0}
	.vik-phead__media{min-height:440px}
	.vik-pmore__grid{grid-template-columns:1fr}
}
@media (max-width:640px){
	.vik-squad__grid{gap:12px}
	.vik-ptile__num{top:10px;left:12px}
	.vik-ptile__names{left:12px;right:12px;bottom:12px;gap:4px}
	.vik-ptile__first{font-size:15px}
	.vik-ptile__last{font-size:min(32px,calc((100cqi - 24px) / (var(--len) * .56)))}
	.vik-phead__text{padding:24px 0 32px}
	.vik-phead__first{font-size:26px}
	.vik-phead__stats dd{font-size:48px}
	.vik-phead__media{min-height:380px}
}
@media (prefers-reduced-motion:reduce){.vik-ptile__shield,.vik-ptile__img{transition:none}}
