/*
Theme Name: SGMS
Theme URI: https://sg-ms.com
Description: Theme for the St. Gallen Markets Society, built on Twenty Twenty-Five. White pages, navy header and footer, Cormorant Garamond headings and Montserrat text.
Author: St. Gallen Markets Society
Template: twentytwentyfive
Version: 1.6.6
Requires at least: 6.6
License: GNU General Public License v2 or later
Text Domain: sgms
*/

/* Small label above titles (category, "University of St. Gallen", etc.) */
.sgms-kicker {
	font-family: var(--wp--preset--font-family--montserrat);
	font-size: 0.75rem;
	font-weight: 600;
	letter-spacing: 0.14em;
	text-transform: uppercase;
}
.sgms-kicker a { text-decoration: none; }

/* Header: keep the logo a sensible size */
.sgms-header .wp-block-site-logo img { max-height: 46px; width: auto; }
.sgms-header .wp-block-navigation a:hover { text-decoration: underline; text-underline-offset: 6px; }

/* Cards (posts, team, packages) */
.sgms-card {
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	background: var(--wp--preset--color--white);
	transition: box-shadow .2s ease, transform .2s ease;
}
.sgms-card:hover { box-shadow: 0 10px 30px rgba(20, 30, 90, .08); transform: translateY(-2px); }
.sgms-card .wp-block-post-featured-image img { border-radius: 6px 6px 0 0; }
.sgms-card .wp-block-post-title a { text-decoration: none; }

/* Team photos */
.sgms-person img { aspect-ratio: 4 / 5; object-fit: cover; border-radius: 6px; width: 100%; }
.sgms-person p { margin: 0; }

/* Stats row */
.sgms-stat strong {
	display: block;
	font-family: var(--wp--preset--font-family--cormorant-garamond);
	font-size: clamp(2.2rem, 4vw, 3rem);
	font-weight: 600;
	line-height: 1;
	color: var(--wp--preset--color--navy);
}

/* Article page */
.single .wp-block-post-content > p:first-of-type { font-size: 1.125rem; }
.wp-block-post-content figure.wp-block-image figcaption { font-size: .8rem; color: var(--wp--preset--color--grey); text-align: center; }
.wp-block-post-content table { font-size: .9rem; }
.wp-block-post-content blockquote { border-left: 3px solid var(--wp--preset--color--royal); }

/* Events (managed under Events in the admin) */
.sgms-events { display: grid; grid-template-columns: repeat(auto-fill, minmax(16rem, 1fr)); gap: 1.2rem; }
.sgms-event { padding: 1.3rem 1.4rem; display: flex; flex-direction: column; gap: .4rem; }
.sgms-event .sgms-event-date { margin: 0; color: var(--wp--preset--color--royal); }
.sgms-event .sgms-event-title { margin: 0; font-family: var(--wp--preset--font-family--cormorant-garamond); font-size: 1.45rem; font-weight: 600; line-height: 1.2; color: var(--sgms-head, var(--wp--preset--color--navy)); }
.sgms-event .sgms-event-text { margin: 0; font-size: .9rem; }
.sgms-event .sgms-event-meta { margin: 0; font-size: .8rem; color: var(--wp--preset--color--grey); }
.sgms-event .sgms-event-btn { align-self: flex-start; margin-top: .5rem; background: var(--wp--preset--color--navy); color: #fff; text-decoration: none; font-size: .75rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding: .6rem 1rem; border-radius: 4px; }
.sgms-events.is-past .sgms-event { padding: 1rem 1.2rem; }
.sgms-events.is-past .sgms-event-title { font-size: 1.2rem; }
.sgms-events-empty { color: var(--wp--preset--color--grey); }

/* Forms: newsletter sign-up and contact */
.sgms-subscribe { display: flex; gap: .6rem; flex-wrap: wrap; margin: .4rem 0 .6rem; }
.sgms-subscribe input[type=email] { flex: 1 1 16rem; min-width: 0; }
.sgms-subscribe input, .sgms-contact input, .sgms-contact textarea { padding: .8rem 1rem; border: 1px solid #DDE3EE; border-radius: 4px; font: inherit; background: #fff; color: #141E5A; }
.sgms-contact { display: flex; flex-direction: column; gap: .35rem; }
.sgms-contact label { font-size: .8rem; font-weight: 600; margin-top: .5rem; }
.sgms-subscribe button, .sgms-contact button { background: var(--wp--preset--color--navy); color: #fff; border: 0; border-radius: 4px; padding: .8rem 1.4rem; font: 600 .78rem var(--wp--preset--font-family--montserrat, Montserrat, Arial, sans-serif); letter-spacing: .08em; text-transform: uppercase; cursor: pointer; }
.sgms-contact button { align-self: flex-start; margin-top: .8rem; }
.sgms-subscribe button:hover, .sgms-contact button:hover { background: var(--wp--preset--color--royal); }
.sgms-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.sgms-form-ok, .sgms-form-error { padding: .7rem 1rem; border-radius: 6px; font-size: .9rem; }
.sgms-form-ok { background: #E8F3EC; color: #1D5C36; }
.sgms-form-error { background: #FBEAEA; color: #8A1F1F; }
.sgms-dark .sgms-form-ok { background: #183A26; color: #CFEBD9; }
.sgms-dark .sgms-form-error { background: #3D1A1A; color: #F3CFCF; }

/* Author page: photo next to the name */
.sgms-author-head { align-items: center; }
.sgms-author-photo-wrap { margin: 0; line-height: 0; flex: none; }
.sgms-author-photo-wrap img { width: 120px; height: 120px; border-radius: 50%; object-fit: cover; display: block; border: 3px solid #fff; box-shadow: 0 6px 20px rgba(20,30,90,.15); }
@media (max-width: 600px) { .sgms-author-photo-wrap img { width: 88px; height: 88px; } }

/* Market Research page: team logo in the header */
.sgms-mr-logo { margin: 0 0 1.2rem; }
.sgms-mr-logo img { width: 240px; max-width: 70vw; height: auto; }

/* Footer links */
.sgms-footer a { text-decoration: none; }
.sgms-footer a:hover { text-decoration: underline; }

/* Clickable team cards (team.js turns them into pop-up profiles) */
.sgms-js .sgms-person .sgms-bio { display: none; }
.sgms-js .sgms-person { cursor: pointer; }
.sgms-person { border-radius: 8px; padding: .6rem; transition: background .2s ease; }
.sgms-js .sgms-person:hover, .sgms-js .sgms-person:focus-visible { background: var(--wp--preset--color--mist); outline: none; }
.sgms-person .sgms-more { font-size: .75rem; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--wp--preset--color--royal); }
.sgms-person .sgms-more { display: none; }
.sgms-js .sgms-person .sgms-more { display: block; }
.sgms-initials { aspect-ratio: 4 / 5; border-radius: 6px; display: flex; align-items: center; justify-content: center;
	color: var(--wp--preset--color--navy);
	font-family: var(--wp--preset--font-family--cormorant-garamond); font-size: 3rem; font-weight: 600; margin: 0; }

.sgms-dialog { border: 0; border-radius: 10px; padding: 0; max-width: min(760px, calc(100% - 2rem)); width: 100%;
	box-shadow: 0 30px 80px rgba(20, 30, 90, .25); color: var(--wp--preset--color--ink); }
.sgms-dialog::backdrop { background: rgba(20, 30, 90, .55); backdrop-filter: blur(2px); }
.sgms-dialog__body { display: grid; grid-template-columns: 240px 1fr; }
.sgms-dialog__photo img { width: 100%; height: 100%; object-fit: cover; aspect-ratio: auto; border-radius: 10px 0 0 10px; display: block; }
.sgms-dialog__photo[hidden] + .sgms-dialog__text { grid-column: 1 / -1; }
.sgms-dialog__text { padding: 2rem 2.2rem; }
.sgms-dialog__text h3 { margin: 0; font-size: 2rem; }
.sgms-dialog__role { margin: .2rem 0 1rem; color: var(--wp--preset--color--royal); font-size: .8rem; font-weight: 600; letter-spacing: .12em; text-transform: uppercase; }
.sgms-dialog__bio p { font-size: .95rem; }
.sgms-dialog__close { position: absolute; top: .6rem; right: .8rem; border: 0; background: none; font-size: 2rem; line-height: 1; cursor: pointer; color: var(--wp--preset--color--navy); }
@media (max-width: 640px) {
	.sgms-dialog__body { grid-template-columns: 1fr; }
	.sgms-dialog__photo img { max-height: 320px; border-radius: 10px 10px 0 0; }
}

/* Header "Join" link as a button */
.sgms-header .sgms-nav-join a { border: 1px solid #fff; border-radius: 4px; padding: .45rem .9rem; }
.sgms-header .sgms-nav-join a:hover { background: #fff; color: var(--wp--preset--color--navy) !important; text-decoration: none; }

/* Exhibits, tables and boxes inside articles */
.sgms-exhibit h4 { margin-top: 0; }
.sgms-exhibit .wp-block-image { margin: .4rem 0; }
.sgms-exhibit .wp-block-image img { border: 1px solid var(--wp--preset--color--line); border-radius: 6px; }
.wp-block-post-content .wp-block-table thead { border-bottom: 2px solid var(--wp--preset--color--navy); }
.wp-block-post-content .wp-block-table th { color: var(--wp--preset--color--navy); text-align: left; }
.wp-block-post-content .wp-block-table td, .wp-block-post-content .wp-block-table th { border-color: var(--wp--preset--color--line); padding: .55rem .7rem; }
.wp-block-table.is-style-stripes tbody tr:nth-child(odd) { background: var(--wp--preset--color--mist); }
.wp-block-post-content .wp-block-table { overflow-x: auto; }

/* Two team cards per row on phones */
@media (max-width: 600px) {
	.is-layout-grid:has(> .sgms-person) { grid-template-columns: repeat(2, minmax(0, 1fr)) !important; }
	.sgms-person .wp-block-image, .sgms-initials { margin-bottom: .3rem; }
	.sgms-initials { font-size: 2.2rem; }
}

/* ---- v1.1: one navy palette, membership first ---- */
.sgms-header { position: sticky; top: 0; z-index: 50; box-shadow: 0 1px 0 rgba(255,255,255,.06); }
.admin-bar .sgms-header { top: 32px; }
.sgms-header .sgms-nav-join a { background: #fff; color: var(--wp--preset--color--navy) !important; border: 0; border-radius: 4px; padding: .6rem 1.1rem; }
.sgms-header .sgms-nav-join a:hover { background: var(--wp--preset--color--sky); text-decoration: none; }
.sgms-initials { background: var(--wp--preset--color--mist); border: 1px solid var(--wp--preset--color--line); color: var(--wp--preset--color--navy); }
.sgms-btn-big .wp-block-button__link { padding: 1.05rem 1.9rem; font-size: .85rem; }
.sgms-checklist { list-style: none; padding-left: 0; }
.sgms-checklist li { position: relative; padding: .55rem 0 .55rem 2rem; border-bottom: 1px solid rgba(255,255,255,.15); }
.sgms-checklist li::before { content: ""; position: absolute; left: 0; top: .95rem; width: 1rem; height: .55rem; border-left: 2px solid #9CC3FA; border-bottom: 2px solid #9CC3FA; transform: rotate(-45deg); }
.sgms-card { border-radius: 8px; }
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-white-color) { border-color: var(--wp--preset--color--navy); color: var(--wp--preset--color--navy); }
.wp-block-button.is-style-outline > .wp-block-button__link:not(.has-white-color):hover { background: var(--wp--preset--color--navy); color: #fff; }
.sgms-hero h1 { letter-spacing: -.01em; }
.sgms-stat strong { margin-bottom: .3rem; }

/* Numbers on cards, timeline, tick lists, modules, price card */
.sgms-num { font-family: var(--wp--preset--font-family--cormorant-garamond); font-size: 1.6rem; font-weight: 600; line-height: 1; color: var(--wp--preset--color--royal); margin: 0 0 .2rem; }
.sgms-ticks { list-style: none; padding-left: 0; }
.sgms-ticks li { position: relative; padding: .35rem 0 .35rem 1.9rem; }
.sgms-ticks li::before { content: ""; position: absolute; left: .15rem; top: .8rem; width: .9rem; height: .5rem; border-left: 2px solid var(--wp--preset--color--royal); border-bottom: 2px solid var(--wp--preset--color--royal); transform: rotate(-45deg); }
.sgms-module { background: #fff; border: 1px solid var(--wp--preset--color--line); border-radius: 8px; padding: 1rem 1.1rem; }
.sgms-module p { margin: 0; }
.sgms-module p + p { font-weight: 600; color: var(--wp--preset--color--navy); }
.sgms-timeline { list-style: none; padding-left: 0; margin-left: .4rem; border-left: 2px solid var(--wp--preset--color--line); }
.sgms-timeline li { position: relative; padding: 0 0 1.6rem 1.8rem; }
.sgms-timeline li::before { content: ""; position: absolute; left: -7px; top: .35rem; width: 12px; height: 12px; border-radius: 50%; background: var(--wp--preset--color--navy); box-shadow: 0 0 0 4px #fff; }
.sgms-timeline li strong { display: block; font-size: .72rem; letter-spacing: .14em; text-transform: uppercase; color: var(--wp--preset--color--royal); }
.sgms-timeline .sgms-tl-title { display: block; font-family: var(--wp--preset--font-family--cormorant-garamond); font-size: 1.5rem; font-weight: 600; color: var(--wp--preset--color--navy); line-height: 1.2; margin: .15rem 0 .2rem; }
.sgms-price { box-shadow: 0 20px 50px rgba(20, 30, 90, .25); position: sticky; top: 110px; }
.sgms-price-amount { font-family: var(--wp--preset--font-family--cormorant-garamond); font-size: 4.5rem; font-weight: 600; line-height: 1; margin: .3rem 0 0; }
.sgms-photo-note { opacity: .75; margin-top: 2rem !important; }
.sgms-subscribe-box h3 { margin-top: 0; }

/* Equity research report pages */
.sgms-report-hero { align-items: center; }
.sgms-report-cover img { border-radius: 4px; box-shadow: 0 25px 60px rgba(20, 30, 90, .22); border: 1px solid var(--wp--preset--color--line); }
.wp-block-file.sgms-pdf { background: var(--wp--preset--color--mist); border-radius: 8px; padding: 1rem; }
.wp-block-file .wp-block-file__embed { border: 1px solid var(--wp--preset--color--line); border-radius: 6px; }
.wp-block-file .wp-block-file__button { background: var(--wp--preset--color--navy); border-radius: 4px; font-size: .78rem; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; padding: .7rem 1.2rem; }
.wp-block-co-authors-plus-coauthors .wp-block-co-authors-plus-name { margin: 0; }
.sgms-author-box .wp-block-co-authors-plus-description { color: var(--wp--preset--color--grey); margin: .1rem 0 .6rem; }

/* Whole cards are clickable: the card's main link covers the card */
.sgms-card { position: relative; }
.sgms-card .wp-block-post-title a::after, .sgms-card a.sgms-stretch::after { content: ""; position: absolute; inset: 0; z-index: 1; border-radius: inherit; }
.sgms-card .wp-block-post-terms a, .sgms-card .wp-block-co-authors-plus-coauthors a { position: relative; z-index: 2; }
.sgms-card:has(a) { cursor: pointer; }
.sgms-card:has(a:focus-visible) { outline: 3px solid var(--wp--preset--color--royal); outline-offset: 3px; }
.sgms-card a:focus-visible { outline: none; }

/* ---- v1.2 ---- */
:root { color-scheme: light; }
/* Long links (sources) wrap instead of pushing the page sideways on phones */
.wp-block-post-content p, .wp-block-post-content li, .wp-block-post-content td, .wp-block-post-content figcaption { overflow-wrap: anywhere; }
.wp-block-post-content figure.wp-block-table { overflow-x: auto; max-width: 100%; }

/* Bios: always dark text on a white or light background, easy to read */
.sgms-dialog { background: #fff; color: var(--wp--preset--color--ink); }
.sgms-dialog__bio, .sgms-dialog__bio p { color: var(--wp--preset--color--ink) !important; font-size: 1rem !important; line-height: 1.65; }
.sgms-author-box .wp-block-co-authors-plus-description, .sgms-author-box .wp-block-co-authors-plus-description p { color: var(--wp--preset--color--ink); font-size: .95rem; }
.author .wp-block-post-author-biography { color: var(--wp--preset--color--ink) !important; }
.editor-styles-wrapper .sgms-bio { background: var(--wp--preset--color--mist); border-radius: 6px; padding: .5rem .7rem; color: var(--wp--preset--color--ink); }

/* Menu: "About" opens a small dropdown */
.sgms-header .wp-block-navigation__submenu-container { background: var(--wp--preset--color--navy) !important; border: 1px solid rgba(255,255,255,.15) !important; border-radius: 6px; padding: .4rem 0; min-width: 210px !important; box-shadow: 0 16px 40px rgba(0,0,0,.25); }
.sgms-header .wp-block-navigation__submenu-container a { padding: .55rem 1rem !important; }
.sgms-header .wp-block-navigation__submenu-container a:hover { background: rgba(255,255,255,.08); text-decoration: none; }
.wp-block-navigation__responsive-container.is-menu-open { background: var(--wp--preset--color--navy) !important; color: #fff !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0 !important; box-shadow: none; padding-left: 1rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { font-size: 1rem; }

/* Author names: smaller, in SGMS blue, separated as "A, B and C" */
.sgms-byline-authors::before { content: "By"; color: var(--wp--preset--color--grey); margin-right: .1rem; }
.sgms-byline-authors .wp-block-co-authors-plus-name, .sgms-card-authors .wp-block-co-authors-plus-name { margin: 0; font-size: .82rem; font-weight: 600; letter-spacing: .01em; }
.sgms-byline-authors .wp-block-co-authors-plus-name a, .sgms-card-authors .wp-block-co-authors-plus-name a, .sgms-card-authors .wp-block-co-authors-plus-name { color: var(--wp--preset--color--royal); text-decoration: none; }
.sgms-byline-authors .wp-block-co-authors-plus-name a:hover, .sgms-card-authors .wp-block-co-authors-plus-name a:hover { text-decoration: underline; }
.sgms-card-authors .wp-block-co-authors-plus-name { font-size: .78rem; }
.sgms-byline-authors .wp-block-co-authors-plus-coauthor:not(:last-child) .wp-block-co-authors-plus-name::after,
.sgms-card-authors .wp-block-co-authors-plus-coauthor:not(:last-child) .wp-block-co-authors-plus-name::after { content: ","; color: var(--wp--preset--color--grey); font-weight: 400; }
.sgms-byline-authors .wp-block-co-authors-plus-coauthor:nth-last-child(2) .wp-block-co-authors-plus-name::after,
.sgms-card-authors .wp-block-co-authors-plus-coauthor:nth-last-child(2) .wp-block-co-authors-plus-name::after { content: " and"; }
.sgms-author-box .wp-block-co-authors-plus-name a { color: var(--wp--preset--color--royal); text-decoration: none; }

/* Reading time next to the date, separated by a dot */
.wp-block-post-date + .wp-block-post-time-to-read::before { content: ""; display: inline-block; width: 1px; height: .85em; background: currentColor; opacity: .35; margin-right: .6rem; vertical-align: -1px; }
.sgms-card .wp-block-post-time-to-read, .sgms-meta .wp-block-post-time-to-read { font-size: .78rem; color: var(--wp--preset--color--grey); }

/* Author photos next to names on articles (from the author's profile; initials if there is no photo) */
.sgms-avatar { margin: 0; line-height: 0; flex: none; }
.sgms-avatar img { border-radius: 50%; object-fit: cover; display: block; }
.sgms-byline-authors { align-items: center; }
.sgms-byline-authors .wp-block-co-authors-plus-coauthor { display: inline-flex; align-items: center; gap: .4rem; }
.sgms-author-box .sgms-author-list.is-layout-flow [class*=wp-block-co-authors-plus] { display: block; }
.sgms-author-box .sgms-author-list.is-layout-flow .wp-block-co-authors-plus-coauthor { display: grid; grid-template-columns: 56px 1fr; column-gap: 1rem; align-items: center; margin-bottom: .8rem; }
.sgms-author-box .sgms-author-list .sgms-avatar { grid-row: span 2; align-self: start; }
.sgms-author-box .sgms-author-list .wp-block-co-authors-plus-name { margin: 0; }
.sgms-person-email { margin: 0; line-height: 1.35; }
.sgms-person-email a { color: var(--wp--preset--color--royal); text-decoration: none; font-size: .78rem; }
@media (max-width: 600px) { .sgms-author-head { flex-wrap: wrap !important; } }

/* Subscribe button in the header, sign-up form in the footer and banners */
.sgms-header .sgms-nav-subscribe a { border: 1px solid rgba(255,255,255,.8); border-radius: 4px; padding: .55rem 1rem; }
.sgms-header .sgms-nav-subscribe a:hover { background: rgba(255,255,255,.14); text-decoration: none; }
.wp-block-navigation__responsive-container.is-menu-open .sgms-nav-subscribe a { border: 0; padding: 0; }
.sgms-footer .sgms-subscribe { flex-direction: column; gap: .5rem; max-width: 18rem; }
.sgms-footer .sgms-subscribe input[type=email] { flex: none; width: 100%; border-color: rgba(255,255,255,.35); }
.sgms-footer .sgms-subscribe button { background: #fff; color: #141E5A; align-self: flex-start; }
.sgms-footer .sgms-subscribe button:hover { background: #CDE4FC; }
.sgms-footer .sgms-form-ok, .sgms-footer .sgms-form-error { font-size: .8rem; }

/* Form fields include their padding in their width, so the footer field stays inside its column. */
.sgms-subscribe input, .sgms-contact input, .sgms-contact textarea { box-sizing: border-box; max-width: 100%; }

/* Share buttons under articles */
.sgms-share { display: flex; flex-wrap: wrap; align-items: center; gap: .5rem; margin: 2.5rem 0 1rem; padding-top: 1.5rem; border-top: 1px solid #DDE3EE; }
.sgms-share__label { font: 600 .75rem var(--wp--preset--font-family--montserrat, Montserrat, Arial, sans-serif); letter-spacing: .12em; text-transform: uppercase; color: var(--wp--preset--color--grey, #5B6478); margin-right: .3rem; }
.sgms-share__btn { display: inline-block; padding: .45rem .9rem; border: 1px solid var(--wp--preset--color--navy); border-radius: 999px; background: transparent; color: var(--wp--preset--color--navy); font: 600 .72rem var(--wp--preset--font-family--montserrat, Montserrat, Arial, sans-serif); letter-spacing: .06em; text-decoration: none !important; cursor: pointer; line-height: 1.2; }
.sgms-share__btn:hover, .sgms-share__btn:focus-visible { background: var(--wp--preset--color--navy); color: #fff; }

/* Hero titles break into even lines instead of leaving one word alone on the last line. */
.wp-block-cover h1, .wp-block-cover .wp-block-heading { text-wrap: balance; }
