/*
Theme Name: Alassia 2026
Theme URI: https://www.alassia.eu
Author: Alassia NewShips Management Inc. ICT
Description: Corporate block theme for alassia.eu. Forked from Ollie design principles, self-owned. Tokens in theme.json; content structures live in the alassia-core mu-plugin.
Version: 0.2.0
Requires at least: 6.7
Requires PHP: 8.2
License: GNU General Public License v2 or later
Text Domain: alassia-2026
*/

/* Header logo: fixed height, width follows the SVG aspect ratio (viewBox) */
.wp-block-site-logo img { height: 56px; width: auto; max-width: none; }

/* Footer link lists: navigation, not prose */
footer .wp-block-list { list-style: none; padding-left: 0; margin-left: 0; }

/* Vessel cards: keep text off the card edges */
.wp-block-post-template .wp-block-group { overflow: hidden; }
.wp-block-post-template .wp-block-post-terms,
.wp-block-post-template .wp-block-post-title { padding: 0 1rem; }
.wp-block-post-template .wp-block-post-title { padding-bottom: 1rem; }

/* ---------- Design pass ---------- */

/* Kickers: small caps labels above section headings */
.alassia-kicker {
	text-transform: uppercase;
	letter-spacing: .16em;
	font-size: .8rem;
	font-weight: 600;
	color: var(--wp--preset--color--blue);
	margin-bottom: .25rem;
}

/* Stat numbers */
.alassia-stat {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 2.6rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	line-height: 1;
	margin-bottom: .25rem;
}

/* Cards: services, fleet, generic */
.alassia-card { transition: box-shadow .15s ease, border-color .15s ease; overflow: hidden; }
.alassia-card:hover { border-color: var(--wp--preset--color--blue) !important; box-shadow: 0 6px 18px rgba(0, 37, 97, .10); }
.alassia-card h3 a { text-decoration: none; color: var(--wp--preset--color--navy); }
.alassia-card h3 a:hover { color: var(--wp--preset--color--blue); }

/* Highlights: top rule like the mockup */
.alassia-hl { border-top: 3px solid var(--wp--preset--color--blue); padding-top: var(--wp--preset--spacing--20); }

/* Vessel class terms as badges */
.wp-block-post-terms { line-height: 1; }
.wp-block-post-terms a {
	display: inline-block;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
	font-size: .7rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 3px;
	text-decoration: none;
}
.wp-block-post-terms a:hover { background: var(--wp--preset--color--blue); color: #fff; }

/* Vessel/fleet cards: image flush, text padded */
.wp-block-post-template .wp-block-group .wp-block-post-featured-image { margin: 0; }
.wp-block-post-template .wp-block-post-terms { padding: 1rem 1rem 0; }
.wp-block-post-template .wp-block-post-title { padding: .25rem 1rem 1rem; }
.wp-block-post-template .wp-block-post-title a { text-decoration: none; }
.wp-block-post-template .wp-block-post-title a:hover { color: var(--wp--preset--color--blue); }

/* Global link + focus behaviour */
a:focus-visible, button:focus-visible, .wp-element-button:focus-visible { outline: 3px solid var(--wp--preset--color--sky); outline-offset: 2px; }
.wp-element-button { font-weight: 600; }

/* Prose rhythm inside page content */
.wp-block-post-content h2 { margin-top: var(--wp--preset--spacing--40); }
.wp-block-post-content h3 { margin-top: var(--wp--preset--spacing--30); }
.wp-block-post-content { padding-bottom: var(--wp--preset--spacing--50); }

/* Hero: anchor content left within the 1200px column, like the mockup.
   Core centres constrained children with margin auto !important, so match it. */
.alassia-hero .wp-block-cover__inner-container > .wp-block-group > * {
	margin-left: 0 !important;
	margin-right: auto !important;
}

/* Cards: tighten internal rhythm */
.alassia-card > * { margin-top: 0 !important; }
.alassia-card > * + * { margin-top: .5rem !important; }

/* Services grid: explicit grid + card typography (mockup-faithful) */
.alassia-svc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(250px, 1fr));
	gap: 1rem;
	margin-top: var(--wp--preset--spacing--40);
}
a.alassia-svc {
	display: block;
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	padding: 1.5rem;
	text-decoration: none;
	color: var(--wp--preset--color--ink);
}
a.alassia-svc h3 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 .5rem;
	line-height: 1.25;
}
a.alassia-svc p { font-size: .92rem; margin: 0; line-height: 1.5; }
a.alassia-svc:hover { border-color: var(--wp--preset--color--blue); box-shadow: 0 4px 14px rgba(0, 37, 97, .08); }
a.alassia-svc:hover h3 { color: var(--wp--preset--color--blue); }

/* Certification chips on the navy band: passive glass labels, not buttons */
.alassia-chips { display: flex; flex-wrap: wrap; gap: .6rem; justify-content: flex-start; }
.alassia-chips span {
	background: rgba(255, 255, 255, .10) !important;
	border: 1px solid rgba(255, 255, 255, .25) !important;
	border-radius: 999px;
	padding: 8px 16px;
	font-size: .85rem;
	font-weight: 500;
	color: var(--wp--preset--color--white) !important;
	white-space: nowrap;
	line-height: 1;
}

/* Grid wrappers: neutralise flow-layout margins that stagger grid rows */
.alassia-svc-grid > * { margin: 0 !important; }

/* Footer design */
footer .wp-block-template-part, .alassia-footer { font-size: .92rem; }
.alassia-footer h4 {
	color: var(--wp--preset--color--white);
	font-size: 1rem;
	margin: 0 0 1.25rem;
	letter-spacing: .02em;
}
.alassia-footer, .alassia-footer p, .alassia-footer li { color: var(--wp--preset--color--line); }
.alassia-footer a {
	color: var(--wp--preset--color--line);
	text-decoration: none;
	transition: color .12s ease;
}
.alassia-footer a:hover {
	color: var(--wp--preset--color--white);
	text-decoration: underline;
	text-underline-offset: 4px;
	text-decoration-color: var(--wp--preset--color--sky);
}
.alassia-footer li { margin-bottom: .5rem; }
.alassia-footer hr {
	border: 0;
	border-top: 1px solid rgba(255,255,255,.18);
	margin: var(--wp--preset--spacing--40) 0 var(--wp--preset--spacing--20);
}

/* News listing */
.alassia-news .wp-block-post-template { list-style: none; padding: 0; margin: 0; }
.alassia-news-item {
	border-bottom: 1px solid var(--wp--preset--color--line);
	padding: var(--wp--preset--spacing--30) 0;
}
.alassia-news-item .wp-block-post-title a { text-decoration: none; }
.alassia-news-item .wp-block-post-title a:hover { color: var(--wp--preset--color--blue); }
.alassia-news-item .wp-block-post-date { color: #5A6873; }
.alassia-news-item .wp-block-post-excerpt { margin-top: .5rem; }
.alassia-news-item .wp-block-post-excerpt__more-link { color: var(--wp--preset--color--blue); }

/* Pagination: quiet buttons, navy current page */
.wp-block-query-pagination { margin-top: var(--wp--preset--spacing--40); gap: .4rem; }
.wp-block-query-pagination a,
.wp-block-query-pagination .page-numbers {
	display: inline-block;
	padding: 8px 14px;
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 4px;
	text-decoration: none;
	color: var(--wp--preset--color--navy);
	font-size: .95rem;
	line-height: 1;
}
.wp-block-query-pagination a:hover { border-color: var(--wp--preset--color--blue); color: var(--wp--preset--color--blue); }
.wp-block-query-pagination .page-numbers.current {
	background: var(--wp--preset--color--navy);
	border-color: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
}
.wp-block-query-pagination .page-numbers.dots { border: 0; }

/* Follow links: chip-styled text links, immune to cosmetic filter lists */
.alassia-follow { display: flex; flex-wrap: wrap; gap: .6rem; margin-top: var(--wp--preset--spacing--20); }
.alassia-follow a {
	border: 1px solid rgba(255, 255, 255, .35);
	border-radius: 999px;
	padding: 6px 14px;
	font-size: .85rem;
	color: var(--wp--preset--color--white) !important;
	text-decoration: none;
}
.alassia-follow a:hover { border-color: var(--wp--preset--color--white); }

/* Contact department cards */
.alassia-contact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 1rem;
	margin-top: var(--wp--preset--spacing--40);
}
.alassia-contact-grid > * { margin: 0 !important; }
.alassia-dept { border-radius: 6px; padding: 1.5rem; background: var(--wp--preset--color--mist); }
.alassia-dept h3 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
	font-weight: 700;
	color: var(--wp--preset--color--navy);
	margin: 0 0 .75rem;
}
.alassia-dept p { margin: 0 0 .5rem; font-size: .95rem; line-height: 1.7; }
.alassia-dept p:last-child { margin-bottom: 0; }
.alassia-dept-note { font-size: .85rem; color: #5A6873; }
.alassia-dept-hq { background: var(--wp--preset--color--navy); }
.alassia-dept-hq h3, .alassia-dept-hq p { color: var(--wp--preset--color--white); }
.alassia-dept-hq a { color: var(--wp--preset--color--sky); }

/* Fleet page hero band */
.alassia-fleet-hero { min-height: 340px; }
.alassia-fleet-hero .wp-block-cover__inner-container > .wp-block-group > * { margin-left: 0 !important; margin-right: auto !important; }

/* Vessel particulars table: left-aligned labels, quiet ruling */
.alassia-vessel-particulars table { border-collapse: collapse; width: 100%; }
.alassia-vessel-particulars th,
.alassia-vessel-particulars td {
	text-align: left;
	padding: .6rem .75rem .6rem 0;
	border-bottom: 1px solid var(--wp--preset--color--line);
	vertical-align: top;
}
.alassia-vessel-particulars th {
	color: var(--wp--preset--color--navy);
	font-family: var(--wp--preset--font-family--heading);
	font-weight: 600;
	width: 220px;
}

/* Footer enrichment */
.alassia-footer { border-top: 3px solid var(--wp--preset--color--blue); }
.alassia-footer-logo img { height: 44px; width: auto; }
.alassia-footer-tag {
	color: var(--wp--preset--color--sky);
	font-size: .78rem;
	text-transform: uppercase;
	letter-spacing: .14em;
	margin: .75rem 0 1.25rem;
}
.alassia-follow a {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 38px;
	height: 38px;
	padding: 0;
	border-radius: 50%;
	color: var(--wp--preset--color--white);
}
.alassia-follow a:hover { border-color: var(--wp--preset--color--white); background: rgba(255,255,255,.08); }
.alassia-legal { display: flex; justify-content: space-between; flex-wrap: wrap; gap: .5rem; font-size: .85rem; }
.alassia-legal a { color: var(--wp--preset--color--line); }

/* Report cards */
.alassia-report-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(260px, 1fr));
	gap: 1rem;
	margin-top: var(--wp--preset--spacing--40);
}
.alassia-report-grid > * { margin: 0 !important; }
.alassia-report {
	background: var(--wp--preset--color--mist);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	padding: 1.5rem;
	display: flex;
	flex-direction: column;
	gap: .5rem;
}
.alassia-report-year {
	margin: 0;
	font-size: .78rem;
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: .12em;
	color: var(--wp--preset--color--blue);
}
.alassia-report h3 {
	margin: 0;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.15rem;
	color: var(--wp--preset--color--navy);
}
.alassia-report-btn {
	margin-top: auto;
	align-self: flex-start;
	background: var(--wp--preset--color--blue);
	color: var(--wp--preset--color--white) !important;
	text-decoration: none;
	font-weight: 600;
	font-size: .9rem;
	padding: 10px 18px;
	border-radius: 4px;
}
.alassia-report-btn:hover { background: var(--wp--preset--color--blue-deep); }
.alassia-report-btn span { font-weight: 400; font-size: .8rem; opacity: .85; }

/* SDG cards */
.alassia-sdg-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 1rem;
	margin-top: var(--wp--preset--spacing--40);
}
.alassia-sdg-grid > * { margin: 0 !important; }
.alassia-sdg {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	padding: 1.5rem;
}
.alassia-sdg-no {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 44px;
	height: 44px;
	border-radius: 6px;
	color: #fff;
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.3rem;
	font-weight: 700;
	margin-bottom: .75rem;
}
.alassia-sdg h3 {
	font-family: var(--wp--preset--font-family--heading);
	font-size: 1.1rem;
	color: var(--wp--preset--color--navy);
	margin: 0 0 .5rem !important;
}
.alassia-sdg p { font-size: .92rem; margin: 0 !important; line-height: 1.6; }

/* Certification cards */
.alassia-cert-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 1rem;
	margin-top: var(--wp--preset--spacing--40);
	margin-bottom: var(--wp--preset--spacing--30);
}
.alassia-cert-grid > * { margin: 0 !important; }
.alassia-cert { background: var(--wp--preset--color--mist); border: 1px solid var(--wp--preset--color--line); border-radius: 6px; padding: 1.5rem; }
.alassia-cert-std {
	display: inline-block;
	background: var(--wp--preset--color--navy);
	color: var(--wp--preset--color--white);
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .1em;
	text-transform: uppercase;
	padding: 4px 10px;
	border-radius: 3px;
	margin-bottom: .75rem;
}
.alassia-cert h3 { font-family: var(--wp--preset--font-family--heading); font-size: 1.05rem; color: var(--wp--preset--color--navy); margin: 0 0 .4rem !important; }
.alassia-cert-body { font-size: .88rem; font-weight: 600; margin: 0 0 .35rem !important; }
.alassia-cert-scope { font-size: .88rem; color: #5A6873; margin: 0 !important; }

/* Organisation logo boxes and membership grid */
.alassia-org-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(170px, 1fr));
	gap: 1rem;
	margin-top: var(--wp--preset--spacing--30);
	margin-bottom: var(--wp--preset--spacing--40);
}
.alassia-org-grid > * { margin: 0 !important; }
.alassia-org {
	background: var(--wp--preset--color--white);
	border: 1px solid var(--wp--preset--color--line);
	border-radius: 6px;
	padding: 1rem;
	display: flex;
	flex-direction: column;
	align-items: center;
	gap: .6rem;
	text-align: center;
}
.alassia-org-logo {
	display: flex;
	align-items: center;
	justify-content: center;
	background: var(--wp--preset--color--white);
	border-radius: 4px;
	height: 72px;
	width: 100%;
}
.alassia-org-logo img { max-height: 64px; max-width: 90%; width: auto; object-fit: contain; }
.alassia-org-name { font-size: .82rem; font-weight: 600; color: var(--wp--preset--color--navy); line-height: 1.3; }
.alassia-cert-logo { float: right; height: 56px; width: 76px; margin-left: .5rem; }
.alassia-cert-logo img { max-height: 56px; }

/* Highlight card headings: quiet links, hover to blue */
.alassia-hl h3 a { text-decoration: none; color: var(--wp--preset--color--navy); }
.alassia-hl h3 a:hover { color: var(--wp--preset--color--blue); }

/* White header */
.alassia-header { border-bottom: 1px solid var(--wp--preset--color--line); }
.alassia-header .wp-block-navigation a:hover { color: var(--wp--preset--color--blue); }

/* Header spacer balances the logo so the nav centres truly */
.alassia-header-spacer { width: 180px; }
@media (max-width: 900px) { .alassia-header-spacer { display: none; } }

/* ===== Motion (board request 2026-09: reveals, counters, hero) =====
   JS adds .alassia-reveal only when it can also reveal, so content is
   never hidden without JavaScript. Everything off under reduced motion. */
.alassia-reveal {
	opacity: 0;
	transform: translateY(16px);
	transition: opacity .55s ease, transform .55s ease,
		box-shadow .15s ease, border-color .15s ease;
	will-change: opacity, transform;
}
.alassia-reveal.is-inview { opacity: 1; transform: none; }

/* Hero: one slow settle-in zoom on the image, staged text entrance */
@keyframes alassia-hero-zoom {
	from { transform: scale(1.06); }
	to   { transform: scale(1); }
}
@keyframes alassia-fade-up {
	from { opacity: 0; transform: translateY(18px); }
	to   { opacity: 1; transform: none; }
}
.alassia-hero img.wp-block-cover__image-background {
	animation: alassia-hero-zoom 14s ease-out both;
}
.alassia-hero .wp-block-cover__inner-container {
	animation: alassia-fade-up .8s ease-out .15s both;
}

@media (prefers-reduced-motion: reduce) {
	.alassia-reveal { opacity: 1; transform: none; transition: none; }
	.alassia-hero img.wp-block-cover__image-background,
	.alassia-hero .wp-block-cover__inner-container { animation: none; }
}

/* Fleet strip: stronger hover lift on the homepage cards */
.alassia-fleet-strip .alassia-card {
	transition: transform .25s ease, box-shadow .25s ease, border-color .15s ease, opacity .55s ease;
}
.alassia-fleet-strip .alassia-card:hover {
	transform: translateY(-6px);
	box-shadow: 0 14px 32px rgba(0, 37, 97, .16);
}
@media (prefers-reduced-motion: reduce) {
	.alassia-fleet-strip .alassia-card:hover { transform: none; }
}

/* Newbuilding cards: delivery badge over the card image */
main .wp-block-post { position: relative; }
.alassia-delivery-badge {
	position: absolute;
	top: 12px;
	right: 12px;
	z-index: 2;
	background: rgba(0, 37, 97, .88);
	color: #fff;
	font-size: .72rem;
	font-weight: 600;
	letter-spacing: .06em;
	text-transform: uppercase;
	padding: .4em .8em;
	border-radius: 999px;
	pointer-events: none;
}

/* Service card icons: brand blue on mist chip */
.alassia-svc-icon {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	width: 46px;
	height: 46px;
	border-radius: 50%;
	background: var(--wp--preset--color--mist);
	color: var(--wp--preset--color--blue-deep);
	margin-bottom: .65rem;
	transition: background .2s ease, color .2s ease;
}
.alassia-svc-icon svg { width: 23px; height: 23px; }
a.alassia-svc:hover .alassia-svc-icon {
	background: var(--wp--preset--color--blue);
	color: #fff;
}

/* Button hover system: one rule set for all four variants in use */
.wp-block-button__link {
	transition: background-color .2s ease, color .2s ease,
		border-color .2s ease, transform .15s ease, box-shadow .2s ease;
}
.wp-block-button__link:hover,
.wp-block-button__link:focus-visible {
	transform: translateY(-1px);
}
/* solid default (brand blue): deepen */
.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-white-background-color):hover,
.wp-block-button:not(.is-style-outline) .wp-block-button__link:not(.has-white-background-color):focus-visible {
	background-color: var(--wp--preset--color--blue-deep) !important;
}
/* solid white on navy/photo (hero, CTA band): sky wash, navy text */
.wp-block-button__link.has-white-background-color:hover,
.wp-block-button__link.has-white-background-color:focus-visible {
	background-color: var(--wp--preset--color--sky) !important;
	color: var(--wp--preset--color--navy) !important;
}
/* outline white on dark (hero, fleet-hero filters): fill white */
.is-style-outline .wp-block-button__link.has-white-color:hover,
.is-style-outline .wp-block-button__link.has-white-color:focus-visible {
	background-color: #fff !important;
	color: var(--wp--preset--color--navy) !important;
	border-color: #fff !important;
}
/* outline navy on light (Company announcements): fill navy */
.is-style-outline .wp-block-button__link.has-navy-color:hover,
.is-style-outline .wp-block-button__link.has-navy-color:focus-visible {
	background-color: var(--wp--preset--color--navy) !important;
	color: #fff !important;
	border-color: var(--wp--preset--color--navy) !important;
}
@media (prefers-reduced-motion: reduce) {
	.wp-block-button__link:hover,
	.wp-block-button__link:focus-visible { transform: none; }
}

/* Footnote line inside the navy HSQE band */
.has-navy-background-color .alassia-footnote { color: rgba(255, 255, 255, .72); margin-top: .5rem; }

/* Fleet cards: built year beside the vessel name */
.alassia-card-year {
	margin-left: .45em;
	font-size: .68em;
	font-weight: 400;
	color: var(--wp--preset--color--ink);
	opacity: .65;
	white-space: nowrap;
}
