/*
Theme Name:   Alarm Clock
Theme URI:    https://alarmsclock.live/
Description:  Lightweight child theme of Twenty Twenty-Five for the Alarm Clock time-tools website.
Author:       Alarm Clock
Template:     twentytwentyfive
Version:      1.0.3
Requires at least: 6.5
License:      GNU General Public License v2 or later
Text Domain:  alarm-clock-theme
*/

:root {
	--ac-text: #131a2c;
	--ac-muted: #5a6377;
	--ac-border: #e3e6ef;
	--ac-surface: #f6f7fb;
	--ac-accent: #4f46e5;
	--ac-accent-ink: #3730a3;
	--ac-accent-soft: #eef0ff;
}

body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; }
:where(a) { text-underline-offset: .18em; text-decoration-thickness: 1px; }
:focus-visible { outline: 3px solid rgba(79, 70, 229, .45); outline-offset: 2px; border-radius: 6px; }

.ac-skip { position: absolute; left: -9999px; top: 0; z-index: 1000; background: #fff; padding: .6rem 1rem; border-radius: 8px; }
.ac-skip:focus { left: 1rem; top: 1rem; }

/* ---------- Header ---------- */
/* Note: no backdrop-filter here — it would trap the fixed-position mobile menu inside the header. */
.ac-header { position: sticky; top: 0; z-index: 50; background: #fff; border-bottom: 1px solid var(--ac-border); }
.admin-bar .ac-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ac-header { top: 0; position: relative; } }
.ac-header__inner { min-height: 64px; }
.ac-brand { white-space: nowrap; display: inline-flex; align-items: center; gap: .6rem; color: var(--ac-text) !important; text-decoration: none !important; font-weight: 700; font-size: 1.15rem; letter-spacing: -.02em; }
.ac-brand svg { width: 34px; height: 34px; flex: none; }
.ac-brand p { margin: 0; }
.ac-nav .wp-block-navigation-item__content { font-size: .94rem; font-weight: 550; color: var(--ac-muted); padding: .45rem .7rem !important; border-radius: 999px; text-decoration: none; transition: background-color .15s, color .15s; }
.ac-nav .wp-block-navigation-item__content:hover { color: var(--ac-text); background: var(--ac-surface); }
.ac-nav .wp-block-navigation-item__content[aria-current="page"] { color: var(--ac-accent-ink); background: var(--ac-accent-soft); }
.ac-nav .wp-block-navigation__container { gap: .15rem !important; }
.ac-nav .wp-block-navigation__responsive-container.is-menu-open { padding: 1.25rem; }
.ac-nav .is-menu-open .wp-block-navigation__responsive-container-content, .ac-nav .is-menu-open .wp-block-navigation__container { align-items: flex-start !important; }
.ac-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: .35rem !important; }
.ac-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { font-size: 1.15rem; padding: .7rem 1rem !important; }
.ac-nav .wp-block-navigation__responsive-container-open, .ac-nav .wp-block-navigation__responsive-container-close { padding: .5rem; border-radius: 10px; }
.ac-nav .wp-block-navigation__responsive-container-open:hover { background: var(--ac-surface); }

/* Use the compact (hamburger) menu up to 1080px so the six links never wrap onto two lines. */
@media (min-width: 600px) and (max-width: 1080px) {
	.ac-nav .wp-block-navigation__responsive-container-open:not(.always-shown) { display: flex; }
	.ac-nav .wp-block-navigation__responsive-container:not(.hidden-by-default):not(.is-menu-open) { display: none; }
	.ac-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-close { display: flex; }
	.ac-nav .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { flex-direction: column; align-items: flex-start; }
}

/* ---------- Page header ---------- */
.ac-crumbs { font-size: .85rem; color: var(--ac-muted); margin: 0 0 .5rem; }
.ac-crumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; justify-content: center; gap: .4rem; }
.ac-crumbs li + li::before { content: "›"; margin-right: .4rem; color: #a3a9b8; }
.ac-crumbs a { color: var(--ac-muted); text-decoration: none; }
.ac-crumbs a:hover { color: var(--ac-accent-ink); text-decoration: underline; }
.ac-page-title { letter-spacing: -.03em; }
.ac-lead { color: var(--ac-muted); font-size: 1.1rem; max-width: 46rem; margin-inline: auto; }

/* ---------- Content ---------- */
.ac-content h2 { letter-spacing: -.02em; margin-top: 2.6em; }
.ac-content h3 { letter-spacing: -.01em; margin-top: 1.8em; }
.ac-content > .act-tool + h2, .ac-content > .wp-block-group.alignwide + h2 { margin-top: 2em; }
.ac-content p, .ac-content li { line-height: 1.7; }
.ac-content ol li, .ac-content ul li { margin-bottom: .35em; }
.ac-content .wp-block-details { border: 1px solid var(--ac-border); border-radius: 14px; padding: .9rem 1.15rem; margin-block: .65rem; background: #fff; }
.ac-content .wp-block-details summary { font-weight: 650; cursor: pointer; list-style-position: outside; }
.ac-content .wp-block-details[open] summary { margin-bottom: .5rem; }
.ac-content .wp-block-details p { margin: .4rem 0 0; color: #2d3548; }
.ac-tools-grid { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 230px), 1fr)); gap: 1rem; }
.ac-tool-card { border: 1px solid var(--ac-border); border-radius: 16px; padding: 1.15rem 1.2rem !important; background: #fff; transition: border-color .15s, box-shadow .15s, transform .15s; position: relative; }
.ac-tool-card:hover { border-color: #c7cbf8; box-shadow: 0 8px 24px rgba(19, 26, 44, .07); }
.ac-tool-card h3 { margin: 0 0 .3rem !important; font-size: 1.05rem !important; }
.ac-tool-card h3 a { color: var(--ac-text); text-decoration: none; }
.ac-tool-card h3 a::after { content: ""; position: absolute; inset: 0; border-radius: inherit; }
.ac-tools-grid > * { margin: 0 !important; }
.ac-tool-card > * { margin-top: 0; }
.ac-tool-card p { margin: 0; color: var(--ac-muted); font-size: .94rem; line-height: 1.55 !important; }
.ac-features { display: grid !important; grid-template-columns: repeat(auto-fill, minmax(min(100%, 240px), 1fr)); gap: 1rem 1.5rem; }
.ac-features > * { margin: 0 !important; }
.ac-features h3 { font-size: 1rem !important; margin: 0 0 .25rem !important; }
.ac-features p { margin: 0; color: var(--ac-muted); font-size: .95rem; }
.ac-callout { background: var(--ac-surface); border-radius: 14px; padding: 1rem 1.25rem !important; border: 1px solid var(--ac-border); }
.ac-callout p { margin: 0; }
.ac-content table { border-collapse: collapse; width: 100%; font-size: .95rem; }
.ac-content table th, .ac-content table td { border: 1px solid var(--ac-border); padding: .6rem .8rem; text-align: left; }
.ac-content table thead th { background: var(--ac-surface); }

/* ---------- Footer ---------- */
.ac-footer { border-top: 1px solid var(--ac-border); background: var(--ac-surface); }
.ac-footer h2 { font-size: .8rem !important; text-transform: uppercase; letter-spacing: .06em; color: var(--ac-muted); margin: 0 0 .8rem !important; font-weight: 700; }
.ac-footer ul { list-style: none; margin: 0; padding: 0; }
.ac-footer li { margin: 0 0 .5rem; }
.ac-footer a { color: var(--ac-text); text-decoration: none; font-size: .95rem; }
.ac-footer a:hover { color: var(--ac-accent-ink); text-decoration: underline; }
.ac-footer__about { color: var(--ac-muted); font-size: .94rem; max-width: 22rem; line-height: 1.6; }
.ac-footer__bottom { border-top: 1px solid var(--ac-border); color: var(--ac-muted); font-size: .85rem; }
.ac-footer__bottom p { margin: 0; }
