/* The native blocks keep the prototype's visual system and normal editor controls. */
:root {
  --paper: var(--wp--preset--color--charcoal);
  --ink: var(--wp--preset--color--ivory);
  --gold: var(--wp--preset--color--gold);
  --serif: var(--wp--preset--font-family--cormorant);
  --sans: var(--wp--preset--font-family--dm-sans);
}
.wp-site-blocks { padding: 0; }
/* Keep keyboard-focused controls above the floating arrow and mobile phone bar. */
html { scroll-padding-bottom:90px; }
@media(max-width:900px) { html { scroll-padding-bottom:calc(150px + env(safe-area-inset-bottom)); } }
.strup-back-to-top{position:fixed;right:24px;bottom:24px;z-index:30;margin:0;padding:0;transition:opacity .22s ease,transform .22s ease}
.strup-back-to-top[hidden]{display:none!important}
.strup-back-to-top .wp-block-button .wp-block-button__link{display:inline-flex;align-items:center;justify-content:center;width:50px;height:50px;min-height:50px;padding:0;border:1px solid var(--gold);border-radius:50%;background:var(--paper);color:var(--gold);font-size:0!important;transition:background-color .2s ease,color .2s ease}
.strup-back-to-top .wp-block-button__link::before{content:'';display:block;width:22px;height:22px;background:currentColor;mask:url('icons/arrow-up.svg') center/contain no-repeat;transition:transform .2s ease}
.strup-back-to-top .wp-block-button .wp-block-button__link:hover{background:var(--gold);color:var(--paper)}
.strup-back-to-top .wp-block-button__link:hover::before{transform:translateY(-2px)}
@starting-style{.strup-back-to-top{opacity:0;transform:translateY(8px)}}
@media(prefers-reduced-motion:reduce){.strup-back-to-top,.strup-back-to-top .wp-block-button__link,.strup-back-to-top .wp-block-button__link::before{transition:none;transform:none}}
#poczatek:focus{outline:none}
@media(max-width:900px){.strup-back-to-top{right:16px;bottom:calc(80px + env(safe-area-inset-bottom))}}
.wp-site-blocks > *, .wp-block-post-content > *, .wp-block-template-part { margin-block: 0; }
.wp-block-template-part { display: contents; }
.wp-block-post-content, main#tresc { margin: 0; }
.wp-block-group > :where(p, h1, h2, h3, h4, h5, h6) { margin-block-start: 0; }
.wp-block-image { margin: 0; }
.wp-block-image img { display: block; }
.hero-photo img { width: 100%; height: 100%; object-fit: cover; object-position: inherit; }
.wp-block-icon.icon { width: 24px; height: 24px; flex-shrink: 0; }
.wp-block-icon.icon svg { display: block; width: 100%; height: 100%; }
.wp-block-icon.icon svg.phosphor-icon { fill:currentColor; stroke:none; }
.strup-inline-link { margin: 0; }
.cemetery-jumps .strup-inline-link a { display:flex; align-items:center; width:100%; min-height:48px; padding:12px 0; border-bottom:1px solid var(--line); font-size:16px; }
.cemetery-jumps > .wp-block-paragraph:first-child { margin-bottom:14px; font-size:14px; font-weight:600; }
.service-navigation .strup-inline-link a { display:block; padding:12px 0; min-height:48px; border-bottom:1px solid var(--line); font-size:16px; line-height:1.7; }
.service-navigation h2 { margin-bottom:12px; font:600 16px/1.5 var(--sans); }
.service-navigation .strup-inline-link a[aria-current="page"] { color:var(--gold); font-weight:600; }
.service-navigation .strup-inline-link a:hover { text-decoration:none; text-underline-offset:4px; }
.service-navigation .strup-inline-link .all-services { display:flex; justify-content:space-between; align-items:center; }
.service-navigation .all-services::after { content:""; display:block; width:18px; height:18px; flex:none; background:currentColor; mask:url('./icons/arrow.svg') center/contain no-repeat; }
.service-source br { display:none; }
/* Flow blocks reset generic margins; retain the prototype's text rhythm in these sections. */
.about-copy > h2, .flower-section > .wp-block-group > h2, .service-contact > h2 { margin-bottom:24px; }
.about-copy > p:not(.strup-inline-link), .flower-section > .wp-block-group > p:not(.strup-inline-link),
.service-contact > p:not(.strup-inline-link), .first-help-inner > .wp-block-group > p { margin-bottom:22px; }
.history-layout > .wp-block-group > h2, .cemetery-group > h2,
.service-extras > h2, .flower-note > h2, .service-area > h2,
.cemetery-intro > .wp-block-group:first-child > h2, .guide-aside > h2,
.faq > h2, .contact-layout + .section > h2 { margin-bottom:24px; }
.history-layout > .wp-block-group > p:not(.strup-inline-link),
.cemetery-card > p:not(.cemetery-alias):not(.strup-inline-link),
.service-extras > p:not(.strup-inline-link), .flower-note > p, .service-area > p:not(.strup-inline-link),
.cemetery-intro > .wp-block-group:first-child > p:not(.strup-inline-link), .cemetery-note > p.wp-block-paragraph,
.guide-aside > p:not(.strup-inline-link), .faq details > p.wp-block-paragraph, .service-text-section > p.wp-block-paragraph,
.service-article > .service-source, .contact-main > p:not(.strup-inline-link),
.section-top > p.wp-block-paragraph, .section-top > .wp-block-group > p:not(.strup-inline-link) { margin-bottom:22px; }
.guide-step > .wp-block-group > p { margin-bottom:10px; }
.cemetery-card > .cemetery-alias + p { color:var(--ink); font-weight:500; }
.strup-link-card { position: relative; }
.strup-card-link::after { content: ""; position: absolute; inset: 0; }
.strup-card-link:focus-visible { outline-offset: 6px; }
.brand-words { display: flex; flex-direction: column; gap: 0; }
.brand-mark, .brand-subtitle, .brand-name { margin: 0; }
.brand .wp-block-site-title { font-family: var(--serif); font-weight: 400; line-height: 1; }
.brand-subtitle { font: 400 8px/1.4 var(--sans); letter-spacing: 1.8px; text-transform: uppercase; margin-top: 10px; }
.strup-buttons { margin: 0; gap: 0; }
.wp-block-button .wp-block-button__link { font: inherit; border-radius: 0; text-decoration: none; }
.wp-block-button.button { padding: 0; border: 0; background: transparent; min-height: 0; }
.wp-block-button.button > a { display: inline-flex; align-items: center; min-height: 52px; padding: 14px 22px; font-size: inherit; background: var(--gold); color: #152028; }
.wp-block-button.outline > a { background: transparent; color: var(--ink); border: 1px solid var(--control-line); }
.wp-block-button.header-phone > a, .wp-block-button.big-phone > a, .wp-block-button.footer-tel > a,
.wp-block-button.contact-number > a, .wp-block-button.utility-phone > a, .wp-block-button.strup-plain-button > a,
.wp-block-button.mobile-call > a { padding: 0; background: transparent; color: inherit; border: 0; }
.wp-block-button.header-phone > a { display: flex; flex-direction: column; align-items: flex-start; gap: 3px; font-size: 12px; }
.wp-block-button.header-phone strong, .wp-block-button.header-phone b { display: block; font-size: 17px; }
.wp-block-button.big-phone > a, .wp-block-button.contact-number > a, .wp-block-button.footer-tel > a { font: inherit; }
.wp-block-button.strup-plain-button > a { text-align: start; }
.wp-block-button.button > a { gap:12px; }
.wp-block-button.button > a[href^="tel:"]::before, .wp-block-button.header-phone > a::before,
.wp-block-button.big-phone > a::before, .wp-block-button.contact-number > a::before,
.wp-block-button.mobile-call > a::before { content:""; display:inline-block; width:18px; height:18px; flex:none; background:currentColor; mask:url('./icons/phone.svg') center/contain no-repeat; }
.wp-block-button.header-phone > a { position:relative; padding-left:32px; }
.wp-block-button.header-phone > a::before { position:absolute; left:0; top:50%; transform:translateY(-50%); width:23px; height:23px; color:var(--gold); }
.wp-block-button.big-phone > a, .wp-block-button.contact-number > a, .wp-block-button.mobile-call > a { display:inline-flex; align-items:center; gap:16px; }
.wp-block-button.big-phone > a::before, .wp-block-button.contact-number > a::before { width:26px; height:26px; }
.strup-inline-link .text-link::after { content:""; display:block; width:18px; height:18px; background:currentColor; mask:url('./icons/arrow.svg') center/contain no-repeat; }
.office .strup-inline-link a { display:inline-flex; align-items:center; gap:18px; }
.office .strup-inline-link a::after { content:""; display:block; width:18px; height:18px; flex:none; background:currentColor; mask:url('./icons/navigation-arrow.svg') center/contain no-repeat; }
.wp-block-button.utility-phone > a { display: inline-flex; gap: 12px; align-items: center; font-size: 13px; }
.mobile-call-wrap { display:none !important; margin:0; }
/* A modal menu must remain above floating page actions, including in landscape. */
html.has-modal-open .mobile-call-wrap,
html.has-modal-open .strup-back-to-top { visibility:hidden; }
.header .wp-block-navigation:not(.has-background) .wp-block-navigation__responsive-container.is-menu-open { background:var(--paper); color:inherit; }
.hero-note::before, .utility-phone > a::before { content:""; display:block; width:5px; height:5px; border-radius:50%; background:var(--gold); flex:none; }
.gallery-item figcaption { display: flex; justify-content: space-between; font-size: 16px; line-height:1.7; padding: 18px 0; margin: 0; border-bottom: 1px solid var(--line); color: var(--ink); }
.flower-gallery .wp-block-image img { width: 100%; }
.flower-gallery > .wp-lightbox-container { isolation:isolate; }
.flower-gallery > .wp-lightbox-container .lightbox-trigger { width:44px; height:44px; min-width:44px; min-height:44px; padding:10px; }
/* The thumbnail crop does not constrain the native dialog's full photograph. */
body .wp-lightbox-overlay .lightbox-image-container { width:calc(100vw - 80px); height:calc(100dvh - 80px); }
.wp-lightbox-overlay .lightbox-image-container .wp-block-image { width:100%; height:100%; }
.wp-lightbox-overlay img { width:100% !important; height:100% !important; min-width:0 !important; min-height:0 !important; aspect-ratio:auto; object-fit:contain !important; object-position:center; }
@media(max-width:680px) {
  body .wp-lightbox-overlay .lightbox-image-container { width:calc(100vw - 48px); height:calc(100dvh - 96px); }
}
@keyframes strup-lightbox-in { from { opacity:0; } to { opacity:1; } }
@keyframes strup-lightbox-out { from { opacity:1; } to { opacity:0; } }
@media(prefers-reduced-motion:no-preference) {
  body .wp-lightbox-overlay.zoom.active .lightbox-image-container { animation:strup-lightbox-in .2s ease-out both; }
  body .wp-lightbox-overlay.zoom.show-closing-animation:not(.active) .lightbox-image-container { animation:strup-lightbox-out .2s ease-in forwards; }
}
.steps > .strup-step { display:flex; gap:20px; padding:18px 0; border-bottom:1px solid var(--line); }
.steps > .strup-step:last-child { border:0; }
.steps > .strup-step > p { font:italic 28px var(--serif); color:var(--gold); margin:0; }
.steps .strup-step p { margin-bottom:0; }
.steps .strup-step h3 { margin:2px 0 6px; }
.guide-step > .wp-block-paragraph { align-self:flex-start; margin:0; font:italic 30px/1.2 var(--serif); color:var(--gold); }
.service-index-item > .strup-link-card { display:flex; align-items:flex-start; gap:24px; height:100%; padding:35px 0; }
.service-index-item .service-index-number { flex:none; min-width:30px; margin:0; font:italic 27px/1.2 var(--serif); color:var(--gold); }
@media(max-width:680px) {
  .guide-step > .wp-block-paragraph { font-size:26px; }
  .service-index-item > .strup-link-card { gap:18px; padding:27px 0; }
}
.about-image > figure > img { width:100%; aspect-ratio:1.25; object-fit:cover; filter:saturate(.65); }
.history-layout > figure > img { width:100%; aspect-ratio:1.2; object-fit:cover; }
.flower-section > figure > img:last-child { margin:0; display:block; }
.flower-section > figure:last-child { margin-top:45px; }
.hero-note > p, .hero-caption > p, .since > p { margin:0; color:inherit; font:inherit; }
.hero-caption > p:first-child { display:block; font:500 10px var(--sans); letter-spacing:1.8px; margin-bottom:8px; }
.since > p:last-child { display:block; max-width:130px; font:500 14px/1.5 var(--sans); letter-spacing:0; }
.trust-strip .container > .wp-block-group { display:flex; justify-content:center; align-items:center; gap:12px; border-right:1px solid var(--line); margin-block:24px; }
.trust-strip .container > .wp-block-group:first-child { justify-content:flex-start; }
.trust-strip .container > .wp-block-group:last-child { justify-content:flex-end; border:0; }
.trust-strip p { margin:0; font-size:14px; line-height:1.5; }
.utility p { margin:0; color:inherit; font:inherit; }
.utility .wp-block-buttons { margin:0; }
.utility-phone strong { font-weight:500; white-space:nowrap; }
.faq summary::after { content: "+"; color: var(--gold); font-size: 22px; }
.faq details[open] > summary::after { content: "−"; }
.header nav.site-navigation { display: flex; position: static; top: auto; padding: 0; border: 0; box-shadow: none; background: transparent; }
.header .wp-block-navigation__container { gap: 24px; }
.header .wp-block-navigation a { font-size: 14px; }
.header .wp-block-navigation .current-menu-ancestor > a::after { right:0; }
.header .wp-block-navigation__responsive-container-open { width:44px; height:44px; justify-content:center; align-items:center; border:1px solid var(--control-line); }
.header .wp-block-navigation__responsive-container.is-menu-open { background: var(--paper); color: var(--ink); padding: 32px; }
.header .wp-block-navigation__responsive-container.is-menu-open a { font-size: 20px; padding-block: 12px; }
.privacy-link { margin: 0; }
@media (min-width: 1101px) {
  .site-navigation .wp-block-navigation__responsive-container-open:not(.always-shown) { display: none !important; }
  .site-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display: block !important; }
}
@media (max-width: 900px) {
  .mobile-call-wrap { display:flex !important; }
  .mobile-call-wrap .wp-block-button.mobile-call { position:fixed; inset:auto 0 0; z-index:1000; width:100%; min-height:64px; display:flex; align-items:center; justify-content:center; margin:0; padding:0; border-radius:0; border:0; border-top:1px solid var(--control-line); background:var(--paper); color:var(--ink); box-shadow:0 -4px 18px #0003; }
  .mobile-call-wrap .wp-block-button.mobile-call > a { display:flex; justify-content:center; align-items:center; gap:10px; width:100%; min-height:64px; margin:0; padding:16px 20px calc(16px + env(safe-area-inset-bottom)); font:600 16px/1.4 var(--sans); border-radius:0; background:transparent; color:inherit; }
  .mobile-call-wrap .wp-block-button.mobile-call small { font-size:12px; font-weight:500; padding:3px 7px; margin-left:2px; border:1px solid var(--line); background:var(--cream); }
  footer { padding-bottom:calc(88px + env(safe-area-inset-bottom)); }
  .header .wp-block-navigation__container { gap: 0; }
  .about-image > figure > img { aspect-ratio:.85; }
  .flower-section > figure:last-child { display:none; }
  .steps > .strup-step { gap:12px; }
}
@media (max-width:1100px) {
  .site-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none!important; }
  .site-navigation .wp-block-navigation__responsive-container-open { display:flex!important; }
  .utility .container > p { display:none; }
  .header-inner > .wp-block-buttons:has(.header-phone) { display:none; }
}
@media (max-width: 680px) {
  .brand-subtitle { font-size: 6px; letter-spacing: 1.2px; }
  .wp-block-button.button > a { min-height:48px; padding:14px 18px; }
  .wp-block-button.utility-phone > a { font-size:13px; gap:6px; }
  .about-image > figure > img, .history-layout > figure > img { aspect-ratio:1.4; }
  .steps > .strup-step { gap:20px; padding-block:20px; }
  .trust-strip .container > .wp-block-group { justify-content:flex-start; border:0; gap:7px; margin-block:10px; align-items:flex-start; }
  .trust-strip .container > .wp-block-group:nth-child(2n) { padding-left:10px; }
  .trust-strip p { font-size:14px; line-height:1.65; }
  .trust-strip .wp-block-icon.icon { width:17px; height:17px; }
  .hero-actions > .wp-block-buttons, .first-help .strup-buttons, .guide-aside .strup-buttons { width:100%; }
  .hero-actions .wp-block-button.button, .hero-actions .wp-block-button.button > a { width:100%; }
}
@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto !important; }
  .text-link .icon, .service-index-more .icon, .gallery-item img,
  .wp-block-button__link, .header nav a::after { transition:none; }
  .text-link:hover .icon, .service-index-item:hover .icon,
  .wp-block-button__link:hover { transform:none; }
}

/* One readable scale across phone, tablet and desktop. */
main .wp-block-paragraph, main .wp-block-list li { font-size:16px; line-height:1.75; }
main .wp-block-details > summary { font-size:16px; line-height:1.65; }
main .wp-block-details .wp-block-paragraph { font-size:16px; line-height:1.75; }
.hero .wp-block-paragraph, .subhero > .wp-block-paragraph { font-size:18px; line-height:1.75; }
.hero .hero-note p { font-size:14px; }
.breadcrumb { font-size:14px; line-height:1.7; }
.breadcrumb .wp-block-paragraph, .service-source, .service-article .service-source { font-size:14px; }
.trust-strip .wp-block-paragraph { font-size:14px; }
.text-link, .section-top .text-link, .hero-actions .text-link,
.office a, .service-index-more { font-size:16px; min-height:44px; }
.hero-actions .wp-block-button > a { font-size:16px; }
.service-article p { max-width:68ch; }
.footer-grid p, .footer-grid .strup-inline-link a { font-size:16px; line-height:1.75; }
.footer-grid :is(h3,.footer-label) { font-size:16px; line-height:1.5; }
.footer-bottom, .footer-bottom p { font-size:14px; line-height:1.65; }
.footer-grid .strup-plain-button > a { font:400 18px/1.6 var(--sans); }
.footer-grid .strup-inline-link a { display:inline-flex; align-items:center; min-height:44px; }
.since { padding:16px 20px; }
.since > p:first-child { font:500 42px/1 var(--serif); }
@media(min-width:901px) {
  .hero-photo { width:69%; }
  .hero::before { content:""; position:absolute; inset:0; z-index:1; pointer-events:none; background:linear-gradient(90deg,#152028 0%,#152028 49%,#152028eb 53%,#15202866 68%,transparent 85%); }
  .hero-inner { z-index:2; }
  .hero-copy { max-width:calc(50% - 32px); padding-right:0; background:transparent; }
  .hero h1 { font-size:clamp(42px,5.1vw,74px); }
}
@media(min-width:901px) and (max-width:1100px) {
  .hero-actions { align-items:flex-start; flex-direction:column; gap:18px; }
}
@media(max-width:680px) {
  main .wp-block-paragraph, main .wp-block-list li { font-size:18px; }
  main .wp-block-details > summary { font-size:18px; }
  main .wp-block-details .wp-block-paragraph { font-size:18px; }
  .breadcrumb .wp-block-paragraph, .hero .hero-note p, .service-article .service-source { font-size:14px; }
}

/* Quiet link states: no underlines; icons, weight and focus identify actions. */
.wp-site-blocks a, .bb-obituaries a,
.wp-site-blocks a:hover, .bb-obituaries a:hover { text-decoration:none; }
.text-link, .service-index-more, .light-link { border-bottom:0; padding-bottom:0; }
.text-link, .service-index-more { gap:12px; }
.text-link:hover, .service-index-more:hover { color:var(--gold); }
.text-link::after, .office .strup-inline-link a::after { transition:transform .18s ease; }
.text-link:hover::after, .office .strup-inline-link a:hover::after { transform:translateX(3px); }
.guide-step a, .service-source a, .cemetery-source, .cemetery-note a { color:var(--gold); font-weight:600; text-decoration:none; }
.guide-step a:hover, .service-source a:hover, .cemetery-source:hover, .cemetery-note a:hover { color:var(--ink); }
@media(prefers-reduced-motion:reduce) {
 .text-link::after, .office .strup-inline-link a::after { transition:none; transform:none; }
}

/* Link affordances use a small directional icon and a clear keyboard focus. */
.header nav a::after { content:none; }
.header nav a:hover, .header nav a[aria-current],
.header .current-menu-ancestor > a { color:var(--gold); }
.guide-step a::after, .service-source a::after, .cemetery-source::after, .cemetery-note a::after {
 content:""; display:inline-block; width:1em; height:1em; margin-inline-start:.3em; vertical-align:-.12em;
 background:currentColor; mask:url('./icons/arrow.svg') center/contain no-repeat;
}
.guide-step a[href^="tel:"]::after { mask-image:url('./icons/phone.svg'); }
.wp-site-blocks a:focus-visible, .bb-obituaries a:focus-visible,
.bb-obituaries button:focus-visible, .bb-share > summary:focus-visible {
 outline:2px solid var(--gold); outline-offset:5px;
}
.hero-note::before, .utility-phone > a::before {
 width:16px; height:16px; border-radius:0; background:currentColor;
 mask:url('./icons/clock.svg') center/contain no-repeat;
}
.utility-phone > a::before { mask-image:url('./icons/phone.svg'); }
.wp-block-button.button > a:not([href^="tel:"])::after {
 content:""; display:block; width:18px; height:18px; flex:none; background:currentColor;
 mask:url('./icons/arrow.svg') center/contain no-repeat;
}

/* Keep inline service links recognisable after removing underlines. */
.service-text-section p a { color:var(--gold); font-weight:600; }
.service-text-section p a::after { content:""; display:inline-block; width:.85em; height:.85em; margin-inline-start:.25em; vertical-align:-.1em; background:currentColor; mask:url('./icons/arrow.svg') center/contain no-repeat; }
.service-text-section p a:hover { color:var(--ink); }
.contact-number { border-bottom:0; padding-bottom:0; }
.contact-extra h2 { font:500 18px/1.5 var(--sans); }
.contact-extra a { font-size:16px; line-height:1.75; }
.contact-extra small, .service-contact small { font-size:14px; line-height:1.6; }

/* Labels stay readable without adding topics to the heading outline. */
p.service-title,p.first-help-lead,p.contact-band-title{font-family:var(--wp--preset--font-family--lora);font-weight:400;line-height:1.25;letter-spacing:-.025em}
.service-home-links .service .service-title{font-size:24px;margin-top:12px;margin-bottom:10px}
@media(max-width:680px){.service-home-links .service .service-title{line-height:1.07}}
/* Contact photographs and the two directory recommendations. */
.office-grid { align-items:start; }
.office.office-with-photo { display:grid; grid-template-columns:56px minmax(0,1fr); }
.office-with-photo .office-photo { grid-column:1/-1; margin:16px 0 0; }
.office-photo img { display:block; width:100%; height:auto; }
.footer-recommendations { display:flex; align-items:center; flex-wrap:wrap; gap:24px 48px; padding-block:24px; }
.footer-recommendations .footer-label { margin:0; font-size:16px; color:var(--ink); }
.recommendation-logos { gap:24px 40px; }
.recommendation-logos .wp-block-image { margin:0; }
.recommendation-logos a { display:flex; align-items:center; min-height:44px; }
.recommendation-logos img { width:240px; height:auto; }
@media(max-width:680px) {
 .footer-recommendations { align-items:flex-start; gap:16px; }
 .recommendation-logos { flex-direction:column; align-items:flex-start; gap:16px; }
 .recommendation-logos img { width:min(240px,100%); }
}
