/* Nifty Ducks shared presentation — 2026-10-30. Destination palettes stay local. */
:root{--nd-family-body:"Avenir Next",Avenir,"Helvetica Neue",Arial,sans-serif;--nd-family-heading:Baskerville,"Iowan Old Style","Palatino Linotype",Georgia,serif}
body{font-family:var(--nd-family-body)!important}
h1,h2,h3,h4{font-family:var(--nd-family-heading)!important}
/* Shared actions remain legible and have the same comfortable target size. */
a.button,button.button{font-family:var(--nd-family-body)!important;font-size:12px!important;line-height:1.5;letter-spacing:.065em;min-height:48px;white-space:normal;text-align:center;border-radius:3px}
a.text-link{font-family:var(--nd-family-body)!important;font-size:12px!important;line-height:1.6;min-height:44px;display:inline-flex;align-items:center;gap:6px;white-space:normal;max-width:100%}
:is(.nd-short-card,.nd-inquiry-card) :is(input,textarea,button){font-family:var(--nd-family-body)!important}
:is(.nd-short-card,.nd-inquiry-card) :is(input,textarea){font-size:16px}
/* Keep the shared logo the same visual size on every site's navigation. */
.nd-brand img{width:145px;height:84px;object-fit:contain}
@media(max-width:760px){.nd-header .nd-brand img{width:100px!important;height:58px!important}.nd-controls{min-width:0}.nd-plan{white-space:normal}}
/* Independent reading cards leave space for complete focus outlines. */
:is(.steps,.benefits,.process-steps,.trip-list,.detail-grid){gap:22px;background:transparent;border:0}
:is(.benefits,.process-steps,.trip-list){display:grid}
:is(.steps>article,.steps>.step,.benefits>article,.process-steps>li,.trip-list>li,.detail-grid>article){box-sizing:border-box;min-width:0;padding:clamp(24px,2.4vw,32px)!important;border:1px solid color-mix(in srgb,currentColor 28%,transparent)!important}
:is(.step,.service-card,.fit-card,.celebration-card,.cb-island-card,.cb-journey-card,.nd-exp-card,.detail-grid>article){min-width:0;overflow-wrap:break-word}
/* Media-box dimensions are independent of source image dimensions. */
:is(.journey-card,.region-card,.hub-destination,.destination-card,.sailing-card) img{max-width:100%;object-fit:cover}

: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}}

/* Apply the same temporary reversal to celebration cards. */
.celebration-card:is(:focus-visible,:focus-within){background:var(--nd-destination-deep,#14313c)!important;color:#fffdf8!important}
.celebration-card:is(:focus-visible,:focus-within) :is(p,h3,span,a,b){color:inherit!important}
@media(hover:hover) and (pointer:fine){.celebration-card:hover{background:var(--nd-destination-deep,#14313c)!important;color:#fffdf8!important}.celebration-card:hover :is(p,h3,span,a,b){color:inherit!important}}
/* Cards on dark sections reverse to a light surface. */
:is(.dark .steps,.process .steps,.whole-trip .trip-list)>:is(article,li,.step):is(:focus-visible,:focus-within){background:#f1e4c9!important;color:#102c38!important}
:is(.dark .steps,.process .steps,.whole-trip .trip-list)>:is(article,li,.step):is(:focus-visible,:focus-within) :is(h3,p,span,a){color:inherit!important}
@media(hover:hover) and (pointer:fine){:is(.dark .steps,.process .steps,.whole-trip .trip-list)>:is(article,li,.step):hover{background:#f1e4c9!important;color:#102c38!important}:is(.dark .steps,.process .steps,.whole-trip .trip-list)>:is(article,li,.step):hover :is(h3,p,span,a){color:inherit!important}}
@media(prefers-reduced-motion:reduce){.celebration-card{transition:none!important}}
