:root { --cv-ink:#282561; --cv-gold:#e6be54; --cv-cream:#f5f3e7; --cv-terra:#c97b5a; --cv-action:#a85638; --cv-white:#faf9f6; --cv-charcoal:#3a3a3a; }
* { box-sizing:border-box; }
html { scroll-behavior:smooth; scroll-padding-top:2rem; }
.wp-site-blocks { padding-top:0; padding-bottom:0; }
.wp-site-blocks > *, .cv-main > *, .cv-section > *, .cv-footer > * { margin-block-start:0; }
.cv-wrap { width:min(1160px,calc(100% - 40px)); margin-inline:auto; }
.cv-section { padding:100px 0; }
.cv-section p { line-height:1.8; }
.cv-section h2 { font-size:clamp(2.25rem,4vw,4rem); }
.cv-section h3 { font-size:1.65rem; }
.cv-eyebrow { color:var(--cv-action); font-size:.74rem; font-weight:700; letter-spacing:.16em; text-transform:uppercase; }
.cv-section .cv-eyebrow { margin-bottom:12px; }
.cv-section h1, .cv-section h2, .cv-section h3 { margin-top:0; }
.cv-header { background:var(--cv-ink); color:var(--cv-white); }
body.home .cv-header { position:absolute; inset:0 0 auto; z-index:10; background:transparent; }
body.home.admin-bar .cv-header { top:32px; }
.cv-nav { display:flex; align-items:center; justify-content:space-between; gap:24px; min-height:86px; border-bottom:1px solid #ffffff38; }
.cv-nav > * { margin:0; }
.cv-brand { display:flex; align-items:center; gap:12px; }
.cv-brand > * { margin:0; }
.cv-brand-horizontal, .cv-brand-stacked { margin:0; }
.cv-brand-horizontal img { display:block; width:190px; height:auto; }
.cv-brand-stacked img { display:block; width:150px; height:auto; }
.cv-nav { padding-block:10px; }
.cv-brand-name { font-family:var(--wp--preset--font-family--playfair-display); font-size:1.35rem; font-weight:600; }
.cv-header .cv-brand-name { color:var(--cv-white); line-height:1.2; letter-spacing:.01em; }
.cv-header .cv-brand { flex-shrink:0; }
.cv-header .wp-block-site-logo img { display:block; max-height:56px; width:auto; object-fit:contain; }
.cv-header a, .cv-footer a { color:inherit; text-decoration:none; }
.cv-navigation { font-size:.875rem; font-weight:600; }
.cv-navigation .wp-block-navigation__container { gap:26px; }
.cv-navigation .wp-block-navigation-item__content { display:inline-flex; align-items:center; min-height:44px; }
.cv-navigation .wp-block-navigation-item__content:hover { color:var(--cv-gold); }
.cv-navigation .cv-nav-book .wp-block-navigation-item__content { border:1px solid #ffffffb8; border-radius:2px; padding:0 22px; }
.cv-navigation .cv-nav-book .wp-block-navigation-item__content:hover { background:var(--cv-gold); border-color:var(--cv-gold); color:var(--cv-ink); }
.cv-navigation :is(.wp-block-navigation__responsive-container-open,.wp-block-navigation__responsive-container-close) { min-width:44px; min-height:44px; align-items:center; justify-content:center; }
.cv-navigation .wp-block-navigation__responsive-container.is-menu-open { background:var(--cv-ink); color:var(--cv-white); padding:30px; }
.cv-navigation.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { padding-top:70px; align-items:flex-start; }
.cv-navigation.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation__container { align-items:flex-start; width:100%; gap:14px; }
.cv-navigation.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item { width:100%; align-items:flex-start; }
.cv-navigation.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .wp-block-navigation-item__content { font-size:1.25rem; }
.cv-navigation.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .cv-nav-book { width:auto; margin-top:16px; }
.cv-navigation.wp-block-navigation .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .cv-nav-book .wp-block-navigation-item__content { padding:10px 22px; }
.cv-hero.wp-block-cover { min-height:735px; padding:160px 0 120px; color:var(--cv-white); background:radial-gradient(ellipse at 85% 35%,#8c7858 0,transparent 65%),linear-gradient(140deg,#282561,#405b57); align-items:flex-start; }
.cv-hero.wp-block-cover.has-custom-content-position .wp-block-cover__inner-container { width:100%; flex:0 0 100%; }
.cv-hero .cv-wrap > * { margin-block-start:0; }
.cv-hero h1 { max-width:690px; margin-bottom:0; color:var(--cv-white); font-size:clamp(3.15rem,7vw,6.25rem); font-weight:500; line-height:1.02; letter-spacing:-.045em; text-wrap:balance; }
.cv-hero em, .cv-hero .cv-eyebrow { color:var(--cv-gold); }
.cv-hero .cv-eyebrow { margin-bottom:18px; }
.cv-hero .cv-hero-copy { max-width:520px; margin:27px 0 34px; font-size:1.08rem; line-height:1.7; color:#ffffffeb; }
.cv-hero .cv-hero-actions { gap:12px; }
.cv-hero-actions .wp-block-button { width:170px; }
.cv-hero-actions .wp-block-button__link { width:100%; min-height:50px; padding:14px 23px; border:2px solid transparent; }
.cv-hero-actions .wp-block-button:not(.is-style-outline) .wp-block-button__link { border-color:var(--cv-action); }
.cv-hero-actions .wp-block-button:not(.is-style-outline) .wp-block-button__link:hover { border-color:#995338; }
.cv-hero .cv-hero-photo-note { max-width:360px; font-size:.7rem; line-height:1.5; color:#ffffffde; margin-top:40px; letter-spacing:.04em; }
.cv-hero:has(> .wp-block-cover__image-background) .cv-hero-photo-note,
.cv-hero:has(> .wp-block-cover__video-background) .cv-hero-photo-note { display:none; }
.wp-block-button__link { min-height:48px; display:inline-flex; align-items:center; justify-content:center; transition:background-color .2s; }
.wp-block-button__link:hover { background:#995338; color:white; }
.cv-hero .is-style-outline .wp-block-button__link { color:var(--cv-white); border-color:var(--cv-white); }
.cv-hero .is-style-outline .wp-block-button__link:hover { background:var(--cv-gold); color:var(--cv-ink); }
@media (min-width:901px) {
  .cv-hero.wp-block-cover { background:var(--cv-ink); }
  .cv-hero.wp-block-cover > .wp-block-cover__image-background { left:auto; right:0; width:55%; object-position:center; }
  .cv-hero.wp-block-cover > .wp-block-cover__background { opacity:1!important; background-color:transparent!important; background-image:linear-gradient(90deg,#282561 0%,#282561 43%,#282561f0 53%,#282561cc 72%,#282561cc 100%); }
  .cv-hero h1 { max-width:54%; font-size:clamp(3.15rem,6.4vw,5.75rem); }
  .cv-hero .cv-hero-copy { max-width:min(520px,48%); }
}
.cv-booking { padding:0; position:relative; z-index:2; }
.cv-booking-panel { display:grid; grid-template-columns:1fr; gap:22px; align-items:start; padding:28px 32px; border-top:3px solid var(--cv-gold); background:var(--cv-cream); box-shadow:0 20px 50px #0e0f2926; margin-top:-45px; }
.cv-booking-panel > * { margin-top:0; }
.cv-booking-panel p { margin-bottom:0; }
.cv-booking-copy { display:grid; grid-template-columns:1fr 1fr; column-gap:32px; align-items:end; }
.cv-booking-copy > .cv-eyebrow { grid-column:1/-1; margin-top:0; }
.cv-booking-panel h2 { font-size:clamp(1.75rem,2.6vw,2.25rem); margin-bottom:0; }
.cv-booking-copy > p:last-child { margin-top:0; max-width:450px; font-size:.9rem; }
.cv-booking-options { min-width:0; padding-top:20px; border-top:1px solid #d6d2c3; }
.cv-enquiry-form fieldset { min-width:0; margin:0; padding:0; border:0; }
.cv-enquiry-form .cv-request-step { margin:0 0 12px; font-size:.75rem; font-weight:700; color:#615e53; }
.cv-enquiry-form p:empty { display:none; }
.cv-enquiry-fields { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }
.cv-stay-inputs { column-gap:30px; row-gap:24px; }
.cv-enquiry-fields label { display:flex; flex-direction:column; gap:8px; min-width:0; font-size:.68rem; font-weight:700; letter-spacing:.1em; text-transform:uppercase; color:#615e53; }
.cv-enquiry-fields :is(input,select) { width:100%; min-width:0; min-height:44px; border:0; border-bottom:1px solid #aaa696; border-radius:0; background:transparent; color:var(--cv-charcoal); font:400 .9rem var(--wp--preset--font-family--dm-sans); padding:8px 2px; }
.cv-enquiry-submit { margin-top:24px; padding:14px 22px; min-height:48px; border:0; border-radius:2px; background:var(--cv-ink); color:var(--cv-white); font:700 .875rem var(--wp--preset--font-family--dm-sans); cursor:pointer; }
.cv-enquiry-submit:hover { background:#201d4e; }
.cv-enquiry-submit:disabled { opacity:.65; cursor:wait; }
.cv-availability { max-width:480px; margin:14px 0 8px; }
.cv-availability summary { cursor:pointer; font-size:.9rem; font-weight:700; }
.cv-calendar-header { display:flex; align-items:center; justify-content:space-between; gap:12px; margin:18px 0 12px; }
.cv-calendar-header button { background:var(--cv-ink); color:white; border:0; width:44px; height:44px; font-size:1.15rem; cursor:pointer; }
.cv-calendar-header button:disabled { opacity:.4; cursor:default; }
.cv-calendar-month { font-size:.95rem; font-weight:700; }
.cv-calendar-days { display:grid; grid-template-columns:repeat(7,minmax(0,1fr)); gap:4px; text-align:center; }
.cv-calendar-weekday { font-size:.65rem; color:#615e53; padding:4px 0; }
.cv-calendar-day { padding:8px 0; background:white; font-size:.85rem; }
.cv-calendar-day { min-height:44px; border:0; color:var(--cv-charcoal); font-family:inherit; cursor:pointer; }
.cv-calendar-day:disabled { cursor:not-allowed; }
.cv-calendar-day:not(:disabled):hover, .cv-calendar-day.is-selected { background:var(--cv-ink); color:white; }
.cv-calendar-day.is-in-range:not(.is-selected) { background:#e6be5440; }
.cv-calendar-day:focus-visible { outline:2px solid var(--cv-ink); outline-offset:2px; }
.cv-date-control { display:flex; align-items:center; gap:4px; }
.cv-date-control input { flex:1; }
.cv-date-control button { flex:0 0 44px; height:44px; border:1px solid #aaa696; background:transparent; color:var(--cv-ink); font-size:1.3rem; cursor:pointer; }
.cv-calendar-selection { display:flex; gap:8px; margin-top:16px; }
.cv-calendar-selection button { min-height:44px; padding:8px 16px; border:1px solid var(--cv-ink); color:var(--cv-ink); background:transparent; font:inherit; cursor:pointer; }
.cv-calendar-selection button[aria-pressed="true"] { background:var(--cv-ink); color:white; }
.cv-calendar-instruction { font-size:.85rem; line-height:1.6; margin-top:12px; }
.cv-calendar-day.is-blocked { text-decoration:line-through; background:#e2dfd3; color:#615e53; }
.cv-calendar-day.is-past { color:#827e70; background:transparent; }
.cv-calendar-day[aria-current] { outline:2px solid var(--cv-ink); outline-offset:-2px; }
.cv-calendar-day.is-unverified:not(.is-blocked) { background:transparent; }
.cv-calendar-key, .cv-availability-status { font-size:.78rem; line-height:1.6; color:#615e53; }
.cv-availability-status { margin-top:8px; }
.cv-guest-fields { margin-top:16px; }
.cv-notes-toggle { margin-top:16px; }
.cv-notes-toggle summary { min-height:44px; display:list-item; align-content:center; cursor:pointer; font-size:.85rem; font-weight:700; }
.cv-notes-toggle summary span { font-weight:400; }
.cv-notes-toggle .cv-request-notes { display:flex; flex-direction:column; gap:8px; margin-top:8px; font-size:.8rem; }
.cv-request-notes { grid-column:1/-1; }
.cv-request-notes textarea { width:100%; min-width:0; border:1px solid #aaa696; border-radius:2px; background:transparent; color:var(--cv-charcoal); font:400 .9rem var(--wp--preset--font-family--dm-sans); padding:10px; resize:vertical; }
.cv-request-notes span { font-weight:400; letter-spacing:0; text-transform:none; }
.cv-stay-summary { margin-top:18px; font-size:.85rem; font-weight:700; }
.cv-enquiry-form [hidden] { display:none!important; }
.cv-request-review { padding-top:4px; }
.cv-request-review .cv-review-title { font-size:1.4rem; margin:0 0 20px; color:var(--cv-ink); }
.cv-review-list { margin:0; }
.cv-review-list > div { display:grid; grid-template-columns:110px minmax(0,1fr); gap:16px; padding:10px 0; border-bottom:1px solid #d6d2c3; }
.cv-review-list dt { font-weight:700; font-size:.85rem; }
.cv-review-list dd { margin:0; font-size:.9rem; overflow-wrap:anywhere; white-space:pre-wrap; }
.cv-review-price { font-size:.85rem; margin-top:18px; }
.cv-review-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:20px; }
.cv-review-actions button { min-height:48px; padding:12px 18px; font:700 .875rem var(--wp--preset--font-family--dm-sans); border-radius:2px; cursor:pointer; }
.cv-review-edit, .cv-stay-back { border:1px solid var(--cv-ink); color:var(--cv-ink); background:transparent; }
.cv-review-actions .cv-enquiry-submit { margin-top:0; }
.cv-step-actions { display:flex; flex-wrap:wrap; gap:12px; margin-top:18px; }
.cv-step-actions button { min-height:48px; padding:12px 20px; font:700 .875rem var(--wp--preset--font-family--dm-sans); border-radius:2px; cursor:pointer; }
.cv-step-actions .cv-enquiry-submit { margin-top:0; }
@media (min-width:701px) { .cv-booking .cv-stay-inputs { grid-template-columns:1.4fr 1.15fr 1.15fr .65fr; } }
@media (max-width:480px) { .cv-review-list > div { grid-template-columns:85px minmax(0,1fr); gap:10px; } .cv-review-actions button { width:100%; } }
.cv-booking-compare { font-size:.85rem; margin-top:20px; }
.cv-booking-compare a { text-underline-offset:4px; }
.cv-booking-panel .cv-booking-status { margin-top:12px; color:#615e53; font-size:.75rem; }
.cv-page .cv-booking-panel { margin-top:35px; }
.cv-integration-note { font-size:.85rem; padding:20px; border:1px dashed #777569; align-self:center; }
.cv-intro-grid { display:grid; grid-template-columns:1fr 1.06fr; gap:80px; align-items:center; }
.cv-intro-grid > *, .cv-experience-grid > *, .cv-visit-grid > * { margin-top:0; min-width:0; }
.cv-intro-copy > .cv-eyebrow { margin-top:0; }
.cv-intro-copy h2 { max-width:520px; text-wrap:balance; }
.cv-intro .cv-intro-description { margin-top:24px; font-size:1.04rem; line-height:1.8; }
.cv-intro .cv-intro-link { margin-top:28px; font-size:.875rem; font-weight:700; }
.cv-intro-link a { display:inline-flex; align-items:center; gap:12px; min-height:44px; text-decoration:none; border-bottom:1px solid var(--cv-gold); }
.cv-intro-link a:hover { border-color:var(--cv-ink); }
.cv-facts { display:grid; grid-template-columns:repeat(3,1fr); border-top:1px solid #ddd9ca; margin-top:32px; }
.cv-fact { margin:0; padding:18px 12px 0 0; font-size:.76rem; }
.cv-fact p { margin:0; line-height:1.5; }
.cv-fact + .cv-fact { padding-left:16px; border-left:1px solid #ddd9ca; }
.cv-fact strong { display:inline-block; margin-bottom:8px; color:var(--cv-ink); font-family:var(--wp--preset--font-family--playfair-display); font-size:1.85rem; font-weight:500; }
.cv-photo { display:flex; align-items:flex-end; justify-content:flex-end; padding:20px; background:linear-gradient(135deg,#a2b67f,#5e753b 42%,#e7c789 43% 49%,#857855 50%); }
.cv-photo-label { padding:10px; color:white; background:#202050cc; font-size:.7rem; letter-spacing:.06em; max-width:220px; }
.cv-portrait-container { position:relative; padding-bottom:75px; }
.cv-portrait.wp-block-cover { min-height:450px; padding:24px; background:linear-gradient(135deg,#a2b67f,#5e753b 42%,#e7c789 43% 49%,#857855 50%); }
.cv-portrait:has(> .wp-block-cover__image-background) .cv-photo-label { display:none; }
.cv-portrait-card { position:absolute; left:0; bottom:0; width:65%; padding:27px; background:var(--cv-ink); color:white; }
.cv-portrait-card h3 { color:inherit; margin:0; font-size:1.55rem; line-height:1.25; letter-spacing:-.025em; }
.cv-portrait-card .cv-eyebrow { color:var(--cv-gold); margin:0 0 12px; }
.cv-stay { background:#f1efe5; }
.cv-section-head { display:grid; grid-template-columns:1fr 1fr; gap:50px; align-items:end; margin-bottom:42px; }
.cv-section-head > * { margin-top:0; }
.cv-rooms { display:grid; grid-template-columns:repeat(3,1fr); gap:20px; }
.cv-room { display:flex; flex-direction:column; background:white; margin-top:0; min-width:0; }
.cv-room > * { min-width:0; }
.cv-room-image.wp-block-cover { width:100%; max-width:100%; min-height:0; aspect-ratio:1.06; padding:18px; background:linear-gradient(125deg,#d5c3a3,#9b653e 45%,#e7dfca 46% 60%,#48533f 61%); }
.cv-room-image:has(> .wp-block-cover__image-background) .cv-photo-label { display:none; }
.cv-room:nth-child(2) .cv-room-image { background:linear-gradient(125deg,#c7a084,#7e553f 45%,#e9e1cd 46% 60%,#556a42 61%); }
.cv-room:nth-child(3) .cv-room-image { background:linear-gradient(125deg,#719158,#e7d59d 45%,#eee8d8 46% 60%,#bf7657 61%); }
.cv-room-content { display:flex; flex-direction:column; flex:1; padding:26px; margin-top:0; }
.cv-room-content h3 { margin-bottom:12px; }
.cv-room-content p { font-size:.9rem; }
.cv-room-content .cv-room-meta { margin-top:auto; padding-top:18px; border-top:1px solid #e3e0d6; font-size:.78rem; }
.cv-room-content > p:not(.cv-room-meta) { margin-top:0; margin-bottom:24px; }
.cv-room-content .cv-room-detail-link { margin:0; font-size:.85rem; }
.cv-room-detail-link a { display:inline-block; min-height:44px; padding-block:12px; text-underline-offset:4px; }
.cv-room .wp-block-button { width:100%; }
.cv-room .wp-block-button__link { width:100%; padding:12px; gap:8px; font-size:.8rem; color:var(--cv-ink); border-color:#d6d2c3; }
.cv-room .wp-block-button__link:hover { color:var(--cv-white); background:var(--cv-ink); border-color:var(--cv-ink); }
.cv-experience-grid { display:grid; grid-template-columns:.93fr 1.07fr; gap:60px; align-items:center; }
.cv-experience-image.wp-block-cover { min-height:540px; padding:24px; background:linear-gradient(130deg,#3d5740,#789050 40%,#c59a57 41% 52%,#405b57 53%); }
.cv-experience-image:has(> .wp-block-cover__image-background) .cv-photo-label { display:none; }
.cv-experience-copy .cv-eyebrow { margin-top:0; }
.cv-experience-copy h2 { max-width:480px; text-wrap:balance; }
.cv-experience-description { margin-top:24px; font-size:1.04rem; }
.cv-checklist { padding-left:1.3rem; margin:28px 0 32px; list-style-type:'✦  '; }
.cv-checklist li { padding:14px 0 14px 6px; border-bottom:1px solid #e3e0d6; font-size:.95rem; line-height:1.6; }
.cv-checklist li::marker { color:var(--cv-terra); }
.cv-experience-actions { gap:12px; }
.cv-experience-actions .is-style-outline .wp-block-button__link { color:var(--cv-ink); border-color:#c9c5b7; }
.cv-experience-actions .is-style-outline .wp-block-button__link:hover { color:var(--cv-white); background:var(--cv-ink); border-color:var(--cv-ink); }
.cv-review { padding:84px 0; background:var(--cv-ink); color:var(--cv-white); text-align:center; }
.cv-review h2 { color:inherit; }
.cv-review .cv-eyebrow { color:var(--cv-gold); margin-top:0; }
.cv-review .cv-review-heading { font-size:clamp(1.5rem,2.3vw,2rem); line-height:1.3; margin-bottom:32px; }
.cv-review .cv-guest-quote { max-width:860px; margin:0 auto; padding:0; border:0; color:var(--cv-white); font-style:normal; }
.cv-guest-quote p { margin:0; font-family:var(--wp--preset--font-family--playfair-display); font-size:clamp(1.85rem,3.6vw,3.25rem); font-weight:500; line-height:1.25; letter-spacing:-.025em; text-wrap:balance; }
.cv-guest-quote cite { display:block; margin-top:28px; color:var(--cv-gold); font-family:var(--wp--preset--font-family--dm-sans); font-size:.72rem; font-style:normal; font-weight:700; line-height:1.6; letter-spacing:.12em; text-transform:uppercase; }
.cv-review .cv-review-note { margin-top:26px; font-size:.8rem; color:#ffffffd9; }
.cv-visit-grid { display:grid; grid-template-columns:1fr 1fr; gap:60px; align-items:center; }
.cv-visit-copy .cv-eyebrow { margin-top:0; }
.cv-visit-copy h2 { max-width:500px; text-wrap:balance; }
.cv-visit-description { max-width:510px; margin-top:24px; font-size:1.04rem; }
.cv-location-label { display:inline-block; padding-top:16px; border-top:1px solid #d6d2c3; color:var(--cv-ink); font-size:.8rem; font-weight:700; letter-spacing:.04em; }
.cv-map-link { margin-top:0; font-size:.875rem; }
.cv-map-link a { display:inline-flex; align-items:center; gap:10px; min-height:44px; text-underline-offset:4px; }
.cv-visit-card { padding:36px; background:var(--cv-cream); border-left:5px solid var(--cv-gold); }
.cv-visit-card h3 { font-size:2rem; margin-bottom:18px; }
.cv-visit-card > p { margin-top:0; margin-bottom:24px; font-size:.95rem; }
.cv-visit-actions .wp-block-button__link { background:var(--cv-ink); color:var(--cv-white); }
.cv-visit-actions .wp-block-button__link:hover { background:#201d4e; }
.cv-visit-card :is(.cv-visit-enquiry,.cv-visit-email) { margin:22px 0 0; font-size:.8rem; }
.cv-visit-card .cv-visit-email { margin-top:0; }
.cv-visit-card :is(.cv-visit-enquiry,.cv-visit-email) a { display:inline-block; padding-block:10px; text-underline-offset:4px; }
.cv-footer { padding:65px 0 30px; background:#202050; color:var(--cv-white); }
.cv-footer-grid { display:grid; grid-template-columns:1.4fr 1fr 1.2fr; gap:40px; padding-bottom:28px; }
.cv-footer-grid > * { margin-top:0; }
.cv-footer p { font-size:.9rem; }
.cv-footer .cv-brand-name { font-size:1.5rem; line-height:1.2; margin:0; color:var(--cv-white); }
.cv-footer .wp-block-site-logo img { display:block; max-height:56px; width:auto; }
.cv-footer-brand > p { max-width:300px; line-height:1.8; }
.cv-footer-links p { margin:0; }
.cv-footer a { display:inline-flex; align-items:center; min-height:44px; overflow-wrap:anywhere; }
.cv-footer a:hover { color:var(--cv-gold); text-decoration:underline; text-underline-offset:5px; }
.cv-footer .cv-footer-social { margin-top:20px; gap:12px; }
.cv-footer .cv-footer-social .wp-social-link { color:var(--cv-gold); }
.cv-footer .cv-footer-social .wp-block-social-link-anchor { display:flex; align-items:center; justify-content:center; width:44px; height:44px; padding:8px; border:1px solid currentColor; border-radius:50%; }
.cv-footer .cv-footer-social .wp-block-social-link-anchor svg { width:24px; height:24px; }
.cv-footer-links h3 { margin-bottom:16px; color:var(--cv-gold); font-family:var(--wp--preset--font-family--dm-sans); font-size:.875rem; text-transform:uppercase; letter-spacing:.14em; }
.cv-footer-bottom { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:12px; padding-top:22px; border-top:1px solid #ffffff38; }
.cv-footer-bottom > p { margin:0; font-size:.76rem; }
.cv-back-to-top { display:inline-flex; align-items:center; gap:10px; }
.cv-page { padding:70px 0; min-height:60vh; }
.cv-page .wp-block-post-title { margin-bottom:35px; }
.cv-room-detail > * { margin-block-start:0; }
.cv-detail-back { margin-bottom:30px; font-size:.85rem; }
.cv-detail-back a, .cv-detail-other-stays a { display:inline-block; padding-block:12px; text-underline-offset:4px; }
.cv-detail-grid { display:grid; grid-template-columns:1.2fr 1fr; gap:50px; align-items:center; }
.cv-detail-grid > * { min-width:0; margin-top:0; }
.cv-detail-photo.wp-block-cover { min-height:460px; padding:0; }
.cv-detail-copy h2 { font-size:clamp(2rem,3.4vw,3rem); line-height:1.12; text-wrap:balance; }
.cv-detail-copy p { line-height:1.8; }
.cv-detail-copy .cv-eyebrow { margin-top:0; }
.cv-detail-facts { padding-left:1.2rem; margin:25px 0 30px; }
.cv-detail-facts li { padding-block:8px; font-size:.95rem; }
.cv-detail-facts li::marker { color:var(--cv-action); }
.cv-detail-more { margin-top:70px; }
.cv-detail-secondary.wp-block-cover { min-height:360px; padding:0; }
.cv-detail-enquiry { max-width:780px; padding:36px; margin:70px auto 0; background:var(--cv-cream); border-top:3px solid var(--cv-gold); }
.cv-detail-enquiry > .cv-eyebrow { margin-top:0; }
.cv-detail-enquiry h2 { font-size:clamp(1.75rem,2.6vw,2.5rem); margin-bottom:28px; }
.cv-detail-other-stays { text-align:center; margin-top:30px; font-size:.85rem; }
.cv-gallery-intro { max-width:650px; font-size:1.04rem; line-height:1.8; }
.cv-gallery-nav { display:flex; flex-wrap:wrap; align-items:center; gap:12px; font-size:.875rem; margin-block:22px 40px; }
.cv-gallery-nav a { display:inline-block; padding-block:12px; text-underline-offset:4px; }
.cv-gallery-section { margin-top:50px; }
.cv-gallery-section h2 { font-size:clamp(1.75rem,3vw,2.5rem); margin-bottom:26px; }
.cv-gallery-grid.wp-block-gallery.has-nested-images { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin:0; }
.cv-gallery-grid.wp-block-gallery.has-nested-images figure.wp-block-image:not(#individual-image) { width:100%; margin:0; display:flex; flex-direction:column; align-items:stretch; }
.cv-gallery-grid.wp-block-gallery.has-nested-images figure.wp-block-image img { width:100%; height:260px; flex:none; object-fit:cover; }
.cv-gallery-grid.wp-block-gallery.has-nested-images figure.wp-block-image figcaption { position:static; background:none; color:var(--cv-ink); padding:12px 0 16px; margin:0; font-size:.875rem; font-weight:400; line-height:1.5; text-shadow:none; text-align:left; max-height:none; }
.cv-gallery-grid .wp-lightbox-container { width:100%; }
.cv-gallery-cta { padding:36px; margin-top:60px; background:var(--cv-cream); border-top:3px solid var(--cv-gold); }
.cv-gallery-cta h2 { font-size:clamp(1.75rem,3vw,2.5rem); }
.cv-policy { max-width:760px; margin-inline:auto; }
.cv-faq { max-width:760px; margin-inline:auto; }
.cv-menu { max-width:860px; margin-inline:auto; }
.cv-menu h2 { font-size:clamp(1.6rem,3vw,2.2rem); margin-top:44px; }
.cv-menu-service { background:var(--cv-cream); border-top:3px solid var(--cv-gold); padding:24px; }
.cv-menu-service h2 { margin-top:0; }
.cv-menu-item { display:grid; grid-template-columns:minmax(0,1fr) auto; gap:20px; padding:18px 0; border-bottom:1px solid #d6d2c3; }
.cv-menu-item > p { margin:0; line-height:1.7; }
.cv-menu-price { white-space:nowrap; font-weight:700; color:var(--cv-action); }
@media (max-width:480px) { .cv-menu-item { grid-template-columns:1fr; gap:8px; } }
.cv-faq-item { border-bottom:1px solid #d6d2c3; padding:20px 0; }
.cv-faq-item summary { cursor:pointer; font-size:1.125rem; font-weight:500; line-height:1.5; }
.cv-faq-item summary:focus-visible { outline:3px solid var(--cv-action); outline-offset:4px; }
.cv-faq-item p { margin:18px 0 4px; line-height:1.8; }
.cv-policy h2 { font-size:clamp(1.5rem,2.6vw,2rem); margin-top:38px; }
.cv-policy p { line-height:1.8; }
.cv-policy-draft { padding:16px 20px; border-left:4px solid var(--cv-gold); background:var(--cv-cream); font-size:.875rem; }
:where(a,button,input,select,textarea):focus-visible { outline:3px solid var(--cv-terra); outline-offset:4px; }
.cv-header :where(a,button):focus-visible, .cv-hero a:focus-visible, .cv-footer a:focus-visible { outline-color:var(--cv-gold); }
@media (max-width:900px) {
  .cv-booking-panel { gap:22px; }
  .cv-booking-copy > p:last-child { max-width:none; }
  .cv-gallery-grid.wp-block-gallery.has-nested-images { grid-template-columns:repeat(2,minmax(0,1fr)); }
  .cv-intro-grid { gap:35px; }
  .cv-rooms { grid-template-columns:1fr; }
  .cv-room { display:grid; grid-template-columns:1fr 1fr; }
  .cv-room-image.wp-block-cover { aspect-ratio:auto; min-height:260px; }
}
@media (max-width:800px) {
  .cv-detail-grid { grid-template-columns:1fr; gap:30px; }
  .cv-detail-photo.wp-block-cover { min-height:380px; }
  .cv-detail-more { margin-top:50px; }
  .cv-section { padding:78px 0; }
  .cv-hero.wp-block-cover { min-height:700px; padding:140px 0 100px; }
  .cv-booking { padding:0; }
  .cv-intro-grid, .cv-experience-grid, .cv-visit-grid, .cv-section-head { grid-template-columns:1fr; gap:30px; }
  .cv-booking-copy { grid-template-columns:1fr; gap:8px; }
  .cv-booking-copy > .cv-eyebrow { margin-bottom:0; }
  .cv-booking-copy > p:last-child { max-width:none; }
  .cv-portrait.wp-block-cover { min-height:360px; }
  .cv-experience-copy { order:-1; }
  .cv-experience-image.wp-block-cover { min-height:420px; }
  .cv-footer-grid { grid-template-columns:1fr 1fr; }
  .cv-footer-brand { grid-column:1 / -1; }
  body.home.admin-bar .cv-header { top:46px; }
}
@media (max-width:800px) {
  .cv-navigation .wp-block-navigation__responsive-container:not(.is-menu-open) { display:none; }
  .cv-navigation .wp-block-navigation__responsive-container-open { display:flex; }
}
@media (max-width:480px) {
  .cv-gallery-cta { padding:22px; }
  .cv-detail-photo.wp-block-cover, .cv-detail-secondary.wp-block-cover { min-height:280px; }
  .cv-detail-enquiry { padding:22px; margin-top:50px; }
  .cv-wrap { width:calc(100% - 30px); }
  .cv-brand-name { font-size:1.15rem; }
  .cv-brand-horizontal img { width:155px; }
  .cv-hero.wp-block-cover { min-height:680px; padding:130px 0 100px; }
  .cv-hero h1 { font-size:clamp(2.75rem,12vw,3.5rem); max-width:100%; }
  .cv-hero .cv-hero-copy { font-size:1rem; margin:24px 0 28px; }
  .cv-hero-actions .wp-block-button { flex:1 1 145px; }
  .cv-hero-actions .wp-block-button__link { width:100%; }
  .cv-booking-panel, .cv-visit-card { padding:22px; }
  .cv-visit-actions .wp-block-button, .cv-visit-actions .wp-block-button__link { width:100%; }
  .cv-enquiry-fields { grid-template-columns:1fr; gap:16px; }
  .cv-stay-inputs { grid-template-columns:repeat(2,minmax(0,1fr)); column-gap:18px; row-gap:24px; }
  .cv-stay-inputs > label:first-child, .cv-stay-inputs > label:last-child { grid-column:1/-1; }
  .cv-step-actions button { width:100%; }
  .cv-enquiry-submit { width:100%; }
  .cv-room, .cv-footer-grid { grid-template-columns:1fr; }
  .cv-room-image.wp-block-cover { aspect-ratio:1.2; min-height:0; }
  .cv-portrait-card { width:85%; }
  .cv-experience-image.wp-block-cover { min-height:360px; }
  .cv-experience-actions .wp-block-button { flex:1 1 145px; }
  .cv-experience-actions .wp-block-button__link { width:100%; }
  .cv-facts { gap:6px; }
}
@media (prefers-reduced-motion:reduce) {
  html { scroll-behavior:auto; }
  .wp-block-button__link { transition:none; }
}
@media (max-width:360px) { .cv-stay-inputs { grid-template-columns:1fr; } }
@media (max-width:600px) {
  .cv-gallery-grid.wp-block-gallery.has-nested-images { grid-template-columns:1fr; }
}
