@import url("/assets/province-guide.css");

/* Castle entity page — restrained editorial design built on DESIGN.md tokens.
   Separate from provincial listings to avoid selector conflicts. */
body.reviewed-castle .province-heading{padding:44px 0 22px}
body.reviewed-castle .province-heading .container{max-width:1200px}
body.reviewed-castle .province-heading h1{font-size:clamp(3.1rem,6vw,6.3rem);line-height:1.01;max-width:1000px}
body.reviewed-castle .province-heading .province-lead{max-width:740px;line-height:1.72}
body.reviewed-castle .checked-date{font-size:.78rem;color:var(--muted);margin-top:16px}
body.reviewed-castle .crumbs{display:flex;align-items:center;gap:8px;flex-wrap:wrap;font-size:.79rem}
body.reviewed-castle .crumbs a{text-decoration:underline;text-underline-offset:3px}
body.reviewed-castle .visit-jumps{margin:25px 0 12px}
body.reviewed-castle .province-heading .castle-hero-photo{margin:25px 0 0;width:100%;max-width:none;padding:0}
body.reviewed-castle .province-heading .castle-hero-photo img{width:100%;max-height:520px;aspect-ratio:2/1;object-fit:cover}
body.reviewed-castle figure{margin-block:0}
body.reviewed-castle figure img{display:block;width:100%;height:auto}
body.reviewed-castle figure figcaption{margin:10px 0 0;font-size:.75rem;line-height:1.6;color:var(--muted)}
body.reviewed-castle figure figcaption a{text-decoration:underline;text-underline-offset:2px}
body.reviewed-castle .province-guide{padding-bottom:65px}
body.reviewed-castle .province-section{padding-top:70px;padding-bottom:20px}
body.reviewed-castle .province-section-head{max-width:1120px;grid-template-columns:minmax(0,1.25fr) minmax(0,.75fr);gap:52px;align-items:end}
body.reviewed-castle .province-section-head h2{font-size:clamp(2.5rem,4vw,4rem);line-height:1.08}
body.reviewed-castle .province-section-head>p{max-width:390px}
body.reviewed-castle .planning-copy{max-width:760px}
body.reviewed-castle .planning-copy>p{line-height:1.82}
body.reviewed-castle .castle-content-layout{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,.82fr);gap:clamp(28px,5vw,76px);align-items:start}
body.reviewed-castle .castle-content-layout .planning-copy{max-width:none}
body.reviewed-castle .castle-content-layout .castle-editorial-photo{margin:0;padding:0;max-width:none;min-width:0}
body.reviewed-castle .castle-content-layout .castle-editorial-photo img{aspect-ratio:4/5;object-fit:cover;max-height:560px}
body.reviewed-castle #geschiedenis{background:#ece8de;max-width:none;padding:72px max(24px,calc((100% - 1200px)/2)) 65px}
body.reviewed-castle #geschiedenis .planning-copy{max-width:790px;columns:initial}
body.reviewed-castle #geschiedenis .planning-copy h3{margin:38px 0 14px}
body.reviewed-castle #geschiedenis .planning-copy h3:first-child{margin-top:4px}
body.reviewed-castle #tickets .planning-copy{max-width:790px;background:var(--paper);border-left:3px solid var(--green);padding:25px 34px}
body.reviewed-castle #toegankelijkheid .castle-content-layout{grid-template-columns:minmax(0,1fr) minmax(0,.75fr)}
body.reviewed-castle #voor-je-bezoek{display:block;border-top:1px solid var(--line)}
body.reviewed-castle #voor-je-bezoek .planning-copy{max-width:760px}
body.reviewed-castle a:focus-visible{outline:3px solid var(--wine);outline-offset:3px}
@media(max-width:960px){
 body.reviewed-castle .province-section-head{grid-template-columns:1fr;gap:18px}
 body.reviewed-castle .province-section-head>p{max-width:720px}
 body.reviewed-castle .castle-content-layout,body.reviewed-castle #toegankelijkheid .castle-content-layout{grid-template-columns:1fr}
 body.reviewed-castle .castle-content-layout .castle-editorial-photo{max-width:720px}
 body.reviewed-castle .castle-content-layout .castle-editorial-photo img{aspect-ratio:16/10;max-height:440px}
}
@media(max-width:650px){
 body.reviewed-castle .province-heading{padding:28px 0 6px}
 body.reviewed-castle .province-heading h1{font-size:clamp(2.65rem,10vw,3.65rem)}
 body.reviewed-castle .province-heading .castle-hero-photo img{aspect-ratio:4/3;max-height:360px}
 body.reviewed-castle .province-section{padding-top:42px}
 body.reviewed-castle #geschiedenis{padding:42px 18px}
 body.reviewed-castle #tickets .planning-copy{padding:20px 22px}
 body.reviewed-castle .castle-content-layout .castle-editorial-photo img{aspect-ratio:4/3}
}

/* Visual QA: avoid an empty two-column slot when the source photograph cannot load. */
body.reviewed-castle .castle-access-note{max-width:790px;padding:25px 32px;background:#e8e1d5;border-left:4px solid var(--wine)}
body.reviewed-castle .castle-access-note .planning-copy{max-width:100%}
body.reviewed-castle .castle-access-note p:last-child{margin-bottom:0}
body.reviewed-castle #toegankelijkheid{padding-bottom:42px}
@media(max-width:650px){body.reviewed-castle .castle-access-note{padding:20px}}

/* Reading-flow correction: practical modules follow their headings, no float-like grid. */
body.reviewed-castle #tickets,
body.reviewed-castle #toegankelijkheid,
body.reviewed-castle #voor-je-bezoek{width:min(980px,calc(100% - 48px));margin-inline:auto;padding-top:52px}
body.reviewed-castle #tickets .province-section-head,
body.reviewed-castle #toegankelijkheid .province-section-head{display:block;max-width:850px;margin:0 0 24px}
body.reviewed-castle #tickets .province-section-head h2,
body.reviewed-castle #toegankelijkheid .province-section-head h2{max-width:850px;font-size:clamp(2.5rem,4vw,3.8rem);line-height:1.08}
body.reviewed-castle #tickets .planning-copy{width:100%;max-width:850px;margin:0;padding:32px 38px;border-left:4px solid var(--green)}
body.reviewed-castle #toegankelijkheid .castle-access-note{max-width:850px;margin:0;padding:28px 38px}
body.reviewed-castle #toegankelijkheid .castle-access-note .planning-copy{width:100%;max-width:100%}
body.reviewed-castle #tickets .planning-copy p,
body.reviewed-castle #toegankelijkheid .planning-copy p{max-width:74ch;line-height:1.8;margin-bottom:18px}
body.reviewed-castle #tickets .planning-copy p:last-child{border-top:1px solid var(--line);padding-top:18px;margin-bottom:0}
body.reviewed-castle #voor-je-bezoek{display:block}
body.reviewed-castle #voor-je-bezoek .planning-title{max-width:850px;margin-bottom:22px}
body.reviewed-castle #voor-je-bezoek .planning-copy{max-width:850px}
@media(max-width:650px){
 body.reviewed-castle #tickets,body.reviewed-castle #toegankelijkheid,body.reviewed-castle #voor-je-bezoek{width:calc(100% - 28px);padding-top:36px}
 body.reviewed-castle #tickets .planning-copy,body.reviewed-castle #toegankelijkheid .castle-access-note{padding:20px 22px}
}

/* Gravensteen post-Playwright fix: no reserved space for unavailable photograph. */
body.reviewed-castle #wat-zien{padding-bottom:52px}
body.reviewed-castle #wat-zien .province-section-head{max-width:920px}
body.reviewed-castle #wat-zien .castle-intro-copy{max-width:790px;margin:0}
body.reviewed-castle #wat-zien .castle-intro-copy p{max-width:75ch}
body.reviewed-castle #geschiedenis{padding-top:58px}
@media(max-width:650px){body.reviewed-castle #wat-zien{padding-bottom:28px}body.reviewed-castle #geschiedenis{padding-top:38px}}

/* Purpose-built compact modules: no inherited province title/content grid. */
body.reviewed-castle .castle-visit-panel,
body.reviewed-castle .castle-access-panel{display:block;max-width:1100px;width:min(1100px,calc(100% - 48px));margin-inline:auto;padding:52px 0 42px;min-width:0}
body.reviewed-castle .castle-module-heading{max-width:780px;margin-bottom:26px}
body.reviewed-castle .castle-module-heading h2,
body.reviewed-castle .castle-access-panel h2{font-size:clamp(2.55rem,4vw,3.75rem);line-height:1.1;margin:10px 0 14px;overflow-wrap:anywhere}
body.reviewed-castle .castle-module-heading p{max-width:70ch;color:var(--muted);margin:0;font-size:.95rem}
body.reviewed-castle .castle-info-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:16px;align-items:stretch}
body.reviewed-castle .castle-info-card{background:var(--paper);border:1px solid var(--line);padding:28px;min-width:0}
body.reviewed-castle .castle-info-label{font-size:.7rem;letter-spacing:.12em;text-transform:uppercase;color:var(--wine);font-weight:750}
body.reviewed-castle .castle-info-card h3{font-size:clamp(1.65rem,2.2vw,2.25rem);line-height:1.1;margin:16px 0}
body.reviewed-castle .castle-info-card p{font-size:.9rem;line-height:1.75;margin:0;overflow-wrap:anywhere}
body.reviewed-castle .castle-action-line{display:flex;gap:18px;flex-wrap:wrap;margin-top:20px}
body.reviewed-castle .castle-action-line a{display:inline-flex;min-height:46px;align-items:center;padding:10px 16px;background:var(--green);color:white;text-decoration:none;font-weight:700;font-size:.84rem}
body.reviewed-castle .castle-action-line a+ a{background:transparent;color:var(--green);border:1px solid var(--green)}
body.reviewed-castle .castle-access-panel{padding:30px 0 52px}
body.reviewed-castle .castle-access-content{background:#e8e1d5;border-left:4px solid var(--wine);display:grid;grid-template-columns:minmax(0,.88fr) minmax(0,1.12fr);gap:36px;padding:32px 38px;align-items:start}
body.reviewed-castle .castle-access-panel .castle-access-lead{font-size:1.05rem;line-height:1.65;max-width:37ch;margin:0}
body.reviewed-castle .castle-access-details{min-width:0}
body.reviewed-castle .castle-access-details p{font-size:.91rem;line-height:1.75;margin:0 0 16px}
body.reviewed-castle .castle-access-details a{font-size:.86rem;font-weight:700;text-decoration:underline;text-underline-offset:4px}
@media(max-width:900px){body.reviewed-castle .castle-info-grid{grid-template-columns:1fr 1fr}body.reviewed-castle .castle-access-content{grid-template-columns:1fr;gap:16px}}
@media(max-width:600px){body.reviewed-castle .castle-visit-panel,body.reviewed-castle .castle-access-panel{width:calc(100% - 28px);padding-top:36px;padding-bottom:25px}body.reviewed-castle .castle-info-grid{grid-template-columns:1fr}body.reviewed-castle .castle-info-card{padding:22px}body.reviewed-castle .castle-access-content{padding:24px 20px}body.reviewed-castle .castle-action-line{flex-direction:column}body.reviewed-castle .castle-action-line a{justify-content:center}}
