/* Agreed design direction: retain identity, strengthen hierarchy and photography. */
:root { --coast-ink:#173b41; --coast-paper:#fbf9f5; --coast-action:#a82a38; }
body { color:var(--coast-ink); background:var(--coast-paper); font-family:Arial,sans-serif; font-size:17px; line-height:1.6; }
main { padding-top:36px; padding-bottom:64px; }
h1 { font-size:clamp(36px,4.4vw,64px); line-height:1.12; margin:16px 0 24px; }
h2 { font-size:clamp(28px,2.8vw,40px); line-height:1.18; }
h3 { font-size:clamp(22px,2vw,28px); line-height:1.2; }
main p { max-width:70ch; }
.intro { font-size:19px; line-height:1.55; }
.eyebrow p { margin:0; }
.button { display:inline-flex; align-items:center; justify-content:center; min-height:48px; padding:12px 22px; font:700 16px/1.35 Arial,sans-serif; border-radius:3px; text-align:center; }
.button:not(.secondary) { background:var(--coast-action); border-color:var(--coast-action); color:#fff; }
.button.secondary { background:transparent; border:1px solid var(--coast-ink); color:var(--coast-ink); }
a:focus-visible,button:focus-visible,summary:focus-visible { outline:3px solid #28618c; outline-offset:4px; }
.card { border-radius:4px; box-shadow:none; overflow:visible; }
.card .photograph { border-radius:4px 4px 0 0; overflow:hidden; }
.card .content { padding:24px; }
.tile { background:transparent; border-radius:4px; padding:24px; }
.strip { padding:32px 0; margin:48px 0; }
.direction-opening { margin:0 0 48px; }
.direction-opening > .wp-block-group__inner-container { display:grid; grid-template-columns:minmax(0,0.9fr) minmax(0,1.1fr); align-items:center; gap:40px; }
.direction-opening .direction-copy h1 { max-width:13ch; }
.direction-opening .photograph { height:440px; margin:0; border-radius:4px; overflow:hidden; }
.direction-opening .photograph img { width:100%; height:100%; object-fit:cover; }
.direction-opening .photograph figure,.direction-opening .photograph a { display:block; height:100%; margin:0; }
.direction-opening .booking-intro { margin:20px 0 0; }
.direction-gallery-link { margin:12px 0 0; }
.direction-gallery-link a { min-height:44px; display:inline-flex; align-items:center; font-weight:700; text-underline-offset:4px; }
.apartment-details .card,#facilities .card { background:transparent; border:0; border-top:1px solid #d5ded8; border-radius:0; }
.apartment-details .card .content,#facilities .card .content { padding:24px 0; }
#facilities,#practical-details,.apartment-details,.apartment-gallery { margin-top:48px; }
.apartment-details h2,#facilities h2 { margin-bottom:24px; }
.unit-grid .content h2 { font-size:28px; }
.unit-grid .card { display:flex; flex-direction:column; }
.unit-grid .content { flex:1; }
.unit-grid .photograph { aspect-ratio:4/3; height:auto; }
.unit-grid .photograph img { width:100%; height:100%; object-fit:cover; }
.direction-card-facts { font-size:16px; }
.direction-capacity { font-size:15px; color:#425e5b; }
.social-reviews { padding-top:24px; margin-top:24px; border-top:1px solid #527076; }
.social-reviews h2 { font-size:28px; }
.social-reviews h3 { font:700 18px/1.4 Arial,sans-serif; margin:24px 0 12px; }
.social-reviews .footer-links { gap:12px 24px; }
.direction-reviews .card h2 { font-size:30px; }
.direction-reviews .card p { margin:16px 0; }
@media(min-width:1001px) { .home main > .grid { margin-top:24px; } }
@media(max-width:1000px) { header { flex-wrap:wrap; gap:12px; } header nav { gap:12px 20px; } .direction-opening > .wp-block-group__inner-container { gap:24px; } }
@media(max-width:720px) {
 main { padding:24px 22px 40px; }
 header { padding:12px 22px; gap:10px; }
 header .brand-group { gap:10px; }
 header .brand-group img { width:44px; height:44px; }
 header .brand-title { font-size:22px; }
 header .brand-title span { font-size:8px; }
 header nav.main-links { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); width:100%; gap:2px 16px; }
 header nav.main-links a { min-height:36px; display:flex; align-items:center; margin:0; font-size:14px; }
 h1 { font-size:38px; margin:12px 0 16px; }
 .intro { font-size:18px; }
 .direction-opening > .wp-block-group__inner-container { grid-template-columns:minmax(0,1fr); gap:24px; }
 .direction-opening .direction-copy h1 { max-width:none; }
 .direction-opening .photograph { height:auto; aspect-ratio:4/3; }
 .direction-opening { margin-bottom:40px; }
 .direction-opening .booking-intro { margin-top:16px; }
 .strip { margin:40px 0; padding:24px 0; }
 .grid { margin:24px 0; gap:24px; }
 .grid .card .photograph { height:auto; aspect-ratio:4/3; }
 .card .content { padding:24px; }
 #facilities,#practical-details,.apartment-details,.apartment-gallery { margin-top:40px; }
 .mobile-booking { padding:10px 16px calc(10px + env(safe-area-inset-bottom)); }
 .mobile-booking .button { min-height:48px; }
 footer { padding:32px 22px; }
 .social-reviews h2 { font-size:26px; }
}
@media(prefers-reduced-motion:reduce) { html { scroll-behavior:auto; } }
/* Linked images must fill the same frame as unlinked images. */
.photograph .wp-block-image > a { display:block; width:100%; height:100%; }
.photograph .wp-block-image > a > img { display:block; width:100%; height:100%; object-fit:cover; }
