/* DRP Site Frame – header, panels, mobile menu, bottom bar, breadcrumbs, footer.
   Colours come from the GeneratePress Global Colors (var(--slug)); fallbacks match playbook §3a. */

:root { --drpf-tb: 36px; --drpf-logo: 72px; --drpf-h: calc(var(--drpf-logo) + 8px); --drpf-hc: var(--drpf-h); }
@media (max-width: 1359px) { :root { --drpf-tb: 0px; --drpf-logo: 56px; } }
html { scroll-padding-top: calc(var(--wp-admin--admin-bar--height, 0px) + var(--drpf-hc) + 16px); }

/* Masthead (top bar + main header): fixed at every width, with a spacer of the same height so nothing jumps.
   The header keeps one height. The top bar moves up exactly as far as the page has scrolled (frame.js, no animation),
   so it looks as if it scrolls away with the page and never pops back on small scroll changes. */
.drpf-masthead { position: fixed; top: var(--wp-admin--admin-bar--height, 0px); left: 0; right: 0; z-index: 100; will-change: transform; }
.drpf-masthead .drpf-w { max-width: 1440px; }
.drpf-spacer { height: calc(var(--drpf-tb) + var(--drpf-h)); }

.drpf-w { max-width: 1240px; margin: 0 auto; padding-left: 32px; padding-right: 32px; box-sizing: border-box; }
.drpf [hidden] { display: none !important; }
.drpf a:focus-visible, .drpf button:focus-visible { outline: 2px solid var(--navy, #2F4570); outline-offset: 3px; border-radius: 2px; }

/* Top bar */
.drpf-topbar { height: var(--drpf-tb); overflow: hidden; box-sizing: border-box; background: var(--navy-deep, #111A2B); color: var(--topbar-text, #B0B8C8); font-size: 13px; line-height: 1.4; }
.drpf-topbar-in { display: flex; justify-content: space-between; align-items: center; gap: 24px; height: 100%; }
.drpf-topbar-l, .drpf-topbar-r { display: flex; align-items: center; gap: 20px; }
.drpf-topbar a { color: var(--white, #FFFFFF); text-decoration: none; }
.drpf-topbar a:hover { color: var(--topbar-text, #B0B8C8); }
.drpf-topbar .drpf-lang a { color: var(--topbar-text, #B0B8C8); }
.drpf-topbar .drpf-lang a:hover, .drpf-topbar .drpf-lang .is-current { color: var(--white, #FFFFFF); }

/* Main header */
/* Frosted glass: the page shows through, blurred. Only the shadow changes on scroll; nothing resizes. */
.drpf-header { position: relative; background: linear-gradient(180deg, rgba(255, 255, 255, 0.86), rgba(251, 248, 244, 0.78)); -webkit-backdrop-filter: blur(24px) saturate(160%); backdrop-filter: blur(24px) saturate(160%); border-bottom: 1px solid rgba(15, 15, 16, 0.07); box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7); transition: box-shadow 0.3s ease; }
.drpf-header.is-compact { box-shadow: inset 0 1px 0 rgba(255, 255, 255, 0.7), 0 12px 32px -18px rgba(15, 15, 16, 0.35); }
.drpf-bar { display: flex; align-items: center; justify-content: space-between; gap: 24px; height: var(--drpf-h); }
.drpf-logo { display: block; line-height: 0; flex: 0 0 auto; }
.drpf .drpf-logo-img { height: var(--drpf-logo); width: auto; max-width: none; display: block; }

.drpf-nav ul { display: flex; gap: 20px; list-style: none; margin: 0; padding: 0; white-space: nowrap; }
.drpf-nav li { margin: 0; }
.drpf-nav a, .drpf-pill { display: inline-block; font: inherit; font-size: 14px; font-weight: 300; letter-spacing: 0.03em; line-height: 1.4; color: var(--ink, #17191C); background: none; border: 0; border-bottom: 1px solid transparent; padding: 10px 0 4px; margin: 0; cursor: pointer; text-decoration: none; border-radius: 0; }
.drpf-nav a:hover, .drpf-pill:hover { color: var(--navy, #2F4570); background: none; }
.drpf-pill[aria-expanded="true"], .drpf-nav li.is-current > a, .drpf-nav li.is-current > .drpf-pill { border-bottom-color: var(--navy, #2F4570); color: var(--ink, #17191C); }

.drpf-actions { display: flex; align-items: center; gap: 6px; }
.drpf-btn { display: inline-flex; align-items: center; justify-content: center; box-sizing: border-box; min-height: 44px; padding: 11px 18px; border-radius: 8px; background: var(--navy, #2F4570); color: var(--white, #FFFFFF) !important; font-size: 13px; font-weight: 500; letter-spacing: 0.06em; line-height: 1; text-decoration: none; transition: background-color 0.15s ease; }
.drpf-btn:hover { background: var(--navy-deep, #111A2B); }
/* Menu items and ΡΑΝΤΕΒΟΥ: one style, 15px capitals, regular weight, spaced like the logo (decided 17 Oct 2026). */
.drpf .drpf-nav a, .drpf .drpf-nav .drpf-pill, .drpf .drpf-book { font-family: "Commissioner", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-size: 15px; font-weight: 400; line-height: 1; letter-spacing: 0.1em; text-transform: uppercase; }
.drpf .drpf-nav a, .drpf .drpf-nav .drpf-pill { padding: 12px 0 8px; color: var(--ink, #17191C); }
.drpf .drpf-nav .drpf-pill::after { content: ""; display: inline-block; width: 0.42em; height: 0.42em; margin: 0 0 0.22em 0.5em; border-right: 1px solid currentColor; border-bottom: 1px solid currentColor; transform: rotate(45deg); opacity: 0.55; vertical-align: middle; }
.drpf .drpf-book { min-height: 46px; padding: 0 20px; }
.drpf-book { margin-left: 6px; }
/* Brand slot: logo link on desktop; below 1360px the logo is the menu button and becomes ✕ while the menu is open. */
.drpf-brand { display: flex; align-items: center; flex: 0 0 auto; }
.drpf-logo-btn, .drpf-close, .drpf-lang-head { display: none; }
.drpf .drpf-logo-btn { margin: 0; padding: 6px 0; border: 0; border-radius: 0; background: none; box-shadow: none; cursor: pointer; }
.drpf .drpf-close { align-items: center; justify-content: center; width: 44px; height: 44px; margin: 0 0 0 -10px; padding: 0; border: 0; border-radius: 0; background: none; box-shadow: none; color: var(--ink, #17191C); cursor: pointer; }
.drpf .drpf-logo-btn:hover, .drpf .drpf-close:hover { background: none; color: var(--navy, #2F4570); }

/* Pillar panels (desktop) */
.drpf-panel { position: absolute; left: 0; right: 0; top: 100%; max-height: calc(100vh - var(--drpf-h) - var(--drpf-tb) - var(--wp-admin--admin-bar--height, 0px)); overflow-y: auto; overscroll-behavior: contain; background: var(--white, #FFFFFF); border-top: 1px solid #ECECEC; box-shadow: 0 18px 40px rgba(15, 15, 16, 0.10); }
.drpf-panel-grid { display: grid; grid-template-columns: repeat(var(--drpf-cols, 3), minmax(0, 1fr)); gap: 56px; padding-top: 36px; padding-bottom: 32px; }
.drpf-col { min-width: 0; }
.drpf-hub { display: flex; align-items: center; gap: 10px; min-height: 44px; font-family: "Noto Serif Display", Georgia, serif; font-weight: 500; font-size: 22px; letter-spacing: 0.06em; line-height: 1.1; color: var(--navy, #2F4570); text-decoration: none; }
.drpf-hub:hover { color: var(--navy-deep, #111A2B); }
.drpf-hubdesc { margin: 0 0 14px; font-size: 13px; line-height: 1.5; color: var(--text-2, #554D46); }
.drpf-items { list-style: none; margin: 0; padding: 10px 0 0; border-top: 1px solid var(--line, #D8CCBF); }
.drpf-items li { margin: 0; }
.drpf-items a { display: block; padding: 7px 0; font-size: 15px; line-height: 1.4; color: var(--ink, #17191C); text-decoration: none; }
.drpf-items a:hover, .drpf-items a[aria-current="page"] { color: var(--navy, #2F4570); }
/* Featured procedures are no longer set in bold (decided 16 Oct 2026); first position is the emphasis. */
.drpf-card { min-width: 0; background: var(--panel, #EEE8E1); border-radius: 12px; padding: 20px; }
.drpf-panel-foot { border-top: 1px solid #ECECEC; }
.drpf-panel-foot-in { display: flex; justify-content: space-between; gap: 16px; padding-top: 14px; padding-bottom: 14px; font-size: 13px; }
.drpf-panel-foot-in a { color: var(--navy, #2F4570); text-decoration: none; }
.drpf-panel-foot-in span { color: var(--muted, #6E655D); }
.drpf-dim { position: fixed; inset: 0; z-index: 90; background: rgba(15, 15, 16, 0.25); }

/* Breadcrumbs */
.drpf-crumbs { font-size: 13px; line-height: 1.5; color: var(--text-2, #554D46); padding: 12px 0; }
.drpf-crumbs p { margin: 0; }
.drpf-crumbs a { color: var(--text-2, #554D46); text-decoration: none; }
.drpf-crumbs a:hover { color: var(--navy, #2F4570); }

/* Mobile menu */
.drpf-mobile { position: fixed; top: var(--drpf-menu-top, 64px); left: 0; right: 0; bottom: 0; z-index: 99; border-top: 1px solid rgba(15, 15, 16, 0.08); overflow-y: auto; -webkit-overflow-scrolling: touch; background: var(--white, #FFFFFF); color: var(--ink, #17191C); font-weight: 300; line-height: 1.5; }
.drpf-mobile-nav { padding: 0 16px; }
.drpf-mobile-nav .drpf-row[aria-current="page"] { color: var(--navy, #2F4570); }
.drpf-row { display: flex; width: 100%; box-sizing: border-box; align-items: center; justify-content: space-between; min-height: 52px; margin: 0; padding: 0; border: 0; border-bottom: 1px solid #ECECEC; border-radius: 0; background: none; font: inherit; font-size: 17px; font-weight: 300; color: var(--ink, #17191C); text-align: left; text-decoration: none; cursor: pointer; }
.drpf-row:hover { background: none; color: var(--navy, #2F4570); }
.drpf-acc svg { transition: transform 0.2s ease; color: var(--ink, #17191C); }
.drpf-acc[aria-expanded="true"] { font-weight: 500; border-bottom-color: transparent; }
.drpf-acc[aria-expanded="true"] svg { transform: rotate(180deg); color: var(--navy, #2F4570); }
.drpf-acc-body { padding: 4px 0 12px; border-bottom: 1px solid #ECECEC; }
.drpf-acc-body .drpf-hub { font-size: 20px; padding-left: 12px; margin-top: 6px; }
.drpf-item { display: flex; align-items: center; min-height: 44px; padding-left: 24px; font-size: 15px; color: var(--ink, #17191C); text-decoration: none; }
.drpf-all { display: flex; align-items: center; min-height: 44px; padding-left: 12px; font-size: 14px; color: var(--navy, #2F4570); text-decoration: none; }
.drpf-mobile-foot { padding: 20px 16px 28px; }
.drpf-btn-block { display: flex; width: 100%; min-height: 52px; font-size: 14px; }
.drpf-mobile-links { display: flex; flex-wrap: wrap; gap: 12px 18px; margin-top: 18px; font-size: 14px; color: var(--text-2, #554D46); }
.drpf-mobile-links a { color: var(--ink, #17191C); text-decoration: none; }
html.drpf-lock, html.drpf-lock body { overflow: hidden; }

/* Bottom bar (mobile) */
.drpf-bottombar { display: none; }

/* Footer: practices · links · small print */
.drpf-footer { background: var(--navy-deep, #111A2B); color: var(--white, #FFFFFF); font-size: 14px; line-height: 1.6; padding: 56px 0 28px; }
.drpf-footer a { color: var(--topbar-text, #B0B8C8); text-decoration: none; }
.drpf-footer a:hover { color: var(--white, #FFFFFF); }
.drpf-footer p { margin: 0; }
.drpf-foot-practices { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px 56px; }
.drpf-clinic-name { margin-bottom: 6px !important; font-family: "Noto Serif Display", Georgia, serif; font-size: 22px; font-weight: 400; line-height: 1.15; color: var(--white, #FFFFFF); }
.drpf-footer .drpf-clinic-tel { color: var(--white, #FFFFFF); }
.drpf-footer .drpf-muted { color: var(--topbar-text, #B0B8C8); }
.drpf-clinic-map { display: inline-block; margin-top: 4px; }
.drpf-foot-links { display: flex; flex-wrap: wrap; gap: 8px 32px; margin-top: 40px; padding-top: 24px; border-top: 1px solid rgba(255, 255, 255, 0.12); font-size: 15px; }
.drpf-foot-links a { color: var(--white, #FFFFFF); }
.drpf-foot-links a:hover { color: var(--topbar-text, #B0B8C8); }
.drpf-foot-bottom { display: flex; flex-wrap: wrap; align-items: center; gap: 10px 24px; margin-top: 28px; padding-top: 20px; border-top: 1px solid rgba(255, 255, 255, 0.12); font-size: 13px; color: var(--topbar-text, #B0B8C8); }
.drpf-social { display: inline-flex; gap: 6px; }
.drpf-social a { display: inline-flex; align-items: center; justify-content: center; width: 32px; height: 32px; }
.drpf-legal { display: flex; flex-wrap: wrap; gap: 6px 18px; }
.drpf-footer .drpf-lang .is-current { color: var(--white, #FFFFFF); }
.drpf-foot-bottom .drpf-lang { margin-left: auto; }

/* Below 1360px the six items, My plan and ΡΑΝΤΕΒΟΥ don't fit on one line: menu button, bottom bar, no top bar, no panels */
@media (max-width: 1359px) {
	.drpf-topbar, .drpf-nav, .drpf-book, .drpf-panel, .drpf-dim { display: none !important; }
	.drpf-brand > a.drpf-logo { display: none; }
	.drpf-logo-btn { display: block; }
	.drpf .drpf-close { display: flex; }
	.drpf-lang-head { display: inline-flex; align-items: center; gap: 2px; font-size: 14px; letter-spacing: 0.04em; color: var(--muted, #6E655D); }
	.drpf-lang-head a { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; color: var(--muted, #6E655D); text-decoration: none; }
	.drpf-lang-head .is-current { display: inline-flex; align-items: center; min-height: 44px; padding: 0 4px; color: var(--ink, #17191C); font-weight: 500; }
	.drpf-bottombar { display: flex; gap: 8px; position: fixed; left: 0; right: 0; bottom: 0; z-index: 95; padding: 10px 16px calc(10px + env(safe-area-inset-bottom)); background: rgba(251, 248, 244, 0.70); -webkit-backdrop-filter: blur(14px) saturate(160%); backdrop-filter: blur(14px) saturate(160%); border-top: 1px solid rgba(255, 255, 255, 0.75); }
	.drpf-bottombar .drpf-btn { flex: 1 1 auto; }
	body.drpf { padding-bottom: 72px; }
	html.drpf-lock .drpf-bottombar { display: none; }
}
@supports not ((backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))) {
	.drpf-bottombar, .drpf-header { background: var(--surface, #FBF8F4); }
}
@media (prefers-reduced-transparency: reduce) {
	.drpf-bottombar, .drpf-header { background: var(--surface, #FBF8F4); -webkit-backdrop-filter: none; backdrop-filter: none; }
}
@media (max-width: 900px) {
	.drpf-w { padding-left: 16px; padding-right: 16px; }
}
@media (max-width: 640px) {
	.drpf-footer { padding-top: 40px; }
	.drpf-foot-practices { grid-template-columns: minmax(0, 1fr); gap: 24px; }
	.drpf-foot-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 16px; margin-top: 28px; }
	.drpf-foot-links a { display: flex; align-items: center; min-height: 40px; overflow-wrap: anywhere; }
	.drpf-foot-bottom { gap: 8px 16px; }
	.drpf-foot-bottom .drpf-lang { margin-left: 0; }
}
@media (prefers-reduced-motion: reduce) {
	.drpf-header, .drpf-acc svg, .drpf-btn { transition: none; }
}

/* WordPress admin bar scrolls away on phones (≤600px): frame.js keeps the masthead right under it, then at the very top. */
@media (max-width: 600px) {
	html { scroll-padding-top: calc(var(--drpf-hc) + 16px); }
}

/* GeneratePress button typography (uppercase, 13px, letter-spacing) must not reach the menu's own buttons. */
.drpf .drpf-pill, .drpf .drpf-row, .drpf .drpf-acc, .drpf .drpf-logo-btn, .drpf .drpf-close {
	text-transform: none;
	letter-spacing: normal;
	box-shadow: none;
}
.drpf .drpf-row, .drpf .drpf-acc { font-size: 17px; font-weight: 300; }
.drpf .drpf-acc[aria-expanded="true"] { font-weight: 500; color: var(--ink, #17191C); }

/* Cookie banner (17 Oct 2026): equal buttons, frosted card, above the phone bottom bar */
.drpf-consent { position: fixed; z-index: 120; left: 50%; transform: translateX(-50%); bottom: calc(20px + env(safe-area-inset-bottom)); width: min(560px, calc(100vw - 32px)); box-sizing: border-box; padding: 18px 20px; border-radius: 14px; background: rgba(251, 248, 244, 0.92); -webkit-backdrop-filter: blur(18px) saturate(160%); backdrop-filter: blur(18px) saturate(160%); border: 1px solid rgba(15, 15, 16, 0.10); box-shadow: 0 18px 40px rgba(15, 15, 16, 0.18); color: var(--ink, #17191C); font-size: 14px; line-height: 1.5; }
.drpf-consent p { margin: 0; }
.drpf-consent-title { font-weight: 500; margin-bottom: 4px !important; }
.drpf-consent-text a { color: var(--navy, #36383C); }
.drpf-consent-btns { display: grid; grid-template-columns: 1fr 1fr; gap: 10px; margin-top: 14px; }
.drpf .drpf-consent-btn { min-height: 44px; margin: 0; padding: 0 16px; border-radius: 8px; border: 1px solid var(--navy, #36383C); background: var(--navy, #36383C); color: #FFFFFF; font: inherit; font-size: 14px; font-weight: 500; letter-spacing: 0.04em; text-transform: none; cursor: pointer; box-shadow: none; }
.drpf .drpf-consent-btn:hover { background: var(--navy-deep, #0F0F10); border-color: var(--navy-deep, #0F0F10); color: #FFFFFF; }
.drpf .drpf-cookie-link { margin: 0; padding: 0; border: 0; background: none; color: inherit; font: inherit; text-transform: none; letter-spacing: normal; cursor: pointer; box-shadow: none; }
.drpf .drpf-cookie-link:hover { color: var(--white, #FFFFFF); background: none; text-decoration: underline; }
@media (max-width: 1359px) { .drpf-consent { bottom: calc(84px + env(safe-area-inset-bottom)); } }
.drpf-consent { font-family: "Commissioner", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-weight: 300; }
.drpf .drpf-bottombar .drpf-btn { font-family: "Commissioner", system-ui, -apple-system, "Segoe UI", Roboto, sans-serif; font-size: 15px; font-weight: 400; letter-spacing: 0.06em; }

/* 18 Oct 2026: iPad (Safari and Chrome, both Apple WebKit) let the fixed header slide away while scrolling.
   The header is now "sticky" at the top of the page, which iPadOS keeps in place natively; the spacer is no longer needed. */
.drpf-masthead { position: -webkit-sticky; position: sticky; will-change: auto; }
.drpf-spacer { display: none; }
