/*
Theme Name: Miab UM4001
Version: 1.2.0
Text Domain: sw4-um4001
*/
/* El Messiri for headings and Almarai for text (both SIL OFL 1.1, licences in assets/fonts). */
@font-face{font-family:'El Messiri';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/el-messiri-400_700-arabic.woff2) format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+0870-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:'El Messiri';font-style:normal;font-weight:400 700;font-display:swap;src:url(assets/fonts/el-messiri-400_700-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Almarai';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/almarai-400-arabic.woff2) format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+0870-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:'Almarai';font-style:normal;font-weight:400;font-display:swap;src:url(assets/fonts/almarai-400-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}
@font-face{font-family:'Almarai';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/almarai-700-arabic.woff2) format('woff2');unicode-range:U+0600-06FF,U+0750-077F,U+0870-0891,U+0897-08E1,U+08E3-08FF,U+200C-200E,U+2010-2011,U+204F,U+2E41,U+FB50-FDFF,U+FE70-FE74,U+FE76-FEFC}
@font-face{font-family:'Almarai';font-style:normal;font-weight:700;font-display:swap;src:url(assets/fonts/almarai-700-latin.woff2) format('woff2');unicode-range:U+0000-00FF,U+0131,U+0152-0153,U+02BB-02BC,U+02C6,U+02DA,U+02DC,U+0304,U+0308,U+0329,U+2000-206F,U+20AC,U+2122,U+2191,U+2193,U+2212,U+2215,U+FEFF,U+FFFD}

/* Colours: every colour is a token here, so the dark-mode plugin can make its dark copy.
   Shades of the main colour are named --primary-*, so a new main colour moves them too. */
:root{
	--primary:#6b1d2b;--primary-hover:#571623;--primary-deep:#4a1420;--primary-tint:#f6ebe7;
	--accent:#b58a3f;--accent-ink:#7d5a1c;--accent-soft:#e7d2a2;
	--paper:#fbf7ef;--surface:#ffffff;--sand:#f4ebdc;
	--ink:#2b1c1d;--muted:#6b5a55;--line:#eadfcb;--field-line:#d5c5a8;
	--on-primary:#ffffff;--on-deep:#f8efe3;--on-deep-muted:#dcc6b4;--on-deep-line:rgba(248,239,227,.2);
	--error:#9a2f1f;--error-tint:#fbede9;--shadow:rgba(74,20,32,.12);
	--radius:12px;--display:'El Messiri',Georgia,serif;--text:'Almarai',Tahoma,Arial,sans-serif
}
*,*::before,*::after{box-sizing:border-box}
html{scroll-behavior:smooth;scroll-padding-top:20px;-webkit-text-size-adjust:100%}
body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--text);font-size:16px;line-height:1.85}
html[lang^=en] body{line-height:1.65}
h1,h2,h3,p,figure,blockquote{margin:0}
h1,h2,h3{font-family:var(--display);font-weight:700;line-height:1.35;color:var(--ink)}
h1{font-size:clamp(42px,4.8vw,68px);line-height:1.25}
h2{font-size:clamp(30px,3vw,42px);line-height:1.3}
h3{font-size:22px;line-height:1.4}
p{color:var(--muted)}
a{color:inherit;text-decoration:none}
img{max-width:100%;height:auto;display:block}
svg{max-width:100%}
button,input,select,textarea{font:inherit;color:inherit}
button{cursor:pointer}
input[type=radio],input[type=checkbox]{accent-color:var(--primary)}
[hidden]{display:none!important}
a:focus-visible,button:focus-visible,input:focus-visible,select:focus-visible,textarea:focus-visible,summary:focus-visible{outline:3px solid var(--accent);outline-offset:3px}
.skip-link{position:absolute;inset-inline-start:12px;top:-100px;z-index:1000;padding:10px 16px;background:var(--surface);color:var(--ink)}
.skip-link:focus{top:10px}
.screen-reader-text{position:absolute!important;width:1px;height:1px;overflow:hidden;clip:rect(1px,1px,1px,1px);white-space:nowrap}
.shell{width:min(1200px,calc(100% - 80px));margin-inline:auto}
.section{padding:96px 0}
.eyebrow{display:inline-flex;align-items:center;gap:12px;margin-bottom:14px;color:var(--accent-ink);font-size:14px;font-weight:700}
.eyebrow::before{content:'';flex:none;width:28px;height:2px;background:var(--accent)}
html[lang^=en] .eyebrow{font-size:12px;letter-spacing:.12em;text-transform:uppercase}
.um-arrow{display:inline-block;line-height:1}

/* Buttons and links */
.button,.swl .swl-submit,.woocommerce button.button,.woocommerce a.button,.woocommerce input.button,.woocommerce #respond input#submit{display:inline-flex;align-items:center;justify-content:center;gap:10px;min-height:50px;padding:12px 28px;border:1.5px solid var(--primary);border-radius:var(--radius);background:var(--primary);color:var(--on-primary);font-weight:700;font-size:15px;line-height:1.4;text-align:center;cursor:pointer;transition:background-color .2s,border-color .2s,color .2s}
.button:hover,.swl .swl-submit:hover,.woocommerce button.button:hover,.woocommerce a.button:hover,.woocommerce input.button:hover{background:var(--primary-hover);border-color:var(--primary-hover);color:var(--on-primary)}
.button.secondary{background:transparent;color:var(--primary)}
.button.secondary:hover{background:var(--primary-tint);color:var(--primary)}
.button.small{min-height:42px;padding:8px 18px;font-size:14px}
.button.on-deep{background:var(--accent-soft);border-color:var(--accent-soft);color:var(--primary-deep)}
.button.on-deep:hover{background:var(--on-deep);border-color:var(--on-deep);color:var(--primary-deep)}
.text-link{display:inline-flex;align-items:center;gap:8px;color:var(--primary);font-weight:700;font-size:15px;border-bottom:1.5px solid var(--accent);padding-bottom:2px}

/* Header: name and mark at the start, menu, then the actions */
.site-header{background:var(--surface);border-top:4px solid var(--primary);border-bottom:1px solid var(--line);position:relative;z-index:20}
.header-inner{display:flex;align-items:center;gap:40px;min-height:84px}
.logo{flex:none}
.brand{display:inline-flex;align-items:center;gap:12px;color:var(--primary);font-family:var(--display);font-size:30px;font-weight:700;line-height:1}
.brand-mark{width:36px;height:36px;flex:none;color:var(--primary)}
.mark-moon{fill:var(--accent-soft)}
.custom-logo{width:auto;height:56px;object-fit:contain}
.desktop-nav{display:flex;align-items:center;gap:28px;font-size:15px}
.desktop-nav a{white-space:nowrap;color:var(--ink);padding:6px 0;border-bottom:2px solid transparent}
.desktop-nav a:hover{border-bottom-color:var(--accent);color:var(--primary)}
.header-actions{display:flex;align-items:center;gap:18px;margin-inline-start:auto}
.language{display:inline-grid;place-items:center;min-width:40px;min-height:32px;padding:2px 10px;border:1px solid var(--line);border-radius:999px;font-size:13px;font-weight:700;color:var(--primary)}
.bag-link{display:inline-flex;align-items:center;gap:6px;font-size:14px;color:var(--ink)}
.bag-link svg{color:var(--primary)}
.menu-toggle{display:none;width:44px;height:44px;padding:0;border:1px solid var(--line);border-radius:10px;background:var(--surface)}
.menu-toggle span{display:block;width:18px;height:1.5px;margin:5px auto;background:var(--ink)}
#mobile-nav{padding:6px 20px 18px;background:var(--surface);border-top:1px solid var(--line)}
#mobile-nav a{display:block;padding:12px 2px;border-bottom:1px solid var(--line)}
#mobile-nav a:last-child{border-bottom:0}

/* Home: hero with the photo, its offset frame and the route ticket */
.um-hero{padding:72px 0 88px;background:var(--paper)}
.um-hero-grid{display:grid;grid-template-columns:minmax(0,1.05fr) minmax(0,.95fr);gap:80px;align-items:center}
.um-hero h1 span{display:block}
.um-lead{max-width:540px;margin-top:22px;font-size:18px}
.um-hero-actions{display:flex;flex-wrap:wrap;align-items:center;gap:18px 30px;margin-top:34px}
.um-photo{position:relative;padding:0 0 70px;margin:0}
.um-photo-frame{position:relative;max-width:470px;margin-inline-start:auto}
.um-photo-frame::before{content:'';position:absolute;inset-block:20px -20px;inset-inline:20px -20px;border:1.5px solid var(--accent);border-radius:var(--radius);pointer-events:none}
.um-photo-frame img{position:relative;z-index:1;width:100%;aspect-ratio:4/5;object-fit:cover;object-position:62% center;border-radius:var(--radius)}
.um-ticket{position:absolute;z-index:2;bottom:0;inset-inline-start:0;width:min(400px,92%);background:var(--surface);border:1px solid var(--line);border-radius:14px;box-shadow:0 18px 40px var(--shadow)}
.ticket-route{display:flex;align-items:center;gap:14px;padding:16px 20px}
.ticket-route p{display:grid;gap:2px;min-width:0}
.ticket-route p:last-child{text-align:end}
.ticket-route small{font-size:12px;color:var(--muted)}
.ticket-route strong{font-family:var(--display);font-size:18px;font-weight:700;line-height:1.35;color:var(--ink)}
.ticket-path{position:relative;flex:1 1 40px;min-width:34px;border-top:2px dashed var(--accent)}
.ticket-path::after{content:'';position:absolute;top:-6px;inset-inline-end:-2px;width:10px;height:10px;background:var(--primary);transform:rotate(45deg)}
.ticket-facts{display:flex;flex-wrap:wrap;gap:6px 18px;margin:0;padding:12px 20px 14px;list-style:none;border-top:1.5px dashed var(--field-line);font-size:13px;color:var(--ink)}
.ticket-facts li{display:inline-flex;align-items:center;gap:8px}
.ticket-facts li::before{content:'';width:6px;height:6px;background:var(--accent);transform:rotate(45deg)}

/* Section heads: start-aligned, the short text at the end */
.um-head{display:flex;flex-wrap:wrap;align-items:flex-end;justify-content:space-between;gap:16px 60px;margin-bottom:44px}
.um-head>div{max-width:680px}
.um-head>p{max-width:420px;font-size:15px}

/* Programmes (WooCommerce products) */
.um-programmes{background:var(--surface);border-bottom:1px solid var(--line)}
.product-grid,.woocommerce ul.products{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:28px;margin:0;padding:0;list-style:none}
.woocommerce ul.products::before,.woocommerce ul.products::after{display:none}
.woocommerce ul.products li.product{width:auto!important;float:none!important;margin:0!important;padding:0}
.product-card{display:flex;flex-direction:column;min-width:0;background:var(--paper);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.product-photo{display:block}
.product-photo img,.woocommerce ul.products li.product a img{width:100%;margin:0;aspect-ratio:3/2;object-fit:cover}
.product-copy{display:flex;flex-direction:column;flex:1;padding:22px 22px 24px}
.product-copy h3{font-size:23px;margin-bottom:8px}
.product-copy h3 a:hover{color:var(--primary)}
.woocommerce ul.products li.product .product-copy h3{margin:0 0 8px;padding:0;font-size:23px}
.product-copy>p{font-size:14px}
.product-copy .product-price{display:flex;flex-wrap:wrap;align-items:baseline;gap:4px 8px;margin:18px 0;padding:12px 14px;border-radius:8px;background:var(--sand);color:var(--primary);font-weight:700;font-size:17px}
.product-copy .product-price small{font-size:13px;font-weight:400;color:var(--muted)}
.product-copy .product-price del{opacity:.6;font-weight:400}
.product-note{margin-bottom:14px;font-size:13px;color:var(--accent-ink)}
.product-copy>.text-link{align-self:flex-start;margin-top:auto;font-size:14px}
.grid-more{margin-top:40px;text-align:center}

/* The programme timeline: a vertical itinerary on the deep band */
.um-journey{padding:96px 0;background:var(--primary-deep);color:var(--on-deep)}
.um-journey-grid{display:grid;grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr);gap:80px;align-items:start}
.um-journey-intro h2{color:var(--on-deep)}
.um-journey-intro>p:not(.eyebrow){margin-top:16px;max-width:400px;color:var(--on-deep-muted)}
.um-journey .eyebrow{color:var(--accent-soft)}
.um-journey .eyebrow::before{background:var(--accent-soft)}
.journey-line{margin:0;padding:0;list-style:none}
.journey-line li{position:relative;display:grid;grid-template-columns:120px 44px minmax(0,1fr);align-items:start;padding-bottom:34px}
.journey-line li:last-child{padding-bottom:0}
.journey-line li::before{content:'';grid-column:2;grid-row:1;justify-self:center;position:relative;z-index:1;width:14px;height:14px;margin-top:10px;background:var(--primary-deep);border:2px solid var(--accent-soft);transform:rotate(45deg)}
.journey-line li:not(:last-child)::after{content:'';position:absolute;top:26px;bottom:2px;inset-inline-start:141px;border-inline-start:1.5px solid var(--on-deep-line)}
.journey-when{grid-column:1;grid-row:1;padding-top:6px;color:var(--accent-soft);font-size:13px;font-weight:700;text-align:end}
.journey-line li>div{grid-column:3;grid-row:1}
.journey-line h3{color:var(--on-deep);font-size:24px;margin-bottom:6px}
.journey-line p{color:var(--on-deep-muted);font-size:15px}

/* What is included, then the four booking steps in a row */
.um-included{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:48px;align-items:center;padding:48px;background:var(--sand);border-radius:20px}
.um-included-text>p:not(.eyebrow){margin:16px 0 22px;font-size:15px}
.included-list{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:12px;margin:0;padding:0;list-style:none}
.included-list li{display:flex;align-items:flex-start;gap:12px;padding:14px 16px;background:var(--surface);border-radius:10px;color:var(--ink);font-size:15px;line-height:1.6}
.included-list li::before{content:'';flex:none;width:8px;height:14px;margin:2px 6px 0;border-right:2.5px solid var(--primary);border-bottom:2.5px solid var(--primary);transform:rotate(40deg)}
.um-steps{margin-top:84px}
.booking-steps{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:28px;margin:0;padding:0;list-style:none;counter-reset:um4001-step}
.booking-steps li{position:relative;counter-increment:um4001-step;padding-top:38px;border-top:2px solid var(--line)}
.booking-steps li::before{content:counter(um4001-step);position:absolute;top:-19px;inset-inline-start:0;display:grid;place-items:center;width:36px;height:36px;border-radius:10px;background:var(--primary);color:var(--on-primary);font-family:var(--display);font-size:18px;font-weight:700;line-height:1}
.booking-steps h3{font-size:20px;margin-bottom:6px}
.booking-steps p{font-size:14.5px}

/* Accommodation and other lists */
.um-stays{background:var(--sand)}
.entry-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:28px}
.entry-card{display:flex;flex-direction:column;gap:10px;padding:24px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius);overflow:hidden}
.entry-card:has(.entry-image){padding-top:0}
.entry-image{display:block;margin:0 -24px 6px}
.entry-image img{width:100%;aspect-ratio:16/9;object-fit:cover}
.card-heading{display:flex;align-items:center;justify-content:space-between;gap:14px}
.card-heading h3{font-size:25px}
.card-heading .um-arrow{color:var(--primary);font-size:18px}
.card-heading:hover h3{color:var(--primary)}
.entry-card p{font-size:15px}

/* FAQ: two columns of questions between rules */
.um-faq{background:var(--paper)}
.faq-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:0 56px;align-items:start}
.faq-grid details{border-bottom:1px solid var(--line)}
.faq-grid details:nth-child(-n+2){border-top:1px solid var(--line)}
summary{display:flex;align-items:center;justify-content:space-between;gap:16px;padding:20px 0;list-style:none;cursor:pointer;font-weight:700;color:var(--ink)}
summary::-webkit-details-marker{display:none}
summary span{display:grid;place-items:center;flex:none;width:30px;height:30px;border-radius:50%;background:var(--primary-tint);color:var(--primary);font-size:19px;line-height:1;transition:transform .2s}
details[open] summary span{transform:rotate(45deg)}
details p{margin:0 0 12px;font-size:15px}
details .text-link{margin-bottom:20px;font-size:14px}
#reviews blockquote{margin:16px 0;padding:20px 24px;background:var(--surface);border-radius:var(--radius)}

/* Footer */
.site-footer{padding:64px 0 26px;background:var(--primary-deep);color:var(--on-deep)}
.footer-top{display:flex;flex-wrap:wrap;align-items:center;justify-content:space-between;gap:20px 40px;padding-bottom:36px;margin-bottom:40px;border-bottom:1px solid var(--on-deep-line)}
.footer-brand{font-family:var(--display);font-size:42px;font-weight:700;line-height:1.2;color:var(--on-deep)}
.footer-name p{margin-top:4px;color:var(--on-deep-muted)}
.footer-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.3fr);gap:60px}
.footer-grid h2{margin-bottom:16px;font-family:inherit;font-size:14px;font-weight:700;color:var(--accent-soft)}
.footer-links nav{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:10px 24px}
.footer-links a{color:var(--on-deep)}
.footer-links a:hover{color:var(--accent-soft)}
.contact-details{margin:0 0 20px}
.contact-details>div{display:grid;grid-template-columns:110px minmax(0,1fr);gap:16px;margin:0 0 10px;font-size:14px}
.contact-details dt{color:var(--muted);font-size:13px}
.contact-details dd{margin:0;overflow-wrap:anywhere}
.site-footer .contact-details dt{color:var(--on-deep-muted)}
.site-footer .button.secondary{color:var(--on-deep);border-color:var(--accent-soft)}
.site-footer .button.secondary:hover{background:var(--accent-soft);color:var(--primary-deep)}
.footer-bottom{display:flex;flex-wrap:wrap;align-items:center;gap:12px 24px;margin-top:48px;padding-top:20px;border-top:1px solid var(--on-deep-line);font-size:12px;color:var(--on-deep-muted)}
.footer-bottom>span:first-child{margin-inline-end:auto}

/* Inner pages */
.page-heading{padding:56px 0 48px;background:var(--sand);border-bottom:1px solid var(--line)}
.page-heading h1{font-size:clamp(36px,4vw,54px)}
.rich-content{max-width:860px}
.rich-content p{margin:0 0 20px}
.rich-content h2{font-size:30px;margin:34px 0 12px}
.rich-content a{color:var(--primary);text-decoration:underline}
.booking-grid{display:grid;grid-template-columns:minmax(0,.9fr) minmax(0,1.1fr);gap:72px;align-items:start}
.booking-grid h2{margin-bottom:14px}
.booking-grid>div>p{margin-bottom:26px}
.form-panel{padding:34px;background:var(--surface);border:1px solid var(--line);border-top:4px solid var(--primary);border-radius:var(--radius)}
.single-grid{display:grid;grid-template-columns:minmax(0,1.2fr) minmax(0,.8fr);gap:64px;align-items:start}
.reading-content{max-width:760px}
.large-excerpt{margin-bottom:28px;color:var(--ink);font-size:20px}
.item-details{margin:0 0 32px;border-top:1px solid var(--line)}
.item-details>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1fr);gap:24px;padding:14px 0;border-bottom:1px solid var(--line)}
.item-details dt{color:var(--muted)}
.item-details dd{margin:0;font-weight:700}
.single-grid aside img{width:100%;aspect-ratio:4/5;object-fit:cover;border-radius:var(--radius)}
.single-grid .button{margin-top:8px}
#not-found .button{margin-top:24px}
#not-found p,#archive h1{margin-top:12px}
#archive h1{margin-bottom:28px}
.navigation.pagination,.woocommerce nav.woocommerce-pagination{margin-top:36px}
.nav-links,.woocommerce nav.woocommerce-pagination ul{display:flex;flex-wrap:wrap;gap:8px;border:0!important}
.nav-links .page-numbers,.woocommerce nav.woocommerce-pagination ul li{border:0!important}
.nav-links .page-numbers,.woocommerce nav.woocommerce-pagination ul li a,.woocommerce nav.woocommerce-pagination ul li span{display:grid;place-items:center;min-width:42px;height:42px;padding:0 12px;border:1px solid var(--line);border-radius:8px;background:var(--surface)}
.nav-links .page-numbers.current,.woocommerce nav.woocommerce-pagination ul li span.current{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}

/* SeifWeb Leads form (contact page) */
.swl-trap{position:absolute!important;inset-inline-start:-10000px!important;top:auto!important;width:1px!important;height:1px!important;overflow:hidden!important}
.swl-form{position:relative}
.swl-title{font-size:26px;margin-bottom:8px}
.swl-intro{margin-bottom:18px}
.swl-row{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:16px}
.swl-row>.swl-field:only-child{grid-column:1/-1}
.swl-field{margin:0 0 16px;min-width:0}
.swl-field label,.swl-channel legend{display:block;margin-bottom:6px;color:var(--ink);font-size:13px;font-weight:700}
.swl-field input,.swl-field select,.swl-field textarea{display:block;width:100%;max-width:100%;min-width:0;min-height:50px;padding:11px 14px;border:1px solid var(--field-line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:15px}
.swl-field textarea{min-height:130px;resize:vertical}
.swl-field input:focus,.swl-field select:focus,.swl-field textarea:focus{border-color:var(--primary)}
.swl-channel{border:0;padding:0}
.swl-channel label{display:inline-flex;gap:6px;margin-inline-end:16px;font-weight:400}
.swl-actions{margin:6px 0 12px}
.swl .swl-submit{width:100%}
.swl-privacy{font-size:12px;color:var(--muted)}
.swl-privacy a{text-decoration:underline}
.swl-notice{margin-bottom:18px;padding:12px 16px;border-radius:8px}
.swl-notice.is-success{background:var(--primary-tint);color:var(--primary)}
.swl-notice.is-error{background:var(--error-tint);color:var(--error)}

/* Shop: filters and the programme list */
.store-filters{display:flex;flex-wrap:wrap;align-items:flex-end;gap:14px;margin-bottom:36px;padding:22px;background:var(--surface);border:1px solid var(--line);border-radius:var(--radius)}
.store-filters>div{flex:1;min-width:180px}
.store-filters label{display:block;margin-bottom:6px;font-size:13px;font-weight:700}
.store-filters input,.store-filters select{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--field-line);border-radius:10px;background:var(--surface);color:var(--ink)}
.woocommerce .woocommerce-result-count{font-size:13px;color:var(--muted)}
.woocommerce .woocommerce-ordering select{min-height:44px;padding:8px 12px;border:1px solid var(--field-line);border-radius:10px;background:var(--surface);color:var(--ink)}
.woocommerce .woocommerce-breadcrumb{margin-bottom:24px;font-size:13px;color:var(--muted)}
.woocommerce .woocommerce-breadcrumb a{color:var(--primary)}

/* Single programme */
.woocommerce div.product div.images img{border-radius:var(--radius)}
.woocommerce div.product .product_title{font-size:clamp(34px,3.4vw,46px);margin-bottom:10px}
.woocommerce div.product p.price,.woocommerce div.product span.price{color:var(--primary);font-size:22px;font-weight:700}
.woocommerce div.product .woocommerce-product-details__short-description p{margin:16px 0}
.woocommerce div.product form.cart{margin:24px 0}
.woocommerce div.product form.cart .variations{width:100%;margin-bottom:12px;border-collapse:collapse}
.woocommerce div.product form.cart .variations th,.woocommerce div.product form.cart .variations td{display:block;padding:0;text-align:start;line-height:1.6}
.woocommerce div.product form.cart .variations th label{font-size:14px;font-weight:700}
.woocommerce div.product form.cart .variations td{padding-bottom:14px}
.woocommerce div.product form.cart .variations select{width:100%;max-width:420px;min-height:48px;padding:10px 12px;border:1px solid var(--field-line);border-radius:10px;background:var(--surface);color:var(--ink)}
.woocommerce div.product form.cart .reset_variations{font-size:13px;color:var(--primary)}
.woocommerce div.product .single_variation_wrap .woocommerce-variation-price{margin:6px 0 14px}
.woocommerce div.product form.cart .woocommerce-variation-add-to-cart{display:flex;flex-wrap:wrap;align-items:center;gap:12px}
.woocommerce .quantity input.qty{width:80px;min-height:50px;padding:8px;border:1px solid var(--field-line);border-radius:10px;background:var(--surface);color:var(--ink);text-align:center}
.woocommerce div.product form.cart .button,.woocommerce button.button.alt,.woocommerce a.button.alt,.woocommerce input.button.alt{background:var(--primary);border-color:var(--primary);color:var(--on-primary)}
.woocommerce div.product form.cart .button.sw-buy-now{background:transparent;border-color:var(--accent);color:var(--primary)}
.woocommerce div.product form.cart .button.sw-buy-now:hover{background:var(--sand)}
.woocommerce button.button.disabled,.woocommerce button.button:disabled{opacity:.55}
.wapf{flex-basis:100%;width:100%;margin:6px 0 14px}
.wapf-field-container{margin-bottom:16px}
.wapf-field-label{margin-bottom:6px;font-size:14px;font-weight:700}
.wapf input,.wapf textarea,.wapf select{width:100%;min-height:48px;padding:10px 12px;border:1px solid var(--field-line);border-radius:10px;background:var(--surface);color:var(--ink)}
.wapf textarea{min-height:110px}
.wapf-field-description{margin-top:6px;font-size:12px;color:var(--muted)}
.wapf-product-totals{font-size:14px}
/* Deposits (deposit or full payment): the plugin's own blue, orange and fixed width replaced with this theme's tokens. */
.awcdp-deposits-wrapper{width:100%;margin:6px 0 14px}
body .awcdp-deposits-wrapper .awcdp-deposits-option{width:100%;max-width:440px;margin-bottom:16px;background:var(--surface);border:1px solid var(--line);border-radius:10px;overflow:hidden}
body .awcdp-deposits-wrapper .awcdp-deposits-option .awcdp-radio{padding:14px 16px;border-bottom:1px solid var(--line)}
body .awcdp-deposits-wrapper .awcdp-deposits-option .awcdp-radio:last-child{border-bottom:0}
body .awcdp-deposits-wrapper .awcdp-deposits-option .pay-deposit.awcdp-radio{background:var(--sand)}
body .awcdp-deposits-wrapper .awcdp-deposits-option .awcdp-radio input[type=radio]+.awcdp-radio-label{display:inline-flex;align-items:center;font-weight:700;font-size:14px;line-height:1.5;color:var(--ink)}
body .awcdp-deposits-wrapper .awcdp-deposits-option .awcdp-radio input[type=radio]+.awcdp-radio-label:before{flex:none;top:0;margin:0;margin-inline-end:10px;background:var(--surface);border-color:var(--field-line)}
body .awcdp-deposits-wrapper .awcdp-deposits-option .awcdp-radio input[type=radio]:checked+.awcdp-radio-label:before{background-color:var(--primary);border-color:var(--primary);box-shadow:inset 0 0 0 4px var(--surface)}
body .awcdp-deposits-wrapper .awcdp-deposits-option .awcdp-radio input[type=radio]:focus-visible+.awcdp-radio-label:before{border-color:var(--primary);outline:2px solid var(--accent);outline-offset:2px}
body .awcdp-deposits-wrapper .awcdp-deposits-option .awcdp-radio .awcdp-deposits-description{margin:4px 0 0;margin-inline-start:30px;font-size:13px;line-height:1.6;color:var(--accent-ink)}
.awcdp-deposits-wrapper table{width:100%}
.awcdp-deposits-wrapper td{padding:6px}
.awcdp_deposits_summary th{text-align:start}
.woocommerce div.product .stock{font-size:13px;color:var(--accent-ink)}
.woocommerce div.product .product_meta{margin-top:14px;font-size:13px;color:var(--muted)}
.woocommerce div.product .product_meta>span{display:block}
.programme-details{clear:both;padding:36px 0 10px}
.programme-details h2{margin-bottom:18px;font-size:30px}
.programme-details dl{margin:0;border-top:1px solid var(--line);max-width:760px}
.programme-details dl>div{display:grid;grid-template-columns:minmax(0,1fr) minmax(0,1.4fr);gap:24px;padding:14px 0;border-bottom:1px solid var(--line)}
.programme-details dt{color:var(--muted)}
.programme-details dd{margin:0;font-weight:700}
.programme-details dd a{color:var(--primary);text-decoration:underline}
.woocommerce div.product .woocommerce-tabs ul.tabs{padding-inline-start:0;margin-bottom:22px}
.woocommerce div.product .woocommerce-tabs ul.tabs::before{border-bottom-color:var(--line)}
.woocommerce div.product .woocommerce-tabs ul.tabs li{background:var(--sand);border-color:var(--line);border-radius:8px 8px 0 0}
.woocommerce div.product .woocommerce-tabs ul.tabs li.active{background:var(--paper);border-bottom-color:var(--paper)}
.woocommerce div.product .woocommerce-tabs ul.tabs li::before,.woocommerce div.product .woocommerce-tabs ul.tabs li::after{display:none}
.woocommerce div.product .woocommerce-tabs .panel h2{font-size:28px;margin-bottom:12px}
.woocommerce table.shop_attributes{border-top-color:var(--line)}
.woocommerce table.shop_attributes th,.woocommerce table.shop_attributes td{padding:10px 12px;border-bottom-color:var(--line);font-style:normal;background:transparent!important}
.woocommerce .related>h2,.woocommerce .upsells>h2{font-size:32px;margin:30px 0 22px}

/* Cart, checkout and account */
.woocommerce table.shop_table{border-collapse:collapse;border-color:var(--line);border-radius:var(--radius);background:var(--surface)}
.woocommerce table.shop_table th,.woocommerce table.shop_table td{border-color:var(--line)}
.woocommerce table.shop_table img{width:64px;border-radius:8px}
.woocommerce table.cart td.actions .coupon .input-text{width:190px;margin-inline-end:8px}
.woocommerce .cart_totals h2,.woocommerce-checkout h3,#order_review_heading{font-size:28px;margin:20px 0 14px}
.woocommerce form .form-row label{font-size:14px}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select,.woocommerce .shop_table input.input-text,.select2-container .select2-selection--single{min-height:48px;padding:10px 12px;border:1px solid var(--field-line);border-radius:10px;background:var(--surface);color:var(--ink);font-size:16px}
.woocommerce form .form-row input.input-text,.woocommerce form .form-row textarea,.woocommerce form .form-row select{display:block;width:100%}
.woocommerce form .form-row textarea{min-height:110px}
.select2-container .select2-selection--single .select2-selection__rendered{line-height:26px;color:var(--ink)}
.woocommerce .col2-set .col-1,.woocommerce .col2-set .col-2{float:none;width:auto}
body.woocommerce-page .col2-set .col-1,body.woocommerce-page .col2-set .col-2{float:none;width:100%}
.woocommerce #payment{background:var(--sand);border-radius:var(--radius)}
.woocommerce #payment div.payment_box{background:var(--surface);color:var(--ink)}
.woocommerce #payment div.payment_box::before{border-bottom-color:var(--surface)}
.woocommerce #payment ul.payment_methods{border-bottom-color:var(--line)}
.woocommerce .woocommerce-privacy-policy-text{font-size:13px}
.woocommerce form.login,.woocommerce form.register,.woocommerce form.checkout_coupon,.woocommerce form.lost_reset_password{border:1px solid var(--line)!important;border-radius:var(--radius)!important;background:var(--surface);padding:26px!important}
.woocommerce .woocommerce-MyAccount-navigation ul{margin:0 0 28px;padding:0;list-style:none}
.woocommerce .woocommerce-MyAccount-navigation li{padding:10px 0;border-bottom:1px solid var(--line)}
.woocommerce .woocommerce-MyAccount-navigation li.is-active a{color:var(--primary);font-weight:700}
.woocommerce-info,.woocommerce-message,.woocommerce-error{padding:14px 18px!important;border:0!important;border-inline-start:3px solid var(--accent)!important;border-radius:8px;background:var(--sand)!important;color:var(--ink)!important;list-style:none}
.woocommerce-error{border-inline-start-color:var(--error)!important;background:var(--error-tint)!important;color:var(--error)!important}
.woocommerce-info::before,.woocommerce-message::before,.woocommerce-error::before{display:none}
.woocommerce-info .button,.woocommerce-message .button{min-height:40px;padding:6px 16px;font-size:13px}
.wc-block-components-notice-banner{border-radius:8px}

@media (max-width:1100px){
	.shell{width:calc(100% - 56px)}
	.header-inner{gap:28px}
	.desktop-nav{gap:18px;font-size:14px}
	.site-header .header-actions>.button{display:none}
	.um-hero-grid{gap:56px}
	.product-grid,.woocommerce ul.products{gap:20px}
	.um-journey-grid{gap:56px}
	.um-included{padding:40px 32px;gap:36px}
	.booking-steps{gap:20px}
}
@media (max-width:960px){
	.desktop-nav{display:none}
	.menu-toggle{display:block}
	.header-inner{min-height:74px}
	.um-hero-grid{grid-template-columns:1fr}
	.um-photo{max-width:480px;width:100%;justify-self:center}
	.um-photo-frame{margin-inline:auto}
	.product-grid,.woocommerce ul.products{grid-template-columns:repeat(2,minmax(0,1fr))}
	.um-journey-grid{grid-template-columns:1fr;gap:44px}
	.um-included{grid-template-columns:1fr}
	.booking-steps{grid-template-columns:repeat(2,minmax(0,1fr));row-gap:48px}
	.booking-grid,.single-grid{grid-template-columns:1fr}
	.entry-grid{grid-template-columns:1fr}
	.faq-grid{grid-template-columns:1fr}
	.faq-grid details:nth-child(2){border-top:0}
}
@media (max-width:760px){
	body{font-size:15px}
	.shell{width:calc(100% - 32px)}
	.section{padding:64px 0}
	.header-inner{min-height:66px;gap:12px}
	.brand{font-size:26px;gap:10px}
	.brand-mark{width:30px;height:30px}
	.custom-logo{height:44px}
	.header-actions{gap:12px}
	.bag-link span{display:none}
	.um-hero{padding:36px 0 60px}
	.um-hero-grid{gap:36px}
	h1{font-size:44px}
	h2{font-size:31px}
	.um-lead{font-size:16px;margin-top:16px}
	.um-hero-actions{margin-top:26px}
	.um-photo{padding-bottom:0}
	.um-photo-frame{max-width:300px}
	.um-photo-frame::before{inset-block:12px -12px;inset-inline:12px -12px}
	.um-ticket{position:relative;width:100%;margin-top:34px}
	.ticket-route{padding:14px 16px;gap:10px}
	.ticket-route strong{font-size:16px}
	.ticket-facts{padding:10px 16px 12px;gap:4px 14px;font-size:12.5px}
	.um-head{margin-bottom:32px}
	.product-grid,.woocommerce ul.products{grid-template-columns:1fr;gap:18px}
	.product-copy{padding:18px 18px 20px}
	.um-journey{padding:64px 0}
	.journey-line li{grid-template-columns:28px minmax(0,1fr);padding-bottom:28px}
	.journey-line li::before{grid-column:1;grid-row:1;margin-top:6px}
	.journey-line li:not(:last-child)::after{inset-inline-start:13px;top:22px}
	.journey-when{grid-column:2;grid-row:1;padding-top:0;text-align:start}
	.journey-line li>div{grid-column:2;grid-row:2}
	.journey-line h3{font-size:22px}
	.um-included{padding:28px 18px;border-radius:16px}
	.included-list{grid-template-columns:1fr}
	.um-steps{margin-top:64px}
	.booking-steps{grid-template-columns:1fr;row-gap:40px}
	.entry-card{padding:18px}
	.entry-image{margin:0 -18px 6px}
	.card-heading h3{font-size:23px}
	summary{font-size:15px}
	.site-footer{padding-top:52px}
	.footer-brand{font-size:36px}
	.footer-grid{grid-template-columns:1fr;gap:34px}
	.contact-details>div{grid-template-columns:90px minmax(0,1fr);gap:10px;font-size:13px}
	.footer-bottom{margin-top:36px}
	.footer-bottom>span:first-child{width:100%}
	.page-heading{padding:38px 0 34px}
	.form-panel{padding:22px 18px}
	.swl-row{grid-template-columns:1fr;gap:0}
	.swl-field input,.swl-field select,.swl-field textarea{font-size:16px}
	.single-grid aside img{max-width:300px;margin-inline:auto}
	.item-details>div,.programme-details dl>div{gap:16px;font-size:14px}
	.large-excerpt{font-size:18px}
	.store-filters{padding:16px}
	.store-filters>div{min-width:100%}
	.store-filters .button{width:100%}
	.woocommerce div.product div.images,.woocommerce div.product div.summary{float:none;width:100%}
	.woocommerce div.product form.cart .woocommerce-variation-add-to-cart .button{flex:1 1 auto}
	.woocommerce .woocommerce-result-count,.woocommerce .woocommerce-ordering{float:none;margin-bottom:14px}
	.woocommerce form .form-row-first,.woocommerce form .form-row-last{float:none;width:100%}
	.woocommerce table.cart td.actions .coupon .input-text{width:100%;margin:0 0 8px}
}
@media (prefers-reduced-motion:reduce){
	html{scroll-behavior:auto}
	*,*::before,*::after{transition:none!important;animation:none!important}
}
