/* Keep decorative frames clear of the content and preserve keyboard focus. */
:is(.step,.steps>article,.process-steps>li,.process ol>li,.service-card,.region-card,.journey-card,.celebration-card,.fit-card,.benefits>article,.trip-pieces>article,.pathway,.resource-card,.checklist-card,.nd-highlight-block,article[tabindex="0"],.trip-list>li,.detail-grid>article,.inspiration-card,.sailing-card,.journey-photo,.destination-photo,.destination-card,.rail-journey,.hub-destination,.cb-island-card,.cb-journey-card,.ti-card){outline-offset:4px!important}
:is(.step,.steps>article,.process-steps>li,.process ol>li,.service-card,.region-card,.journey-card,.celebration-card,.fit-card,.benefits>article,.trip-pieces>article,.pathway,.resource-card,.checklist-card,.nd-highlight-block,article[tabindex="0"],.trip-list>li,.detail-grid>article,.inspiration-card,.sailing-card,.journey-photo,.destination-photo,.destination-card,.rail-journey,.hub-destination,.cb-island-card,.cb-journey-card,.ti-card):is(:hover,:focus,:focus-within,:active){box-shadow:none!important;outline:2px solid var(--nd-destination-highlight,var(--nd-detail-accent,#9b6c36))!important;outline-offset:4px!important}
:is(.step,.steps>article,.process-steps>li,.process ol>li,.service-card,.region-card,.journey-card,.celebration-card,.fit-card,.benefits>article,.trip-pieces>article,.pathway,.resource-card,.checklist-card,.nd-highlight-block,article[tabindex="0"],.trip-list>li,.detail-grid>article,.inspiration-card,.sailing-card,.journey-photo,.destination-photo,.destination-card,.rail-journey,.hub-destination,.cb-island-card,.cb-journey-card,.ti-card):focus-visible{outline-color:var(--nd-destination-accent,var(--nd-detail-accent,#9b6c36))!important;outline-width:3px!important}
/* Simple text blocks get an inset on every side; image cards keep full-bleed art. */
:is(.step,.steps>article,.process-steps>li,.process ol>li,.service-card,.celebration-card,.fit-card,.benefits>article,.trip-pieces>article,.pathway,.resource-card,.checklist-card,.nd-highlight-block,.trip-list>li,.detail-grid>article,.inspiration-card):not(:has(img,picture,figure,video)){padding:clamp(22px,2.4vw,32px)}
.journey-card .card-body,.rail-journey .rail-card-body{padding:clamp(24px,2.4vw,32px)}
/* Reverse destination panels give the main directory a deliberate, readable frame. */
.hub-destination{background:var(--nd-destination-deep,#14313c);color:#fffdf8}
.hub-destination .hub-card-copy{padding:clamp(24px,2.4vw,32px);background:var(--nd-destination-deep,#14313c);color:#fffdf8;gap:0;min-width:0}
.hub-destination .hub-card-copy h3,.hub-destination .hub-card-copy h3 a,.hub-destination .hub-card-copy .text-link{color:#fffdf8}
.hub-destination .hub-card-copy .hub-card-tagline{color:var(--nd-destination-highlight,#f2c886)}
.hub-destination .hub-card-copy p:not(.hub-card-tagline){color:#e5edea}
.hub-destination .hub-card-copy a{text-decoration-color:var(--nd-destination-highlight,#f2c886);text-underline-offset:5px}
.hub-destination .hub-card-copy .text-link{padding-top:16px;align-self:flex-start;white-space:normal}
.hub-destination .hub-card-copy a:focus-visible{outline:2px solid #fffdf8;outline-offset:5px}
.hub-conversation{padding:clamp(26px,3vw,42px)}
@media(max-width:700px){.hub-destination .hub-card-copy{padding:24px}.cb-island-card{padding:24px 22px}.quiz-options label{padding:22px}.choice>span{padding:20px 18px!important}.choice input:checked+span{padding:19px 17px!important}}

/* Pointer and keyboard color reversal; no persistent click state. */
:is(.step,.steps>article,.process-steps>li,.process ol>li,.service-card,.region-card,.fit-card,.benefits>article,.trip-pieces>article,.pathway,.resource-card,.checklist-card,.nd-highlight-block,.trip-list>li,.detail-grid>article,.inspiration-card,.cb-island-card,.cb-journey-card):not(:has(img,picture,video,form,input)) {transition:background-color .18s,color .18s}
:is(.step,.steps>article,.process-steps>li,.process ol>li,.service-card,.region-card,.fit-card,.benefits>article,.trip-pieces>article,.pathway,.resource-card,.checklist-card,.nd-highlight-block,.trip-list>li,.detail-grid>article,.inspiration-card,.cb-island-card,.cb-journey-card):not(:has(img,picture,video,form,input)):is(:focus-visible,:focus-within),
:is(.journey-card,.rail-journey,.nd-exp-card):focus-within :is(.card-body,.rail-card-body,.nd-exp-card-body){background:var(--nd-destination-deep,#14313c)!important;color:#fffdf8!important}
:is(.step,.steps>article,.process-steps>li,.process ol>li,.service-card,.region-card,.fit-card,.benefits>article,.trip-pieces>article,.pathway,.resource-card,.checklist-card,.nd-highlight-block,.trip-list>li,.detail-grid>article,.inspiration-card,.cb-island-card,.cb-journey-card):not(:has(img,picture,video,form,input)):is(:focus-visible,:focus-within) :is(h2,h3,h4,p,span,a),
:is(.journey-card,.rail-journey,.nd-exp-card):focus-within :is(.card-body,.rail-card-body,.nd-exp-card-body) :is(h2,h3,h4,p,span,a){color:inherit!important}
@media(hover:hover) and (pointer:fine){
:is(.step,.steps>article,.process-steps>li,.process ol>li,.service-card,.region-card,.fit-card,.benefits>article,.trip-pieces>article,.pathway,.resource-card,.checklist-card,.nd-highlight-block,.trip-list>li,.detail-grid>article,.inspiration-card,.cb-island-card,.cb-journey-card):not(:has(img,picture,video,form,input)):hover,
:is(.journey-card,.rail-journey,.nd-exp-card):hover :is(.card-body,.rail-card-body,.nd-exp-card-body){background:var(--nd-destination-deep,#14313c)!important;color:#fffdf8!important}
:is(.step,.steps>article,.process-steps>li,.process ol>li,.service-card,.region-card,.fit-card,.benefits>article,.trip-pieces>article,.pathway,.resource-card,.checklist-card,.nd-highlight-block,.trip-list>li,.detail-grid>article,.inspiration-card,.cb-island-card,.cb-journey-card):not(:has(img,picture,video,form,input)):hover :is(h2,h3,h4,p,span,a),
:is(.journey-card,.rail-journey,.nd-exp-card):hover :is(.card-body,.rail-card-body,.nd-exp-card-body) :is(h2,h3,h4,p,span,a){color:inherit!important}
}
/* HTML image dimensions reserve space; responsive card CSS owns rendered height. */
.region-grid>.region-card{min-width:0;min-height:0;align-self:stretch}
.region-grid>.region-card>img{display:block;width:100%;height:auto!important;aspect-ratio:3/2;object-fit:cover;flex:0 0 auto;min-height:0}
.journey-card .card-photo{position:relative;aspect-ratio:1.35;min-height:0;flex:0 0 auto;overflow:hidden}
.journey-card .card-photo>img{position:absolute;inset:0;width:100%;height:100%;object-fit:cover;min-height:0}
@media(prefers-reduced-motion:reduce){.region-card,.journey-card,.card-body,.service-card,.step,.cb-island-card,.cb-journey-card{transition:none!important}}
