/* 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}}

/* Separate planning steps so a focus frame never crosses a neighboring card. */
.steps{gap:24px;background:transparent;border:0;align-items:stretch}
.steps>.step{min-width:0;border:1px solid #ffffff66;padding:clamp(26px,3vw,36px);outline:2px solid transparent;outline-offset:4px;transition:background-color .18s,color .18s}
.steps>.step:is(:focus-visible,:focus-within){background:#f1e4c9!important;color:#102c38!important;outline:2px solid #e9b896!important;outline-offset:4px!important}
.steps>.step:is(:focus-visible,:focus-within) :is(h3,p,span){color:inherit!important}
@media(hover:hover) and (pointer:fine){.steps>.step:hover{background:#f1e4c9!important;color:#102c38!important;outline:2px solid #e9b896!important;outline-offset:4px!important}.steps>.step:hover :is(h3,p,span){color:inherit!important}}
@media(max-width:700px){.steps{gap:22px}}
@media(prefers-reduced-motion:reduce){.steps>.step{transition:none}}

/* Curated Cruise benefits are three distinct, keyboard-focusable cards. */
.curated-cruises .curated-points{display:grid;gap:20px;border:0;min-width:0}
.curated-cruises .curated-point-card{display:grid;grid-template-columns:36px minmax(0,1fr);column-gap:18px;padding:26px;border:1px solid #8daaa9;background:#fbf8f2;color:#102c38;outline:2px solid transparent;outline-offset:4px;transition:background-color .18s,color .18s,border-color .18s}
.curated-cruises .curated-point-card>span{grid-column:1;grid-row:1/3;color:#825337;font:italic 1.25rem/1.4 var(--serif)}
.curated-cruises .curated-point-card h3{grid-column:2;margin:0 0 10px;font:400 clamp(25px,2.1vw,31px)/1.15 var(--serif);color:inherit}
.curated-cruises .curated-point-card p{grid-column:2;color:inherit;margin:0;font-size:15px;line-height:1.75}
.curated-cruises .curated-point-card:focus-visible{background:#102c38;color:#fffdf8;outline:2px solid #b98456;outline-offset:4px;border-color:#102c38}
.curated-cruises .curated-point-card:focus-visible>span{color:#efb99e}
@media(hover:hover) and (pointer:fine){.curated-cruises .curated-point-card:hover{background:#102c38;color:#fffdf8;border-color:#102c38}.curated-cruises .curated-point-card:hover>span{color:#efb99e}}
@media(max-width:760px){.curated-cruises .curated-points{gap:18px}.curated-cruises .curated-point-card{padding:24px;grid-template-columns:28px minmax(0,1fr);column-gap:14px}}
@media(prefers-reduced-motion:reduce){.curated-cruises .curated-point-card{transition:none}}

/* Celebration styles: separate the cards so reverse-color focus frames have room. */
.celebration-styles.resource-grid{gap:20px;background:transparent;border:0}
.celebration-styles>.resource{border:1px solid var(--stone,#c9c2b6)}
