/* Generated by scripts/build-site-css.mjs. Do not edit this bundle directly. */

/* ===== static/css/main.css ===== */

*,:after,:before{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }::backdrop{--tw-border-spacing-x:0;--tw-border-spacing-y:0;--tw-translate-x:0;--tw-translate-y:0;--tw-rotate:0;--tw-skew-x:0;--tw-skew-y:0;--tw-scale-x:1;--tw-scale-y:1;--tw-pan-x: ;--tw-pan-y: ;--tw-pinch-zoom: ;--tw-scroll-snap-strictness:proximity;--tw-gradient-from-position: ;--tw-gradient-via-position: ;--tw-gradient-to-position: ;--tw-ordinal: ;--tw-slashed-zero: ;--tw-numeric-figure: ;--tw-numeric-spacing: ;--tw-numeric-fraction: ;--tw-ring-inset: ;--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:rgba(59,130,246,.5);--tw-ring-offset-shadow:0 0 #0000;--tw-ring-shadow:0 0 #0000;--tw-shadow:0 0 #0000;--tw-shadow-colored:0 0 #0000;--tw-blur: ;--tw-brightness: ;--tw-contrast: ;--tw-grayscale: ;--tw-hue-rotate: ;--tw-invert: ;--tw-saturate: ;--tw-sepia: ;--tw-drop-shadow: ;--tw-backdrop-blur: ;--tw-backdrop-brightness: ;--tw-backdrop-contrast: ;--tw-backdrop-grayscale: ;--tw-backdrop-hue-rotate: ;--tw-backdrop-invert: ;--tw-backdrop-opacity: ;--tw-backdrop-saturate: ;--tw-backdrop-sepia: ;--tw-contain-size: ;--tw-contain-layout: ;--tw-contain-paint: ;--tw-contain-style: }/*! tailwindcss v3.4.19 | MIT License | https://tailwindcss.com*/*,:after,:before{box-sizing:border-box;border:0 solid #e5e7eb}:after,:before{--tw-content:""}:host,html{line-height:1.5;-webkit-text-size-adjust:100%;-moz-tab-size:4;-o-tab-size:4;tab-size:4;font-family:ui-sans-serif,system-ui,sans-serif,Apple Color Emoji,Segoe UI Emoji,Segoe UI Symbol,Noto Color Emoji;font-feature-settings:normal;font-variation-settings:normal;-webkit-tap-highlight-color:transparent}body{margin:0;line-height:inherit}hr{height:0;color:inherit;border-top-width:1px}abbr:where([title]){-webkit-text-decoration:underline dotted;text-decoration:underline dotted}h1,h2,h3,h4,h5,h6{font-size:inherit;font-weight:inherit}a{color:inherit;text-decoration:inherit}b,strong{font-weight:bolder}code,kbd,pre,samp{font-family:ui-monospace,SFMono-Regular,Menlo,Monaco,Consolas,Liberation Mono,Courier New,monospace;font-feature-settings:normal;font-variation-settings:normal;font-size:1em}small{font-size:80%}sub,sup{font-size:75%;line-height:0;position:relative;vertical-align:baseline}sub{bottom:-.25em}sup{top:-.5em}table{text-indent:0;border-color:inherit;border-collapse:collapse}button,input,optgroup,select,textarea{font-family:inherit;font-feature-settings:inherit;font-variation-settings:inherit;font-size:100%;font-weight:inherit;line-height:inherit;letter-spacing:inherit;color:inherit;margin:0;padding:0}button,select{text-transform:none}button,input:where([type=button]),input:where([type=reset]),input:where([type=submit]){-webkit-appearance:button;background-color:transparent;background-image:none}:-moz-focusring{outline:auto}:-moz-ui-invalid{box-shadow:none}progress{vertical-align:baseline}::-webkit-inner-spin-button,::-webkit-outer-spin-button{height:auto}[type=search]{-webkit-appearance:textfield;outline-offset:-2px}::-webkit-search-decoration{-webkit-appearance:none}::-webkit-file-upload-button{-webkit-appearance:button;font:inherit}summary{display:list-item}blockquote,dd,dl,figure,h1,h2,h3,h4,h5,h6,hr,p,pre{margin:0}fieldset{margin:0}fieldset,legend{padding:0}menu,ol,ul{list-style:none;margin:0;padding:0}dialog{padding:0}textarea{resize:vertical}input::-moz-placeholder,textarea::-moz-placeholder{opacity:1;color:#9ca3af}input::placeholder,textarea::placeholder{opacity:1;color:#9ca3af}[role=button],button{cursor:pointer}:disabled{cursor:default}audio,canvas,embed,iframe,img,object,svg,video{display:block;vertical-align:middle}img,video{max-width:100%;height:auto}[hidden]:where(:not([hidden=until-found])){display:none}input:where(:not([type])),input:where([type=date]),input:where([type=datetime-local]),input:where([type=email]),input:where([type=month]),input:where([type=number]),input:where([type=password]),input:where([type=search]),input:where([type=tel]),input:where([type=text]),input:where([type=time]),input:where([type=url]),input:where([type=week]),select,select:where([multiple]),textarea{-webkit-appearance:none;-moz-appearance:none;appearance:none;background-color:#fff;border-color:#6b7280;border-width:1px;border-radius:0;padding:.5rem .75rem;font-size:1rem;line-height:1.5rem;--tw-shadow:0 0 #0000}input:where(:not([type])):focus,input:where([type=date]):focus,input:where([type=datetime-local]):focus,input:where([type=email]):focus,input:where([type=month]):focus,input:where([type=number]):focus,input:where([type=password]):focus,input:where([type=search]):focus,input:where([type=tel]):focus,input:where([type=text]):focus,input:where([type=time]):focus,input:where([type=url]):focus,input:where([type=week]):focus,select:focus,select:where([multiple]):focus,textarea:focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:0px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(1px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow);border-color:#2563eb}input::-moz-placeholder,textarea::-moz-placeholder{color:#6b7280;opacity:1}input::placeholder,textarea::placeholder{color:#6b7280;opacity:1}::-webkit-datetime-edit-fields-wrapper{padding:0}::-webkit-date-and-time-value{min-height:1.5em;text-align:inherit}::-webkit-datetime-edit{display:inline-flex}::-webkit-datetime-edit,::-webkit-datetime-edit-day-field,::-webkit-datetime-edit-hour-field,::-webkit-datetime-edit-meridiem-field,::-webkit-datetime-edit-millisecond-field,::-webkit-datetime-edit-minute-field,::-webkit-datetime-edit-month-field,::-webkit-datetime-edit-second-field,::-webkit-datetime-edit-year-field{padding-top:0;padding-bottom:0}select{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 20 20'%3E%3Cpath stroke='%236b7280' stroke-linecap='round' stroke-linejoin='round' stroke-width='1.5' d='m6 8 4 4 4-4'/%3E%3C/svg%3E");background-position:right .5rem center;background-repeat:no-repeat;background-size:1.5em 1.5em;padding-right:2.5rem;-webkit-print-color-adjust:exact;print-color-adjust:exact}select:where([multiple]),select:where([size]:not([size="1"])){background-image:none;background-position:0 0;background-repeat:unset;background-size:initial;padding-right:.75rem;-webkit-print-color-adjust:unset;print-color-adjust:unset}input:where([type=checkbox]),input:where([type=radio]){-webkit-appearance:none;-moz-appearance:none;appearance:none;padding:0;-webkit-print-color-adjust:exact;print-color-adjust:exact;display:inline-block;vertical-align:middle;background-origin:border-box;-webkit-user-select:none;-moz-user-select:none;user-select:none;flex-shrink:0;height:1rem;width:1rem;color:#2563eb;background-color:#fff;border-color:#6b7280;border-width:1px;--tw-shadow:0 0 #0000}input:where([type=checkbox]){border-radius:0}input:where([type=radio]){border-radius:100%}input:where([type=checkbox]):focus,input:where([type=radio]):focus{outline:2px solid transparent;outline-offset:2px;--tw-ring-inset:var(--tw-empty,/*!*/ /*!*/);--tw-ring-offset-width:2px;--tw-ring-offset-color:#fff;--tw-ring-color:#2563eb;--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow)}input:where([type=checkbox]):checked,input:where([type=radio]):checked{border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}input:where([type=checkbox]):checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Cpath d='M12.207 4.793a1 1 0 0 1 0 1.414l-5 5a1 1 0 0 1-1.414 0l-2-2a1 1 0 0 1 1.414-1.414L6.5 9.086l4.293-4.293a1 1 0 0 1 1.414 0'/%3E%3C/svg%3E")}@media (forced-colors:active) {input:where([type=checkbox]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=radio]):checked{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='%23fff' viewBox='0 0 16 16'%3E%3Ccircle cx='8' cy='8' r='3'/%3E%3C/svg%3E")}@media (forced-colors:active) {input:where([type=radio]):checked{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):checked:focus,input:where([type=checkbox]):checked:hover,input:where([type=radio]):checked:focus,input:where([type=radio]):checked:hover{border-color:transparent;background-color:currentColor}input:where([type=checkbox]):indeterminate{background-image:url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' fill='none' viewBox='0 0 16 16'%3E%3Cpath stroke='%23fff' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='M4 8h8'/%3E%3C/svg%3E");border-color:transparent;background-color:currentColor;background-size:100% 100%;background-position:50%;background-repeat:no-repeat}@media (forced-colors:active) {input:where([type=checkbox]):indeterminate{-webkit-appearance:auto;-moz-appearance:auto;appearance:auto}}input:where([type=checkbox]):indeterminate:focus,input:where([type=checkbox]):indeterminate:hover{border-color:transparent;background-color:currentColor}input:where([type=file]){background:unset;border-color:inherit;border-width:0;border-radius:0;padding:0;font-size:unset;line-height:inherit}input:where([type=file]):focus{outline:1px solid ButtonText;outline:1px auto -webkit-focus-ring-color}[dir=rtl]{font-family:Noto Sans Arabic,Inter,sans-serif}[dir=rtl] .font-headline{font-family:Noto Sans Arabic,"Noto Serif",serif}[dir=rtl] .font-label{font-family:Noto Sans Arabic,Plus Jakarta Sans,sans-serif}.\!container{width:100%!important}.container{width:100%}@media (min-width:640px){.\!container{max-width:640px!important}.container{max-width:640px}}@media (min-width:768px){.\!container{max-width:768px!important}.container{max-width:768px}}@media (min-width:1024px){.\!container{max-width:1024px!important}.container{max-width:1024px}}@media (min-width:1280px){.\!container{max-width:1280px!important}.container{max-width:1280px}}@media (min-width:1536px){.\!container{max-width:1536px!important}.container{max-width:1536px}}.sr-only{position:absolute;width:1px;height:1px;padding:0;margin:-1px;overflow:hidden;clip:rect(0,0,0,0);white-space:nowrap;border-width:0}.pointer-events-none{pointer-events:none}.pointer-events-auto{pointer-events:auto}.visible{visibility:visible}.collapse{visibility:collapse}.static{position:static}.fixed{position:fixed}.absolute{position:absolute}.relative{position:relative}.sticky{position:sticky}.inset-0{inset:0}.inset-x-3{left:.75rem;right:.75rem}.-bottom-10{bottom:-2.5rem}.-left-\[2\.65rem\]{left:-2.65rem}.-right-10{right:-2.5rem}.bottom-0{bottom:0}.bottom-10{bottom:2.5rem}.bottom-3{bottom:.75rem}.end-0{inset-inline-end:0}.end-10{inset-inline-end:2.5rem}.left-0{left:0}.left-4{left:1rem}.right-0{right:0}.right-3{right:.75rem}.right-4{right:1rem}.start-10{inset-inline-start:2.5rem}.top-0{top:0}.top-1{top:.25rem}.top-1\/2{top:50%}.top-10{top:2.5rem}.top-3{top:.75rem}.top-32{top:8rem}.top-4{top:1rem}.top-full{top:100%}.z-10{z-index:10}.z-40{z-index:40}.z-50{z-index:50}.z-\[110\]{z-index:110}.z-\[1\]{z-index:1}.z-\[90\]{z-index:90}.-m-1{margin:-.25rem}.mx-4{margin-left:1rem;margin-right:1rem}.mx-auto{margin-left:auto;margin-right:auto}.my-12{margin-top:3rem;margin-bottom:3rem}.-ml-1{margin-left:-.25rem}.-mt-4{margin-top:-1rem}.mb-1{margin-bottom:.25rem}.mb-10{margin-bottom:2.5rem}.mb-12{margin-bottom:3rem}.mb-16{margin-bottom:4rem}.mb-2{margin-bottom:.5rem}.mb-20{margin-bottom:5rem}.mb-3{margin-bottom:.75rem}.mb-4{margin-bottom:1rem}.mb-5{margin-bottom:1.25rem}.mb-6{margin-bottom:1.5rem}.mb-8{margin-bottom:2rem}.ml-11{margin-left:2.75rem}.ml-2{margin-left:.5rem}.mr-1{margin-right:.25rem}.mr-1\.5{margin-right:.375rem}.mt-0\.5{margin-top:.125rem}.mt-1{margin-top:.25rem}.mt-12{margin-top:3rem}.mt-16{margin-top:4rem}.mt-2{margin-top:.5rem}.mt-3{margin-top:.75rem}.mt-4{margin-top:1rem}.mt-6{margin-top:1.5rem}.mt-8{margin-top:2rem}.line-clamp-2{-webkit-line-clamp:2}.line-clamp-2,.line-clamp-3{overflow:hidden;display:-webkit-box;-webkit-box-orient:vertical}.line-clamp-3{-webkit-line-clamp:3}.block{display:block}.inline-block{display:inline-block}.inline{display:inline}.flex{display:flex}.inline-flex{display:inline-flex}.table{display:table}.grid{display:grid}.contents{display:contents}.hidden{display:none}.aspect-\[4\/3\]{aspect-ratio:4/3}.aspect-\[4\/5\]{aspect-ratio:4/5}.aspect-square{aspect-ratio:1/1}.aspect-video{aspect-ratio:16/9}.h-0\.5{height:.125rem}.h-10{height:2.5rem}.h-12{height:3rem}.h-14{height:3.5rem}.h-2{height:.5rem}.h-3{height:.75rem}.h-3\.5{height:.875rem}.h-4{height:1rem}.h-5{height:1.25rem}.h-56{height:14rem}.h-6{height:1.5rem}.h-7{height:1.75rem}.h-8{height:2rem}.h-9{height:2.25rem}.h-full{height:100%}.max-h-\[360px\]{max-height:360px}.max-h-\[75vh\]{max-height:75vh}.max-h-\[85vh\]{max-height:85vh}.min-h-\[400px\]{min-height:400px}.min-h-screen{min-height:100vh}.w-10{width:2.5rem}.w-12{width:3rem}.w-14{width:3.5rem}.w-2{width:.5rem}.w-3{width:.75rem}.w-3\.5{width:.875rem}.w-4{width:1rem}.w-5{width:1.25rem}.w-56{width:14rem}.w-7{width:1.75rem}.w-8{width:2rem}.w-9{width:2.25rem}.w-auto{width:auto}.w-full{width:100%}.min-w-0{min-width:0}.min-w-\[160px\]{min-width:160px}.max-w-2xl{max-width:42rem}.max-w-3xl{max-width:48rem}.max-w-4xl{max-width:56rem}.max-w-\[90vw\]{max-width:90vw}.max-w-full{max-width:100%}.max-w-lg{max-width:32rem}.max-w-md{max-width:28rem}.max-w-none{max-width:none}.max-w-prose{max-width:65ch}.max-w-screen-2xl{max-width:1536px}.max-w-screen-xl{max-width:1280px}.max-w-xl{max-width:36rem}.flex-1{flex:1 1 0%}.flex-shrink-0,.shrink-0{flex-shrink:0}.-translate-y-1\/2{--tw-translate-y:-50%}.-translate-y-1\/2,.translate-y-full{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.translate-y-full{--tw-translate-y:100%}.transform{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.cursor-pointer{cursor:pointer}.select-none{-webkit-user-select:none;-moz-user-select:none;user-select:none}.resize{resize:both}.scroll-mt-24{scroll-margin-top:6rem}.list-none{list-style-type:none}.columns-1{-moz-columns:1;column-count:1}.grid-cols-1{grid-template-columns:repeat(1,minmax(0,1fr))}.grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.flex-col{flex-direction:column}.flex-wrap{flex-wrap:wrap}.items-start{align-items:flex-start}.items-end{align-items:flex-end}.items-center{align-items:center}.items-baseline{align-items:baseline}.justify-end{justify-content:flex-end}.justify-center{justify-content:center}.justify-between{justify-content:space-between}.gap-0\.5{gap:.125rem}.gap-1{gap:.25rem}.gap-1\.5{gap:.375rem}.gap-10{gap:2.5rem}.gap-12{gap:3rem}.gap-16{gap:4rem}.gap-2{gap:.5rem}.gap-3{gap:.75rem}.gap-4{gap:1rem}.gap-5{gap:1.25rem}.gap-6{gap:1.5rem}.gap-8{gap:2rem}.gap-x-6{-moz-column-gap:1.5rem;column-gap:1.5rem}.gap-y-2{row-gap:.5rem}.space-y-1>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.25rem*var(--tw-space-y-reverse))}.space-y-1\.5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.375rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.375rem*var(--tw-space-y-reverse))}.space-y-10>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2.5rem*var(--tw-space-y-reverse))}.space-y-12>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(3rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(3rem*var(--tw-space-y-reverse))}.space-y-16>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(4rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(4rem*var(--tw-space-y-reverse))}.space-y-3>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(.75rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(.75rem*var(--tw-space-y-reverse))}.space-y-4>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1rem*var(--tw-space-y-reverse))}.space-y-5>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.25rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.25rem*var(--tw-space-y-reverse))}.space-y-6>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(1.5rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(1.5rem*var(--tw-space-y-reverse))}.space-y-8>:not([hidden])~:not([hidden]){--tw-space-y-reverse:0;margin-top:calc(2rem*(1 - var(--tw-space-y-reverse)));margin-bottom:calc(2rem*var(--tw-space-y-reverse))}.overflow-hidden{overflow:hidden}.overflow-y-auto{overflow-y:auto}.scroll-smooth{scroll-behavior:smooth}.truncate{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.rounded{border-radius:.25rem}.rounded-2xl{border-radius:1rem}.rounded-3xl{border-radius:1.5rem}.rounded-\[2rem\]{border-radius:2rem}.rounded-full{border-radius:9999px}.rounded-lg{border-radius:.5rem}.rounded-md{border-radius:.375rem}.rounded-sm{border-radius:.125rem}.rounded-xl{border-radius:.75rem}.rounded-r-xl{border-top-right-radius:.75rem;border-bottom-right-radius:.75rem}.border{border-width:1px}.border-2{border-width:2px}.border-4{border-width:4px}.border-y{border-top-width:1px}.border-b,.border-y{border-bottom-width:1px}.border-b-2{border-bottom-width:2px}.border-l-2{border-left-width:2px}.border-l-4{border-left-width:4px}.border-t{border-top-width:1px}.border-t-2{border-top-width:2px}.border-dashed{border-style:dashed}.border-amber-200{--tw-border-opacity:1;border-color:rgb(253 230 138/var(--tw-border-opacity,1))}.border-amber-200\/40{border-color:hsla(48,97%,77%,.4)}.border-gray-100{--tw-border-opacity:1;border-color:rgb(243 244 246/var(--tw-border-opacity,1))}.border-gray-300{--tw-border-opacity:1;border-color:rgb(209 213 219/var(--tw-border-opacity,1))}.border-green-200\/60{border-color:rgba(187,247,208,.6)}.border-on-surface\/10{border-color:rgba(28,27,27,.1)}.border-outline-variant\/10{border-color:hsla(142,9%,77%,.1)}.border-outline-variant\/20{border-color:hsla(142,9%,77%,.2)}.border-outline-variant\/30{border-color:hsla(142,9%,77%,.3)}.border-outline-variant\/40{border-color:hsla(142,9%,77%,.4)}.border-outline-variant\/60{border-color:hsla(142,9%,77%,.6)}.border-primary{--tw-border-opacity:1;border-color:rgb(0 75 56/var(--tw-border-opacity,1))}.border-primary\/15{border-color:rgba(0,75,56,.15)}.border-primary\/20{border-color:rgba(0,75,56,.2)}.border-primary\/30{border-color:rgba(0,75,56,.3)}.border-primary\/40{border-color:rgba(0,75,56,.4)}.border-red-200\/60{border-color:hsla(0,96%,89%,.6)}.border-surface{--tw-border-opacity:1;border-color:rgb(252 249 248/var(--tw-border-opacity,1))}.border-surface-container-highest{--tw-border-opacity:1;border-color:rgb(229 226 225/var(--tw-border-opacity,1))}.border-white\/10{border-color:hsla(0,0%,100%,.1)}.border-white\/20{border-color:hsla(0,0%,100%,.2)}.border-l-outline-variant{--tw-border-opacity:1;border-left-color:rgb(190 201 194/var(--tw-border-opacity,1))}.border-l-outline-variant\/20{border-left-color:hsla(142,9%,77%,.2)}.border-l-primary{--tw-border-opacity:1;border-left-color:rgb(0 75 56/var(--tw-border-opacity,1))}.bg-amber-100{--tw-bg-opacity:1;background-color:rgb(254 243 199/var(--tw-bg-opacity,1))}.bg-amber-50{--tw-bg-opacity:1;background-color:rgb(255 251 235/var(--tw-bg-opacity,1))}.bg-amber-50\/60{background-color:rgba(255,251,235,.6)}.bg-amber-500{--tw-bg-opacity:1;background-color:rgb(245 158 11/var(--tw-bg-opacity,1))}.bg-black\/90{background-color:rgba(0,0,0,.9)}.bg-blue-50{--tw-bg-opacity:1;background-color:rgb(239 246 255/var(--tw-bg-opacity,1))}.bg-gray-400{--tw-bg-opacity:1;background-color:rgb(156 163 175/var(--tw-bg-opacity,1))}.bg-green-100{--tw-bg-opacity:1;background-color:rgb(220 252 231/var(--tw-bg-opacity,1))}.bg-green-50{--tw-bg-opacity:1;background-color:rgb(240 253 244/var(--tw-bg-opacity,1))}.bg-green-50\/70{background-color:rgba(240,253,244,.7)}.bg-green-500{--tw-bg-opacity:1;background-color:rgb(34 197 94/var(--tw-bg-opacity,1))}.bg-highlight\/30{background-color:rgba(249,196,228,.3)}.bg-outline-variant\/20{background-color:hsla(142,9%,77%,.2)}.bg-primary{--tw-bg-opacity:1;background-color:rgb(0 75 56/var(--tw-bg-opacity,1))}.bg-primary\/10{background-color:rgba(0,75,56,.1)}.bg-primary\/5{background-color:rgba(0,75,56,.05)}.bg-primary\/60{background-color:rgba(0,75,56,.6)}.bg-purple-50{--tw-bg-opacity:1;background-color:rgb(250 245 255/var(--tw-bg-opacity,1))}.bg-red-100{--tw-bg-opacity:1;background-color:rgb(254 226 226/var(--tw-bg-opacity,1))}.bg-red-50\/60{background-color:hsla(0,86%,97%,.6)}.bg-red-50\/70{background-color:hsla(0,86%,97%,.7)}.bg-red-500{--tw-bg-opacity:1;background-color:rgb(239 68 68/var(--tw-bg-opacity,1))}.bg-secondary\/10{background-color:rgba(157,66,40,.1)}.bg-surface{--tw-bg-opacity:1;background-color:rgb(252 249 248/var(--tw-bg-opacity,1))}.bg-surface-container{--tw-bg-opacity:1;background-color:rgb(240 237 237/var(--tw-bg-opacity,1))}.bg-surface-container-high{--tw-bg-opacity:1;background-color:rgb(234 231 231/var(--tw-bg-opacity,1))}.bg-surface-container-highest{--tw-bg-opacity:1;background-color:rgb(229 226 225/var(--tw-bg-opacity,1))}.bg-surface-container-highest\/50{background-color:hsla(15,7%,89%,.5)}.bg-surface-container-highest\/60{background-color:hsla(15,7%,89%,.6)}.bg-surface-container-highest\/70{background-color:hsla(15,7%,89%,.7)}.bg-surface-container-low{--tw-bg-opacity:1;background-color:rgb(246 243 242/var(--tw-bg-opacity,1))}.bg-surface-container\/80{background-color:hsla(0,9%,94%,.8)}.bg-surface-variant\/40{background-color:hsla(15,7%,89%,.4)}.bg-surface\/80{background-color:hsla(15,40%,98%,.8)}.bg-transparent{background-color:transparent}.bg-white{--tw-bg-opacity:1;background-color:rgb(255 255 255/var(--tw-bg-opacity,1))}.bg-white\/10{background-color:hsla(0,0%,100%,.1)}.bg-white\/70{background-color:hsla(0,0%,100%,.7)}.bg-white\/80{background-color:hsla(0,0%,100%,.8)}.bg-white\/90{background-color:hsla(0,0%,100%,.9)}.bg-white\/95{background-color:hsla(0,0%,100%,.95)}.bg-gradient-to-br{background-image:linear-gradient(to bottom right,var(--tw-gradient-stops))}.bg-gradient-to-r{background-image:linear-gradient(to right,var(--tw-gradient-stops))}.bg-gradient-to-t{background-image:linear-gradient(to top,var(--tw-gradient-stops))}.from-on-background\/80{--tw-gradient-from:rgba(28,27,27,.8) var(--tw-gradient-from-position);--tw-gradient-to:rgba(28,27,27,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-primary\/10{--tw-gradient-from:rgba(0,75,56,.1) var(--tw-gradient-from-position);--tw-gradient-to:rgba(0,75,56,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.from-surface\/90{--tw-gradient-from:hsla(15,40%,98%,.9) var(--tw-gradient-from-position);--tw-gradient-to:hsla(15,40%,98%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),var(--tw-gradient-to)}.via-inverse-primary\/10{--tw-gradient-to:rgba(134,214,184,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),rgba(134,214,184,.1) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-surface\/50{--tw-gradient-to:hsla(15,40%,98%,0) var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),hsla(15,40%,98%,.5) var(--tw-gradient-via-position),var(--tw-gradient-to)}.via-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position);--tw-gradient-stops:var(--tw-gradient-from),transparent var(--tw-gradient-via-position),var(--tw-gradient-to)}.to-primary-fixed\/15{--tw-gradient-to:rgba(161,243,211,.15) var(--tw-gradient-to-position)}.to-transparent{--tw-gradient-to:transparent var(--tw-gradient-to-position)}.object-contain{-o-object-fit:contain;object-fit:contain}.object-cover{-o-object-fit:cover;object-fit:cover}.p-1{padding:.25rem}.p-12{padding:3rem}.p-2{padding:.5rem}.p-3{padding:.75rem}.p-4{padding:1rem}.p-5{padding:1.25rem}.p-6{padding:1.5rem}.p-8{padding:2rem}.px-10{padding-left:2.5rem;padding-right:2.5rem}.px-2{padding-left:.5rem;padding-right:.5rem}.px-2\.5{padding-left:.625rem;padding-right:.625rem}.px-3{padding-left:.75rem;padding-right:.75rem}.px-4{padding-left:1rem;padding-right:1rem}.px-5{padding-left:1.25rem;padding-right:1.25rem}.px-6{padding-left:1.5rem;padding-right:1.5rem}.px-7{padding-left:1.75rem;padding-right:1.75rem}.px-8{padding-left:2rem;padding-right:2rem}.py-0\.5{padding-top:.125rem;padding-bottom:.125rem}.py-1{padding-top:.25rem;padding-bottom:.25rem}.py-1\.5{padding-top:.375rem;padding-bottom:.375rem}.py-10{padding-top:2.5rem;padding-bottom:2.5rem}.py-12{padding-top:3rem;padding-bottom:3rem}.py-14{padding-top:3.5rem;padding-bottom:3.5rem}.py-16{padding-top:4rem;padding-bottom:4rem}.py-2{padding-top:.5rem;padding-bottom:.5rem}.py-2\.5{padding-top:.625rem;padding-bottom:.625rem}.py-24{padding-top:6rem;padding-bottom:6rem}.py-3{padding-top:.75rem;padding-bottom:.75rem}.py-3\.5{padding-top:.875rem;padding-bottom:.875rem}.py-4{padding-top:1rem;padding-bottom:1rem}.py-5{padding-top:1.25rem;padding-bottom:1.25rem}.py-6{padding-top:1.5rem;padding-bottom:1.5rem}.pb-1{padding-bottom:.25rem}.pb-10{padding-bottom:2.5rem}.pb-12{padding-bottom:3rem}.pb-14{padding-bottom:3.5rem}.pb-16{padding-bottom:4rem}.pb-4{padding-bottom:1rem}.pb-5{padding-bottom:1.25rem}.pl-3{padding-left:.75rem}.pl-6{padding-left:1.5rem}.pl-8{padding-left:2rem}.pt-1{padding-top:.25rem}.pt-16{padding-top:4rem}.pt-2{padding-top:.5rem}.pt-20{padding-top:5rem}.pt-28{padding-top:7rem}.pt-3{padding-top:.75rem}.pt-4{padding-top:1rem}.pt-6{padding-top:1.5rem}.pt-8{padding-top:2rem}.text-left{text-align:left}.text-center{text-align:center}.text-right{text-align:right}.align-middle{vertical-align:middle}.font-body{font-family:Inter}.font-headline{font-family:Noto Serif}.font-label{font-family:Plus Jakarta Sans}.font-serif{font-family:ui-serif,Georgia,Cambria,Times New Roman,Times,serif}.text-2xl{font-size:1.5rem;line-height:2rem}.text-3xl{font-size:1.875rem;line-height:2.25rem}.text-4xl{font-size:2.25rem;line-height:2.5rem}.text-5xl{font-size:3rem;line-height:1}.text-6xl{font-size:3.75rem;line-height:1}.text-\[0\.65rem\]{font-size:.65rem}.text-\[0\.7rem\]{font-size:.7rem}.text-\[0\.85rem\]{font-size:.85rem}.text-\[0\.9rem\]{font-size:.9rem}.text-\[1\.05rem\]{font-size:1.05rem}.text-\[1\.1rem\]{font-size:1.1rem}.text-\[1\.2rem\]{font-size:1.2rem}.text-\[10px\]{font-size:10px}.text-\[11px\]{font-size:11px}.text-\[14px\]{font-size:14px}.text-\[16px\]{font-size:16px}.text-\[20px\]{font-size:20px}.text-base{font-size:1rem;line-height:1.5rem}.text-lg{font-size:1.125rem;line-height:1.75rem}.text-sm{font-size:.875rem;line-height:1.25rem}.text-xl{font-size:1.25rem;line-height:1.75rem}.text-xs{font-size:.75rem;line-height:1rem}.font-bold{font-weight:700}.font-medium{font-weight:500}.font-normal{font-weight:400}.font-semibold{font-weight:600}.uppercase{text-transform:uppercase}.lowercase{text-transform:lowercase}.italic{font-style:italic}.leading-\[1\.05\]{line-height:1.05}.leading-\[1\.1\]{line-height:1.1}.leading-none{line-height:1}.leading-relaxed{line-height:1.625}.leading-snug{line-height:1.375}.leading-tight{line-height:1.25}.tracking-\[0\.15em\]{letter-spacing:.15em}.tracking-\[0\.18em\]{letter-spacing:.18em}.tracking-\[0\.1em\]{letter-spacing:.1em}.tracking-\[0\.28em\]{letter-spacing:.28em}.tracking-\[0\.2em\]{letter-spacing:.2em}.tracking-tight{letter-spacing:-.025em}.tracking-tighter{letter-spacing:-.05em}.tracking-wide{letter-spacing:.025em}.tracking-wider{letter-spacing:.05em}.tracking-widest{letter-spacing:.1em}.text-amber-600{--tw-text-opacity:1;color:rgb(217 119 6/var(--tw-text-opacity,1))}.text-amber-700{--tw-text-opacity:1;color:rgb(180 83 9/var(--tw-text-opacity,1))}.text-amber-700\/80{color:rgba(180,83,9,.8)}.text-amber-800{--tw-text-opacity:1;color:rgb(146 64 14/var(--tw-text-opacity,1))}.text-blue-700{--tw-text-opacity:1;color:rgb(29 78 216/var(--tw-text-opacity,1))}.text-gray-500{--tw-text-opacity:1;color:rgb(107 114 128/var(--tw-text-opacity,1))}.text-gray-600{--tw-text-opacity:1;color:rgb(75 85 99/var(--tw-text-opacity,1))}.text-green-700{--tw-text-opacity:1;color:rgb(21 128 61/var(--tw-text-opacity,1))}.text-green-800{--tw-text-opacity:1;color:rgb(22 101 52/var(--tw-text-opacity,1))}.text-on-primary{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-on-primary-container{--tw-text-opacity:1;color:rgb(143 223 193/var(--tw-text-opacity,1))}.text-on-primary-container\/60{color:rgba(143,223,193,.6)}.text-on-surface{--tw-text-opacity:1;color:rgb(28 27 27/var(--tw-text-opacity,1))}.text-on-surface-variant{--tw-text-opacity:1;color:rgb(63 73 68/var(--tw-text-opacity,1))}.text-on-surface-variant\/60{color:rgba(63,73,68,.6)}.text-on-surface-variant\/70{color:rgba(63,73,68,.7)}.text-outline{--tw-text-opacity:1;color:rgb(111 122 116/var(--tw-text-opacity,1))}.text-outline\/70{color:hsla(147,5%,46%,.7)}.text-primary{--tw-text-opacity:1;color:rgb(0 75 56/var(--tw-text-opacity,1))}.text-primary-container{--tw-text-opacity:1;color:rgb(0 101 77/var(--tw-text-opacity,1))}.text-primary\/80{color:rgba(0,75,56,.8)}.text-purple-700{--tw-text-opacity:1;color:rgb(126 34 206/var(--tw-text-opacity,1))}.text-red-600{--tw-text-opacity:1;color:rgb(220 38 38/var(--tw-text-opacity,1))}.text-red-700{--tw-text-opacity:1;color:rgb(185 28 28/var(--tw-text-opacity,1))}.text-red-800{--tw-text-opacity:1;color:rgb(153 27 27/var(--tw-text-opacity,1))}.text-red-900{--tw-text-opacity:1;color:rgb(127 29 29/var(--tw-text-opacity,1))}.text-secondary{--tw-text-opacity:1;color:rgb(157 66 40/var(--tw-text-opacity,1))}.text-stone-500{--tw-text-opacity:1;color:rgb(120 113 108/var(--tw-text-opacity,1))}.text-stone-600{--tw-text-opacity:1;color:rgb(87 83 78/var(--tw-text-opacity,1))}.text-white{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.text-white\/50{color:hsla(0,0%,100%,.5)}.text-white\/65{color:hsla(0,0%,100%,.65)}.text-white\/80{color:hsla(0,0%,100%,.8)}.text-white\/85{color:hsla(0,0%,100%,.85)}.text-yellow-500{--tw-text-opacity:1;color:rgb(234 179 8/var(--tw-text-opacity,1))}.underline{text-decoration-line:underline}.decoration-1{text-decoration-thickness:1px}.underline-offset-2{text-underline-offset:2px}.opacity-0{opacity:0}.opacity-40{opacity:.4}.opacity-5{opacity:.05}.opacity-60{opacity:.6}.opacity-90{opacity:.9}.shadow-2xl{--tw-shadow:0 25px 50px -12px rgba(0,0,0,.25);--tw-shadow-colored:0 25px 50px -12px var(--tw-shadow-color)}.shadow-2xl,.shadow-\[0_24px_70px_-28px_rgba\(28\2c 27\2c 27\2c 0\.28\)\]{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-\[0_24px_70px_-28px_rgba\(28\2c 27\2c 27\2c 0\.28\)\]{--tw-shadow:0 24px 70px -28px rgba(28,27,27,.28);--tw-shadow-colored:0 24px 70px -28px var(--tw-shadow-color)}.shadow-lg{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.shadow-lg,.shadow-md{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-md{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.shadow-sm{--tw-shadow:0 1px 2px 0 rgba(0,0,0,.05);--tw-shadow-colored:0 1px 2px 0 var(--tw-shadow-color)}.shadow-sm,.shadow-xl{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.shadow-xl{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color)}.filter{filter:var(--tw-blur) var(--tw-brightness) var(--tw-contrast) var(--tw-grayscale) var(--tw-hue-rotate) var(--tw-invert) var(--tw-saturate) var(--tw-sepia) var(--tw-drop-shadow)}.backdrop-blur{--tw-backdrop-blur:blur(8px)}.backdrop-blur,.backdrop-blur-md{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-md{--tw-backdrop-blur:blur(12px)}.backdrop-blur-sm{--tw-backdrop-blur:blur(4px)}.backdrop-blur-sm,.backdrop-blur-xl{backdrop-filter:var(--tw-backdrop-blur) var(--tw-backdrop-brightness) var(--tw-backdrop-contrast) var(--tw-backdrop-grayscale) var(--tw-backdrop-hue-rotate) var(--tw-backdrop-invert) var(--tw-backdrop-opacity) var(--tw-backdrop-saturate) var(--tw-backdrop-sepia)}.backdrop-blur-xl{--tw-backdrop-blur:blur(24px)}.transition{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke,opacity,box-shadow,transform,filter,backdrop-filter;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-all{transition-property:all;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-colors{transition-property:color,background-color,border-color,text-decoration-color,fill,stroke;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-opacity{transition-property:opacity;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.transition-transform{transition-property:transform;transition-timing-function:cubic-bezier(.4,0,.2,1);transition-duration:.15s}.duration-200{transition-duration:.2s}.duration-300{transition-duration:.3s}.duration-500{transition-duration:.5s}.selection\:bg-primary-fixed ::-moz-selection{--tw-bg-opacity:1;background-color:rgb(161 243 211/var(--tw-bg-opacity,1))}.selection\:bg-primary-fixed ::selection{--tw-bg-opacity:1;background-color:rgb(161 243 211/var(--tw-bg-opacity,1))}.selection\:text-on-primary-fixed ::-moz-selection{--tw-text-opacity:1;color:rgb(0 33 23/var(--tw-text-opacity,1))}.selection\:text-on-primary-fixed ::selection{--tw-text-opacity:1;color:rgb(0 33 23/var(--tw-text-opacity,1))}.selection\:bg-primary-fixed::-moz-selection{--tw-bg-opacity:1;background-color:rgb(161 243 211/var(--tw-bg-opacity,1))}.selection\:bg-primary-fixed::selection{--tw-bg-opacity:1;background-color:rgb(161 243 211/var(--tw-bg-opacity,1))}.selection\:text-on-primary-fixed::-moz-selection{--tw-text-opacity:1;color:rgb(0 33 23/var(--tw-text-opacity,1))}.selection\:text-on-primary-fixed::selection{--tw-text-opacity:1;color:rgb(0 33 23/var(--tw-text-opacity,1))}.hover\:-translate-y-0\.5:hover{--tw-translate-y:-0.125rem}.hover\:-translate-y-0\.5:hover,.hover\:-translate-y-1:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:-translate-y-1:hover{--tw-translate-y:-0.25rem}.hover\:-translate-y-1\.5:hover{--tw-translate-y:-0.375rem}.hover\:-translate-y-1\.5:hover,.hover\:scale-105:hover{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:scale-105:hover{--tw-scale-x:1.05;--tw-scale-y:1.05}.hover\:scale-95:hover{--tw-scale-x:.95;--tw-scale-y:.95;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.hover\:border-primary\/40:hover{border-color:rgba(0,75,56,.4)}.hover\:border-secondary:hover{--tw-border-opacity:1;border-color:rgb(157 66 40/var(--tw-border-opacity,1))}.hover\:bg-primary-container:hover{--tw-bg-opacity:1;background-color:rgb(0 101 77/var(--tw-bg-opacity,1))}.hover\:bg-primary\/10:hover{background-color:rgba(0,75,56,.1)}.hover\:bg-stone-50:hover{--tw-bg-opacity:1;background-color:rgb(250 250 249/var(--tw-bg-opacity,1))}.hover\:bg-surface-container-high:hover{--tw-bg-opacity:1;background-color:rgb(234 231 231/var(--tw-bg-opacity,1))}.hover\:bg-surface-container-highest:hover{--tw-bg-opacity:1;background-color:rgb(229 226 225/var(--tw-bg-opacity,1))}.hover\:bg-surface-container\/50:hover{background-color:hsla(0,9%,94%,.5)}.hover\:bg-white\/20:hover{background-color:hsla(0,0%,100%,.2)}.hover\:text-primary:hover{--tw-text-opacity:1;color:rgb(0 75 56/var(--tw-text-opacity,1))}.hover\:text-secondary:hover{--tw-text-opacity:1;color:rgb(157 66 40/var(--tw-text-opacity,1))}.hover\:text-white:hover{--tw-text-opacity:1;color:rgb(255 255 255/var(--tw-text-opacity,1))}.hover\:underline:hover{text-decoration-line:underline}.hover\:shadow-lg:hover{--tw-shadow:0 10px 15px -3px rgba(0,0,0,.1),0 4px 6px -4px rgba(0,0,0,.1);--tw-shadow-colored:0 10px 15px -3px var(--tw-shadow-color),0 4px 6px -4px var(--tw-shadow-color)}.hover\:shadow-lg:hover,.hover\:shadow-md:hover{box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.hover\:shadow-md:hover{--tw-shadow:0 4px 6px -1px rgba(0,0,0,.1),0 2px 4px -2px rgba(0,0,0,.1);--tw-shadow-colored:0 4px 6px -1px var(--tw-shadow-color),0 2px 4px -2px var(--tw-shadow-color)}.hover\:shadow-xl:hover{--tw-shadow:0 20px 25px -5px rgba(0,0,0,.1),0 8px 10px -6px rgba(0,0,0,.1);--tw-shadow-colored:0 20px 25px -5px var(--tw-shadow-color),0 8px 10px -6px var(--tw-shadow-color);box-shadow:var(--tw-ring-offset-shadow,0 0 #0000),var(--tw-ring-shadow,0 0 #0000),var(--tw-shadow)}.focus\:outline-none:focus{outline:2px solid transparent;outline-offset:2px}.focus\:ring-2:focus{--tw-ring-offset-shadow:var(--tw-ring-inset) 0 0 0 var(--tw-ring-offset-width) var(--tw-ring-offset-color);--tw-ring-shadow:var(--tw-ring-inset) 0 0 0 calc(2px + var(--tw-ring-offset-width)) var(--tw-ring-color);box-shadow:var(--tw-ring-offset-shadow),var(--tw-ring-shadow),var(--tw-shadow,0 0 #0000)}.focus\:ring-primary:focus{--tw-ring-opacity:1;--tw-ring-color:rgb(0 75 56/var(--tw-ring-opacity,1))}.active\:scale-95:active{--tw-scale-x:.95;--tw-scale-y:.95}.active\:scale-95:active,.disabled\:scale-100:disabled{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.disabled\:scale-100:disabled{--tw-scale-x:1;--tw-scale-y:1}.disabled\:opacity-50:disabled{opacity:.5}.group[open] .group-open\:rotate-180{--tw-rotate:180deg}.group:hover .group-hover\:translate-x-0\.5,.group[open] .group-open\:rotate-180{transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:translate-x-0\.5{--tw-translate-x:0.125rem}.group:hover .group-hover\:scale-110{--tw-scale-x:1.1;--tw-scale-y:1.1;transform:translate(var(--tw-translate-x),var(--tw-translate-y)) rotate(var(--tw-rotate)) skewX(var(--tw-skew-x)) skewY(var(--tw-skew-y)) scaleX(var(--tw-scale-x)) scaleY(var(--tw-scale-y))}.group:hover .group-hover\:text-primary{--tw-text-opacity:1;color:rgb(0 75 56/var(--tw-text-opacity,1))}@media (min-width:640px){.sm\:inline{display:inline}.sm\:inline-flex{display:inline-flex}.sm\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.sm\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.sm\:flex-row{flex-direction:row}}@media (min-width:768px){.md\:order-1{order:1}.md\:order-2{order:2}.md\:col-span-2{grid-column:span 2/span 2}.md\:col-span-3{grid-column:span 3/span 3}.md\:col-span-4{grid-column:span 4/span 4}.md\:col-span-8{grid-column:span 8/span 8}.md\:mx-8{margin-left:2rem;margin-right:2rem}.md\:mb-14{margin-bottom:3.5rem}.md\:mb-16{margin-bottom:4rem}.md\:mb-20{margin-bottom:5rem}.md\:mb-24{margin-bottom:6rem}.md\:mb-6{margin-bottom:1.5rem}.md\:mb-8{margin-bottom:2rem}.md\:mt-20{margin-top:5rem}.md\:mt-3{margin-top:.75rem}.md\:mt-5{margin-top:1.25rem}.md\:block{display:block}.md\:flex{display:flex}.md\:columns-2{-moz-columns:2;column-count:2}.md\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.md\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.md\:grid-cols-4{grid-template-columns:repeat(4,minmax(0,1fr))}.md\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.md\:flex-row{flex-direction:row}.md\:gap-12{gap:3rem}.md\:gap-16{gap:4rem}.md\:gap-4{gap:1rem}.md\:gap-6{gap:1.5rem}.md\:gap-8{gap:2rem}.md\:rounded-\[3rem\]{border-radius:3rem}.md\:p-10{padding:2.5rem}.md\:p-12{padding:3rem}.md\:p-4{padding:1rem}.md\:p-6{padding:1.5rem}.md\:p-7{padding:1.75rem}.md\:p-8{padding:2rem}.md\:px-10{padding-left:2.5rem;padding-right:2.5rem}.md\:px-12{padding-left:3rem;padding-right:3rem}.md\:px-6{padding-left:1.5rem;padding-right:1.5rem}.md\:px-8{padding-left:2rem;padding-right:2rem}.md\:py-16{padding-top:4rem;padding-bottom:4rem}.md\:py-20{padding-top:5rem;padding-bottom:5rem}.md\:py-24{padding-top:6rem;padding-bottom:6rem}.md\:py-32{padding-top:8rem;padding-bottom:8rem}.md\:py-4{padding-top:1rem;padding-bottom:1rem}.md\:py-8{padding-top:2rem;padding-bottom:2rem}.md\:pb-12{padding-bottom:3rem}.md\:pb-20{padding-bottom:5rem}.md\:pb-24{padding-bottom:6rem}.md\:pb-6{padding-bottom:1.5rem}.md\:pt-20{padding-top:5rem}.md\:pt-36{padding-top:9rem}.md\:text-2xl{font-size:1.5rem;line-height:2rem}.md\:text-3xl{font-size:1.875rem;line-height:2.25rem}.md\:text-4xl{font-size:2.25rem;line-height:2.5rem}.md\:text-5xl{font-size:3rem;line-height:1}.md\:text-6xl{font-size:3.75rem;line-height:1}.md\:text-7xl{font-size:4.5rem;line-height:1}.md\:text-base{font-size:1rem;line-height:1.5rem}.md\:text-lg{font-size:1.125rem;line-height:1.75rem}.md\:text-sm{font-size:.875rem;line-height:1.25rem}.md\:text-xl{font-size:1.25rem;line-height:1.75rem}}@media (min-width:1024px){.lg\:col-span-2{grid-column:span 2/span 2}.lg\:col-span-3{grid-column:span 3/span 3}.lg\:block{display:block}.lg\:hidden{display:none}.lg\:aspect-\[5\/4\]{aspect-ratio:5/4}.lg\:grid-cols-12{grid-template-columns:repeat(12,minmax(0,1fr))}.lg\:grid-cols-2{grid-template-columns:repeat(2,minmax(0,1fr))}.lg\:grid-cols-3{grid-template-columns:repeat(3,minmax(0,1fr))}.lg\:grid-cols-5{grid-template-columns:repeat(5,minmax(0,1fr))}.lg\:gap-12{gap:3rem}.lg\:gap-14{gap:3.5rem}.lg\:gap-16{gap:4rem}.lg\:gap-20{gap:5rem}.lg\:gap-24{gap:6rem}.lg\:text-5xl{font-size:3rem;line-height:1}.lg\:text-6xl{font-size:3.75rem;line-height:1}.lg\:text-8xl{font-size:6rem;line-height:1}}@media (min-width:1536px){.\32xl\:inline{display:inline}}.rtl\:-left-10:where([dir=rtl],[dir=rtl] *){left:-2.5rem}.rtl\:right-auto:where([dir=rtl],[dir=rtl] *){right:auto}.rtl\:bg-gradient-to-l:where([dir=rtl],[dir=rtl] *){background-image:linear-gradient(to left,var(--tw-gradient-stops))}.rtl\:\[transform\:scaleX\(-1\)\]:where([dir=rtl],[dir=rtl] *){transform:scaleX(-1)}.\[\&\:\:-webkit-details-marker\]\:hidden::-webkit-details-marker{display:none}

/* ===== static/css/redesign.css ===== */

/* ===================================================================
   AUDIALA — Website redesign (aligned with mobile app)
   ===================================================================
   Palette is straight from the mobile app's brand system:
     - Cream is paper (the field everything sits on)
     - Deep teal is ink (text only)
     - Coral is the joy — used for italic display words, play buttons,
       active states
     - Sun yellow for the hand-drawn underline highlight
     - Mint teal for soft secondary details
   =================================================================== */

/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-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;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-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;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-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;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: italic;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-italic-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;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-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;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-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;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-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;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-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;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 800;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-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;
}
/* vietnamese */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Fraunces';
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("/assets/fonts/Fraunces-normal-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;
}

/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-italic-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-italic-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-italic-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-italic-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-italic-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: italic;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-italic-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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-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;
}
/* cyrillic-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-cyrillic-ext.woff2") format('woff2');
  unicode-range: U+0460-052F, U+1C80-1C8A, U+20B4, U+2DE0-2DFF, U+A640-A69F, U+FE2E-FE2F;
}
/* cyrillic */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-cyrillic.woff2") format('woff2');
  unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
}
/* greek */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-greek.woff2") format('woff2');
  unicode-range: U+0370-0377, U+037A-037F, U+0384-038A, U+038C, U+038E-03A1, U+03A3-03FF;
}
/* vietnamese */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-vietnamese.woff2") format('woff2');
  unicode-range: U+0102-0103, U+0110-0111, U+0128-0129, U+0168-0169, U+01A0-01A1, U+01AF-01B0, U+0300-0301, U+0303-0304, U+0308-0309, U+0323, U+0329, U+1EA0-1EF9, U+20AB;
}
/* latin-ext */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-latin-ext.woff2") format('woff2');
  unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
}
/* latin */
@font-face {
  font-family: 'Source Serif 4';
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("/assets/fonts/SourceSerif4-normal-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;
}

:root {
  /* ---- Brand palette (from the mobile app) ---- */
  --cream:        #FAF2E2;     /* paper */
  --cream-2:      #F4E6C2;     /* warm cream, second surface */
  --cream-3:      #ECE0B8;
  --ink:          #1D3935;     /* deep teal — primary text */
  --ink-2:        #465C58;     /* secondary text, icon strokes */
  --ink-3:        #7C928E;     /* tertiary, muted */
  --ink-4:        #BBC9C5;     /* hairlines, soft details */
  --coral:        #E85F33;     /* warm orange — the brand accent */
  --coral-deep:   #C8451F;
  --coral-soft:   #F8D8C8;     /* coral wash */
  --sun:          #F3C43D;     /* golden highlight */
  --sun-soft:     #FBE89A;
  --mint:         #7FC0B6;     /* soft teal accent */
  --paper-deep:   #131C1F;     /* dark-theme paper */

  /* ---- Hairlines ---- */
  --line:         rgba(29, 57, 53, 0.14);
  --line-soft:    rgba(29, 57, 53, 0.07);

  /* ---- Type ---- */
  --serif:        "Fraunces", "Source Serif 4", Georgia, serif;
  --serif-body:   "Source Serif 4", "Fraunces", Georgia, serif;
  --sans:         "Inter", -apple-system, "Helvetica Neue", system-ui, sans-serif;
}

/* ---------- Page scoping ---------- */
.audiala-page * { box-sizing: border-box; margin: 0; padding: 0; }
.audiala-page {
  font-family: var(--sans);
  font-size: 15px; line-height: 1.55;
  color: var(--ink);
  background: var(--cream);
  width: 100%;
  max-width: 1280px;
  /* Float the cream page as a card on the dark surround, mirroring the
     design mock's `.review-page` (1280px cream card, radius 24, big soft
     shadow, sitting on the dark stage). */
  margin: 40px auto 80px;
  border-radius: 24px;
  box-shadow:
    0 30px 80px -30px rgba(29, 57, 53, 0.25),
    0 1px 0 rgba(29, 57, 53, 0.08);
  position: relative;
  -webkit-font-smoothing: antialiased;
  overflow: hidden;
}
/* Surround behind the floating page — cream-3 (#ECE0B8), the deeper cream
   band from the mock. `:has()` scopes it to redesign pages so unported
   Tailwind pages keep their own body background. */
html:has(> body > .audiala-page),
body:has(> .audiala-page) {
  background: var(--cream-3) !important;
  margin: 0;
}
/* Mock was fixed-width 1280px; basic responsive scaffolding for
   tablet + mobile. Per-section breakpoints added as pages are ported. */
@media (max-width: 1024px) {
  .audiala-page { font-size: 14.5px; }
}
@media (max-width: 768px) {
  .audiala-page { font-size: 14px; }
}
/* Edge-to-edge on phones — a floating card with margins wastes space and the
   radius/shadow read as a bug at small widths. */
@media (max-width: 700px) {
  .audiala-page { margin: 0 auto; border-radius: 0; box-shadow: none; }
}
.audiala-page img { display: block; max-width: 100%; }
.audiala-page a { color: inherit; text-decoration: none; }
.audiala-page button { font: inherit; cursor: pointer; border: none; background: none; color: inherit; }
.audiala-page p { text-wrap: pretty; }

/* ---------- Type primitives ---------- */
.f-display {
  font-family: var(--serif);
  font-weight: 700;
  letter-spacing: -0.025em;
  font-variation-settings: "opsz" 144, "SOFT" 30;
  line-height: 0.95;
  color: var(--ink);
}
.f-display-it {
  font-family: var(--serif);
  font-style: italic;
  font-weight: 700;
  letter-spacing: -0.015em;
  color: var(--coral);
}
.f-serif {
  font-family: var(--serif-body);
  font-weight: 400;
  color: var(--ink);
}
.f-serif-it {
  font-family: var(--serif-body);
  font-style: italic;
  font-weight: 400;
  color: var(--ink-2);
}
.f-eyebrow {
  font-family: var(--sans);
  font-weight: 500;
  font-size: 11px;
  letter-spacing: 0.18em;
  text-transform: uppercase;
  color: var(--ink-2);
}
.f-eyebrow .sep { color: var(--ink-3); margin: 0 8px; }
.f-eyebrow .dot {
  display: inline-block; width: 4px; height: 4px;
  background: var(--ink-3); border-radius: 50%;
  vertical-align: middle; margin: 0 10px;
  transform: translateY(-2px);
}

/* Numbered section prefix "01 The set" */
.section-no {
  font-family: var(--sans);
  font-weight: 400;
  font-size: 11px;
  letter-spacing: 0.18em;
  color: var(--ink-3);
  vertical-align: super;
  margin-right: 14px;
}

/* Coral italic display word — signature joy element */
.joy { font-family: var(--serif); font-style: italic; color: var(--coral); font-weight: 700; }

/* Hand-drawn underline highlight (sun yellow) */
.hl-under {
  position: relative;
  display: inline-block;
  white-space: nowrap;
}
.hl-under::after {
  content: "";
  position: absolute;
  left: -2px; right: -2px;
  bottom: 0.06em;
  height: 0.18em;
  background: var(--sun);
  border-radius: 100px;
  z-index: -1;
  transform: skewY(-1deg);
  opacity: 0.85;
}

/* ---------- Buttons ---------- */
.btn {
  display: inline-flex; align-items: center; gap: 10px;
  padding: 14px 22px;
  border-radius: 100px;
  font-family: var(--sans); font-size: 14px; font-weight: 500;
  letter-spacing: -0.005em;
  transition: transform .15s ease, background .15s ease;
}
.btn:hover { transform: translateY(-1px); }
/* Use .audiala-page prefix to outrank `.audiala-page a { color: inherit }`
   (specificity 0,1,1) and Tailwind utility classes on body. Without this,
   ink/coral buttons inherit the page text color and the cream label becomes
   invisible (most painfully on `.btn-ink` where bg matches the ink text). */
.audiala-page .btn-coral, .btn-coral { background: var(--coral); color: #fff; }
.btn-coral:hover { background: var(--coral-deep); }
.audiala-page .btn-ink,   .btn-ink   { background: var(--ink);   color: var(--cream); }
.audiala-page .btn-cream, .btn-cream { background: var(--cream); color: var(--ink); }
.btn-ghost {
  background: transparent; color: var(--ink);
  border: 1px solid var(--line);
}
.btn-lg { padding: 16px 26px; font-size: 14.5px; }

/* Play button — round coral disc */
.play-btn {
  width: 56px; height: 56px; border-radius: 50%;
  background: var(--coral); color: #fff;
  display: grid; place-items: center;
  font-size: 18px;
  flex-shrink: 0;
  transition: transform .15s ease, background .15s ease;
}
.play-btn:hover { transform: scale(1.04); background: var(--coral-deep); }
.play-btn.sm { width: 44px; height: 44px; font-size: 14px; }
.play-btn.lg { width: 72px; height: 72px; font-size: 22px; }
.audio-toggle-icon {
  display: inline-grid;
  place-items: center;
  line-height: 0;
}
.audio-toggle-icon-pause { display: none; }
.is-audio-playing .audio-toggle-icon-play { display: none; }
.is-audio-playing .audio-toggle-icon-pause { display: inline-grid; }
.audio-preview-strip {
  margin-top: 20px;
  max-width: 520px;
  display: grid;
  gap: 10px;
}
.audio-preview-copy {
  display: grid;
  gap: 6px;
}
.audio-preview-copy p {
  font-size: 18px;
  line-height: 1.35;
  color: var(--ink-2);
}
.audio-preview-progress {
  width: 100%;
  height: 5px;
  border-radius: 999px;
  overflow: hidden;
  background: rgba(29, 57, 53, 0.11);
}
.audio-preview-progress span {
  display: block;
  width: 0%;
  height: 100%;
  border-radius: inherit;
  background: var(--coral);
  transition: width .12s linear;
}
.audio-preview-status {
  min-height: 18px;
  font-family: var(--sans);
  font-size: 12px;
  color: var(--ink-3);
}
.is-audio-playing .audio-preview-status { color: var(--coral); }

/* ---------- Cards ---------- */
.card {
  background: var(--cream);
  border-radius: 24px;
  /* Strong shadow + soft outline so cards floating over hero photos
     (.card.position:absolute over .ph) stay visually lifted instead of
     blending into the cream-toned imagery behind. */
  box-shadow:
    0 1px 0 rgba(29, 57, 53, 0.08),
    0 2px 6px rgba(29, 57, 53, 0.08),
    0 18px 40px -16px rgba(29, 57, 53, 0.28);
}
.card-2 {
  background: var(--cream-2);
  border-radius: 24px;
}
.card-ink {
  background: var(--ink);
  color: var(--cream);
  border-radius: 24px;
}
.card-tight { border-radius: 16px; }

/* ---------- Pill / chip ---------- */
.pill {
  display: inline-flex; align-items: center; gap: 8px;
  padding: 8px 14px;
  border-radius: 100px;
  background: var(--cream-2);
  font-family: var(--sans);
  font-size: 12.5px;
  color: var(--ink-2);
  border: 1px solid transparent;
}
.pill.is-on { background: var(--ink); color: var(--cream); }
.pill.is-coral { background: var(--coral); color: #fff; }
.pill .avatar {
  width: 20px; height: 20px; border-radius: 50%;
  background: var(--coral); color: #fff;
  display: grid; place-items: center;
  font-size: 10px; font-weight: 600;
}

/* ---------- Nav ---------- */
.nav {
  display: flex; align-items: center; justify-content: space-between;
  padding: 22px 48px;
  position: relative; z-index: 5;
  background: var(--cream);
}
.nav.sticky-top { border-bottom: 1px solid var(--line); }

.logo {
  display: inline-flex; align-items: center; gap: 10px;
  color: var(--ink);
}
.logo-mark {
  width: 34px; height: 30px;
  background-color: var(--coral);
  -webkit-mask: url("/assets/audiala-logo-mark.svg") no-repeat center / contain;
          mask: url("/assets/audiala-logo-mark.svg") no-repeat center / contain;
  flex-shrink: 0;
}
.logo-word {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 22px;
  letter-spacing: -0.02em;
  font-variation-settings: "opsz" 144;
}

.nav-links {
  display: flex; gap: 32px;
  font-family: var(--sans);
  font-size: 14px;
  color: var(--ink);
}
.nav-links a { position: relative; padding: 4px 0; }
.nav-links a.is-active::after {
  content: "";
  position: absolute;
  left: -2px; right: -2px; bottom: 0;
  height: 7px;
  background: var(--sun);
  border-radius: 100px;
  z-index: -1;
  opacity: 0.9;
}

.nav-tools {
  display: flex; gap: 12px; align-items: center;
}
.nav-search {
  display: inline-flex; gap: 10px; align-items: center;
  padding: 10px 18px;
  border-radius: 100px;
  border: 1px solid var(--line);
  background: var(--cream);
  font-size: 13px;
  color: var(--ink-3);
}

/* Language switcher — compact pill trigger + dropdown listbox. Logical
   (inset-inline) positioning so it mirrors correctly under dir="rtl" (ar). */
.nav-lang { position: relative; }
.nav-lang-btn {
  display: inline-flex; gap: 6px; align-items: center;
  padding: 10px 14px;
  border-radius: 100px;
  border: 1px solid var(--line);
  background: var(--cream);
  font-size: 13px;
  color: var(--ink-2);
  cursor: pointer;
  transition: border-color .15s ease, color .15s ease;
}
.nav-lang-btn:hover { border-color: var(--ink-3); color: var(--ink); }
.nav-lang-code { font-family: var(--sans); font-weight: 600; letter-spacing: .02em; }
.nav-lang-btn svg { width: 12px; height: 12px; transition: transform .15s ease; }
.nav-lang-btn[aria-expanded="true"] svg { transform: rotate(180deg); }
.nav-lang-menu {
  position: absolute; inset-inline-end: 0; top: calc(100% + 8px);
  background: #fff;
  border: 1px solid var(--line);
  border-radius: 14px;
  box-shadow: 0 18px 40px -16px rgba(29, 57, 53, 0.28);
  padding: 6px;
  min-width: 180px; max-height: 360px; overflow-y: auto;
  z-index: 60;
}
.nav-lang-menu[hidden] { display: none; }
.nav-lang-menu a {
  display: flex; gap: 10px; align-items: center;
  padding: 9px 12px;
  border-radius: 9px;
  font-family: var(--sans); font-size: 13.5px;
  color: var(--ink-2);
  text-decoration: none;
}
.nav-lang-menu a:hover { background: var(--cream-2); color: var(--ink); }
.nav-lang-menu a.is-current { color: var(--coral); font-weight: 600; background: rgba(232, 95, 51, 0.06); }

/* ---------- Photography placeholder ----------
   A warm sky-gradient placeholder (not the harsh striped one).
   Variants: dawn, midday, dusk, night, terracotta, ocean
*/
.ph {
  background: linear-gradient(180deg, #C5A782 0%, #E5B998 35%, #F0CBA8 65%, #D89868 100%);
  position: relative;
  /* Isolate so the ::after legibility scrim (z-index:1) stays contained
     within the photo and can't paint above sibling overlay cards (e.g. the
     "Continue listening" resume card), which have no z-index and would
     otherwise be darkened/bled-through by the escaping scrim. */
  isolation: isolate;
  overflow: hidden;
  border-radius: 20px;
  display: grid;
  place-items: end start;
}
.ph::before {
  content: "";
  position: absolute; inset: 0;
  background:
    radial-gradient(circle at 75% 30%, rgba(255, 235, 200, 0.4), transparent 50%),
    radial-gradient(circle at 20% 80%, rgba(29, 57, 53, 0.18), transparent 60%);
  pointer-events: none;
}
.ph::after {
  content: "";
  position: absolute; left: 0; right: 0; bottom: 0;
  height: 60%;
  background: linear-gradient(180deg, transparent 0%, rgba(0, 0, 0, 0.15) 35%, rgba(0, 0, 0, 0.65) 100%);
  pointer-events: none;
}
/* When a real <img> is wired (`.has-img` added by the partial) we keep the
   variant gradient as the background: the opaque photo covers it once
   loaded, and it serves as a warm on-brand placeholder while a lazy image
   below the fold is still loading (instead of a flat dark-teal flash). Just
   drop the sky-highlight ::before so it doesn't tint the photo. The bottom
   darken scrim (::after) stays for label/overlay legibility. */
.ph.has-img::before { display: none; }
.ph > img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
  border-radius: inherit;
  z-index: 0;
}
.ph::before, .ph::after { z-index: 1; }
.ph .ph-label, .ph .ph-sun { position: relative; z-index: 2; }
.ph .ph-label {
  position: relative;
  margin: 16px;
  padding: 5px 10px;
  background: rgba(29, 57, 53, 0.55);
  color: rgba(250, 242, 226, 0.9);
  font-family: var(--sans);
  font-size: 10.5px;
  letter-spacing: 0.14em;
  text-transform: uppercase;
  border-radius: 100px;
  backdrop-filter: blur(4px);
}

/* Placeholder variants */
.ph.dawn   { background: linear-gradient(180deg, #E8C5A0 0%, #F3D8AE 40%, #DBA76F 100%); }
.ph.dusk   { background: linear-gradient(180deg, #5A4E5C 0%, #C28570 50%, #E69862 100%); }
.ph.night  { background: linear-gradient(180deg, #1D3935 0%, #2C5A52 50%, #6B8378 100%); }
.ph.ocean  { background: linear-gradient(180deg, #7AAEB0 0%, #B8D4C8 50%, #F4E6C2 100%); }
.ph.stone  { background: linear-gradient(180deg, #C9B894 0%, #D6C3A0 50%, #B89D70 100%); }
.ph.forest { background: linear-gradient(180deg, #6B8E78 0%, #95B49A 50%, #D5C9A8 100%); }
.ph.terracotta { background: linear-gradient(180deg, #A85638 0%, #C77554 50%, #E8A875 100%); }

/* A small inset frame for an icon overlay on placeholder */
.ph-sun {
  position: absolute;
  top: 32px; right: 32px;
  width: 60px; height: 60px;
  border-radius: 50%;
  background: rgba(250, 242, 226, 0.5);
  filter: blur(10px);
}

/* ---------- Day-icon strokes (line, 1.5pt, no fill) ---------- */
.line-icon {
  display: inline-block;
  color: var(--ink-2);
  width: 36px; height: 36px;
}
.line-icon.coral { color: var(--coral); }
.line-icon.sm { width: 22px; height: 22px; }
.line-icon.lg { width: 56px; height: 56px; }
/* Vault rule (ios-design-system.md §Buttons): coral surfaces carry WHITE ink,
   never the teal/green ink-2. The .line-icon default `color: var(--ink-2)` is a
   direct rule that beats inheritance, so an icon inside a coral pill/button
   rendered green-on-coral (e.g. the "Editor's pick" sparkle). Force inherit so
   icons take the white text color of their coral/ink parent. */
.btn-coral .line-icon,
.pill.is-coral .line-icon,
.pill.is-on .line-icon,
.play-btn .line-icon,
.btn-ink .line-icon { color: inherit; }

/* ---------- Generic layout helpers ---------- */
.section { padding: 88px 48px; position: relative; }
.section.tight { padding: 56px 48px; }
.section.big { padding: 120px 48px; }

.section-head {
  display: flex; align-items: end; justify-content: space-between;
  gap: 40px; margin-bottom: 48px;
}
.section-head h2 {
  font-family: var(--serif); font-weight: 700;
  font-size: 64px; line-height: 0.98;
  letter-spacing: -0.025em;
  color: var(--ink);
  max-width: 800px;
}
.section-head .lead {
  font-family: var(--serif-body);
  font-size: 18px; line-height: 1.45;
  color: var(--ink-2);
  max-width: 380px;
}

/* ---------- Hairline ---------- */
.hr {
  border: 0; height: 1px; background: var(--line); margin: 0;
}

/* ---------- "Continue listening" mini-card pattern ---------- */
.resume-card {
  display: flex; align-items: center; gap: 16px;
  padding: 14px 18px 14px 14px;
  background: var(--cream-2);
  border-radius: 20px;
  box-shadow: 0 1px 0 rgba(29, 57, 53, 0.05);
}
.resume-card .art {
  width: 60px; height: 60px; border-radius: 12px;
  flex-shrink: 0;
}
.resume-card .label-row {
  font-family: var(--sans); font-size: 10.5px;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: var(--ink-3); margin-bottom: 4px;
}
.resume-card .title {
  font-family: var(--serif); font-weight: 600;
  font-size: 18px; color: var(--ink);
  letter-spacing: -0.01em;
}
.resume-card .meta {
  font-family: var(--sans); font-size: 12px;
  color: var(--ink-3); margin-top: 2px;
}

/* ---------- Footer ---------- */
.footer {
  background: var(--paper-deep);
  color: var(--cream);
  padding: 96px 48px 36px;
  position: relative;
}
.footer .lead {
  font-family: var(--serif);
  font-weight: 700;
  font-size: 56px;
  line-height: 0.98;
  letter-spacing: -0.025em;
  max-width: 540px;
}
.footer .lead .joy { color: var(--coral); }
.footer .logo { color: var(--cream); }
.footer .logo-mark { background-color: var(--cream); }
.footer-grid {
  display: grid;
  grid-template-columns: 1.5fr 1fr 1fr 1fr 1fr;
  gap: 48px;
  margin-top: 64px;
  padding-bottom: 56px;
  border-bottom: 1px solid rgba(250, 242, 226, 0.12);
}
.footer h4 {
  font-family: var(--sans); font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: rgba(250, 242, 226, 0.5);
  margin-bottom: 16px; font-weight: 500;
}
.footer ul { list-style: none; display: flex; flex-direction: column; gap: 12px; font-size: 14px; }
.footer ul.footer-social { flex-direction: row; flex-wrap: wrap; gap: 8px; margin-top: 20px; }
/* Touch: the 12px row gap becomes 6px of padding on each link, so every
   link is a 34px target (was 17px); a five-link list grows by about 12px. */
@media (pointer: coarse) {
  .footer ul:not(.footer-social) { gap: 0; }
  .footer ul:not(.footer-social) a { display: inline-block; padding-block: 6px; }
}
.footer-social a {
  display: inline-flex; align-items: center; justify-content: center;
  width: 36px; height: 36px; border-radius: 10px;
  color: rgba(250, 242, 226, 0.7);
  background: rgba(250, 242, 226, 0.08);
  transition: color .15s, background .15s;
}
.footer-social a:hover, .footer-social a:focus-visible { color: var(--cream); background: var(--coral); }
.footer-bottom {
  display: flex; justify-content: space-between; align-items: center;
  padding-top: 24px;
  font-family: var(--sans); font-size: 12px;
  color: rgba(250, 242, 226, 0.4);
}

/* ---------- Stats / numbers ---------- */
.stat {
  display: flex; flex-direction: column; gap: 6px;
}
.stat-n {
  font-family: var(--serif); font-weight: 700;
  font-size: 56px; line-height: 0.95;
  letter-spacing: -0.03em;
  color: var(--ink);
}
.stat-l {
  font-family: var(--sans);
  font-size: 12px;
  letter-spacing: 0.06em;
  color: var(--ink-3);
  text-transform: uppercase;
}


/* ===================================================================
   LOUVRE PAGE COMPONENTS  (lv-* + .disc family)
   ------------------------------------------------------------------
   Ported from design/louvre-v1.html (style block 1). Used by the
   place-page redesign for hero headline, facts strip, ticket pill,
   verified chip, audio-guide CTA, prose, gallery, logistics, tips,
   pair, faq, related, sources. Tokens (var(--ink), var(--coral),
   var(--cream)…) come from earlier in this file.
   =================================================================== */
/* ===================================================================
   AUDIALA — Louvre place page · polish layer over styles.css
   Page-specific patterns: hero, tickets, gallery, logistics,
   tips, history, callouts, FAQ accordion, related grid.
   =================================================================== */

/* ---------- Image with graceful fallback ---------- */.lv-img { width: 100%; height: 100%; object-fit: cover; display: block; }

/* ---------- Hero ---------- */
.lv-hero-title {
  font-family: var(--serif);
  font-weight: 800;
  /* Design uses a fixed 150px for short single-word names ("Louvre."). Real
     place names vary wildly in length, so scale with the viewport: ~150px at
     the 1280px design width, shrinking on narrow screens to avoid overflow. */
  font-size: clamp(52px, 11.7vw, 150px);
  line-height: 0.84;
  letter-spacing: -0.04em;
  font-variation-settings: "opsz" 144, "SOFT" 50;
  color: var(--ink);
}
.lv-hero-title .it { font-style: italic; color: var(--coral); font-weight: 700; }

/* Place-page narration preview. The compact card sits in the hero beside the
   page summary so listening is a first-class action, not a download promise. */
.lv-audio-preview {
  margin-top: 18px;
  padding: 14px 16px;
  border: 1px solid rgba(29, 57, 53, 0.12);
  border-radius: 20px;
  background:
    radial-gradient(circle at 100% 0, rgba(224, 122, 95, 0.14), transparent 38%),
    var(--cream-2);
  box-shadow: 0 12px 28px -22px rgba(29, 57, 53, 0.4);
}
.lv-audio-preview audio { display: none; }
.lv-audio-preview-main {
  display: grid;
  grid-template-columns: auto minmax(0, 1fr) auto;
  align-items: center;
  gap: 14px;
}
.lv-audio-preview-toggle {
  border: 0;
  cursor: pointer;
  box-shadow: 0 9px 22px -8px rgba(224, 122, 95, 0.8);
}
.lv-audio-preview-toggle:focus-visible,
.lv-audio-preview a:focus-visible {
  outline: 3px solid rgba(224, 122, 95, 0.42);
  outline-offset: 3px;
}
.lv-audio-preview .audio-preview-copy { min-width: 0; }
.lv-audio-preview .audio-preview-copy h2 {
  margin: 0;
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.1;
  letter-spacing: -0.02em;
  color: var(--ink);
}
.lv-audio-preview .audio-preview-copy .f-eyebrow {
  color: var(--coral-deep);
  overflow: hidden;
  text-overflow: ellipsis;
  white-space: nowrap;
}
.lv-audio-preview-duration {
  padding: 7px 10px;
  border: 1px solid var(--line);
  border-radius: 100px;
  background: rgba(255, 255, 255, 0.45);
  font: 600 12px/1 var(--sans);
  font-variant-numeric: tabular-nums;
  color: var(--ink-3);
}
.lv-audio-preview .audio-preview-progress { margin-top: 10px; }
.lv-audio-preview-footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 14px;
  margin-top: 11px;
}
.lv-audio-preview .audio-preview-status {
  min-width: 78px;
  font-variant-numeric: tabular-nums;
}
.lv-audio-preview-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 8px;
}
.lv-audio-preview-actions .btn {
  min-height: 32px;
  padding: 7px 12px;
  font-size: 11.5px;
  text-align: center;
}
.lv-audio-preview-open { opacity: 0.88; }
.lv-audio-preview.is-audio-complete .lv-audio-preview-open {
  opacity: 1;
  box-shadow: 0 8px 22px -10px rgba(224, 122, 95, 0.8);
}
.lv-audio-preview.has-audio-error .lv-audio-preview-toggle {
  opacity: 0.45;
  pointer-events: none;
}

/* Primary app-conversion CTA — make it unmistakably a button */
.lv-cta-listen {
  font-weight: 600;
  padding-left: 8px;
  box-shadow: 0 8px 22px -6px rgba(224,122,95,0.55), inset 0 0 0 1px rgba(255,255,255,0.12);
}
.lv-cta-listen .disc {
  width: 34px; height: 34px; border-radius: 50%;
  display: grid; place-items: center; flex-shrink: 0;
  background: rgba(255,255,255,0.22);
  color: var(--cream);
}
.lv-cta-listen:hover { transform: translateY(-2px); box-shadow: 0 12px 28px -6px rgba(224,122,95,0.62), inset 0 0 0 1px rgba(255,255,255,0.16); }
.lv-cta-listen:active { transform: translateY(0); box-shadow: 0 4px 12px -4px rgba(224,122,95,0.5); }

/* Quiet ticket line in hero */
.lv-ticket-quiet {
  display: inline-flex; align-items: center; gap: 12px;
  padding: 9px 9px 9px 16px;
  border-radius: 100px;
  border: 1px solid var(--line);
  background: var(--cream);
  font-family: var(--sans); font-size: 13px; color: var(--ink-2);
  transition: border-color .15s ease, transform .15s ease;
}
.lv-ticket-quiet:hover { border-color: var(--ink-4); transform: translateY(-1px); }
.lv-ticket-quiet .price { color: var(--coral); font-weight: 600; }
.lv-ticket-quiet .rate { display: inline-flex; align-items: center; gap: 4px; color: var(--ink-3); }
.lv-ticket-quiet .go {
  width: 30px; height: 30px; border-radius: 50%;
  background: var(--coral); color: var(--cream);
  display: grid; place-items: center;
}

.lv-verified {
  display: inline-flex; align-items: center; gap: 7px;
  font-family: var(--sans); font-size: 11.5px; letter-spacing: 0.04em;
  color: var(--ink-3);
}
.lv-verified .dot { width: 14px; height: 14px; color: var(--mint); }

/* Hero quick-facts overlay strip */
.lv-facts {
  display: grid; grid-template-columns: repeat(4, 1fr);
  gap: 0;
}
.lv-facts .fact {
  display: flex; gap: 14px; align-items: flex-start;
  padding: 0 28px;
}
.lv-facts .fact + .fact { border-left: 1px solid var(--line); }
.lv-facts .fact .k {
  font-family: var(--sans); font-size: 10.5px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-3); margin-bottom: 4px;
}
.lv-facts .fact .v {
  font-family: var(--serif); font-weight: 600; font-size: 17px;
  line-height: 1.15; letter-spacing: -0.01em; color: var(--ink);
}

/* ---------- Editorial body type ---------- */
/* Base props live on the container too: markdownify emits bare inline text
   (no <p>) for single-line fields, which otherwise fell back to Inter. */
.lv-prose {
  font-family: var(--serif-body);
  font-size: 17px; line-height: 1.62; color: var(--ink-2);
}
.lv-prose p {
  font-family: var(--serif-body);
  font-size: 17px; line-height: 1.62; color: var(--ink-2);
}
.lv-prose p + p { margin-top: 20px; }
.lv-prose em { font-style: italic; color: var(--ink); }
.lv-dropcap::first-letter {
  font-family: var(--serif); font-weight: 700;
  font-size: 92px; line-height: 0.72;
  float: left; color: var(--coral);
  margin: 10px 14px 0 0;
}

/* ---------- "What to see" numbered items ---------- */
.lv-see-item {
  display: grid; grid-template-columns: 64px 1fr;
  gap: 28px;
  padding: 36px 0;
  border-top: 1px solid var(--line);
}
.lv-see-item .idx {
  font-family: var(--serif); font-weight: 700; font-size: 30px;
  color: var(--coral); letter-spacing: -0.02em;
  font-style: italic;
}
.lv-see-item h3 {
  font-family: var(--serif); font-weight: 700; font-size: 30px;
  letter-spacing: -0.02em; color: var(--ink); line-height: 1.05;
  margin-bottom: 14px;
}

/* Keep what-to-see prose at a reading measure (~75 characters) instead of
   the full 1100px row. */
.lv-see-item .lv-prose { max-width: 760px; }

/* ---------- Callouts (Look for this / The Secret) ---------- */
.lv-callout {
  display: grid; grid-template-columns: auto 1fr; gap: 22px;
  align-items: start;
  padding: 30px 34px;
  border-radius: 24px;
  background: var(--cream-2);
  border: 1px solid var(--line);
}
.lv-callout .badge {
  width: 52px; height: 52px; border-radius: 50%;
  display: grid; place-items: center; flex-shrink: 0;
  background: var(--sun-soft); color: var(--ink);
}
.lv-callout.dark { background: var(--ink); border-color: transparent; color: var(--cream); }
.lv-callout.dark .badge { background: rgba(243,196,61,0.18); color: var(--sun); }
.lv-callout .eyebrow {
  font-family: var(--sans); font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--ink-3); margin-bottom: 7px;
}
.lv-callout.dark .eyebrow { color: var(--sun); }
.lv-callout h4 {
  font-family: var(--serif); font-weight: 700; font-size: 22px;
  letter-spacing: -0.01em; margin-bottom: 8px;
}
.lv-callout p { font-family: var(--serif-body); font-size: 15.5px; line-height: 1.55; color: var(--ink-2); }
.lv-callout.dark p { color: rgba(250,242,226,0.82); }

/* ---------- Gallery ---------- */
.lv-gallery {
  display: grid;
  grid-template-columns: repeat(4, 1fr);
  grid-auto-rows: 200px;
  gap: 14px;
}
.lv-gallery figure {
  position: relative; overflow: hidden; border-radius: 18px;
  background: var(--cream-2);
}
.lv-gallery figure.wide { grid-column: span 2; }
.lv-gallery figure.tall { grid-row: span 2; }
.lv-gallery img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.lv-gallery figure:hover img { transform: scale(1.04); }
.lv-gallery figcaption {
  position: absolute; left: 0; right: 0; bottom: 0;
  padding: 22px 16px 12px;
  font-family: var(--sans); font-size: 10.5px; letter-spacing: 0.06em;
  color: rgba(250,242,226,0.92);
  background: linear-gradient(180deg, transparent, rgba(19,28,31,0.72));
  opacity: 0; transition: opacity .25s ease;
}
.lv-gallery figure:hover figcaption { opacity: 1; }

/* ---------- Phone mockup screen (redesign/phone-card.html) ----------
   Stylized rendition of the app's dark player, sized to the 286x620 bezel
   opening. Data comes from the page; imagery rides the resize pipeline. */
.lv-phone {
  position: relative;
  aspect-ratio: 286 / 620;
  border-radius: 35px;
  overflow: hidden;
  background: #141d20;
  display: flex;
  flex-direction: column;
  font-family: var(--sans);
}
.lv-phone .shot {
  position: relative;
  height: 42%;
  flex: none;
  background: linear-gradient(160deg, #2b3f44, #141d20);
}
.lv-phone .shot img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.lv-phone .shot::after {
  content: "";
  position: absolute;
  inset: 0;
  background: linear-gradient(180deg, rgba(20,29,32,0.18), transparent 30%, transparent 55%, #141d20 100%);
}
.lv-phone .statusbar {
  position: absolute;
  top: 10px; left: 16px; right: 16px;
  display: flex; align-items: center; justify-content: space-between;
  z-index: 1;
  color: #fff;
  font-size: 11px; font-weight: 600;
  text-shadow: 0 1px 3px rgba(0,0,0,0.4);
}
.lv-phone .statusbar .notch {
  width: 74px; height: 20px;
  border-radius: 12px;
  background: rgba(10,14,15,0.9);
}
.lv-phone .statusbar .sys { display: inline-flex; gap: 3px; }
.lv-phone .statusbar .sys i {
  width: 10px; height: 5px;
  border-radius: 2px;
  background: rgba(255,255,255,0.85);
}
.lv-phone .screen-body {
  flex: 1;
  min-height: 0;
  display: flex;
  flex-direction: column;
  padding: 10px 14px 12px;
  color: var(--cream);
}
.lv-phone .chapters { display: flex; gap: 4px; margin-bottom: 8px; }
.lv-phone .chapters i {
  flex: 1; height: 3px; border-radius: 2px;
  background: rgba(250,242,226,0.18);
}
.lv-phone .chapters i.on { background: var(--coral); }
.lv-phone .chapter-eyebrow {
  font-size: 8.5px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase;
  color: rgba(250,242,226,0.55);
}
.lv-phone .place {
  margin-top: 4px;
  font-family: var(--serif);
  font-weight: 700;
  font-size: 21px;
  line-height: 1.08;
  letter-spacing: -0.015em;
  color: var(--cream);
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
}
.lv-phone .quote {
  margin: 7px 0 0;
  font-family: var(--serif-body);
  font-style: italic;
  font-size: 11px;
  line-height: 1.5;
  color: rgba(250,242,226,0.82);
  display: -webkit-box; -webkit-line-clamp: 4; -webkit-box-orient: vertical; overflow: hidden;
}
.lv-phone .quote::before { content: "\201C\2009"; color: var(--coral); font-weight: 700; }
.lv-phone .sources-line {
  margin-top: 7px;
  font-size: 8px; font-weight: 600;
  letter-spacing: 0.14em; text-transform: uppercase;
  color: rgba(250,242,226,0.45);
  white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
}
.lv-phone .track {
  margin-top: auto;
  height: 4px; border-radius: 3px;
  background: rgba(250,242,226,0.18);
  overflow: hidden;
}
.lv-phone .track span { display: block; width: 7%; height: 100%; border-radius: 3px; background: var(--coral); }
.lv-phone .times {
  display: flex; justify-content: space-between;
  margin-top: 4px;
  font-size: 8.5px; font-variant-numeric: tabular-nums;
  color: rgba(250,242,226,0.55);
}
.lv-phone .controls {
  display: flex; align-items: center; justify-content: center;
  gap: 26px;
  margin-top: 8px;
}
.lv-phone .controls .skip {
  width: 26px; height: 26px;
  border: 1.5px solid rgba(250,242,226,0.7);
  border-radius: 50%;
  display: grid; place-items: center;
  font-size: 9px; font-weight: 700;
  color: rgba(250,242,226,0.85);
}
.lv-phone .controls .disc {
  width: 46px; height: 46px;
  border-radius: 50%;
  background: var(--coral);
  color: #fff;
  display: grid; place-items: center;
  box-shadow: 0 8px 20px -8px rgba(224,122,95,0.7);
}
.lv-phone .tabs {
  display: flex; justify-content: space-between;
  margin-top: 10px;
  padding: 7px 9px;
  border-radius: 100px;
  background: rgba(250,242,226,0.08);
}
.lv-phone .tabs span {
  display: inline-flex; flex-direction: column; align-items: center;
  gap: 2px;
  font-size: 7.5px; font-weight: 600;
  color: rgba(250,242,226,0.6);
}
.lv-phone .tabs span .line-icon { width: 12px; height: 12px; }
.lv-phone .tabs span.on { color: var(--coral); }

/* Render-on-demand for heavy below-fold sections (all visitors): the
   browser skips layout/paint until each section nears the viewport. contain-intrinsic-size keeps the scrollbar honest;
   anchor navigation (e.g. #all-tickets) forces render on jump. */
#photo-gallery,
#video-gallery,
#all-tickets,
#gyg-extras,
#visitor-information,
#tips-for-visitors,
#history-and-significance,
#frequently-asked-questions,
#sources {
  content-visibility: auto;
  contain-intrinsic-size: auto 900px;
}

/* ---------- Video gallery ---------- */
.lv-videos {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(340px, 100%), 1fr));
  gap: 24px;
  margin-top: 40px;
}
.lv-video {
  background: var(--cream-2);
  border: 1px solid var(--line);
  border-radius: 24px;
  overflow: hidden;
  transition: transform .3s ease, box-shadow .3s ease;
}
.lv-video:hover {
  transform: translateY(-3px);
  box-shadow: 0 20px 44px -20px rgba(29, 57, 53, 0.4);
}
.lv-video .frame { position: relative; aspect-ratio: 16 / 9; background: var(--ink); }
.lv-video .frame iframe { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.lv-video .frame .pill.tag {
  position: absolute; top: 12px; left: 12px;
  background: rgba(250, 242, 226, 0.92);
  color: var(--ink-2);
  pointer-events: none;
}
.lv-video .meta { padding: 16px 18px 18px; }
.lv-video .meta h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: 18px;
  font-weight: 700;
  line-height: 1.25;
  letter-spacing: -0.015em;
  color: var(--ink);
  display: -webkit-box;
  -webkit-line-clamp: 2;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.lv-video .meta .sub {
  margin-top: 9px;
  color: var(--ink-3);
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  row-gap: 4px;
}
.lv-video .meta .sub > span { display: inline-flex; align-items: center; gap: 4px; }

/* ---------- Tickets — quiet, editorial ---------- */
.lv-tickets {
  display: flex; flex-direction: column;
  border-top: 1px solid var(--line);
}
.lv-ticket-row {
  display: grid;
  grid-template-columns: 1fr auto auto auto;
  align-items: center;
  gap: 28px;
  padding: 22px 4px;
  border-bottom: 1px solid var(--line);
  transition: background .15s ease;
}
.lv-ticket-row:hover { background: rgba(29,57,53,0.025); }
.lv-ticket-row .prov {
  font-family: var(--sans); font-size: 10.5px; letter-spacing: 0.14em;
  text-transform: uppercase; color: var(--ink-3); margin-bottom: 6px;
  display: flex; align-items: center; gap: 8px;
}
.lv-ticket-row .prov .inst {
  display: inline-flex; align-items: center; gap: 4px;
  color: var(--mint); letter-spacing: 0.06em;
}
.lv-ticket-row .name {
  font-family: var(--serif); font-weight: 600; font-size: 18px;
  letter-spacing: -0.01em; color: var(--ink); line-height: 1.2;
}
.lv-ticket-row .rate {
  display: flex; align-items: center; gap: 6px;
  font-family: var(--sans); font-size: 13px; color: var(--ink-2);
  white-space: nowrap;
}
.lv-ticket-row .rate .star { color: var(--sun); width: 15px; height: 15px; }
.lv-ticket-row .rate .ct { color: var(--ink-3); font-size: 12px; }
.lv-ticket-row .from {
  text-align: right; white-space: nowrap;
}
.lv-ticket-row .from .lbl { font-family: var(--sans); font-size: 11px; color: var(--ink-3); }
.lv-ticket-row .from .amt { font-family: var(--serif); font-weight: 700; font-size: 22px; letter-spacing: -0.02em; color: var(--ink); }
.lv-ticket-row .book {
  display: inline-flex; align-items: center; gap: 7px;
  padding: 11px 18px; border-radius: 100px;
  border: 1px solid var(--line); background: var(--cream);
  font-family: var(--sans); font-size: 13px; font-weight: 500; color: var(--ink);
  transition: background .15s ease, color .15s ease, border-color .15s ease;
  white-space: nowrap;
}
.lv-ticket-row:hover .book { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.lv-disclosure {
  font-family: var(--serif-body); font-style: italic;
  font-size: 12.5px; color: var(--ink-3); margin-top: 18px;
  max-width: 620px;
}

/* ---------- Logistics cards ---------- */
.lv-logi {
  display: grid; grid-template-columns: repeat(3, 1fr);
  gap: 1px; background: var(--line);
  border: 1px solid var(--line); border-radius: 24px; overflow: hidden;
}
.lv-logi .cell {
  background: var(--cream); padding: 30px 30px 34px;
}
.lv-logi .cell .ic { color: var(--coral); margin-bottom: 16px; }
.lv-logi .cell h4 {
  font-family: var(--serif); font-weight: 700; font-size: 21px;
  letter-spacing: -0.01em; color: var(--ink); margin-bottom: 10px;
}
.lv-logi .cell p { font-family: var(--serif-body); font-size: 14.5px; line-height: 1.55; color: var(--ink-2); }
.lv-logi .cell a { color: var(--coral); text-decoration: underline; text-decoration-color: var(--coral-soft); text-underline-offset: 2px; }
/* The hairline background shows through empty tracks: let the last cell
   fill its row on the 3-column layout (≤640px collapses to one column). */
@media (min-width: 641px) {
  .lv-logi .cell:last-child:nth-child(3n+2) { grid-column: span 2; }
  .lv-logi .cell:last-child:nth-child(3n+1) { grid-column: 1 / -1; }
}

/* ---------- Tips ---------- */
.lv-tips { display: grid; grid-template-columns: repeat(3, 1fr); gap: 20px; }
.lv-tip {
  padding: 26px 26px 28px; border-radius: 20px;
  background: var(--cream-2);
  display: flex; flex-direction: column; gap: 12px;
}
.lv-tip .ic { color: var(--ink-2); }
.lv-tip h4 { font-family: var(--serif); font-weight: 700; font-size: 18px; letter-spacing: -0.01em; color: var(--ink); }
.lv-tip p { font-family: var(--serif-body); font-size: 14px; line-height: 1.55; color: var(--ink-2); }
.lv-tip a { color: var(--coral); }

/* ---------- History ---------- */
.lv-theft {
  display: grid; grid-template-columns: 150px 1fr;
  gap: 28px;
  padding: 28px 0;
  border-top: 1px solid rgba(250,242,226,0.16);
}
.lv-theft .step {
  font-family: var(--sans); font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--sun);
  padding-top: 4px;
}
.lv-theft p { font-family: var(--serif-body); font-size: 16px; line-height: 1.6; color: rgba(250,242,226,0.84); }
.lv-theft em { font-style: italic; color: var(--cream); }

.lv-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 48px; }
.lv-pair .col h4 {
  font-family: var(--sans); font-size: 11px; letter-spacing: 0.18em;
  text-transform: uppercase; color: var(--coral); margin-bottom: 14px;
}
.lv-pair .col p { font-family: var(--serif-body); font-size: 15.5px; line-height: 1.6; color: var(--ink-2); }

/* ---------- FAQ accordion ---------- */
.lv-faq { border-top: 1px solid var(--line); }
.lv-faq-item { border-bottom: 1px solid var(--line); }
.lv-faq-q {
  width: 100%; text-align: left;
  display: flex; align-items: center; justify-content: space-between;
  gap: 24px; padding: 18px 4px;
  font-family: var(--sans); font-weight: 500; font-size: 14px;
  letter-spacing: 0; color: var(--ink); cursor: pointer;
}
.lv-faq-q .toggle {
  width: 24px; height: 24px; border-radius: 50%; flex-shrink: 0;
  border: 1px solid var(--line);
  display: grid; place-items: center; color: var(--ink-2);
  font-size: 16px; line-height: 1;
  transition: background .2s ease, color .2s ease, border-color .2s ease;
}
.lv-faq-q .toggle::before { content: "+"; }
.lv-faq-item.open .lv-faq-q .toggle { background: var(--coral); color: var(--cream); border-color: var(--coral); }
.lv-faq-item.open .lv-faq-q .toggle::before { content: "\2212"; }
.lv-faq-a {
  overflow: hidden; max-height: 0;
  transition: max-height .35s ease, opacity .3s ease, padding .35s ease;
  opacity: 0;
}
.lv-faq-item.open .lv-faq-a { max-height: 320px; opacity: 1; padding: 0 60px 30px 4px; }
.lv-faq-a p { font-family: var(--serif-body); font-size: 16px; line-height: 1.62; color: var(--ink-2); }

/* ---------- Sources ---------- */
.lv-sources { display: grid; grid-template-columns: 1fr 1fr; gap: 14px 40px; }
.lv-source {
  display: grid; grid-template-columns: auto 1fr; gap: 12px;
  padding: 16px 0; border-top: 1px solid var(--line);
}
.lv-source .v { color: var(--mint); margin-top: 2px; }
.lv-source .ttl { font-family: var(--sans); font-size: 14px; font-weight: 500; color: var(--ink); }
.lv-source .ttl a { text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 2px; }
.lv-source .desc { font-family: var(--serif-body); font-size: 13px; line-height: 1.5; color: var(--ink-3); margin-top: 3px; }

/* ---------- Explore the area (clean map CTA) ---------- */
.lv-map {
  display: flex; align-items: center; justify-content: space-between;
  gap: 32px; padding: 28px 34px;
  border-radius: 24px; border: 1px solid var(--line);
  background: var(--cream-2);
}
.lv-map .ttl { font-family: var(--serif); font-weight: 700; font-size: 24px; letter-spacing: -0.02em; color: var(--ink); }
.lv-map .sub { font-family: var(--serif-body); font-size: 14.5px; color: var(--ink-3); margin-top: 4px; }

/* ---------- Related places ---------- */
.lv-related { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; }
.lv-related .card-place { position: relative; }
.lv-related figure {
  width: 100%; aspect-ratio: 4/5; border-radius: 18px; overflow: hidden;
  background: var(--cream-2); position: relative;
}
.lv-related img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.lv-related .card-place:hover img { transform: scale(1.05); }
.lv-related figure::after {
  content: ""; position: absolute; inset: 0;
  background: linear-gradient(180deg, transparent 45%, rgba(19,28,31,0.6));
}
.lv-related .meta {
  position: absolute; left: 18px; right: 18px; bottom: 16px; z-index: 2;
  color: var(--cream);
}
.lv-related .meta .typ {
  font-family: var(--sans); font-size: 10px; letter-spacing: 0.14em;
  text-transform: uppercase; color: rgba(250,242,226,0.78); margin-bottom: 5px;
}
.lv-related .meta :is(h3, h4) { font-family: var(--serif); font-weight: 700; font-size: 20px; letter-spacing: -0.01em; line-height: 1.05; margin: 0; }


/* Pixel-fit overrides — suppress the JS-injected currency-hint span inside
   the editorial ticket list (design has a single EUR amount), and force
   the related-card title onto its cream gradient overlay (the global
   editorial-content rules were specificity-winning over .lv-related .meta). */
.lv-ticket-row [data-ccy-hint] { display: none; }
.lv-related .meta :is(h3, h4) { color: var(--cream); }

/* The global `article a:not(...)` editorial link rule (animated coral underline)
   was specificity-winning over `.lv-source .ttl a`, turning source titles coral.
   The #sources ID lifts these back to the design's ink title + static hairline
   underline. Also kills the gradient-underline background-image. */
#sources .lv-source .ttl a {
  color: var(--ink);
  text-decoration: underline; text-decoration-color: var(--line);
  text-underline-offset: 2px; background-image: none;
}
#sources .lv-source .ttl a:hover { color: var(--coral); text-decoration-color: var(--coral); background-image: none; }

/* Verified/valid check glyph (class "v") — design renders it at ~18px (sm),
   not the 36px .line-icon base. */
.line-icon.v { width: 18px; height: 18px; }

/* Ghost button on dark (card-ink) surfaces — cream text + icon, no fill. The
   design's "Plan and listen" band uses these understated buttons so the only
   loud CTA on the page stays the coral "Download the app" in the app section. */
/* Place page (louvre-original-text design) uses borderless ghost buttons — the
   coral glow / soft fill on the hero "Listen" is the only button emphasis; all
   secondary buttons (View map, Join, All-N places) are plain text + icon, no
   outline. Scoped to .place-redesign so other page types keep their borders. */
.place-redesign .btn-ghost { border-color: transparent; }

/* ---------- Partner / DMC pages (e.g. Beyond the Plains Safaris) ----------
   Free-form legacy markdown, but lighten the flow vs the default legacy idiom:
   clean single-column lists (not a white card per bullet) and framed, rounded
   inline photos. Scoped to .partner-page so other legacy pages are untouched. */
.partner-page .editorial-content ul { display: block; margin: 1.1rem 0; }
.partner-page .editorial-content ul li {
  display: flex; gap: 11px; align-items: flex-start;
  background: transparent; border: 0; box-shadow: none;
  padding: 5px 0; border-radius: 0;
  font-family: var(--serif-body); color: var(--ink-2); line-height: 1.55;
}
.partner-page .editorial-content ul li::before {
  content: "✓"; font-family: var(--sans); font-weight: 600;
  color: var(--coral); font-size: 0.9rem; line-height: 1.5;
  margin-top: 1px; flex-shrink: 0;
}
.partner-page .editorial-content img {
  display: block; border-radius: 20px; margin: 1.75rem 0;
  box-shadow: 0 18px 44px -22px rgba(29,57,53,0.4);
}
.partner-page .editorial-content img[src$="logo.png"] {
  max-width: 200px; margin: 0.5rem 0 1.5rem; box-shadow: none; border-radius: 0;
}
.partner-page .editorial-content h2 { margin-top: 3.25rem; }

.btn-ghost-cream { background: transparent; color: var(--cream); padding-left: 0; }
.btn-ghost-cream .line-icon { color: inherit; }
.btn-ghost-cream:hover { color: #fff; opacity: 0.82; }

/* Hero facts strip — coral icon sits beside the label/value block (design v1). */
.lv-facts .fact .line-icon { color: var(--coral); margin-top: 2px; }

/* FAQ question — match the design's rendered 15px / 400 sans. */
.audiala-page .lv-faq-q { font-size: 15px; font-weight: 400; }

/* ---------- Full-bleed section bands ----------
   The design alternates cream / cream-2 (#F4E6C2) bands — "In pictures",
   "Visitor logistics" and "Frequently asked" sit on cream-2. The article body
   lives in a 1184px wrapper centred in the 1280px sheet (48px gutters), so a
   band breaks out -48px each side to reach the sheet edges, then re-insets its
   content by 48px. !important overrides the Tailwind `.space-y-24` margin that
   would otherwise win on specificity. */
.lv-band {
  margin: 0 -48px !important;
  padding: 88px 48px;
  background: var(--cream-2);
}
.space-y-24 > .lv-band + * { margin-top: 0 !important; }
/* Full-bleed ink band (history "theft" story) — same breakout, dark ground. */
.lv-band.ink { background: var(--ink); color: var(--cream); }
.lv-band.ink .lv-prose p { color: rgba(250,242,226,0.85); }
.lv-band.ink .f-eyebrow { color: var(--sun); }

/* Section vertical rhythm — the design gives every section 88px internal
   padding (flush boxes); the local article relies on space-y-24 (96px) and the
   bare sections had no padding, so transparent→transparent transitions were
   ~65px too tight. Add internal block padding so content-to-content lands near
   the design's ~160px. */
.lv-sec { padding-block: 34px; }
/* A bare section that immediately follows a band sits flush to it (band's
   margin-top was zeroed); give it a little more top room. */
.space-y-24 > .lv-band + .lv-sec { padding-top: 64px; }

/* App-CTA two-column grid — design is 1.4fr / 1fr (text wider than the phone),
   not the equal auto-fit columns local had. Collapses on narrow viewports. */
.lv-appcta-grid { display: grid; grid-template-columns: 1.4fr 1fr; gap: clamp(2rem,4vw,3.75rem); align-items: center; }
@media (max-width: 820px) { .lv-appcta-grid { grid-template-columns: 1fr; } }


/* details-based FAQ — mirrors the .open-class selectors above so native
   <details> elements get the same open-state styling without JS. */
details.lv-faq-item[open] .lv-faq-q .toggle {
  background: var(--coral); color: var(--cream); border-color: var(--coral);
}
details.lv-faq-item[open] .lv-faq-q .toggle::before { content: "\2212"; }
details.lv-faq-item[open] .lv-faq-a {
  max-height: 320px; opacity: 1; padding: 0 60px 30px 4px;
}
details.lv-faq-item summary::-webkit-details-marker { display: none; }
details.lv-faq-item summary { list-style: none; }

/* ===================================================================
   MOBILE RESPONSIVE LAYER  (added 2026-06-16)
   ------------------------------------------------------------------
   redesign.css was authored desktop-first against the fixed 1280px
   mock and shipped with almost no phone breakpoints, so on a 390px
   viewport the nav links clipped off-screen, the hero titles
   (inline 140px / 220px) spanned multiple screens and overflowed,
   and every multi-column .lv-* / inline-grid stayed side-by-side and
   got squeezed/clipped. This block adds the missing phone rules:
   a hamburger nav, fluid hero/heading type, single-column grids and
   tightened gutters. Verified at 390px across home/city/country/
   place pages. `!important` is used deliberately where the target is
   an inline style (inline wins over classes otherwise).
   =================================================================== */

/* Hamburger button + mobile menu panel (base appearance; toggled in the
   640px query). Markup lives in partials/redesign/nav.html. */
.nav-burger {
  display: none;                       /* desktop: hidden */
  place-items: center; gap: 5px;
  width: 44px; height: 44px;
  border-radius: 12px;
  border: 1px solid var(--line);
  background: var(--cream);
  flex-direction: column;
}
.nav-burger span { display: block; width: 20px; height: 2px; border-radius: 2px; background: var(--ink); }
.nav-mobile-panel {
  display: none;                       /* hidden by default; shown on mobile when .nav.nav-open */
  position: absolute; top: 100%; inset-inline: 0;
  flex-direction: column;
  background: var(--cream);
  border-bottom: 1px solid var(--line);
  box-shadow: 0 18px 40px -16px rgba(29, 57, 53, 0.28);
  padding: 8px 18px 18px;
  z-index: 40;
}
.nav-mobile-panel a { padding: 14px 2px; font-family: var(--sans); font-size: 16px; color: var(--ink); border-bottom: 1px solid var(--line); }
.nav-mobile-panel a:last-child { border-bottom: 0; }
.nav-mobile-panel .btn-ink { margin-top: 12px; justify-content: center; padding: 14px; border-bottom: 0; }
.nav-mobile-panel .panel-lang { display: flex; flex-wrap: wrap; gap: 6px; padding: 12px 0 4px; border-bottom: 1px solid var(--line); }
.nav-mobile-panel .panel-lang a { border: 1px solid var(--line); border-radius: 100px; padding: 6px 12px; font-size: 13px; }

/* Mobile sticky "Get the app" CTA (markup in redesign/nav.html). Hidden on
   desktop and until the hero scrolls off (.is-visible added by JS). */
.mobile-cta-bar { display: none; }

@media (max-width: 640px) {
  /* clip, not hidden: hidden on both html and body turns body into a scroll
     container that never scrolls, which silently disables every
     position:sticky element (nav, chip bars, rails) on phones. Browsers
     without clip keep the hidden fallback. */
  html, body { overflow-x: hidden; overflow-x: clip; }

  /* Desktop mock relied on fixed 1280px + content-box math; on full-width
     phones that overflows. Force border-box so padding stays inside width. */
  .audiala-page, .audiala-page *, .audiala-page *::before, .audiala-page *::after { box-sizing: border-box; }

  /* Desktop-gutter sections (hero etc.) tighten on phones. */
  .audiala-page section.responsive-section-gutters { padding-left: 20px !important; padding-right: 20px !important; }

  /* ---- Nav → hamburger ---- */
  .nav { padding: 14px 18px; }
  .nav-links,
  .nav-lang,
  .nav-tools > .btn-ink { display: none !important; }   /* collapse into panel */
  .nav-search { padding: 11px; gap: 0; }               /* 44px touch target */
  .nav-search > span { display: none; }                 /* icon-only; drop label + ⌘K */
  .nav-burger { display: inline-grid !important; }
  .nav-mobile-panel { display: none; }
  .nav.nav-open .nav-mobile-panel { display: flex; }

  /* ---- Hero + display type: fluid, never wider than the viewport ---- */
  .audiala-page h1.f-display { font-size: clamp(42px, 13vw, 92px) !important; line-height: 0.95; overflow-wrap: anywhere; hyphens: auto; }
  .lv-hero-title { font-size: clamp(40px, 12vw, 150px); overflow-wrap: anywhere; }
  /* Sub-headings carry big inline px sizes (24–88px) that overflow long words.
     Cap every non-hero display heading to a phone scale (h1 heroes excluded). */
  .audiala-page h2.f-display, .audiala-page h3.f-display, .audiala-page h4.f-display,
  .audiala-page div.f-display { font-size: clamp(24px, 7vw, 46px) !important; line-height: 1.02; }
  .audiala-page .f-display, .audiala-page .lv-prose h2, .audiala-page .lv-prose h3 { overflow-wrap: anywhere; }
  /* Numbered section titles (redesign/section-title.html). */
  .audiala-page h2 span.responsive-section-number { font-size: clamp(28px, 7.5vw, 44px) !important; line-height: 1.02; overflow-wrap: anywhere; }

  /* ---- Section heads / stats ---- */
  .section { padding: 48px 20px; }
  .section.tight { padding: 36px 20px; }
  .section.big { padding: 60px 20px; }
  .section-head { flex-direction: column; align-items: flex-start; gap: 14px; margin-bottom: 28px; }
  .section-head h2 { font-size: clamp(30px, 8vw, 44px); }
  /* Stat values are inline 36px display figures; long TEXTUAL values
     ("Spring (April–May) or Autumn…", currencies) exploded to 4–5 ragged
     lines. Cap so numbers stay readable and text stops wrapping wildly. */
  .stat-n { font-size: clamp(20px, 6vw, 28px) !important; line-height: 1.1; }

  /* ---- Footer ---- */
  .footer { padding: 56px 20px 28px; }
  .footer .lead { font-size: clamp(30px, 8.5vw, 56px); }
  .footer-grid { grid-template-columns: 1fr 1fr; gap: 28px 24px; margin-top: 36px; padding-bottom: 36px; }
  .footer-bottom { flex-direction: column; gap: 12px; align-items: flex-start; }

  /* ---- Collapse multi-column grids (class-based, lv-*) ---- */
  .lv-facts, .lv-logi, .lv-tips, .lv-pair, .lv-sources, .lv-see-item, .lv-theft { grid-template-columns: 1fr !important; }
  /* Intro body runs as CSS columns on desktop — single column on mobile. */
  .u-ab5e6084be { column-count: 1 !important; }
  /* Facts strip stacks: vertical rules become row separators, tighter pads. */
  .lv-facts .fact { padding: 12px 4px; }
  .lv-facts .fact + .fact { border-left: 0; border-top: 1px solid var(--line); }
  /* "Explore the Area" map card: stack copy above the button. */
  .lv-map { flex-direction: column; align-items: flex-start; gap: 18px; padding: 22px; }
  .lv-gallery .wide { grid-column: auto !important; }
  .lv-gallery .tall { grid-row: auto !important; }
  .lv-ticket-row { grid-template-columns: 1fr !important; gap: 10px; }
  .lv-band { margin: 0 -20px !important; padding: 48px 20px; }
  details.lv-faq-item[open] .lv-faq-a { padding: 0 4px 24px 4px !important; }

  /* Responsive template grids (incl. sections that ARE grids, e.g. .lv-sec)
     collapse to 1 column. Re-widen photo grids to 2-col after. */
  .audiala-page .responsive-grid { grid-template-columns: 1fr !important; gap: 24px !important; }
  .audiala-page .lv-gallery, .audiala-page .lv-related { grid-template-columns: repeat(2, 1fr) !important; }

  .lv-audio-preview {
    box-sizing: border-box;
    width: 100%;
    max-width: calc(100vw - 40px);
    min-width: 0;
    padding: 16px;
    border-radius: 20px;
    overflow: hidden;
  }
  .lv-audio-preview-main { grid-template-columns: auto minmax(0, 1fr); }
  .lv-audio-preview-duration { display: none; }
  .lv-audio-preview-footer { align-items: stretch; flex-direction: column; }
  .lv-audio-preview-actions { align-items: stretch; flex-direction: column; }
  .lv-audio-preview-actions .btn { width: 100%; justify-content: center; }

  /* City hero stat strip is position:absolute over the photo on desktop; on
     mobile un-absolute it so it can't overlap the (now larger-relative) title. */
  .audiala-page section .card.responsive-overlay-card {
    position: static !important; left: auto !important; right: auto !important; bottom: auto !important;
    margin-top: 16px;
  }

  /* Pricing comparison table → scroll horizontally instead of overflowing page. */
  .audiala-page table { display: block; width: 100%; overflow-x: auto; -webkit-overflow-scrolling: touch; }
  /* Guides search+filter bar → stack the search over wrapped, centered pills
     (the [search | pills] flex row is too wide for a phone). */
  .audiala-page .card-2:has(.guides-pills) { flex-direction: column; align-items: stretch; border-radius: 24px; }
  .guides-pills { flex-wrap: wrap; justify-content: center; }

  /* ---- Review pass 2 (2026-06-16) ---- */

  /* Editor's-pick / featured "big" cards are `grid-row:span 2; display:flex`
     with a height:100% photo. When the grid collapses to 1 col, the span-2
     loses meaning and the card height collapses to ~0, so the absolute
     overlays (pill + title + meta) pile up on top of each other. Give the
     card a real aspect box so the photo fills and overlays sit correctly —
     this also caps the card height so 1 fits cleanly per phone screen. */
  .audiala-page article.responsive-tall-card {
    aspect-ratio: 4 / 5 !important; min-height: 360px;
  }

  /* Guides region titles are an inline 88px <a> → "Americas" etc. clip off
     the right edge with the coral period off-screen. */
  .audiala-page .guides-region h2 a { font-size: clamp(36px, 12vw, 88px) !important; overflow-wrap: anywhere; }

  /* Drop-caps (place article + about manifesto) are 90px+ and force ragged
     orphan wraps on a 390px column — shrink on phones. */
  .audiala-page .lv-dropcap::first-letter,
  .audiala-page .dropcap::first-letter { font-size: 52px !important; line-height: 0.8 !important; }

  /* Pricing comparison table: keep the horizontal-scroll container (set
     earlier) but tighten cells so more columns fit before scrolling and
     headers stop wrapping mid-word. */
  .audiala-page table th, .audiala-page table td { padding: 12px 10px !important; font-size: 12.5px !important; }

  /* Cookie consent banner covered ~40% of the hero on first load. Compact it
     on phones (smaller heading/copy/padding) so the hero stays visible. */
  #audiala-consent-banner { padding: 14px 16px !important; gap: 8px !important; border-radius: 18px !important; }
  #audiala-consent-banner .consent-h { font-size: 17px !important; }
  #audiala-consent-banner .consent-copy { font-size: 12.5px; line-height: 1.45; }

  /* Sticky "Get the app" CTA: floating pill, revealed on scroll. Sits above
     the cookie banner is avoided by lower z-index than the banner (z 90). */
  .mobile-cta-bar {
    position: fixed; left: 14px; right: 14px; bottom: 14px; z-index: 60;
    display: flex; align-items: center; justify-content: center; gap: 8px;
    padding: 15px 18px; border-radius: 100px;
    background: var(--coral); color: #fff;
    font-family: var(--sans); font-weight: 700; font-size: 15px;
    box-shadow: 0 14px 32px -8px rgba(224, 122, 95, 0.6);
    opacity: 0; transform: translateY(120%); pointer-events: none;
    transition: opacity .25s ease, transform .25s ease;
  }
  .mobile-cta-bar .line-icon { color: #fff; }
  .mobile-cta-bar.is-visible { opacity: 1; transform: translateY(0); pointer-events: auto; }

  /* Featured "big" cards (home + guides) carry BOTH the photo's own caption
     (.ph-label) and the card's name overlay — redundant, and they collide
     once the card is shortened to a mobile aspect box. Drop the photo caption
     on these cards (the card overlay already names the destination). */
  .audiala-page article.responsive-tall-card .ph-label { display: none; }

  /* ---- Home refinements (2026-06-16) ---- */

  /* Circular cream backdrop behind the app-section phone mockup bleeds out as
     a stray ellipse on a phone (inset:-40px on a now-full-width container) —
     hide on mobile; the desktop halo is kept. */
  .phone-halo { display: none !important; }

  /* Inline section-head titles (e.g. "Where we're listening" at 72px) are too
     big on a phone — cap them. */
  .audiala-page .section-head h2 span { font-size: clamp(28px, 8vw, 42px) !important; line-height: 1.0; }

  /* Hero action buttons: stack full-width so each label fits on one line
     instead of wrapping in a cramped 2-up row. */
  .hero-actions { flex-direction: column; align-items: stretch !important; gap: 10px !important; }
  .hero-actions .btn { width: 100%; justify-content: center; }
  .audio-preview-strip { max-width: none; }
  .audio-preview-copy p { font-size: 16px; }

  /* Metric/stat cards more compact: 2-up the home stat strip, tighten padding,
     drop the desktop divider rules that look wrong once stacked. */
  .audiala-page .card-2:has(.stat) {
    grid-template-columns: 1fr 1fr !important;
    padding: 20px !important; gap: 16px 14px !important;
  }
  .audiala-page .card-2:has(.stat) > .f-serif-it { grid-column: 1 / -1; }
  .audiala-page .card-2:has(.stat) .stat,
  .audiala-page .card-2:has(.stat) > .f-serif-it { border-left: 0 !important; padding-left: 0 !important; }
  /* City/country hero stat strip: tighten padding/gap, drop stacked dividers. */
  .audiala-page section .card.responsive-overlay-card { padding: 18px 20px !important; gap: 14px !important; }
  .audiala-page section .card.responsive-overlay-card .stat { border-left: 0 !important; padding-left: 0 !important; }
}

@media (prefers-reduced-motion: reduce) {
  .lv-audio-preview *,
  .lv-audio-preview *::before,
  .lv-audio-preview *::after { transition: none !important; }
}

@media (max-width: 380px) {
  .section, .footer, .nav { padding-left: 16px; padding-right: 16px; }
  .lv-band { margin: 0 -16px !important; padding-left: 16px; padding-right: 16px; }
  .footer-grid { grid-template-columns: 1fr; }
}

/* The fourth navigation destination switches to the existing menu before
   tablet widths become cramped. Only applies when a tour hub exists. */
@media (min-width: 641px) and (max-width: 1100px) {
  .nav.has-tour-nav .nav-links { display: none; }
  .nav.has-tour-nav .nav-burger { display: inline-grid; }
  .nav.has-tour-nav.nav-open .nav-mobile-panel { display: flex; }
}

/* ===== static/css/modules/components/consent-media.css ===== */

/* Click-to-load YouTube facade + consent-gated thumbnails
   (partials/youtube-facade.html, static/js/consent-media.js). */
.yt-facade { position: absolute; inset: 0; background: linear-gradient(135deg, var(--ink, #1D3935), #2c4f49); overflow: hidden; }
.yt-facade-thumb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.yt-facade-btn { position: absolute; inset: 0; display: flex; flex-direction: column; align-items: center; justify-content: center; gap: 10px; width: 100%; border: 0; padding: 16px; background: transparent; color: #FAF2E2; cursor: pointer; font: inherit; }
.yt-facade-btn:focus-visible { outline: 3px solid #E07A5F; outline-offset: -3px; }
.yt-facade .yt-facade-btn .yt-facade-play { display: block; width: 64px; height: 64px; border-radius: 50%; background: rgba(250, 242, 226, 0.94); color: #1D3935; font: 26px/64px sans-serif; text-align: center; text-indent: 5px; box-shadow: 0 12px 30px rgba(19, 28, 31, 0.4); }
.yt-facade-btn:hover .yt-facade-play { color: #E07A5F; }
.yt-facade .yt-facade-btn .yt-facade-note { color: #FAF2E2; max-width: 90%; font-size: 12px; line-height: 1.3; padding: 4px 10px; border-radius: 999px; background: rgba(19, 28, 31, 0.55); }
.yt-facade-frame { position: absolute; inset: 0; width: 100%; height: 100%; border: 0; }
.v3 .v3-film-img .v3-film-thumb { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; border-radius: var(--v3-radius-sm); }

/* ===== static/css/modules/components/dynamic-variants.css ===== */

/* Data-driven presentation variants. Templates choose semantic state classes;
   every tunable declaration remains in this module. */

.display-title { font-variation-settings: "opsz" 144, "SOFT" 60; }
.audiala-page h1.display-title--country { font-size: 200px; line-height: 0.86; letter-spacing: -0.04em; margin: 0; }
.audiala-page h1.display-title--city { font-size: 220px; line-height: 0.86; letter-spacing: -0.04em; margin: 0; }
/* Fit long names to their hero column instead of pushing the right column off
   screen ("Queenstown.", "Herzegovina."). --title-chars = longest word in Latin
   glyph units (partials/redesign/title-fit-chars.html); ~0.5em per glyph at
   -0.04em tracking. Short names keep the full 220/200px. Phones keep their own
   clamp() in redesign.css (it is !important). */
.audiala-page .display-title-fit { container-type: inline-size; min-width: 0; }
.audiala-page .display-title-fit h1.display-title--city { font-size: min(220px, calc(100cqi / (var(--title-chars, 6) * 0.5))); }
.audiala-page .display-title-fit h1.display-title--country { font-size: min(200px, calc(100cqi / (var(--title-chars, 6) * 0.5))); }
.audiala-page h1.display-title--city-legacy { font-size: 104px; line-height: 0.9; letter-spacing: -0.035em; margin: 0; }
.audiala-page h1.display-title--download { font-size: clamp(46px, 11vw, 148px); line-height: 0.92; letter-spacing: -0.04em; }
.audiala-page h2.display-title--download-cta {
  font-size: clamp(40px, 10vw, 120px);
  line-height: 0.98;
  margin: 24px auto 0;
  max-width: 1080px;
}
.audiala-page h1.display-title--audience { font-size: 92px; line-height: 0.92; margin-top: 22px; font-variation-settings: "opsz" 144, "SOFT" 50; }
.audiala-page h1.display-title--listing { font-size: 120px; line-height: 0.9; }
.audiala-page h1.display-title--guides { font-size: 132px; line-height: 0.9; }
.audiala-page h1.display-title--pricing { font-size: 124px; line-height: 0.92; }
.audiala-page h1.display-title--region { font-size: 140px; line-height: 0.88; }
.audiala-page h1.display-title--home { font-size: 140px; margin-top: 28px; font-variation-settings: "opsz" 144, "SOFT" 50; }

.stats-overlay {
  position: absolute;
  left: 32px;
  right: 32px;
  bottom: 32px;
  padding: 20px 28px;
  display: grid;
  gap: 32px;
  align-items: center;
}
.stats-cols-1 { grid-template-columns: repeat(1, 1fr); }
.stats-cols-2 { grid-template-columns: repeat(2, 1fr); }
.stats-cols-3 { grid-template-columns: repeat(3, 1fr); }
.stats-cols-4 { grid-template-columns: repeat(4, 1fr); }
.stats-cols-5 { grid-template-columns: repeat(5, 1fr); }
.stats-cols-6 { grid-template-columns: repeat(6, 1fr); }
.stats-overlay--action.stats-cols-1 { grid-template-columns: repeat(1, 1fr) auto; }
.stats-overlay--action.stats-cols-2 { grid-template-columns: repeat(2, 1fr) auto; }
.stats-overlay--action.stats-cols-3 { grid-template-columns: repeat(3, 1fr) auto; }
.stats-overlay--action.stats-cols-4 { grid-template-columns: repeat(4, 1fr) auto; }
.stats-overlay--action.stats-cols-5 { grid-template-columns: repeat(5, 1fr) auto; }
.stats-overlay--action.stats-cols-6 { grid-template-columns: repeat(6, 1fr) auto; }
.stat--separated { border-left: 1px solid var(--line); padding-left: 24px; }
.stat--wide-separated { padding-left: 32px; }

.history-chapter {
  display: grid;
  grid-template-columns: 1fr 2fr;
  gap: 48px;
  align-items: start;
}
.history-chapter.is-separated { border-top: 1px solid #ece0b8; padding-top: 64px; }
.faq-source-grid { display: grid; grid-template-columns: 1fr; gap: 60px; }
.faq-source-grid.has-sources { grid-template-columns: 1.4fr 1fr; }

.ranked-app { padding: 28px 32px; }
.ranked-app.is-audiala { border: 2px solid var(--coral); }
.ranked-app-number { font-size: 40px; color: var(--ink-3); }
.ranked-app.is-audiala .ranked-app-number { color: var(--coral); }

.support-method-icon {
  width: 56px;
  height: 56px;
  border-radius: 16px;
  background: #ece0b8;
  display: grid;
  place-items: center;
}
.support-method-icon.is-coral { background: var(--coral); }

.pricing-plan {
  padding: 32px;
  border: 1px solid rgba(29, 57, 53, 0.14);
  display: flex;
  flex-direction: column;
  gap: 18px;
  position: relative;
  min-height: 580px;
}
.pricing-plan.is-featured { border: 0; }
.pricing-plan-tag { color: var(--coral); }
.pricing-plan-name { font-size: 48px; color: var(--ink); }
.pricing-plan-pitch { font-size: 16px; color: var(--ink-2); margin-top: 6px; }
.pricing-plan-price-block {
  padding: 20px 0;
  border-top: 1px solid rgba(29, 57, 53, 0.14);
  border-bottom: 1px solid rgba(29, 57, 53, 0.14);
}
.pricing-plan-price {
  font-size: 72px;
  line-height: 0.95;
  letter-spacing: -0.03em;
  color: var(--ink);
}
.pricing-plan-cadence { color: var(--ink-3); margin-top: 6px; }
.pricing-plan-item {
  display: flex;
  gap: 12px;
  align-items: start;
  font-family: Inter, sans-serif;
  font-size: 14px;
  color: var(--ink);
}
.pricing-plan-item-icon {
  color: var(--coral);
  flex-shrink: 0;
  margin-top: 2px;
  display: inline-flex;
}
.pricing-plan.is-featured .pricing-plan-tag,
.pricing-plan.is-featured .pricing-plan-item-icon { color: var(--sun); }
.pricing-plan.is-featured .pricing-plan-name,
.pricing-plan.is-featured .pricing-plan-price { color: var(--cream); }
.pricing-plan.is-featured .pricing-plan-pitch { color: rgba(250, 242, 226, 0.7); }
.pricing-plan.is-featured .pricing-plan-price-block {
  border-color: rgba(250, 242, 226, 0.18);
}
.pricing-plan.is-featured .pricing-plan-cadence { color: rgba(250, 242, 226, 0.6); }
.pricing-plan.is-featured .pricing-plan-item { color: rgba(250, 242, 226, 0.9); }
.pricing-compare-value {
  padding: 16px;
  color: #465c58;
  font: 14px Inter, -apple-system, "Helvetica Neue", system-ui, sans-serif;
}
.pricing-compare-value.is-mark {
  font: 22px Fraunces, "Source Serif 4", Georgia, serif;
}

.feature-section.is-alt { background: #f4e6c2; }
.feature-copy.is-reversed { order: 2; }
.feature-media.is-reversed { order: 1; }

.hours-row { display: flex; gap: 12px; padding: 10px 0; }
.hours-row--plain { display: block; }
.hours-row.is-separated { border-top: 1px solid var(--line-soft); }

.timeline-dot {
  position: absolute;
  left: 0;
  top: 2px;
  width: 32px;
  height: 32px;
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--coral);
  box-shadow: 0 0 0 4px #1d3935;
}
.timeline-dot.is-figure { background: var(--sun); }
.timeline-year { color: var(--coral); }
.timeline-year.is-figure { color: var(--sun); }
.itinerary-day-header {
  padding: 32px 28px;
  border-right: 1px solid var(--line);
  background: var(--cream);
}
.itinerary-day-header.is-alt { background: var(--cream-2); }
.itinerary-stop { display: flex; gap: 14px; align-items: center; padding: 8px 0; }
.itinerary-stop.has-divider { border-bottom: 1px solid var(--line-soft); }

.device-mockup--w-280 { --device-max-width: 280px; }
.device-mockup--w-300 { --device-max-width: 300px; }
.device-mockup--w-320 { --device-max-width: 320px; }

.qf-fact { display: inline-flex; align-items: center; gap: 11px; }
.qf-chip {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 34px;
  height: 34px;
  border-radius: 50%;
  background: rgba(232, 95, 51, 0.1);
  color: var(--coral);
  flex-shrink: 0;
}
.qf-icon { width: 1.05rem; height: 1.05rem; }
.qf-value { font-size: 0.92rem; font-weight: 500; color: var(--ink); white-space: nowrap; }

.faq-quick-answer { padding: 12px 0; }
.faq-quick-answer.is-separated { border-top: 1px solid var(--line); }
.ticket-freshness--dark { color: rgba(250, 242, 226, 0.75); }
.ticket-freshness--light { color: var(--ink-3); }
.hero-gradient-bg { background: #004b38; }
.hero-gradient-bg.is-hidden,
#hero-img.is-hidden { display: none; }

/* Named photo shapes replace the old free-form `style` parameter. */
.ph--hero-wide { width: 100%; aspect-ratio: 21 / 9; border-radius: 32px; }
.ph--landscape-card { width: 100%; aspect-ratio: 4 / 3; border-radius: 18px; }
.ph--landscape-compact { width: 100%; aspect-ratio: 4 / 3; border-radius: 14px; }
.ph--phone-screen { width: 100%; aspect-ratio: 9 / 19.5; border-radius: 22px; }
.ph--portrait { width: 100%; aspect-ratio: 4 / 5; border-radius: 28px; }
.ph--portrait-large { width: 100%; aspect-ratio: 4 / 5; border-radius: 32px; }
.ph--wide-card { width: 100%; aspect-ratio: 16 / 9; border-radius: 18px; }
.ph--fill-large { width: 100%; height: 100%; border-radius: 24px; }
.ph--fill-rounded { width: 100%; height: 100%; border-radius: 28px; }
.ph--landscape-5x4 { width: 100%; aspect-ratio: 5 / 4; border-radius: 14px; }
.ph--landscape-16x10 { width: 100%; aspect-ratio: 16 / 10; border-radius: 16px; }
.ph--wide-hero { width: 100%; aspect-ratio: 16 / 9; border-radius: 28px; }
.ph--square-card { width: 100%; aspect-ratio: 1; border-radius: 18px; }
.ph--landscape-5x3 { width: 100%; aspect-ratio: 5 / 3; border-radius: 16px; }
.ph--wide-feature { width: 100%; aspect-ratio: 16 / 9; border-radius: 24px; }
.ph--wide-compact { width: 100%; aspect-ratio: 16 / 9; border-radius: 16px; }
.ph--landscape-3x2 { width: 100%; aspect-ratio: 3 / 2; border-radius: 14px; }
.ph--square-large { width: 100%; aspect-ratio: 1; border-radius: 24px; }
.ph--landscape { width: 100%; aspect-ratio: 4 / 3; border-radius: 16px; }
.ph--landscape-hero { width: 100%; aspect-ratio: 5 / 4; border-radius: 28px; }
.ph--square-ticket { width: 100%; aspect-ratio: 1; border-radius: 18px 18px 0 0; }

/* ===== static/css/modules/components/legacy-article.css ===== */

/* Legacy long-read (partials/redesign/legacy-article.html).
   Every rule is scoped to .lv-article; selectors carry
   `.editorial-content.legacy-content` so they outrank the older legacy rules
   in templates/layouts--place--single.css (loaded after this module) without
   !important. Logical properties keep RTL correct. */

.lv-article {
  display: grid;
  grid-template-columns: minmax(0, 250px) minmax(0, 720px);
  column-gap: clamp(40px, 6vw, 104px);
  align-items: start;
  counter-reset: lv-part;
}
.lv-article--no-rail { grid-template-columns: minmax(0, 740px); justify-content: center; }

/* ---------- Rail ---------- */
.lv-article-rail {
  position: sticky; top: 40px;
  max-height: calc(100vh - 72px);
  overflow-y: auto; overscroll-behavior: contain;
  scrollbar-width: thin; scrollbar-color: var(--ink-4) transparent;
  padding-inline-end: 6px;
}
.lv-toc > summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: baseline; justify-content: space-between; gap: 12px;
  padding-bottom: 14px; border-bottom: 1px solid var(--line);
}
.lv-toc > summary::-webkit-details-marker { display: none; }
.lv-toc > summary .f-eyebrow { color: var(--coral-deep); }
.lv-toc-meta { font-family: var(--sans); font-size: 12px; color: var(--ink-3); white-space: nowrap; }
.lv-toc-list { list-style: none; margin: 6px 0 0; padding: 0; counter-reset: lv-toc; }
.lv-toc-list li { margin: 0; padding: 0; }
.lv-toc-list li::before { content: none; }
/* (0,5,2): outranks the house `article a:not(...)` link style. */
.lv-article .lv-toc .lv-toc-list li[class] a[href] {
  display: block; text-decoration: none; color: inherit; background: none;
  transition: color .15s ease, border-color .15s ease;
}
.lv-toc-l2 {
  counter-increment: lv-toc;
  margin-top: 18px !important;
  font-family: var(--serif); font-weight: 600; font-size: 15px;
  line-height: 1.28; letter-spacing: -0.005em; color: var(--ink);
}
.lv-article .lv-toc .lv-toc-list li.lv-toc-l2 a[href] { display: grid; grid-template-columns: 26px 1fr; }
.lv-toc-l2 a::before {
  content: counter(lv-toc, decimal-leading-zero);
  font-style: italic; font-size: 13px; color: var(--coral); padding-top: 1px;
}
.lv-toc-l3 {
  font-family: var(--sans); font-size: 13px; line-height: 1.38; color: var(--ink-3);
}
.lv-article .lv-toc .lv-toc-list li.lv-toc-l3 a[href] {
  margin-inline-start: 26px; padding: 5px 0 5px 12px;
  border-inline-start: 1px solid var(--line);
}
.lv-article .lv-toc .lv-toc-list li.lv-toc-l3 + .lv-toc-l3 a[href] { padding-top: 3px; }
.lv-article .lv-toc .lv-toc-list li[class] a[href]:hover,
.lv-article .lv-toc .lv-toc-list li[class] a[href][aria-current] { color: var(--coral-deep); }
.lv-article .lv-toc .lv-toc-list li.lv-toc-l3 a[href][aria-current] { border-inline-start: 2px solid var(--coral); padding-inline-start: 11px; }

/* ---------- Reading column ---------- */
.lv-article-main { min-width: 0; }
.lv-article .editorial-content.legacy-content {
  font-family: var(--serif-body); font-size: 19px; line-height: 1.72; color: var(--ink-2);
}
.lv-article .editorial-content.legacy-content > * { max-width: 720px; }
.lv-article .editorial-content.legacy-content p {
  font-family: var(--serif-body); font-size: 19px; line-height: 1.72;
  color: var(--ink-2); margin: 0 0 1.1em;
}
.lv-article .editorial-content.legacy-content strong { font-weight: 600; color: var(--ink); }
.lv-article .editorial-content.legacy-content em { font-style: italic; color: var(--ink); }
/* Intro: the first heading becomes an eyebrow, the first paragraph a lead. */
.lv-article .editorial-content.lv-article-intro > h2:first-child,
.lv-article .editorial-content.lv-article-intro > h3:first-child {
  display: flex; align-items: center; gap: 14px;
  margin: 0 0 22px; padding: 0; border: 0;
  font-family: var(--sans); font-size: 12px; font-weight: 600; font-style: normal;
  letter-spacing: 0.18em; text-transform: uppercase; line-height: 1.3;
  color: var(--coral-deep);
}
.lv-article .editorial-content.lv-article-intro > h2:first-child::before,
.lv-article .editorial-content.lv-article-intro > h3:first-child::before {
  content: ""; width: 28px; height: 2px; border-radius: 2px; background: var(--coral); flex: none;
}
.lv-article .editorial-content.lv-article-intro > p:first-of-type {
  font-size: 23px; line-height: 1.55; color: var(--ink); margin-bottom: 1em;
}
.lv-article .editorial-content.lv-article-intro > p:first-of-type::first-letter {
  font-family: var(--serif); font-weight: 700; font-style: normal;
  font-size: 88px; line-height: 0.74;
  float: inline-start; color: var(--coral);
  margin-block-start: 8px; margin-inline-end: 14px;
}

/* Body headings */
.lv-article .editorial-content.legacy-content h2 {
  counter-increment: lv-part;
  margin: 92px 0 22px; padding: 34px 0 0;
  border: 0; border-top: 1px solid var(--line);
  font-family: var(--serif); font-weight: 700; font-style: normal;
  font-size: clamp(30px, 3.4vw, 44px); line-height: 1.06;
  letter-spacing: -0.022em; text-transform: none; color: var(--ink);
  scroll-margin-top: 32px;
}
.lv-article .editorial-content.legacy-content h2::before {
  content: counter(lv-part, decimal-leading-zero);
  display: block; margin-bottom: 14px;
  font-style: italic; font-weight: 700; font-size: 22px; letter-spacing: -0.01em;
  color: var(--coral);
}
.lv-article .editorial-content.lv-article-intro h2 { counter-increment: none; }
.lv-article .editorial-content.lv-article-intro h2::before { content: none; }
.lv-article .editorial-content.lv-article-body > h2:first-child { margin-top: 64px; }
.lv-article .editorial-content.legacy-content h2 + p {
  font-size: 21px; line-height: 1.6; color: var(--ink);
}
.lv-article .editorial-content.legacy-content h3 {
  margin: 58px 0 14px; padding: 0; border: 0;
  font-family: var(--serif); font-weight: 600; font-style: normal;
  font-size: 27px; line-height: 1.16; letter-spacing: -0.015em;
  text-transform: none; color: var(--ink);
  scroll-margin-top: 32px;
}
.lv-article .editorial-content.legacy-content h4 {
  margin: 38px 0 10px; padding: 0; border: 0;
  font-family: var(--serif); font-weight: 600; font-style: italic;
  font-size: 21px; line-height: 1.25; letter-spacing: -0.005em;
  text-transform: none; color: var(--ink);
}
.lv-article .editorial-content.legacy-content h5,
.lv-article .editorial-content.legacy-content h6 {
  margin: 30px 0 8px; padding: 0; border: 0;
  font-family: var(--sans); font-size: 12px; font-weight: 600;
  letter-spacing: 0.16em; text-transform: uppercase; color: var(--ink-3);
}
.lv-article .editorial-content.legacy-content h2 + h3,
.lv-article .editorial-content.legacy-content h3 + h4 { margin-top: 24px; }

/* Lists — quiet coral markers instead of per-item cards. */
.lv-article .editorial-content.legacy-content ul,
.lv-article .editorial-content.legacy-content ol {
  display: block; list-style: none; margin: 0 0 1.4em; padding: 0;
}
.lv-article .editorial-content.legacy-content ol { counter-reset: lv-ol; }
.lv-article .editorial-content.legacy-content li {
  display: block; position: relative; margin: 0.5em 0; padding: 0; padding-inline-start: 28px;
  background: none; border: 0; border-radius: 0; box-shadow: none;
  font-family: var(--serif-body); font-size: 18.5px; line-height: 1.65; color: var(--ink-2);
}
.lv-article .editorial-content.legacy-content li > p { margin: 0; font-size: inherit; }
.lv-article .editorial-content.legacy-content ul > li::before {
  content: ""; position: absolute; inset-inline-start: 6px; top: 0.72em;
  width: 7px; height: 7px; border-radius: 50%; background: var(--coral);
  transform: none; color: transparent;
}
.lv-article .editorial-content.legacy-content ol > li { counter-increment: lv-ol; }
.lv-article .editorial-content.legacy-content ol > li::before {
  content: counter(lv-ol) "."; position: absolute; inset-inline-start: 0; top: 0;
  font-family: var(--serif); font-style: italic; font-weight: 700; color: var(--coral);
}
.lv-article .editorial-content.legacy-content li ul,
.lv-article .editorial-content.legacy-content li ol { margin: 0.3em 0 0.4em; }

/* "**Term:** definition" lists → hairline-ruled definition rows. */
.lv-article .editorial-content.legacy-content li.lv-term {
  margin: 0; padding: 18px 0; padding-inline-start: 0;
  border-top: 1px solid var(--line);
}
.lv-article .editorial-content.legacy-content li.lv-term:last-child { border-bottom: 1px solid var(--line); }
.lv-article .editorial-content.legacy-content ul > li.lv-term::before { content: none; }
.lv-article .editorial-content.legacy-content li.lv-term strong:first-child {
  display: block; margin-bottom: 4px;
  font-family: var(--serif); font-weight: 600; font-size: 19.5px;
  line-height: 1.3; letter-spacing: -0.01em; color: var(--ink);
}
.lv-article .editorial-content.legacy-content ul:has(> li.lv-term) { margin: 22px 0 1.8em; }

/* Quotes, tables, media, rules */
.lv-article .editorial-content.legacy-content blockquote {
  margin: 34px 0; padding: 22px 28px;
  border: 0; border-inline-start: 3px solid var(--coral);
  border-start-end-radius: 18px; border-end-end-radius: 18px;
  background: var(--cream-2);
  font-family: var(--serif-body); font-style: italic; font-size: 20px; line-height: 1.6; color: var(--ink);
}
.lv-article .editorial-content.legacy-content blockquote p { font-size: inherit; color: inherit; margin: 0; }
.lv-article .editorial-content.legacy-content blockquote p + p { margin-top: 0.8em; }
.lv-article .editorial-content.legacy-content table {
  display: block; overflow-x: auto; width: 100%;
  border-collapse: collapse; margin: 30px 0;
  font-family: var(--sans); font-size: 14.5px; line-height: 1.5; color: var(--ink-2);
}
.lv-article .editorial-content.legacy-content th {
  text-align: start; padding: 10px 14px; border-bottom: 1.5px solid var(--ink);
  font-size: 11px; font-weight: 600; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink);
}
.lv-article .editorial-content.legacy-content td { padding: 12px 14px; border-bottom: 1px solid var(--line); vertical-align: top; }
.lv-article .editorial-content.legacy-content img { max-width: 100%; height: auto; border-radius: 18px; margin: 28px 0; }
.lv-article .editorial-content.legacy-content hr { border: 0; height: 1px; background: var(--line); margin: 56px 0; }

/* Gallery inside the reading column: shape follows the image count. */
.lv-article .gallery-root { margin: 52px 0 12px; }
.lv-article .lv-gallery {
  grid-template-columns: repeat(3, 1fr); grid-auto-rows: 172px; gap: 12px;
}
.lv-article .lv-gallery figure { border-radius: 16px; cursor: zoom-in; }
.lv-article .lv-gallery figure:nth-child(3n+6):last-child { grid-column: span 3; }
.lv-article .lv-gallery figure:nth-child(3n+7):last-child { grid-column: span 2; }
.lv-article .lv-gallery[data-count="1"] { grid-template-columns: 1fr; grid-auto-rows: auto; }
.lv-article .lv-gallery[data-count="1"] figure { grid-column: auto; grid-row: auto; aspect-ratio: 3 / 2; max-height: 520px; }
.lv-article .lv-gallery[data-count="2"] { grid-template-columns: 1fr 1fr; grid-auto-rows: 300px; }
.lv-article .lv-gallery[data-count="2"] figure { grid-column: auto; grid-row: auto; }
.lv-article .lv-gallery[data-count="4"] figure.wide:not(.tall) { grid-column: span 3; }

/* ---------- Narrow screens: rail folds into a card above the article ---------- */
@media (max-width: 1023px) {
  .lv-article, .lv-article--no-rail { grid-template-columns: minmax(0, 1fr); }
  .lv-article-rail {
    position: static; max-height: none; overflow: visible; padding: 0;
    margin-bottom: 40px;
  }
  .lv-toc {
    background: var(--cream-2); border: 1px solid var(--line);
    border-radius: 18px; padding: 16px 20px;
  }
  .lv-toc > summary { border-bottom: 0; padding-bottom: 0; }
  .lv-toc > summary::after {
    content: ""; width: 8px; height: 8px; flex: none; margin-inline-start: 4px;
    border-right: 1.5px solid var(--ink-2); border-bottom: 1.5px solid var(--ink-2);
    transform: rotate(45deg) translateY(-3px); transition: transform .2s ease;
  }
  .lv-toc[open] > summary::after { transform: rotate(-135deg) translateY(-2px); }
  .lv-toc[open] > summary { border-bottom: 1px solid var(--line); padding-bottom: 12px; }
  .lv-toc-list { max-height: 60vh; overflow-y: auto; padding-bottom: 6px; }
}
@media (max-width: 640px) {
  .lv-article .editorial-content.legacy-content,
  .lv-article .editorial-content.legacy-content p { font-size: 17.5px; line-height: 1.68; }
  .lv-article .editorial-content.lv-article-intro > p:first-of-type { font-size: 20px; }
  .lv-article .editorial-content.lv-article-intro > p:first-of-type::first-letter { font-size: 64px; margin-inline-end: 10px; }
  .lv-article .editorial-content.legacy-content h2 { margin-top: 64px; padding-top: 26px; }
  .lv-article .editorial-content.legacy-content h3 { font-size: 23px; margin-top: 44px; }
  .lv-article .editorial-content.legacy-content h4 { font-size: 19px; }
  .lv-article .editorial-content.legacy-content li { font-size: 17px; }
  .lv-article .editorial-content.legacy-content h2 + p { font-size: 19px; }
}

/* The page shell clips with overflow:hidden, which makes it the scroll
   container and disables position:sticky for the rail. `clip` clips the same
   way without creating a scroll container. Browsers without :has()/clip keep
   `hidden` and simply get a non-sticky rail. */
.audiala-page:has(.lv-article-rail) { overflow: clip; }

/* ===== static/css/modules/components/photo-credits.css ===== */

/* Photo credits (image licence policy, 2026-09-27).
   Plain text only, never links. Hero credit: a quiet line at the photo's
   bottom-right corner, below the floating facts card, on the existing
   legibility scrim. Page credits: a collapsed <details> above the footer. */

.ph .ph-credit {
  position: absolute;
  right: 14px;
  bottom: 8px;
  z-index: 2;
  max-width: min(62%, 460px);
  font-family: var(--sans);
  font-size: 10.5px;
  line-height: 1.3;
  letter-spacing: 0.01em;
  color: rgba(250, 242, 226, 0.78);
  text-shadow: 0 1px 2px rgba(0, 0, 0, 0.45);
  white-space: nowrap;
  overflow: hidden;
  text-overflow: ellipsis;
}
/* The image failed and the gradient shows: no photo, no credit. */
.ph:not(.has-img) .ph-credit { display: none; }

.photo-credits {
  padding: 0 48px 32px;
  font-family: var(--sans);
  font-size: 12px;
  line-height: 1.5;
  color: var(--ink-3);
}
.photo-credits summary {
  cursor: pointer;
  width: fit-content;
  color: var(--ink-3);
}
.photo-credits summary:hover,
.photo-credits details[open] summary { color: var(--ink-2); }
.photo-credits__list {
  margin: 10px 0 0 18px;
  display: grid;
  gap: 4px;
  overflow-wrap: anywhere;
}
.photo-credits__note { margin-top: 8px; font-style: italic; }

@media (max-width: 640px) {
  .ph .ph-credit { right: 10px; bottom: 6px; font-size: 10px; max-width: 72%; }
}

/* ===== static/css/modules/templates/layouts--_default--single.css ===== */

/* Extracted from layouts/_default/single.html; edit this module directly. */
.legal-content > p { color: #3f4944; line-height: 1.75; margin-bottom: 1.25rem; }
  .legal-content > h2 { font-family: 'Noto Serif', serif; font-size: 1.5rem; font-weight: 700; color: #1c1b1b; margin-top: 2.5rem; margin-bottom: 0.75rem; }
  .legal-content > h3 { font-family: 'Noto Serif', serif; font-size: 1.125rem; font-weight: 600; color: #1c1b1b; margin-top: 1.75rem; margin-bottom: 0.5rem; }
  .legal-content > ul, .legal-content > ol { margin-bottom: 1.25rem; padding-left: 1.5rem; }
  .legal-content > ul > li, .legal-content > ol > li { color: #3f4944; line-height: 1.75; margin-bottom: 0.375rem; }
  .legal-content > ul { list-style: disc; }
  .legal-content > ol { list-style: decimal; }
  .legal-content a { color: #004b38; text-decoration: underline; }
  .legal-content a:hover { text-decoration: none; }
  .legal-content strong { color: #1c1b1b; }
  .legal-content > table { width: 100%; border-collapse: collapse; margin-bottom: 1.25rem; font-size: 0.875rem; }
  .legal-content > table th { text-align: left; font-weight: 600; color: #1c1b1b; padding: 0.625rem 0.75rem; border-bottom: 2px solid #c5ccc7; }
  .legal-content > table td { padding: 0.625rem 0.75rem; border-bottom: 1px solid #e0e3df; color: #3f4944; }
  .legal-content > blockquote { border-left: 4px solid #004b38; padding-left: 1.5rem; font-style: italic; color: #3f4944; margin: 1.5rem 0; }
  .legal-content > .table-responsive { overflow-x: auto; -webkit-overflow-scrolling: touch; margin-bottom: 1.25rem; }
  .legal-toc a { color: #3f4944; text-decoration: none; transition: color 0.15s; }
  .legal-toc a:hover { color: #004b38; }
  .legal-toc li { padding: 0.25rem 0; }
  @media (min-width: 768px) {
    .legal-content > h2 { font-size: 1.75rem; }
    .legal-content > h3 { font-size: 1.25rem; }
  }

/* ===== static/css/modules/templates/layouts--about--list.css ===== */

/* Extracted from layouts/about/list.html; edit this module directly. */
.prose-redesign p { font-family: var(--serif-body); font-size: 18px; line-height: 1.65; color: var(--ink-2); margin-bottom: 20px; }
  .prose-redesign h2 { font-family: var(--serif); font-weight: 700; font-size: 36px; letter-spacing: -0.02em; color: var(--ink); margin: 48px 0 18px; line-height: 1.05; }
  .prose-redesign h3 { font-family: var(--serif); font-weight: 700; font-size: 24px; color: var(--ink); margin: 32px 0 12px; }
  .prose-redesign a { color: var(--coral); border-bottom: 1px solid var(--coral); }
  .prose-redesign ul { margin: 0 0 20px 0; padding-left: 22px; list-style: disc; }
  .prose-redesign li { font-family: var(--serif-body); font-size: 17px; line-height: 1.6; color: var(--ink-2); margin-bottom: 8px; }

/* About "Key facts" definition list (moved from an inline <style> block, AUD-334). */
.about-facts{margin:0;border-top:1px solid var(--line,rgba(0,0,0,.12))}
.about-facts>div{display:grid;grid-template-columns:minmax(8rem,12rem) 1fr;gap:.25rem 1.5rem;padding:.75rem 0;border-bottom:1px solid var(--line,rgba(0,0,0,.12))}
.about-facts dt{font-weight:700;color:var(--ink)}
.about-facts dd{margin:0;color:var(--ink-2)}
@media (max-width:560px){.about-facts>div{grid-template-columns:1fr}}

/* ===== static/css/modules/templates/layouts--ai-facts--single.css ===== */

/* /ai-facts/ (layouts/ai-facts/single.html). Key facts reuse .about-facts. */
.ai-facts-updated { margin-top: 14px; font-family: var(--sans); font-size: 14px; color: var(--ink-3); }
.ai-facts-updated a { color: var(--coral); border-bottom: 1px solid var(--coral); }

/* ===== static/css/modules/templates/layouts--ambassadors--single.css ===== */

/* Extracted from layouts/ambassadors/single.html; edit this module directly. */
.amb-grid { display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:20px }
  .amb-step { padding:30px;border:1px solid rgba(29,57,53,.14);border-radius:18px;background:var(--cream) }
  .amb-number { font-family:var(--sans);font-size:12px;letter-spacing:.14em;color:var(--coral);text-transform:uppercase }
  .amb-rate { font-family:var(--serif);font-size:56px;line-height:1;color:var(--ink) }
  .amb-detail { font-family:var(--serif-body);font-size:16px;line-height:1.55;color:var(--ink-2) }
  .amb-cta a[href^="mailto:"] { color:inherit;text-decoration:underline;text-underline-offset:3px }
  /* Business cross-link → /partners#earn (2026-10-06). */
  .amb-switch { max-width:960px;margin:44px auto 0;padding:28px 32px;border-radius:20px;display:flex;justify-content:space-between;align-items:center;gap:24px;flex-wrap:wrap }
  .amb-switch > div { flex:1;min-width:260px }
  @media(max-width:860px){
    .amb-grid { grid-template-columns:1fr }
    .amb-hero { padding:36px 22px 28px !important;text-align:start !important }
    .amb-hero h1 { font-size:58px !important }
    .amb-section { padding:68px 22px !important }
    .amb-cta { padding:76px 22px !important }
    .amb-cta h2 { font-size:48px !important }
    .amb-switch { padding:24px }
  }
/* RTL: forward arrows point left. */
[dir="rtl"] body[data-page-type="ambassadors"] .btn .line-icon { transform: scaleX(-1); }

/* ===== static/css/modules/templates/layouts--blog--list.css ===== */

/* Engineering Journal index. */
.engineering-journal__header {
  padding: 32px 48px;
}

.engineering-journal__eyebrow-dot,
.engineering-journal__read-time,
.engineering-journal__title-accent { color: var(--coral); }

.engineering-journal__eyebrow-label { margin-left: 10px; }

.engineering-journal__header-content {
  display: grid;
  grid-template-columns: 2fr 1fr;
  gap: 60px;
  margin-top: 24px;
  align-items: end;
}

.engineering-journal__title {
  font-size: 120px;
  line-height: 0.9;
  font-variation-settings: "opsz" 144, "SOFT" 60;
}

.engineering-journal__description,
.engineering-journal__card-description {
  font-size: 18px;
  line-height: 1.55;
  color: var(--ink-2);
}

.engineering-journal__grid-section {
  padding-top: 24px;
  border-top: 1px solid var(--line);
}

.engineering-journal__grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 28px;
}

.engineering-journal__card {
  padding: 14px;
  position: relative;
  display: flex;
  flex-direction: column;
  gap: 14px;
}

.engineering-journal__card-link {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.engineering-journal__card-copy { padding: 0 8px 10px; }

.engineering-journal__card-meta {
  display: flex;
  align-items: center;
  gap: 10px;
}

.engineering-journal__card-title {
  font-size: 26px;
  line-height: 1.08;
  margin-top: 8px;
}

.engineering-journal__card-description {
  font-size: 15px;
  margin-top: 8px;
}

.engineering-journal__empty {
  text-align: center;
  padding: 64px 0;
}

.engineering-journal__empty-icon {
  display: inline-grid;
  place-items: center;
  width: 72px;
  height: 72px;
  border-radius: 20px;
  background: var(--cream-2);
  margin-bottom: 18px;
}

.engineering-journal__empty-copy {
  font-size: 18px;
  color: var(--ink-3);
}

@media (max-width: 760px) {
  .engineering-journal__header { padding: 28px 24px; }
  .engineering-journal__header-content,
  .engineering-journal__grid { grid-template-columns: 1fr; }
  .engineering-journal__header-content { gap: 24px; }
  .engineering-journal__title { font-size: clamp(58px, 18vw, 92px); }
}

/* ===== static/css/modules/templates/layouts--blog--single.css ===== */

/* Engineering Journal article. */
.engineering-journal__article-header {
  padding: 48px 48px 32px;
  max-width: 820px;
  margin: 0 auto;
  text-align: center;
}

.engineering-journal__article-meta {
  justify-content: center;
  display: flex;
  align-items: center;
  gap: 10px;
}

.engineering-journal__article-title {
  font-size: 64px;
  line-height: 1.02;
  letter-spacing: -0.02em;
  margin-top: 20px;
}

.engineering-journal__article-excerpt {
  font-size: 21px;
  line-height: 1.5;
  color: var(--ink-2);
  margin: 20px auto 0;
  max-width: 600px;
}

.engineering-journal__hero { padding: 0 48px 8px; max-width: 1080px; margin: 0 auto; }
.engineering-journal__body { padding: 40px 48px 0; }
.article-redesign { max-width: 720px; margin: 0 auto; }
.article-redesign p { font-family: var(--serif-body); font-size: 19px; line-height: 1.75; color: var(--ink-2); margin-bottom: 1.5rem; }
.article-redesign > p:first-of-type::first-letter { float: left; font-family: var(--serif); font-weight: 700; font-size: 5rem; line-height: 0.78; padding-right: 0.7rem; padding-top: 0.4rem; color: var(--coral); }
.article-redesign h2 { font-family: var(--serif); font-weight: 700; font-size: 2rem; line-height: 1.1; letter-spacing: -0.02em; color: var(--ink); margin: 3rem 0 1rem; }
.article-redesign h3 { font-family: var(--serif); font-weight: 700; font-size: 1.4rem; color: var(--ink); margin: 2.2rem 0 0.75rem; }
.article-redesign ul, .article-redesign ol { margin: 0 0 1.5rem 1.4rem; }
.article-redesign li { font-family: var(--serif-body); font-size: 18px; line-height: 1.7; color: var(--ink-2); margin-bottom: 0.5rem; }
.article-redesign ul { list-style: disc; }
.article-redesign ol { list-style: decimal; }
.article-redesign blockquote { border-left: 3px solid var(--coral); padding-left: 1.4rem; margin: 2rem 0; font-family: var(--serif); font-style: italic; font-size: 1.25rem; line-height: 1.5; color: var(--ink); }
.article-redesign a { color: var(--coral); text-decoration: underline; text-underline-offset: 2px; }
.article-redesign a:hover { text-decoration: none; }
.article-redesign figure { margin: 2.5rem 0; }
.article-redesign figure img { border-radius: 20px; width: 100%; }
.article-redesign figcaption { font-family: var(--sans); font-size: 0.85rem; color: var(--ink-3); text-align: center; margin-top: 0.6rem; }
.article-redesign strong { color: var(--ink); font-weight: 600; }
.article-redesign table { width: 100%; border-collapse: collapse; margin: 2.4rem 0; font-family: var(--sans); font-size: 14.5px; line-height: 1.45; font-variant-numeric: tabular-nums; }
.article-redesign thead th { font-size: 11px; letter-spacing: 0.08em; text-transform: uppercase; font-weight: 600; color: var(--ink-3); padding: 0 14px 10px; border-bottom: 2px solid var(--ink); }
.article-redesign thead th:first-child, .article-redesign tbody td:first-child { padding-left: 0; }
.article-redesign thead th:last-child, .article-redesign tbody td:last-child { padding-right: 0; }
.article-redesign tbody td { padding: 12px 14px; border-bottom: 1px solid var(--line-soft); color: var(--ink-2); white-space: nowrap; }
.article-redesign tbody td:first-child { font-weight: 600; color: var(--ink); white-space: normal; }
.article-redesign tbody tr:first-child td { background: var(--coral-soft); }
.article-redesign tbody tr:first-child td:first-child { border-radius: 10px 0 0 10px; }
.article-redesign tbody tr:first-child td:last-child { border-radius: 0 10px 10px 0; }

.engineering-journal__tags { max-width: 720px; margin: 48px auto 0; padding-top: 28px; border-top: 1px solid var(--line); display: flex; flex-wrap: wrap; gap: 8px; }
.engineering-journal__back { max-width: 720px; margin: 28px auto 0; }
.engineering-journal__back-link { display: inline-flex; align-items: center; gap: 8px; color: var(--ink); border-bottom: 1px solid var(--ink); padding-bottom: 3px; }
.engineering-journal__cta { padding: 56px; background: #1D3935; text-align: center; }
.engineering-journal__cta-eyebrow { justify-content: center; color: rgba(250,242,226,0.6); }
.engineering-journal__cta-title { font-size: 56px; line-height: 0.98; color: #FAF2E2; margin-top: 14px; }
.engineering-journal__cta-title-emphasis { font-family: var(--serif); font-style: italic; color: #F3C43D; }
.engineering-journal__cta-copy { font-size: 18px; line-height: 1.5; color: rgba(250,242,226,0.85); max-width: 480px; margin: 16px auto 0; }
.engineering-journal__cta-action { margin-top: 30px; }

@media (max-width: 760px) {
  .engineering-journal__article-header { padding: 32px 24px 24px; }
  .engineering-journal__article-title { font-size: clamp(42px, 11vw, 58px); }
  .engineering-journal__hero, .engineering-journal__body { padding-left: 24px; padding-right: 24px; }
  .engineering-journal__cta { padding: 38px 24px; }
  .engineering-journal__cta-title { font-size: 42px; }
  .article-redesign table { display: block; overflow-x: auto; -webkit-overflow-scrolling: touch; }
}

/* ===== static/css/modules/templates/layouts--changelog--single.css ===== */

/* Extracted from layouts/changelog/single.html; edit this module directly. */
.cl-tag { display:inline-flex; align-items:center; padding:3px 11px; border-radius:100px; font-family:var(--sans); font-size:10.5px; font-weight:600; letter-spacing:0.08em; text-transform:uppercase; flex-shrink:0; }
  .cl-tag.new { background:#E85F33; color:#fff; }
  .cl-tag.improved { background:#F3C43D; color:#1D3935; }
  .cl-tag.fixed { background:transparent; color:var(--ink-3); border:1px solid #1D393530; }
  .cl-entry { position:relative; padding-left:36px; padding-bottom:52px; }
  .cl-entry::before { content:""; position:absolute; left:5px; top:8px; bottom:0; width:2px; background:#1D393520; }
  .cl-entry:last-child::before { display:none; }
  .cl-dot { position:absolute; left:0; top:4px; width:12px; height:12px; border-radius:50%; background:var(--coral); box-shadow:0 0 0 4px var(--cream); }

/* ===== static/css/modules/templates/layouts--country--section.css ===== */

/* Extracted from layouts/country/section.html; edit this module directly. */
.audiala-country .editorial-content h2 {
    font-family: var(--sans); color: #E85F33; font-weight: 600;
    letter-spacing: 0.14em; text-transform: uppercase; font-size: 0.8rem;
    margin: 3rem 0 1.25rem;
  }
  .audiala-country .editorial-content h2:first-child { margin-top: 0; }
  .audiala-country .editorial-content h3 {
    font-family: var(--serif); font-size: 1.9rem; font-weight: 700;
    color: #1D3935; margin: 2.25rem 0 0.9rem; line-height: 1.15; letter-spacing: -0.02em;
  }
  .audiala-country .editorial-content p {
    font-family: var(--serif-body); color: #465C58; line-height: 1.7;
    font-size: 1.05rem; margin-bottom: 1.2rem;
  }
  .audiala-country .editorial-content em { color: #7C928E; font-style: italic; }
  .audiala-country .editorial-content blockquote {
    border-left: 3px solid #E85F33; padding-left: 1.25rem; margin: 2rem 0;
    color: #1D3935; font-style: italic; font-family: var(--serif); font-size: 1.2rem;
  }
  .audiala-country .editorial-content a { color: #E85F33; text-decoration: underline; }

  /* ---- Country timeline (section 06) ---- */
  .audiala-country .ctl-list {
    list-style: none; margin: 32px 0 0; padding: 0;
    position: relative; max-width: 760px;
  }
  .audiala-country .ctl-list::before {
    content: ""; position: absolute; left: 17px; top: 6px; bottom: 6px;
    width: 2px; background: #465C58;
  }
  .audiala-country .ctl-item {
    position: relative; padding: 0 0 36px 56px;
  }
  .audiala-country .ctl-item:last-child { padding-bottom: 0; }
  .audiala-country .ctl-dot {
    position: absolute; left: 0; top: 0; width: 36px; height: 36px;
    border-radius: 50%; background: #F3C43D;
    display: flex; align-items: center; justify-content: center;
  }

  /* ---- Reskinned video embeds (section 12) ---- */
  .audiala-country .ctry-video {
    background: #FAF2E2; border: 1px solid #ECE0B8; border-radius: 18px;
    overflow: hidden;
  }
  .audiala-country .ctry-video-frame {
    position: relative; aspect-ratio: 16/9; background: #1D3935;
  }
  .audiala-country .ctry-video-frame iframe {
    position: absolute; inset: 0; width: 100%; height: 100%; border: 0;
  }
  .audiala-country .ctry-video-meta {
    padding: 14px 18px; display: flex; align-items: center;
    justify-content: space-between; gap: 12px;
  }

/* ===== static/css/modules/templates/layouts--creators--single.css ===== */

/* /creators (2026-11-02). Reuses the .amb-* classes from layouts--ambassadors--single.css. */
.cr-stats { display:flex;justify-content:center;gap:56px;flex-wrap:wrap;margin:44px auto 0;padding:0 }
  .cr-stat { display:flex;flex-direction:column;align-items:center;gap:8px;margin:0 }
  .cr-stat dt { font-size:44px }
  .cr-stat dd { margin:0;color:var(--ink-2) }
  .cr-grid-4 { display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:20px;max-width:1200px;margin:0 auto }
  .cr-faq { max-width:820px;margin:0 auto;border-top:1px solid var(--line) }
  .cr-faq-item { border-bottom:1px solid var(--line);padding:22px 4px }
  .cr-faq-item summary { cursor:pointer;font-size:22px;line-height:1.3;color:var(--ink);list-style:none;display:flex;justify-content:space-between;gap:16px }
  .cr-faq-item summary::-webkit-details-marker { display:none }
  .cr-faq-item summary::after { content:"+";color:var(--coral);font-family:var(--sans);flex-shrink:0 }
  .cr-faq-item[open] summary::after { content:"−" }
  .cr-faq-item p { margin:12px 0 0;max-width:680px }
  @media(max-width:1100px){ .cr-grid-4 { grid-template-columns:repeat(2,minmax(0,1fr)) } }
  @media(max-width:860px){
    .cr-grid-4 { grid-template-columns:1fr }
    .cr-stats { justify-content:flex-start;gap:28px }
    .cr-stat { align-items:flex-start }
    .cr-stat dt { font-size:36px }
    .cr-faq-item summary { font-size:19px }
  }
[dir="rtl"] body[data-page-type="creators"] .btn .line-icon { transform: scaleX(-1); }

/* ===== static/css/modules/templates/layouts--download--single.css ===== */

/* Extracted from layouts/download/single.html; edit this module directly. */
@media (max-width: 880px) {
      .dl-page .dl-hero-grid { grid-template-columns: 1fr !important; gap: 36px !important; }
      .dl-page .dl-cols-3 { grid-template-columns: repeat(2, 1fr) !important; }
      .dl-page .dl-cols-4 { grid-template-columns: repeat(2, 1fr) !important; }
      .dl-page .dl-fineprint-grid { grid-template-columns: 1fr !important; gap: 28px !important; }
    }
    @media (max-width: 560px) {
      .dl-page .dl-cols-3, .dl-page .dl-cols-4 { grid-template-columns: 1fr !important; }
      .dl-page section { padding-left: 22px !important; padding-right: 22px !important; }
    }

/* ===== static/css/modules/templates/layouts--faq--single.css ===== */

/* Extracted from layouts/faq/single.html; edit this module directly. */
.faq-q { list-style: none; cursor: pointer; display: flex; align-items: baseline; justify-content: space-between; gap: 18px; padding: 18px 0; font-family: var(--serif); font-weight: 600; font-size: 19px; color: var(--ink); letter-spacing: -0.01em; }
  .faq-q::-webkit-details-marker { display: none; }
  .faq-q .mark { font-family: var(--sans); font-size: 22px; color: var(--coral); flex-shrink: 0; transition: transform .2s ease; line-height: 1; }
  details[open] > .faq-q .mark { transform: rotate(45deg); }
  .faq-a { font-family: var(--serif-body); font-size: 16px; line-height: 1.6; color: var(--ink-2); padding: 0 0 20px; max-width: 720px; }
  .faq-row { border-top: 1px solid #1D393524; }
  .faq-row:first-child { border-top: 0; }

/* ===== static/css/modules/templates/layouts--features--single--2.css ===== */

/* Extracted from layouts/features/single.html; edit this module directly. */
@media (max-width: 860px){
  .cmp-desktop{ display:none !important; }
  .cmp-mobile{ display:flex !important; }
}

/* ===== static/css/modules/templates/layouts--features--single.css ===== */

/* Extracted from layouts/features/single.html; edit this module directly. */
.cmp-table { width: 100%; border-collapse: collapse; }
  .cmp-table th, .cmp-table td { padding: 18px 20px; text-align: start; vertical-align: top; }
  .cmp-table thead th { font-family: var(--sans); font-size: 11px; letter-spacing: 0.14em; text-transform: uppercase; color: var(--ink-3); }
  .cmp-table tbody tr { border-top: 1px solid #1D393524; }
  .cmp-table .row-name { font-family: var(--serif); font-weight: 700; font-size: 17px; color: var(--ink); }
  .cmp-col-aud { background: #F8D8C8; }
  .cmp-table thead .cmp-col-aud { border-radius: 18px 18px 0 0; }
  .cmp-table tbody tr:last-child .cmp-col-aud { border-radius: 0 0 18px 18px; }
  .cmp-val { font-family: var(--serif-body); font-size: 15.5px; color: var(--ink); font-weight: 600; }
  .cmp-note { font-family: var(--sans); font-size: 12.5px; color: var(--ink-3); margin-top: 3px; }
  .cmp-card { background: var(--cream); border-radius: 18px; padding: 18px 20px; box-shadow: 0 2px 6px rgba(29,57,53,0.08), 0 18px 40px -16px rgba(29,57,53,0.28); }

/* ===== static/css/modules/templates/layouts--page--single.css ===== */

/* Extracted from layouts/page/single.html; edit this module directly. */
.prose-redesign p { font-family: var(--serif-body); font-size: 18px; line-height: 1.65; color: var(--ink-2); margin-bottom: 20px; }
  .prose-redesign h2 { font-family: var(--serif); font-weight: 700; font-size: 36px; letter-spacing: -0.02em; color: var(--ink); margin: 48px 0 18px; line-height: 1.05; }
  .prose-redesign h3 { font-family: var(--serif); font-weight: 700; font-size: 24px; color: var(--ink); margin: 32px 0 12px; }
  .prose-redesign a { color: var(--coral); border-bottom: 1px solid var(--coral); }
  .prose-redesign ul, .prose-redesign ol { margin: 0 0 20px 0; padding-left: 22px; }
  .prose-redesign ul { list-style: disc; }
  .prose-redesign ol { list-style: decimal; }
  .prose-redesign li { font-family: var(--serif-body); font-size: 17px; line-height: 1.6; color: var(--ink-2); margin-bottom: 8px; }
  .prose-redesign em { font-style: italic; }
  .prose-redesign strong { color: var(--ink); font-weight: 700; }
  .prose-redesign blockquote { border-left: 3px solid var(--coral); padding-left: 22px; margin: 28px 0; font-family: var(--serif-it); font-style: italic; color: var(--ink); }

/* ===== static/css/modules/templates/layouts--partials--city-highlights.css ===== */

/* Extracted from layouts/partials/city-highlights.html; edit this module directly. */
.city-highlights-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.5rem;
  }
  @media (min-width: 768px) {
    .city-highlights-grid {
      grid-template-columns: repeat(2, 1fr);
    }
  }
  .city-highlight-card {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(12px);
    -webkit-backdrop-filter: blur(12px);
    border: 1px solid rgba(0, 75, 56, 0.08);
    border-radius: 1.5rem;
    padding: 2rem;
    display: flex;
    flex-direction: column;
    align-items: center;
    text-align: center;
  }

/* ===== static/css/modules/templates/layouts--partials--city-tickets-carousel.css ===== */

/* Extracted from layouts/partials/city-tickets-carousel.html; edit this module directly. */
.ticket-card { transition: transform .15s ease, box-shadow .15s ease; }
  .ticket-card:hover { transform: translateY(-3px); box-shadow: 0 18px 40px -16px rgba(29,57,53,0.28); }
  @media (max-width: 1024px) { #city-top-tickets [data-city-tickets-grid] { grid-template-columns: repeat(3,1fr) !important; } }
  @media (max-width: 560px) { #city-top-tickets [data-city-tickets-grid] { grid-template-columns: repeat(2,1fr) !important; } }

/* ===== static/css/modules/templates/layouts--partials--city-timeline.css ===== */

/* Extracted from layouts/partials/city-timeline.html; edit this module directly. */
/* ── Timeline layout ───────────────────────────────────── */
  .timeline {
    position: relative;
    max-width: 56rem;
    margin: 0 auto;
  }

  /* Vertical spine — visible on desktop, hidden on mobile (border-left used instead) */
  .timeline::before {
    content: '';
    position: absolute;
    left: 50%;
    top: 0;
    bottom: 0;
    width: 2px;
    background: linear-gradient(to bottom, transparent, #004b38 3%, #004b38 97%, transparent);
    transform: translateX(-50%);
  }

  /* ── Era headers ───────────────────────────────────────── */
  .timeline-era {
    display: flex;
    align-items: center;
    gap: 1rem;
    margin: 2.5rem 0 1.5rem;
    position: relative;
    z-index: 2;
  }
  .timeline-era__line {
    flex: 1;
    height: 1px;
    background: linear-gradient(to right, transparent, #004b38, transparent);
    opacity: 0.3;
  }
  .timeline-era__label {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.2em;
    text-transform: uppercase;
    color: #004b38;
    background: #fcf9f8;
    padding: 0.35rem 1rem;
    border-radius: 9999px;
    border: 1px solid rgba(0, 75, 56, 0.2);
    white-space: nowrap;
  }

  /* ── Entry layout (desktop: alternating grid) ──────────── */
  .timeline-entry {
    display: grid;
    grid-template-columns: 1fr 3rem 1fr;
    align-items: start;
    margin-bottom: 1.5rem;
    position: relative;
  }

  /* Dot column — always centered */
  .timeline-dot-col {
    display: flex;
    justify-content: center;
    grid-column: 2;
    grid-row: 1;
    z-index: 2;
    padding-top: 0.25rem;
  }

  /* Left entries: card in col 1 */
  .timeline-entry--left .timeline-card {
    grid-column: 1;
    grid-row: 1;
    text-align: right;
    padding-right: 1.5rem;
  }

  /* Right entries: card in col 3 */
  .timeline-entry--right .timeline-card {
    grid-column: 3;
    grid-row: 1;
    text-align: left;
    padding-left: 1.5rem;
  }

  /* ── Dot ────────────────────────────────────────────────── */
  .timeline-dot {
    width: 2rem;
    height: 2rem;
    border-radius: 9999px;
    background: #004b38;
    display: flex;
    align-items: center;
    justify-content: center;
    box-shadow: 0 0 0 4px #fcf9f8, 0 0 0 5px rgba(0, 75, 56, 0.2);
    flex-shrink: 0;
  }
  .timeline-dot--figure {
    background: #9d4228;
    box-shadow: 0 0 0 4px #fcf9f8, 0 0 0 5px rgba(157, 66, 40, 0.2);
  }
  .timeline-dot--end {
    background: #6f7a74;
    box-shadow: 0 0 0 4px #fcf9f8, 0 0 0 5px rgba(111, 122, 116, 0.2);
  }

  /* ── Card ───────────────────────────────────────────────── */
  .timeline-card {
    background: rgba(255, 255, 255, 0.7);
    backdrop-filter: blur(8px);
    -webkit-backdrop-filter: blur(8px);
    border-radius: 1rem;
    padding: 1.25rem 1.5rem;
    border: 1px solid rgba(190, 201, 194, 0.3);
    transition: box-shadow 0.3s ease;
  }
  .timeline-card:hover {
    box-shadow: 0 4px 20px rgba(0, 75, 56, 0.08);
  }

  /* Accent bar */
  .timeline-entry--left .timeline-card {
    border-right: 3px solid #004b38;
  }
  .timeline-entry--right .timeline-card {
    border-left: 3px solid #004b38;
  }
  .timeline-entry--figure.timeline-entry--left .timeline-card {
    border-right-color: #9d4228;
  }
  .timeline-entry--figure.timeline-entry--right .timeline-card {
    border-left-color: #9d4228;
  }

  /* Year badge */
  .timeline-year {
    display: inline-block;
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #004b38;
    background: rgba(0, 75, 56, 0.08);
    padding: 0.2rem 0.6rem;
    border-radius: 9999px;
  }
  .timeline-entry--figure .timeline-year {
    color: #9d4228;
    background: rgba(157, 66, 40, 0.08);
  }

  /* ── Terminal dot ──────────────────────────────────────── */
  .timeline-end {
    display: flex;
    flex-direction: column;
    align-items: center;
    position: relative;
    z-index: 2;
    padding-top: 1rem;
  }

  /* ── Scroll animation ─────────────────────────────────── */
  .timeline-entry {
    opacity: 0;
    transition: opacity 0.7s ease-out, transform 0.7s ease-out;
  }
  .timeline-entry--left {
    transform: translateX(-30px);
  }
  .timeline-entry--right {
    transform: translateX(30px);
  }
  .timeline-entry.tl-visible {
    opacity: 1;
    transform: translateX(0);
  }

  /* ── Responsive: mobile single-column ─────────────────── */
  @media (max-width: 767px) {
    .timeline::before {
      left: 1rem;
      transform: none;
    }

    .timeline-entry {
      display: flex;
      gap: 0;
      padding-left: 0;
    }

    .timeline-dot-col {
      flex-shrink: 0;
      width: 2rem;
      margin-right: 1rem;
      justify-content: center;
      align-self: flex-start;
      padding-top: 0.25rem;
    }

    .timeline-entry--left .timeline-card,
    .timeline-entry--right .timeline-card {
      text-align: left;
      padding-left: 0;
      padding-right: 0;
      border-left: 3px solid #004b38;
      border-right: none;
      flex: 1;
    }
    .timeline-entry--figure .timeline-card {
      border-left-color: #9d4228 !important;
      border-right: none !important;
    }

    /* Mobile animation: slide up instead of left/right */
    .timeline-entry--left,
    .timeline-entry--right {
      transform: translateY(20px);
    }
    .timeline-entry.tl-visible {
      transform: translateY(0);
    }

    .timeline-era {
      margin-left: 0;
    }
    .timeline-era__line:first-child {
      display: none;
    }
  }

  /* ── Reduced motion ────────────────────────────────────── */
  @media (prefers-reduced-motion: reduce) {
    .timeline-entry {
      opacity: 1;
      transform: none;
      transition: none;
    }
  }

/* ===== static/css/modules/templates/layouts--partials--cookie-banner.css ===== */

/* Extracted from layouts/partials/cookie-banner.html; edit this module directly. */
/* Scoped to the consent UI; redesign tokens (cream/ink/coral). */
  #audiala-consent-root { font-family: var(--sans); }
  /* Layout display lives here, NOT inline — inline display:flex would beat the
     .hidden class the JS toggles (inline > class), leaving the modal overlay
     permanently covering the page and swallowing every click. ID+.hidden
     (specificity 1,1,0) overrides the ID display rule (1,0,0). */
  #audiala-consent-banner { display: flex; flex-direction: column; }
  #audiala-consent-modal { display: flex; align-items: center; justify-content: center; }
  #audiala-consent-banner.hidden, #audiala-consent-modal.hidden { display: none !important; }
  #audiala-consent-banner, #audiala-consent-modal .consent-card {
    background: var(--cream);
    border: 1px solid var(--line);
    box-shadow: 0 1px 0 rgba(29,57,53,0.08), 0 2px 6px rgba(29,57,53,0.08), 0 24px 60px -20px rgba(29,57,53,0.35);
  }
  .consent-eyebrow {
    font-family: var(--sans); font-weight: 500; font-size: 11px;
    letter-spacing: 0.18em; text-transform: uppercase; color: var(--ink-3);
  }
  .consent-h { font-family: var(--serif); font-weight: 700; letter-spacing: -0.02em; color: var(--ink); line-height: 1.0; margin: 0; }
  .consent-copy { font-family: var(--serif-body); font-size: 14.5px; line-height: 1.5; color: var(--ink-2); margin: 0; }
  /* Secondary actions: ghost-text pill. Primary "accept/save" reuse .btn.btn-coral (white ink). */
  .consent-btn-text {
    padding: 11px 18px; border-radius: 100px; font-family: var(--sans);
    font-size: 13.5px; font-weight: 500; color: var(--ink-2);
    background: transparent; transition: background .15s ease, color .15s ease;
  }
  .consent-btn-text:hover { background: var(--cream-3); color: var(--ink); }
  .consent-cat { background: var(--cream-2); border: 1px solid var(--line-soft); border-radius: 16px; padding: 16px; display: flex; flex-direction: column; gap: 8px; }
  /* Switch — off ink-4, on coral; knob white (per [[ios-design-system]]). */
  .consent-switch {
    position: relative; display: inline-flex; height: 24px; width: 44px; flex-shrink: 0;
    cursor: pointer; border-radius: 100px; border: none; padding: 0;
    background: var(--ink-4); transition: background .15s ease;
  }
  .consent-switch[aria-checked="true"] { background: var(--coral); }
  .consent-switch:disabled { opacity: 0.5; cursor: not-allowed; }
  .consent-switch .knob {
    position: absolute; top: 3px; left: 3px; height: 18px; width: 18px;
    border-radius: 50%; background: #fff; box-shadow: 0 1px 2px rgba(29,57,53,0.3);
    transition: transform .15s ease;
  }
  .consent-switch[aria-checked="true"] .knob { transform: translateX(20px); }
  .consent-close {
    width: 34px; height: 34px; border-radius: 50%; background: var(--cream-2);
    color: var(--ink-2); font-size: 14px; transition: background .15s ease;
  }
  .consent-close:hover { background: var(--cream-3); }

  /* First layer on phones (2026-10-10): the full banner covered about half of
     the first screen on 390px viewports. Short copy, no eyebrow, one action
     row where Reject all and Accept all are equal-weight buttons. */
  .consent-copy-short { display: none; }
  @media (max-width: 640px) {
    #audiala-consent-banner {
      left: 8px !important; right: 8px !important;
      bottom: max(8px, env(safe-area-inset-bottom)) !important;
      padding: 14px 14px 12px !important; gap: 10px !important; border-radius: 18px !important;
    }
    #audiala-consent-banner .consent-eyebrow { display: none; }
    #audiala-consent-banner .consent-h { font-size: 18px; }
    #audiala-consent-banner .consent-copy-long { display: none; }
    #audiala-consent-banner .consent-copy-short { display: block; font-size: 14px; line-height: 1.4; }
    #audiala-consent-banner > div:last-child {
      display: flex; flex-wrap: nowrap; align-items: center; gap: 8px; margin: 0; padding: 0;
    }
    #audiala-consent-banner [data-audiala-consent] {
      flex: 1 1 0; min-height: 44px; padding: 10px 12px; font-size: 14px;
      display: inline-flex; align-items: center; justify-content: center; white-space: nowrap;
    }
    #audiala-consent-banner [data-audiala-consent="reject-all"] {
      border: 1px solid var(--ink-3); color: var(--ink); border-radius: 100px;
    }
    #audiala-consent-banner [data-audiala-consent="customize"] {
      flex: 0 0 auto; padding-inline: 4px; text-decoration: underline; text-underline-offset: 3px;
    }
  }

/* ===== static/css/modules/templates/layouts--partials--editorial-attribution--2.css ===== */

/* Extracted from layouts/partials/editorial-attribution.html; edit this module directly. */
.editorial-attribution .attr-link:hover { color: var(--coral); }

/* ===== static/css/modules/templates/layouts--partials--editorial-attribution.css ===== */

/* Extracted from layouts/partials/editorial-attribution.html; edit this module directly. */
.editorial-provenance .attr-link:hover { color: var(--coral); }

/* ===== static/css/modules/templates/layouts--partials--famous-figures.css ===== */

/* Extracted from layouts/partials/famous-figures.html; edit this module directly. */
.famous-figure-card {
    border-left: 3px solid var(--md-sys-color-primary, #004b38);
    padding: 1.5rem;
    background: rgba(255, 255, 255, 0.5);
    border-radius: 0 1rem 1rem 0;
  }

/* ===== static/css/modules/templates/layouts--partials--global-search.css ===== */

/* Extracted from layouts/partials/global-search.html; edit this module directly. */
/* 2026 redesign reskin. Cream paper card, deep-teal ink, coral accent.
     Tokens (--cream, --ink, --coral, --line, --serif, --sans) come from
     static/css/redesign.css. No `display:` is set on .global-search-modal,
     so the JS-toggled Tailwind `.hidden` (display:none) keeps working. */
  .global-search-modal {
    position: fixed;
    inset: 0;
    z-index: 80;
    font-family: var(--sans);
  }

  .global-search-backdrop {
    position: absolute;
    inset: 0;
    border: 0;
    background: rgba(19, 28, 31, 0.5);
    backdrop-filter: blur(8px);
  }

  .global-search-dialog {
    position: relative;
    z-index: 1;
    width: min(92vw, 54rem);
    margin: clamp(4.5rem, 10vh, 7rem) auto 0;
    animation: global-search-pop 180ms cubic-bezier(0.2, 0.8, 0.2, 1) both;
  }

  .global-search-shell {
    overflow: hidden;
    border: 1px solid var(--line);
    border-radius: 24px;
    background: var(--cream);
    box-shadow:
      0 1px 0 rgba(29, 57, 53, 0.06),
      0 30px 80px -30px rgba(29, 57, 53, 0.35);
  }

  .global-search-head {
    display: flex;
    align-items: flex-start;
    justify-content: space-between;
    gap: 1rem;
    padding: 1.5rem 1.5rem 1rem;
  }

  .global-search-eyebrow {
    margin: 0 0 0.4rem;
    color: var(--ink-3);
    font-family: var(--sans);
    font-size: 11px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
  }

  .global-search-title {
    margin: 0;
    color: var(--ink);
    font-family: var(--serif);
    font-size: clamp(1.4rem, 2vw, 1.85rem);
    font-weight: 700;
    line-height: 1.0;
    letter-spacing: -0.02em;
  }

  .global-search-close {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.5rem;
    height: 2.5rem;
    border: 0;
    border-radius: 999px;
    background: var(--cream-2);
    color: var(--ink-2);
    transition: background-color 150ms ease, color 150ms ease, transform 150ms ease;
  }

  .global-search-close:hover,
  .global-search-close:focus-visible {
    background: var(--cream-3);
    color: var(--ink);
    transform: translateY(-1px);
    outline: none;
  }

  .global-search-close .material-symbols-outlined {
    font-size: 1.25rem;
  }

  .global-search-input-shell {
    position: relative;
    margin: 0 1.5rem;
  }

  .global-search-input-icon {
    position: absolute;
    top: 50%;
    left: 1.15rem;
    transform: translateY(-50%);
    color: var(--ink-3);
    font-size: 1.4rem;
    pointer-events: none;
  }

  .global-search-input {
    width: 100%;
    min-height: 4rem;
    padding: 1.1rem 4rem 1.1rem 3.5rem;
    border: 1px solid var(--line);
    border-radius: 16px;
    background: #fff;
    box-shadow: 0 1px 2px rgba(29, 57, 53, 0.04);
    color: var(--ink);
    font-family: var(--sans);
    font-size: clamp(1rem, 2vw, 1.15rem);
    font-weight: 500;
    line-height: 1.2;
  }

  .global-search-input::placeholder {
    color: var(--ink-3);
  }

  .global-search-input:focus {
    outline: none;
    border-color: var(--coral);
    box-shadow: 0 0 0 4px rgba(232, 95, 51, 0.16);
  }

  .global-search-clear {
    position: absolute;
    top: 50%;
    right: 0.9rem;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 2.25rem;
    height: 2.25rem;
    border: 0;
    border-radius: 999px;
    background: var(--cream-2);
    color: var(--ink-2);
    transition: background-color 150ms ease, color 150ms ease;
  }

  .global-search-clear:hover,
  .global-search-clear:focus-visible {
    background: var(--cream-3);
    color: var(--ink);
    outline: none;
  }

  .global-search-clear .material-symbols-outlined {
    font-size: 1.1rem;
  }

  .global-search-meta {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.9rem 1.5rem 0;
  }

  .global-search-status {
    display: inline-flex;
    align-items: center;
    gap: 0.6rem;
    min-height: 1.75rem;
    color: var(--ink-3);
    font-family: var(--sans);
    font-size: 0.85rem;
    font-weight: 500;
    line-height: 1.3;
  }

  .global-search-status-dot {
    width: 0.55rem;
    height: 0.55rem;
    border-radius: 999px;
    background: var(--ink-4);
    box-shadow: 0 0 0 0 rgba(232, 95, 51, 0.2);
    flex-shrink: 0;
  }

  .global-search-status.is-loading .global-search-status-dot {
    background: var(--coral);
    animation: global-search-pulse 1.4s ease infinite;
  }

  .global-search-status.is-ready .global-search-status-dot {
    background: var(--coral);
  }

  .global-search-status.is-error .global-search-status-dot {
    background: var(--coral-deep);
  }

  .global-search-shortcuts {
    display: flex;
    align-items: center;
    gap: 0.4rem;
    flex-wrap: wrap;
    justify-content: flex-end;
  }

  .global-search-shortcut-pill {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-height: 1.65rem;
    padding: 0 0.55rem;
    border-radius: 999px;
    background: var(--cream-3);
    color: var(--ink-2);
    font-family: var(--sans);
    font-size: 0.72rem;
    font-weight: 600;
    letter-spacing: 0.04em;
    line-height: 1;
  }

  .global-search-results {
    margin: 1rem 1rem 0;
    max-height: min(55vh, 36rem);
    overflow-y: auto;
    padding: 0.3rem;
  }

  .global-search-results::-webkit-scrollbar {
    width: 0.6rem;
  }

  .global-search-results::-webkit-scrollbar-thumb {
    border: 2px solid transparent;
    border-radius: 999px;
    background-clip: padding-box;
    background-color: var(--ink-4);
  }

  .global-search-placeholder {
    display: flex;
    align-items: center;
    gap: 1rem;
    padding: 1rem 1.05rem;
    border: 1px dashed var(--ink-4);
    border-radius: 18px;
    background: var(--cream-2);
  }

  .global-search-placeholder-icon {
    width: 3rem;
    height: 3rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 14px;
    background: rgba(232, 95, 51, 0.12);
    color: var(--coral);
    font-size: 1.5rem;
    flex-shrink: 0;
  }

  .global-search-placeholder-copy {
    min-width: 0;
  }

  .global-search-placeholder-title {
    margin: 0;
    color: var(--ink);
    font-family: var(--sans);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.3;
  }

  .global-search-placeholder-body {
    margin: 0.3rem 0 0;
    color: var(--ink-3);
    font-size: 0.9rem;
    line-height: 1.5;
  }

  .global-search-loading-row {
    display: flex;
    align-items: center;
    gap: 0.75rem;
  }

  .global-search-spinner {
    width: 1rem;
    height: 1rem;
    border: 2px solid rgba(232, 95, 51, 0.2);
    border-top-color: var(--coral);
    border-radius: 999px;
    animation: global-search-spin 0.9s linear infinite;
    flex-shrink: 0;
  }

  .global-search-list {
    display: grid;
    gap: 0.4rem;
  }

  .global-search-hit {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 0.85rem 1rem;
    border: 1px solid transparent;
    border-left: 3px solid transparent;
    border-radius: 14px;
    background: transparent;
    transition: border-color 150ms ease, background-color 150ms ease;
  }

  .global-search-hit:hover,
  .global-search-hit:focus-visible {
    background: var(--cream-2);
    outline: none;
  }

  .global-search-hit.is-active {
    background: rgba(232, 95, 51, 0.1);
    border-left-color: var(--coral);
    outline: none;
  }

  .global-search-hit-main {
    display: flex;
    align-items: flex-start;
    gap: 0.9rem;
    min-width: 0;
  }

  .global-search-hit-icon {
    width: 2.6rem;
    height: 2.6rem;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    border-radius: 12px;
    background: var(--cream-3);
    color: var(--ink-2);
    font-size: 1.3rem;
    flex-shrink: 0;
  }

  .global-search-hit.is-active .global-search-hit-icon {
    background: rgba(232, 95, 51, 0.18);
    color: var(--coral-deep);
  }

  .global-search-hit-copy {
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.18rem;
  }

  .global-search-hit-kicker {
    color: var(--ink-3);
    font-family: var(--sans);
    font-size: 0.68rem;
    font-weight: 600;
    letter-spacing: 0.16em;
    line-height: 1.2;
    text-transform: uppercase;
  }

  .global-search-hit-title {
    color: var(--ink);
    font-family: var(--sans);
    font-size: 1rem;
    font-weight: 600;
    line-height: 1.25;
  }

  .global-search-hit-meta {
    color: var(--ink-3);
    font-size: 0.9rem;
    line-height: 1.45;
  }

  .global-search-hit-trailing {
    display: flex;
    align-items: center;
    gap: 0.55rem;
    flex-shrink: 0;
  }

  .global-search-count {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.9rem;
    min-height: 1.9rem;
    padding: 0 0.65rem;
    border-radius: 999px;
    background: var(--coral);
    color: #fff;
    font-family: var(--sans);
    font-size: 0.82rem;
    font-weight: 600;
    line-height: 1;
  }

  .global-search-arrow {
    color: var(--ink-4);
    font-size: 1.1rem;
    transition: color 150ms ease;
  }

  .global-search-hit:hover .global-search-arrow,
  .global-search-hit.is-active .global-search-arrow {
    color: var(--coral);
  }

  .global-search-footer {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    padding: 1rem 1.5rem 1.25rem;
    border-top: 1px solid var(--line);
    margin-top: 0.75rem;
  }

  .global-search-footer-copy {
    margin: 0;
    color: var(--ink-3);
    font-size: 0.85rem;
    line-height: 1.45;
  }

  .global-search-footer-link {
    display: inline-flex;
    align-items: center;
    gap: 0.4rem;
    color: var(--coral-deep);
    font-family: var(--sans);
    font-size: 0.88rem;
    font-weight: 600;
    line-height: 1;
    transition: color 150ms ease;
  }

  .global-search-footer-link:hover {
    color: var(--coral);
  }

  @keyframes global-search-spin {
    to {
      transform: rotate(360deg);
    }
  }

  @keyframes global-search-pulse {
    0%,
    100% {
      box-shadow: 0 0 0 0 rgba(232, 95, 51, 0.2);
    }
    50% {
      box-shadow: 0 0 0 8px rgba(232, 95, 51, 0);
    }
  }

  @keyframes global-search-pop {
    from {
      opacity: 0;
      transform: translateY(-10px) scale(0.985);
    }
    to {
      opacity: 1;
      transform: translateY(0) scale(1);
    }
  }

  @media (max-width: 768px) {
    .global-search-dialog {
      width: min(96vw, 40rem);
      margin-top: 5.25rem;
    }

    .global-search-head,
    .global-search-meta,
    .global-search-footer {
      padding-inline: 1rem;
    }

    .global-search-input-shell {
      margin-inline: 1rem;
    }

    .global-search-meta,
    .global-search-footer,
    .global-search-hit {
      flex-direction: column;
      align-items: flex-start;
    }

    .global-search-shortcuts,
    .global-search-hit-trailing {
      justify-content: flex-start;
    }

    .global-search-results {
      margin-inline: 0.7rem;
    }
  }

/* ===== static/css/modules/templates/layouts--partials--gyg-extras.css ===== */

/* Extracted from layouts/partials/gyg-extras.html; edit this module directly. */
/* Redesign idiom for the "Also on GetYourGuide" annex — cream cards with
   hairline borders matching .lv-video, coral arrow-disc Book affordance
   echoing the hero .lv-ticket-quiet teaser. */
.lv-gyg-extras { margin-block: 56px; }
.lv-gyg-extras .head {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 24px;
  flex-wrap: wrap;
  margin-bottom: 28px;
}
.lv-gyg-extras .head .kicker { color: var(--coral-deep); margin: 0 0 8px; }
.lv-gyg-extras .head .ttl {
  margin: 0;
  font-size: 34px;
  letter-spacing: -0.02em;
  line-height: 1.05;
  color: var(--ink);
}
.lv-gyg-extras .head .note {
  margin: 0;
  max-width: 300px;
  font-size: 14px;
  line-height: 1.5;
  color: var(--ink-3);
}
.lv-gyg-grid {
  display: grid;
  grid-template-columns: repeat(auto-fit, minmax(min(260px, 100%), 1fr));
  gap: 20px;
}
.lv-gyg {
  display: flex;
  flex-direction: column;
  background: var(--cream-2);
  border: 1px solid var(--line);
  border-radius: 24px;
  overflow: hidden;
  text-decoration: none;
  transition: transform .3s ease, box-shadow .3s ease, border-color .3s ease;
}
.lv-gyg:hover {
  transform: translateY(-3px);
  border-color: var(--coral);
  box-shadow: 0 20px 44px -20px rgba(29, 57, 53, 0.4);
}
.lv-gyg .frame {
  position: relative;
  aspect-ratio: 16 / 10;
  background: var(--ink);
  overflow: hidden;
}
.lv-gyg .frame img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  transition: transform .5s ease;
}
.lv-gyg:hover .frame img { transform: scale(1.05); }
.lv-gyg .frame .pill.tag {
  position: absolute;
  top: 12px;
  left: 12px;
  padding: 6px 12px;
  background: rgba(250, 242, 226, 0.92);
  color: var(--ink-2);
  font-size: 11px;
  pointer-events: none;
}
.lv-gyg .body {
  display: flex;
  flex-direction: column;
  flex: 1;
  padding: 16px 18px 18px;
}
.lv-gyg .body h3 {
  margin: 0;
  font-family: var(--serif);
  font-size: 17px;
  font-weight: 700;
  line-height: 1.28;
  letter-spacing: -0.015em;
  color: var(--ink);
  display: -webkit-box;
  -webkit-line-clamp: 3;
  -webkit-box-orient: vertical;
  overflow: hidden;
}
.lv-gyg .body .sub {
  margin-top: 9px;
  color: var(--ink-3);
  display: flex;
  flex-direction: column;
  align-items: flex-start;
  gap: 5px;
}
.lv-gyg .body .sub > span { display: inline-flex; align-items: center; gap: 4px; }
.lv-gyg .body .sub .dot { display: none; }
.lv-gyg .body .sub .rate .line-icon { color: var(--coral); }
.lv-gyg .foot {
  margin-top: auto;
  padding-top: 14px;
  display: flex;
  align-items: flex-end;
  justify-content: space-between;
  gap: 12px;
  border-top: 1px solid var(--line);
}
.lv-gyg .foot > div { min-width: 0; }
.lv-gyg .foot .from { margin: 0 0 2px; color: var(--ink-3); font-size: 10px; }
.lv-gyg .foot .price {
  margin: 0;
  font-family: var(--serif);
  font-size: 22px;
  font-weight: 700;
  color: var(--ink);
  line-height: 1;
}
.lv-gyg .foot .book {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  font-family: var(--sans);
  font-size: 12.5px;
  font-weight: 600;
  color: var(--ink-2);
  white-space: nowrap;
}
.lv-gyg .foot .book .go {
  display: grid;
  place-items: center;
  width: 28px;
  height: 28px;
  border-radius: 50%;
  background: var(--coral);
  color: #fff;
  transition: transform .25s ease;
}
.lv-gyg:hover .foot .book .go { transform: translateX(3px); }
.lv-gyg-extras .disclosure {
  margin: 18px 0 0;
  text-align: center;
  font-size: 12px;
  color: var(--ink-3);
}

/* ===== static/css/modules/templates/layouts--partials--head-home.css ===== */

/* Extracted from layouts/partials/head-home.html; edit this module directly. */
/* Self-hosted Inter (body font) */
    @font-face {
      font-family: 'Inter';
      font-style: normal;
      font-weight: 400 600;
      font-display: swap;
      src: url('/assets/fonts/Inter-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: 'Inter';
      font-style: normal;
      font-weight: 400 600;
      font-display: swap;
      src: url('/assets/fonts/Inter-latin-ext.woff2') format('woff2');
      unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
    }
    @font-face {
      font-family: 'Inter';
      font-style: normal;
      font-weight: 400 600;
      font-display: swap;
      src: url('/assets/fonts/Inter-cyrillic.woff2') format('woff2');
      unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
    }
    /* Self-hosted Plus Jakarta Sans (label/heading font) */
    @font-face {
      font-family: 'Plus Jakarta Sans';
      font-style: normal;
      font-weight: 500 700;
      font-display: swap;
      src: url('/assets/fonts/PlusJakartaSans-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: 'Plus Jakarta Sans';
      font-style: normal;
      font-weight: 500 700;
      font-display: swap;
      src: url('/assets/fonts/PlusJakartaSans-latin-ext.woff2') format('woff2');
      unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
    }
    /* Self-hosted Agrandir */
    @font-face {
      font-family: 'Agrandir';
      src: url('/assets/fonts/Agrandir-TextBold.otf') format('opentype');
      font-weight: 700;
      font-style: normal;
      font-display: swap;
    }
    /* Self-hosted Material Symbols */
    @font-face {
      font-family: 'Material Symbols Outlined';
      font-style: normal;
      font-weight: 400;
      font-display: swap;
      src: url('/assets/fonts/MaterialSymbolsOutlined.woff2') format('woff2');
    }
    .material-symbols-outlined {
      font-family: 'Material Symbols Outlined';
      font-weight: normal;
      font-style: normal;
      font-size: 24px;
      line-height: 1;
      letter-spacing: normal;
      text-transform: none;
      display: inline-block;
      white-space: nowrap;
      word-wrap: normal;
      direction: ltr;
      font-feature-settings: 'liga';
      -moz-font-feature-settings: 'liga';
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
      vertical-align: middle;
    }
    .editorial-shadow {
      box-shadow: 0 30px 60px -12px rgba(28, 27, 27, 0.08);
    }
    @keyframes hero-float {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(-8px); }
    }
    @keyframes best-value-pulse {
      0%, 100% {
        transform: translateY(0) scale(1);
        box-shadow: 0 8px 18px -12px rgba(0, 75, 56, 0.45);
      }
      50% {
        transform: translateY(-1px) scale(1.03);
        box-shadow: 0 14px 28px -14px rgba(0, 75, 56, 0.55);
      }
    }
    @keyframes best-value-sheen {
      0% { transform: translateX(-140%) skewX(-18deg); opacity: 0; }
      18% { opacity: 0.18; }
      40%, 100% { transform: translateX(220%) skewX(-18deg); opacity: 0; }
    }
    @media (prefers-reduced-motion: reduce) {
      .hero-float { animation: none !important; }
      .best-value-pill { animation: none !important; }
      .best-value-pill::after { animation: none !important; }
    }

    /* iPhone 17 Pro Device Mockup */
    .device-mockup { display: inline-block; width: 100%; max-width: var(--device-max-width, 280px); }
    .device-mockup__body {
      position: relative; aspect-ratio: 719 / 1500;
      border-radius: 11% / 5.28%; padding: 2.4%;
      background: var(--frame-color);
      box-shadow: inset 0 1px 0 0 var(--frame-highlight), inset 0 -1px 0 0 var(--frame-shadow),
        0 20px 60px -15px rgba(0,0,0,0.35), 0 8px 24px -8px rgba(0,0,0,0.2), 0 2px 8px rgba(0,0,0,0.12);
    }
    .device-mockup__button { position: absolute; background: var(--frame-color); border-radius: 2px; }
    .device-mockup__button--power { right: -2.5px; top: 22%; width: 2.5px; height: 12%; border-radius: 0 2px 2px 0; box-shadow: 1px 0 2px rgba(0,0,0,0.15); }
    .device-mockup__button--vol-up { left: -2.5px; top: 18%; width: 2.5px; height: 7%; border-radius: 2px 0 0 2px; box-shadow: -1px 0 2px rgba(0,0,0,0.15); }
    .device-mockup__button--vol-down { left: -2.5px; top: 27%; width: 2.5px; height: 7%; border-radius: 2px 0 0 2px; box-shadow: -1px 0 2px rgba(0,0,0,0.15); }
    .device-mockup__screen { position: relative; width: 100%; height: 100%; border-radius: 9% / 4.2%; overflow: hidden; background: #000; }
    .device-mockup__dynamic-island { position: absolute; top: 1.2%; left: 50%; transform: translateX(-50%); width: 28%; height: 2.4%; min-height: 10px; background: #000; border-radius: 100px; z-index: 10; display: flex; align-items: center; justify-content: flex-end; padding-right: 20%; }
    .device-mockup__di-camera { width: 18%; aspect-ratio: 1; min-width: 4px; border-radius: 50%; background: radial-gradient(circle at 40% 40%, #1a1a2e 0%, #0a0a15 100%); box-shadow: inset 0 0 1px rgba(255,255,255,0.1); }
    .device-mockup__image { width: 100%; height: 100%; object-fit: cover; object-position: top center; display: block; }
    .best-value-col {
      position: relative;
      box-shadow: inset 0 1px 0 rgba(0, 75, 56, 0.04);
    }
    .best-value-col--head {
      box-shadow:
        inset 0 1px 0 rgba(0, 75, 56, 0.06),
        0 10px 24px -24px rgba(0, 75, 56, 0.3);
    }
    .best-value-pill {
      position: relative;
      overflow: hidden;
      background: linear-gradient(135deg, #004b38 0%, #0a6b52 100%);
      animation: best-value-pulse 2.8s ease-in-out infinite;
    }
    .best-value-pill::after {
      content: "";
      position: absolute;
      inset: -20% auto -20% -30%;
      width: 36%;
      background: linear-gradient(90deg, rgba(255,255,255,0), rgba(255,255,255,0.6), rgba(255,255,255,0));
      animation: best-value-sheen 3.8s ease-in-out infinite;
      pointer-events: none;
    }
    /* Colors */
    .device-mockup--silver { --frame-color: linear-gradient(145deg, #E2E2E7 0%, #C8C8CD 15%, #D8D8DD 50%, #B8B8BD 85%, #D0D0D5 100%); --frame-highlight: rgba(255,255,255,0.6); --frame-shadow: rgba(0,0,0,0.15); }
    .device-mockup--cosmic-orange { --frame-color: linear-gradient(145deg, #E8935A 0%, #D4743B 15%, #DC8350 50%, #C06830 85%, #D87D48 100%); --frame-highlight: rgba(255,200,150,0.5); --frame-shadow: rgba(120,60,20,0.25); }
    .device-mockup--deep-blue { --frame-color: linear-gradient(145deg, #3B4F7A 0%, #1C2541 15%, #2B3A67 50%, #15203A 85%, #253260 100%); --frame-highlight: rgba(100,140,200,0.3); --frame-shadow: rgba(10,15,30,0.4); }
    @media (max-width: 768px) { .device-mockup { max-width: min(var(--device-max-width, 280px), 240px); } }
    @media (max-width: 480px) { .device-mockup { max-width: min(var(--device-max-width, 280px), 200px); } .device-mockup__button { display: none; } }

    /* Trip Briefing animation */
    .briefing-animation {
      position: relative;
      display: flex;
      flex-direction: column;
      height: 100%;
      padding: 3.75rem 0.82rem 0.78rem;
      background:
        radial-gradient(circle at 20% 15%, rgba(255,255,255,0.95) 0%, rgba(255,255,255,0) 32%),
        radial-gradient(circle at 82% 20%, rgba(253, 209, 187, 0.75) 0%, rgba(253, 209, 187, 0) 34%),
        linear-gradient(180deg, #fff8f4 0%, #f7ece6 42%, #f2e7de 100%);
      overflow: hidden;
      isolation: isolate;
    }
    .briefing-animation__backdrop {
      position: absolute;
      inset: -10% -18% auto auto;
      width: 78%;
      height: 44%;
      background:
        radial-gradient(circle at 50% 50%, rgba(255,255,255,0.55) 0%, rgba(255,255,255,0) 58%),
        conic-gradient(from 180deg at 50% 50%, rgba(0, 75, 56, 0.08), rgba(0, 75, 56, 0.02), rgba(157, 66, 40, 0.14), rgba(0, 75, 56, 0.08));
      filter: blur(6px);
      opacity: 0.9;
      animation: briefing-ambient 6.8s ease-in-out infinite;
      pointer-events: none;
      z-index: 0;
    }
    .briefing-animation__header,
    .briefing-animation__cards,
    .briefing-animation__footer {
      position: relative;
      z-index: 1;
    }
    .briefing-animation__header {
      display: flex;
      flex-direction: column;
      gap: 0.6rem;
      margin-bottom: 0.65rem;
    }
    .briefing-animation__eyebrow {
      align-self: flex-start;
      padding: 0.45rem 0.8rem;
      border: 1px solid rgba(0, 75, 56, 0.12);
      border-radius: 999px;
      background: rgba(255,255,255,0.76);
      color: #004b38;
      font: 700 0.62rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.16em;
      text-transform: uppercase;
      box-shadow: 0 12px 28px -18px rgba(0, 75, 56, 0.28);
      opacity: 0;
      transform: translateY(10px);
      animation: briefing-reveal 6.8s infinite;
    }
    .briefing-animation__title-block {
      opacity: 0;
      transform: translateY(18px);
      animation: briefing-reveal 6.8s infinite 180ms;
    }
    .briefing-animation__kicker {
      margin: 0 0 0.25rem;
      color: rgba(28, 27, 27, 0.58);
      font: 600 0.68rem/1.2 'Inter', sans-serif;
      letter-spacing: 0.01em;
    }
    .briefing-animation__title {
      margin: 0;
      color: #1c1b1b;
      font: 700 1rem/1.08 'Agrandir', 'Noto Serif', serif;
      letter-spacing: -0.03em;
    }
    .briefing-animation__progress {
      height: 0.35rem;
      border-radius: 999px;
      background: rgba(0, 75, 56, 0.09);
      overflow: hidden;
      opacity: 0;
      animation: briefing-reveal 6.8s infinite 360ms;
    }
    .briefing-animation__progress-fill {
      width: 0;
      height: 100%;
      border-radius: inherit;
      background: linear-gradient(90deg, #9d4228 0%, #c95b37 42%, #004b38 100%);
      animation: briefing-progress 6.8s infinite;
    }
    .briefing-animation__cards {
      display: flex;
      flex-direction: column;
      gap: 0.42rem;
      margin-top: 0.1rem;
    }
    .briefing-animation__card {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 0.52rem;
      padding: 0.62rem 0.64rem;
      border: 1px solid rgba(0, 75, 56, 0.08);
      border-radius: 1rem;
      background: rgba(255,255,255,0.84);
      box-shadow:
        0 14px 30px -22px rgba(28, 27, 27, 0.24),
        inset 0 1px 0 rgba(255,255,255,0.65);
      backdrop-filter: blur(10px);
      opacity: 0;
      transform: translateY(18px) scale(0.97);
      animation: briefing-card-reveal 6.8s infinite;
    }
    .briefing-animation__card:nth-child(2) { animation-delay: 260ms; }
    .briefing-animation__card:nth-child(3) { animation-delay: 520ms; }
    .briefing-animation__card-index {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      width: 1.55rem;
      height: 1.55rem;
      border-radius: 999px;
      background: linear-gradient(135deg, rgba(0,75,56,0.12), rgba(157,66,40,0.18));
      color: #004b38;
      font: 700 0.58rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.08em;
    }
    .briefing-animation__card-copy {
      min-width: 0;
    }
    .briefing-animation__card-label {
      margin: 0 0 0.2rem;
      color: #1c1b1b;
      font: 700 0.68rem/1.2 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.01em;
    }
    .briefing-animation__card-text {
      margin: 0;
      color: rgba(28, 27, 27, 0.72);
      font: 500 0.58rem/1.32 'Inter', sans-serif;
    }
    .briefing-animation__footer {
      display: flex;
      flex-wrap: wrap;
      gap: 0.3rem;
      margin-top: auto;
      padding-top: 0.5rem;
    }
    .briefing-animation__chip {
      padding: 0.3rem 0.46rem;
      border-radius: 999px;
      background: rgba(0, 75, 56, 0.08);
      color: #004b38;
      font: 700 0.5rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.12em;
      text-transform: uppercase;
      opacity: 0;
      transform: translateY(12px);
      animation: briefing-chip-reveal 6.8s infinite;
    }
    .briefing-animation__chip:nth-child(2) { animation-delay: 180ms; }
    .briefing-animation__chip:nth-child(3) { animation-delay: 360ms; }
    @keyframes briefing-ambient {
      0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
      50% { transform: translate3d(-5%, 4%, 0) scale(1.06); }
    }
    @keyframes briefing-reveal {
      0%, 10% { opacity: 0; transform: translateY(16px); }
      18%, 84% { opacity: 1; transform: translateY(0); }
      100% { opacity: 0; transform: translateY(-6px); }
    }
    @keyframes briefing-progress {
      0%, 12% { width: 0; }
      34%, 84% { width: 100%; }
      100% { width: 100%; }
    }
    @keyframes briefing-card-reveal {
      0%, 18% { opacity: 0; transform: translateY(18px) scale(0.97); }
      28%, 84% { opacity: 1; transform: translateY(0) scale(1); }
      100% { opacity: 0; transform: translateY(-8px) scale(0.985); }
    }
    @keyframes briefing-chip-reveal {
      0%, 40% { opacity: 0; transform: translateY(12px); }
      52%, 84% { opacity: 1; transform: translateY(0); }
      100% { opacity: 0; transform: translateY(-6px); }
    }
    @media (prefers-reduced-motion: reduce) {
      .briefing-animation__backdrop,
      .briefing-animation__eyebrow,
      .briefing-animation__title-block,
      .briefing-animation__progress,
      .briefing-animation__progress-fill,
      .briefing-animation__card,
      .briefing-animation__chip {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
      }
      .briefing-animation__progress-fill { width: 100% !important; }
    }

    /* Plan My Trip animation */
    .plantrip-animation {
      position: relative;
      display: flex;
      flex-direction: column;
      height: 100%;
      padding: 3.55rem 0.76rem 0.72rem;
      background:
        radial-gradient(circle at 22% 14%, rgba(134, 214, 184, 0.2) 0%, rgba(134, 214, 184, 0) 34%),
        radial-gradient(circle at 82% 18%, rgba(161, 243, 211, 0.2) 0%, rgba(161, 243, 211, 0) 36%),
        linear-gradient(180deg, #f5f8fb 0%, #edf2f7 46%, #e5edf4 100%);
      overflow: hidden;
      isolation: isolate;
    }
    .plantrip-animation__glow {
      position: absolute;
      inset: auto -12% 42% auto;
      width: 72%;
      height: 36%;
      background:
        radial-gradient(circle at 50% 50%, rgba(255,255,255,0.6) 0%, rgba(255,255,255,0) 56%),
        conic-gradient(from 180deg at 50% 50%, rgba(59, 79, 122, 0.14), rgba(0, 75, 56, 0.08), rgba(134, 214, 184, 0.18), rgba(59, 79, 122, 0.14));
      filter: blur(8px);
      animation: plantrip-glow 6.8s ease-in-out infinite;
      pointer-events: none;
      z-index: 0;
    }
    .plantrip-animation__header,
    .plantrip-animation__chips,
    .plantrip-animation__route,
    .plantrip-animation__footer {
      position: relative;
      z-index: 1;
    }
    .plantrip-animation__header {
      display: flex;
      flex-direction: column;
      gap: 0.45rem;
      margin-bottom: 0.45rem;
    }
    .plantrip-animation__eyebrow {
      align-self: flex-start;
      padding: 0.4rem 0.74rem;
      border-radius: 999px;
      border: 1px solid rgba(59, 79, 122, 0.12);
      background: rgba(255,255,255,0.78);
      color: #2b3a67;
      font: 700 0.58rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      opacity: 0;
      transform: translateY(12px);
      animation: plantrip-rise 6.8s infinite;
      box-shadow: 0 10px 26px -18px rgba(28, 37, 65, 0.35);
    }
    .plantrip-animation__title-block {
      opacity: 0;
      transform: translateY(14px);
      animation: plantrip-rise 6.8s infinite 160ms;
    }
    .plantrip-animation__kicker {
      margin: 0 0 0.2rem;
      color: rgba(28, 37, 65, 0.58);
      font: 600 0.68rem/1.2 'Inter', sans-serif;
    }
    .plantrip-animation__title {
      margin: 0;
      color: #1c2541;
      font: 700 0.9rem/1.06 'Agrandir', 'Noto Serif', serif;
      letter-spacing: -0.03em;
    }
    .plantrip-animation__chips {
      display: flex;
      flex-wrap: wrap;
      gap: 0.26rem;
      margin-bottom: 0.46rem;
    }
    .plantrip-animation__chip {
      padding: 0.3rem 0.48rem;
      border-radius: 999px;
      background: rgba(43, 58, 103, 0.08);
      color: #2b3a67;
      font: 700 0.5rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.09em;
      text-transform: uppercase;
      opacity: 0;
      transform: translateY(10px);
      animation: plantrip-chip 6.8s infinite;
    }
    .plantrip-animation__chip:nth-child(2) { animation-delay: 180ms; }
    .plantrip-animation__chip:nth-child(3) { animation-delay: 360ms; }
    .plantrip-animation__route {
      position: relative;
      display: flex;
      flex-direction: column;
      gap: 0.32rem;
      padding-left: 0.84rem;
    }
    .plantrip-animation__line {
      position: absolute;
      left: 0.33rem;
      top: 0.45rem;
      bottom: 0.9rem;
      width: 2px;
      border-radius: 999px;
      background: rgba(43, 58, 103, 0.12);
      overflow: hidden;
    }
    .plantrip-animation__line::after {
      content: "";
      position: absolute;
      inset: 0 0 auto 0;
      height: 0;
      border-radius: inherit;
      background: linear-gradient(180deg, #86d6b8 0%, #3b4f7a 100%);
      animation: plantrip-line 6.8s infinite;
    }
    .plantrip-animation__stop {
      position: relative;
      display: flex;
      align-items: flex-start;
      gap: 0.42rem;
      opacity: 0;
      transform: translateY(14px);
      animation: plantrip-stop 6.8s infinite;
    }
    .plantrip-animation__stop:nth-child(2) { animation-delay: 780ms; }
    .plantrip-animation__stop:nth-child(3) { animation-delay: 1120ms; }
    .plantrip-animation__stop:nth-child(4) { animation-delay: 1460ms; }
    .plantrip-animation__stop:nth-child(5) { animation-delay: 1800ms; }
    .plantrip-animation__dot {
      position: absolute;
      left: -0.9rem;
      top: 0.55rem;
      width: 0.68rem;
      height: 0.68rem;
      border-radius: 50%;
      background: linear-gradient(135deg, #86d6b8 0%, #3b4f7a 100%);
      box-shadow: 0 0 0 4px rgba(252,249,248,0.95);
    }
    .plantrip-animation__stop-card {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 0.5rem;
      width: 100%;
      padding: 0.58rem 0.58rem;
      border-radius: 0.95rem;
      border: 1px solid rgba(43, 58, 103, 0.08);
      background: rgba(255,255,255,0.82);
      box-shadow: 0 12px 28px -22px rgba(28, 37, 65, 0.35), inset 0 1px 0 rgba(255,255,255,0.65);
      backdrop-filter: blur(10px);
    }
    .plantrip-animation__time {
      display: inline-flex;
      align-items: center;
      justify-content: center;
      min-width: 2.22rem;
      height: 1.26rem;
      padding: 0 0.38rem;
      border-radius: 999px;
      background: rgba(134, 214, 184, 0.22);
      color: #1c2541;
      font: 700 0.46rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.08em;
    }
    .plantrip-animation__label {
      margin: 0 0 0.18rem;
      color: #1c2541;
      font: 700 0.62rem/1.2 'Plus Jakarta Sans', sans-serif;
    }
    .plantrip-animation__text {
      margin: 0;
      color: rgba(28, 37, 65, 0.72);
      font: 500 0.52rem/1.26 'Inter', sans-serif;
    }
    .plantrip-animation__footer {
      display: flex;
      flex-direction: column;
      gap: 0.28rem;
      margin-top: auto;
      padding-top: 0.38rem;
    }
    .plantrip-animation__summary {
      align-self: flex-start;
      padding: 0.3rem 0.46rem;
      border-radius: 999px;
      background: rgba(28, 37, 65, 0.88);
      color: #fcf9f8;
      font: 700 0.46rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.08em;
      text-transform: uppercase;
      opacity: 0;
      transform: translateY(10px);
      animation: plantrip-chip 6.8s infinite 2.1s;
    }
    .plantrip-animation__summary:nth-child(2) {
      animation-delay: 2.35s;
      background: rgba(0, 75, 56, 0.9);
    }
    @keyframes plantrip-glow {
      0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
      50% { transform: translate3d(-4%, 5%, 0) scale(1.08); }
    }
    @keyframes plantrip-rise {
      0%, 10% { opacity: 0; transform: translateY(14px); }
      18%, 84% { opacity: 1; transform: translateY(0); }
      100% { opacity: 0; transform: translateY(-6px); }
    }
    @keyframes plantrip-chip {
      0%, 16% { opacity: 0; transform: translateY(10px); }
      24%, 84% { opacity: 1; transform: translateY(0); }
      100% { opacity: 0; transform: translateY(-6px); }
    }
    @keyframes plantrip-line {
      0%, 24% { height: 0; }
      54%, 84% { height: 100%; }
      100% { height: 100%; }
    }
    @keyframes plantrip-stop {
      0%, 26% { opacity: 0; transform: translateY(14px); }
      36%, 84% { opacity: 1; transform: translateY(0); }
      100% { opacity: 0; transform: translateY(-6px); }
    }
    @media (prefers-reduced-motion: reduce) {
      .plantrip-animation__glow,
      .plantrip-animation__eyebrow,
      .plantrip-animation__title-block,
      .plantrip-animation__chip,
      .plantrip-animation__line::after,
      .plantrip-animation__stop,
      .plantrip-animation__summary {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
      }
      .plantrip-animation__line::after { height: 100% !important; }
    }

    /* Research pipeline animation */
    .pipeline-animation {
      position: relative;
      width: min(100%, 40rem);
      padding: 1.15rem;
      border-radius: 2rem;
      border: 1px solid rgba(0, 75, 56, 0.08);
      background:
        radial-gradient(circle at 14% 16%, rgba(161, 243, 211, 0.34) 0%, rgba(161, 243, 211, 0) 26%),
        radial-gradient(circle at 88% 18%, rgba(249, 196, 228, 0.22) 0%, rgba(249, 196, 228, 0) 24%),
        linear-gradient(180deg, rgba(255,255,255,0.86) 0%, rgba(246,243,242,0.96) 100%);
      box-shadow: 0 28px 60px -34px rgba(28, 27, 27, 0.22);
      overflow: hidden;
      isolation: isolate;
    }
    .pipeline-animation__halo {
      position: absolute;
      inset: auto auto -18% -12%;
      width: 56%;
      height: 52%;
      background:
        radial-gradient(circle at 50% 50%, rgba(255,255,255,0.42) 0%, rgba(255,255,255,0) 58%),
        conic-gradient(from 180deg at 50% 50%, rgba(0, 75, 56, 0.16), rgba(134, 214, 184, 0.12), rgba(157, 66, 40, 0.14), rgba(0, 75, 56, 0.16));
      filter: blur(12px);
      opacity: 0.85;
      animation: pipeline-halo 7s ease-in-out infinite;
      z-index: 0;
      pointer-events: none;
    }
    .pipeline-animation__header,
    .pipeline-animation__canvas,
    .pipeline-animation__personalization {
      position: relative;
      z-index: 1;
    }
    .pipeline-animation__header {
      max-width: 24rem;
      margin-bottom: 1rem;
    }
    .pipeline-animation__eyebrow {
      margin: 0 0 0.35rem;
      color: #004b38;
      font: 700 0.66rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      opacity: 0;
      transform: translateY(10px);
      animation: pipeline-rise 7s infinite;
    }
    .pipeline-animation__title {
      margin: 0;
      color: #1c1b1b;
      font: 700 1.28rem/1.08 'Agrandir', 'Noto Serif', serif;
      letter-spacing: -0.03em;
      opacity: 0;
      transform: translateY(14px);
      animation: pipeline-rise 7s infinite 180ms;
    }
    .pipeline-animation__canvas {
      position: relative;
      display: grid;
      grid-template-columns: minmax(13rem, 1fr) auto minmax(13rem, 1fr);
      gap: 1.35rem;
      align-items: center;
      min-height: 18.5rem;
      padding: 1rem;
      border-radius: 1.5rem;
      background: rgba(255,255,255,0.58);
      border: 1px solid rgba(0, 75, 56, 0.06);
      backdrop-filter: blur(10px);
    }
    .pipeline-animation__stage-label {
      margin: 0 0 0.6rem;
      color: rgba(28, 27, 27, 0.52);
      font: 700 0.62rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.18em;
      text-transform: uppercase;
    }
    .pipeline-animation__stage--sources,
    .pipeline-animation__stage--output {
      display: flex;
      flex-direction: column;
      gap: 0.52rem;
    }
    .pipeline-animation__source-card,
    .pipeline-animation__guide-card {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 0.58rem;
      align-items: start;
      padding: 0.78rem 0.82rem;
      border-radius: 1.1rem;
      background: rgba(255,255,255,0.82);
      border: 1px solid rgba(0, 75, 56, 0.08);
      box-shadow: 0 14px 28px -24px rgba(28, 27, 27, 0.2);
      opacity: 0;
      transform: translateY(14px) scale(0.98);
      animation: pipeline-card 7s infinite;
    }
    .pipeline-animation__source-card:nth-child(2) { animation-delay: 560ms; }
    .pipeline-animation__source-card:nth-child(3) { animation-delay: 820ms; }
    .pipeline-animation__source-card:nth-child(4) { animation-delay: 1080ms; }
    .pipeline-animation__guide-card:nth-child(2) { animation-delay: 2.9s; }
    .pipeline-animation__guide-card:nth-child(3) { animation-delay: 3.15s; }
    .pipeline-animation__guide-card:nth-child(4) { animation-delay: 3.4s; }
    .pipeline-animation__guide-card {
      grid-template-columns: 1fr;
    }
    .pipeline-animation__guide-card--accent {
      border-color: rgba(0, 75, 56, 0.14);
      background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(161, 243, 211, 0.22) 100%);
    }
    .pipeline-animation__source-dot {
      display: inline-flex;
      width: 0.75rem;
      height: 0.75rem;
      margin-top: 0.2rem;
      border-radius: 50%;
      background: linear-gradient(135deg, #86d6b8 0%, #004b38 100%);
      box-shadow: 0 0 0 4px rgba(161, 243, 211, 0.2);
    }
    .pipeline-animation__source-title,
    .pipeline-animation__guide-label {
      margin: 0 0 0.18rem;
      color: #1c1b1b;
      font: 700 0.78rem/1.2 'Plus Jakarta Sans', sans-serif;
    }
    .pipeline-animation__source-text,
    .pipeline-animation__guide-text {
      margin: 0;
      color: rgba(28, 27, 27, 0.7);
      font: 500 0.68rem/1.38 'Inter', sans-serif;
    }
    .pipeline-animation__spine {
      position: relative;
      width: 6.5rem;
      height: 100%;
      min-height: 14rem;
    }
    .pipeline-animation__beam {
      position: absolute;
      top: 50%;
      width: 100%;
      height: 2px;
      border-radius: 999px;
      background: rgba(0, 75, 56, 0.08);
      overflow: hidden;
      transform: translateY(-50%);
    }
    .pipeline-animation__beam::after {
      content: "";
      position: absolute;
      top: 0;
      bottom: 0;
      left: -34%;
      width: 34%;
      border-radius: inherit;
      background: linear-gradient(90deg, rgba(161,243,211,0), rgba(0,75,56,0.8), rgba(157,66,40,0));
      animation: pipeline-beam 7s linear infinite;
    }
    .pipeline-animation__beam--right::after {
      animation-delay: 2.2s;
    }
    .pipeline-animation__core {
      position: absolute;
      left: 50%;
      top: 50%;
      width: 8.4rem;
      height: 8.4rem;
      transform: translate(-50%, -50%);
      display: grid;
      place-items: center;
      pointer-events: none;
    }
    .pipeline-animation__core-ring {
      position: absolute;
      border-radius: 50%;
      border: 1px solid rgba(0, 75, 56, 0.12);
      opacity: 0;
      transform: scale(0.88);
      animation: pipeline-ring 7s infinite;
    }
    .pipeline-animation__core-ring--outer {
      inset: 0;
    }
    .pipeline-animation__core-ring--inner {
      inset: 0.8rem;
      animation-delay: 280ms;
    }
    .pipeline-animation__core-body {
      position: relative;
      width: 5.9rem;
      height: 5.9rem;
      padding: 0.95rem 0.72rem;
      border-radius: 1.7rem;
      background: linear-gradient(180deg, rgba(255,255,255,0.94) 0%, rgba(161, 243, 211, 0.16) 100%);
      border: 1px solid rgba(0, 75, 56, 0.12);
      box-shadow: 0 22px 38px -28px rgba(0, 75, 56, 0.45);
      display: flex;
      flex-direction: column;
      justify-content: center;
      text-align: center;
      opacity: 0;
      transform: scale(0.92);
      animation: pipeline-core 7s infinite 1.4s;
    }
    .pipeline-animation__core-kicker {
      margin: 0 0 0.24rem;
      color: #004b38;
      font: 700 0.62rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.14em;
      text-transform: uppercase;
    }
    .pipeline-animation__core-text {
      margin: 0;
      color: #1c1b1b;
      font: 600 0.66rem/1.34 'Inter', sans-serif;
    }
    .pipeline-animation__personalization {
      display: flex;
      flex-wrap: wrap;
      gap: 0.45rem;
      margin-top: 0.8rem;
    }
    .pipeline-animation__profile-chip {
      padding: 0.42rem 0.68rem;
      border-radius: 999px;
      background: rgba(0, 75, 56, 0.08);
      color: #004b38;
      font: 700 0.58rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      opacity: 0;
      transform: translateY(10px);
      animation: pipeline-chip 7s infinite 3.8s;
    }
    .pipeline-animation__profile-chip:nth-child(2) { animation-delay: 4s; }
    .pipeline-animation__profile-chip:nth-child(3) { animation-delay: 4.2s; }
    .pipeline-animation__profile-chip:nth-child(4) { animation-delay: 4.4s; }
    @keyframes pipeline-halo {
      0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
      50% { transform: translate3d(6%, -5%, 0) scale(1.08); }
    }
    @keyframes pipeline-rise {
      0%, 10% { opacity: 0; transform: translateY(12px); }
      18%, 86% { opacity: 1; transform: translateY(0); }
      100% { opacity: 0; transform: translateY(-6px); }
    }
    @keyframes pipeline-card {
      0%, 12% { opacity: 0; transform: translateY(14px) scale(0.98); }
      24%, 86% { opacity: 1; transform: translateY(0) scale(1); }
      100% { opacity: 0; transform: translateY(-8px) scale(0.985); }
    }
    @keyframes pipeline-beam {
      0%, 16% { left: -34%; opacity: 0; }
      24%, 42% { left: 100%; opacity: 1; }
      100% { left: 100%; opacity: 0; }
    }
    @keyframes pipeline-ring {
      0%, 18% { opacity: 0; transform: scale(0.88); }
      30%, 54% { opacity: 1; transform: scale(1); }
      100% { opacity: 0; transform: scale(1.12); }
    }
    @keyframes pipeline-core {
      0%, 18% { opacity: 0; transform: scale(0.92); }
      32%, 86% { opacity: 1; transform: scale(1); }
      100% { opacity: 0; transform: scale(1.04); }
    }
    @keyframes pipeline-chip {
      0%, 42% { opacity: 0; transform: translateY(10px); }
      52%, 86% { opacity: 1; transform: translateY(0); }
      100% { opacity: 0; transform: translateY(-6px); }
    }
    @media (max-width: 768px) {
      .pipeline-animation {
        width: min(100%, 28rem);
        padding: 0.9rem;
      }
      .pipeline-animation__title {
        font-size: 1.06rem;
      }
      .pipeline-animation__canvas {
        grid-template-columns: 1fr;
        gap: 0.8rem;
        min-height: auto;
        padding: 0.85rem;
      }
      .pipeline-animation__spine {
        order: 2;
        width: 100%;
        min-height: 4rem;
      }
      .pipeline-animation__beam {
        top: 50%;
        width: 100%;
      }
      .pipeline-animation__core {
        position: relative;
        left: auto;
        top: auto;
        width: 7rem;
        height: 7rem;
        margin: 0 auto;
        transform: none;
        order: 3;
      }
      .pipeline-animation__stage--output {
        order: 4;
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .pipeline-animation__halo,
      .pipeline-animation__eyebrow,
      .pipeline-animation__title,
      .pipeline-animation__source-card,
      .pipeline-animation__guide-card,
      .pipeline-animation__beam::after,
      .pipeline-animation__core-ring,
      .pipeline-animation__core-body,
      .pipeline-animation__profile-chip {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
      }
    }

    /* Ask Anything concierge animation */
    .concierge-animation {
      position: relative;
      width: min(100%, 40rem);
      padding: 1.15rem;
      border-radius: 2rem;
      border: 1px solid rgba(0, 75, 56, 0.08);
      background:
        radial-gradient(circle at 14% 16%, rgba(161, 243, 211, 0.34) 0%, rgba(161, 243, 211, 0) 26%),
        radial-gradient(circle at 88% 18%, rgba(249, 196, 228, 0.22) 0%, rgba(249, 196, 228, 0) 24%),
        linear-gradient(180deg, rgba(255,255,255,0.86) 0%, rgba(246,243,242,0.96) 100%);
      box-shadow: 0 28px 60px -34px rgba(28, 27, 27, 0.22);
      overflow: hidden;
      isolation: isolate;
    }
    .concierge-animation__glow {
      position: absolute;
      width: 14rem;
      height: 14rem;
      filter: blur(18px);
      opacity: 0.8;
      z-index: 0;
      animation: concierge-drift 7s ease-in-out infinite;
    }
    .concierge-animation__glow--left {
      left: -3rem;
      bottom: -3rem;
      background:
        radial-gradient(circle at 50% 50%, rgba(255,255,255,0.42) 0%, rgba(255,255,255,0) 58%),
        conic-gradient(from 180deg at 50% 50%, rgba(0, 75, 56, 0.16), rgba(134, 214, 184, 0.12), rgba(157, 66, 40, 0.14), rgba(0, 75, 56, 0.16));
    }
    .concierge-animation__glow--right {
      right: -3rem;
      top: -3rem;
      background:
        radial-gradient(circle at 50% 50%, rgba(255,255,255,0.35) 0%, rgba(255,255,255,0) 56%),
        conic-gradient(from 180deg at 50% 50%, rgba(157, 66, 40, 0.16), rgba(249, 196, 228, 0.1), rgba(134, 214, 184, 0.12), rgba(157, 66, 40, 0.16));
      animation-delay: 1.1s;
    }
    .concierge-animation__header,
    .concierge-animation__canvas,
    .concierge-animation__chips {
      position: relative;
      z-index: 1;
    }
    .concierge-animation__header {
      max-width: 24rem;
      margin-bottom: 1rem;
    }
    .concierge-animation__eyebrow {
      margin: 0 0 0.35rem;
      color: #004b38;
      font: 700 0.66rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.18em;
      text-transform: uppercase;
      opacity: 0;
      transform: translateY(10px);
      animation: concierge-rise 7s infinite;
    }
    .concierge-animation__title {
      margin: 0;
      color: #1c1b1b;
      font: 700 1.28rem/1.08 'Agrandir', 'Noto Serif', serif;
      letter-spacing: -0.03em;
      opacity: 0;
      transform: translateY(14px);
      animation: concierge-rise 7s infinite 180ms;
    }
    .concierge-animation__canvas {
      display: grid;
      gap: 0.72rem;
      padding: 1rem;
      border-radius: 1.5rem;
      background: rgba(255,255,255,0.58);
      border: 1px solid rgba(0, 75, 56, 0.06);
      backdrop-filter: blur(10px);
    }
    .concierge-animation__query,
    .concierge-animation__response,
    .concierge-animation__card {
      opacity: 0;
      transform: translateY(14px) scale(0.985);
      animation: concierge-card 7s infinite;
    }
    .concierge-animation__query {
      display: grid;
      grid-template-columns: auto 1fr;
      gap: 0.62rem;
      align-items: start;
      padding: 0.78rem 0.82rem;
      border-radius: 1.1rem;
      background: rgba(255,255,255,0.82);
      border: 1px solid rgba(0, 75, 56, 0.08);
      box-shadow: 0 14px 28px -24px rgba(28, 27, 27, 0.2);
    }
    .concierge-animation__query-dot {
      width: 0.75rem;
      height: 0.75rem;
      margin-top: 0.2rem;
      border-radius: 50%;
      background: linear-gradient(135deg, #86d6b8 0%, #004b38 100%);
      box-shadow: 0 0 0 4px rgba(161, 243, 211, 0.2);
    }
    .concierge-animation__query-text {
      margin: 0;
      color: rgba(28, 27, 27, 0.74);
      font: 600 0.74rem/1.42 'Inter', sans-serif;
    }
    .concierge-animation__response {
      padding: 1rem 1rem 0.95rem;
      border-radius: 1.1rem;
      background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(161, 243, 211, 0.22) 100%);
      border: 1px solid rgba(0, 75, 56, 0.14);
      color: #1c1b1b;
      box-shadow: 0 14px 28px -24px rgba(28, 27, 27, 0.2);
      animation-delay: 780ms;
    }
    .concierge-animation__response-head {
      display: flex;
      flex-wrap: wrap;
      gap: 0.42rem;
      margin-bottom: 0.58rem;
    }
    .concierge-animation__response-badge {
      padding: 0.32rem 0.55rem;
      border-radius: 999px;
      background: rgba(0, 75, 56, 0.08);
      color: #004b38;
      font: 700 0.54rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.12em;
      text-transform: uppercase;
    }
    .concierge-animation__response-badge--soft {
      background: rgba(249, 196, 228, 0.18);
      color: #7e2c13;
    }
    .concierge-animation__response-title {
      margin: 0 0 0.34rem;
      color: #1c1b1b;
      font: 700 0.98rem/1.2 'Plus Jakarta Sans', sans-serif;
      letter-spacing: -0.02em;
    }
    .concierge-animation__response-copy {
      margin: 0;
      color: rgba(28, 27, 27, 0.7);
      font: 500 0.68rem/1.38 'Inter', sans-serif;
    }
    .concierge-animation__cards {
      display: grid;
      grid-template-columns: repeat(3, minmax(0, 1fr));
      gap: 0.62rem;
    }
    .concierge-animation__card {
      padding: 0.78rem 0.82rem;
      border-radius: 1.1rem;
      border: 1px solid rgba(0, 75, 56, 0.08);
      box-shadow: 0 14px 28px -24px rgba(28, 27, 27, 0.2);
    }
    .concierge-animation__card--rose {
      background: rgba(255,255,255,0.82);
      animation-delay: 1.45s;
    }
    .concierge-animation__card--mint {
      background: linear-gradient(180deg, rgba(255,255,255,0.9) 0%, rgba(161, 243, 211, 0.18) 100%);
      animation-delay: 1.7s;
    }
    .concierge-animation__card--gold {
      background: rgba(255,255,255,0.82);
      animation-delay: 1.95s;
    }
    .concierge-animation__card-kicker {
      margin: 0 0 0.2rem;
      color: rgba(28, 27, 27, 0.52);
      font: 700 0.58rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.16em;
      text-transform: uppercase;
    }
    .concierge-animation__card-title {
      margin: 0 0 0.24rem;
      color: #1c1b1b;
      font: 700 0.82rem/1.16 'Plus Jakarta Sans', sans-serif;
    }
    .concierge-animation__card-copy {
      margin: 0;
      color: rgba(28, 27, 27, 0.72);
      font: 500 0.68rem/1.38 'Inter', sans-serif;
    }
    .concierge-animation__chips {
      display: flex;
      flex-wrap: wrap;
      gap: 0.42rem;
      margin-top: 0.78rem;
    }
    .concierge-animation__chip {
      padding: 0.42rem 0.68rem;
      border-radius: 999px;
      background: rgba(0, 75, 56, 0.08);
      color: #004b38;
      font: 700 0.58rem/1 'Plus Jakarta Sans', sans-serif;
      letter-spacing: 0.14em;
      text-transform: uppercase;
      border: 1px solid rgba(0, 75, 56, 0.08);
      opacity: 0;
      transform: translateY(10px);
      animation: concierge-chip 7s infinite 2.35s;
    }
    .concierge-animation__chip:nth-child(2) { animation-delay: 2.55s; }
    .concierge-animation__chip:nth-child(3) { animation-delay: 2.75s; }
    .concierge-animation__chip:nth-child(4) { animation-delay: 2.95s; }
    @keyframes concierge-drift {
      0%, 100% { transform: translate3d(0, 0, 0) scale(1); }
      50% { transform: translate3d(5%, -4%, 0) scale(1.08); }
    }
    @keyframes concierge-rise {
      0%, 10% { opacity: 0; transform: translateY(12px); }
      18%, 86% { opacity: 1; transform: translateY(0); }
      100% { opacity: 0; transform: translateY(-6px); }
    }
    @keyframes concierge-card {
      0%, 14% { opacity: 0; transform: translateY(14px) scale(0.985); }
      24%, 86% { opacity: 1; transform: translateY(0) scale(1); }
      100% { opacity: 0; transform: translateY(-8px) scale(0.99); }
    }
    @keyframes concierge-chip {
      0%, 30% { opacity: 0; transform: translateY(10px); }
      40%, 86% { opacity: 1; transform: translateY(0); }
      100% { opacity: 0; transform: translateY(-6px); }
    }
    @media (max-width: 768px) {
      .concierge-animation {
        width: min(100%, 28rem);
        padding: 0.95rem;
      }
      .concierge-animation__title {
        font-size: 1.04rem;
      }
      .concierge-animation__canvas {
        padding: 0.82rem;
      }
      .concierge-animation__cards {
        grid-template-columns: 1fr;
      }
    }
    @media (prefers-reduced-motion: reduce) {
      .concierge-animation__glow,
      .concierge-animation__eyebrow,
      .concierge-animation__title,
      .concierge-animation__query,
      .concierge-animation__response,
      .concierge-animation__card,
      .concierge-animation__chip {
        animation: none !important;
        opacity: 1 !important;
        transform: none !important;
      }
    }

/* ===== static/css/modules/templates/layouts--partials--head.css ===== */

/* Extracted from layouts/partials/head.html; edit this module directly. */
/* Self-hosted Inter (body font) */
    @font-face {
      font-family: 'Inter';
      font-style: normal;
      font-weight: 400 600;
      font-display: swap;
      src: url('/assets/fonts/Inter-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: 'Inter';
      font-style: normal;
      font-weight: 400 600;
      font-display: swap;
      src: url('/assets/fonts/Inter-latin-ext.woff2') format('woff2');
      unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
    }
    @font-face {
      font-family: 'Inter';
      font-style: normal;
      font-weight: 400 600;
      font-display: swap;
      src: url('/assets/fonts/Inter-cyrillic.woff2') format('woff2');
      unicode-range: U+0301, U+0400-045F, U+0490-0491, U+04B0-04B1, U+2116;
    }
    /* Self-hosted Plus Jakarta Sans (label/heading font) */
    @font-face {
      font-family: 'Plus Jakarta Sans';
      font-style: normal;
      font-weight: 500 700;
      font-display: swap;
      src: url('/assets/fonts/PlusJakartaSans-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: 'Plus Jakarta Sans';
      font-style: normal;
      font-weight: 500 700;
      font-display: swap;
      src: url('/assets/fonts/PlusJakartaSans-latin-ext.woff2') format('woff2');
      unicode-range: U+0100-02BA, U+02BD-02C5, U+02C7-02CC, U+02CE-02D7, U+02DD-02FF, U+0304, U+0308, U+0329, U+1D00-1DBF, U+1E00-1E9F, U+1EF2-1EFF, U+2020, U+20A0-20AB, U+20AD-20C0, U+2113, U+2C60-2C7F, U+A720-A7FF;
    }
    /* Self-hosted Agrandir */
    @font-face {
      font-family: 'Agrandir';
      src: url('/assets/fonts/Agrandir-TextBold.otf') format('opentype');
      font-weight: 700;
      font-style: normal;
      font-display: swap;
    }
    /* Self-hosted Material Symbols */
    @font-face {
      font-family: 'Material Symbols Outlined';
      font-style: normal;
      font-weight: 400;
      font-display: swap;
      src: url('/assets/fonts/MaterialSymbolsOutlined.woff2') format('woff2');
    }
    .material-symbols-outlined {
      font-family: 'Material Symbols Outlined';
      font-weight: normal;
      font-style: normal;
      font-size: 24px;
      line-height: 1;
      letter-spacing: normal;
      text-transform: none;
      display: inline-block;
      white-space: nowrap;
      word-wrap: normal;
      direction: ltr;
      font-feature-settings: 'liga';
      -moz-font-feature-settings: 'liga';
      -webkit-font-smoothing: antialiased;
      -moz-osx-font-smoothing: grayscale;
      font-variation-settings: 'FILL' 0, 'wght' 400, 'GRAD' 0, 'opsz' 24;
      vertical-align: middle;
    }
    .serif-dropcap::first-letter {
      float: left;
      font-family: 'Noto Serif', serif;
      font-size: 5rem;
      line-height: 0.8;
      padding-right: 0.75rem;
      padding-top: 0.25rem;
      color: #004b38;
      font-weight: 700;
    }
    @keyframes float {
      0%, 100% { transform: translateY(0); }
      50% { transform: translateY(6px); }
    }
    .scroll-indicator { animation: float 2s ease-in-out infinite; }

/* ===== static/css/modules/templates/layouts--partials--hero-ticket-strip.css ===== */

/* Extracted from layouts/partials/hero-ticket-strip.html; edit this module directly. */
.tkt-strip { display:inline-flex; align-items:center; gap:16px; padding:8px 8px 8px 22px; border-radius:100px; background:#fff; border:1px solid var(--line); box-shadow:0 12px 30px -14px rgba(29,57,53,0.34); text-decoration:none; max-width:100%; transition:transform .18s ease, box-shadow .18s ease; }
  .tkt-strip:hover { transform:translateY(-2px); box-shadow:0 18px 42px -16px rgba(29,57,53,0.46); }
  .tkt-strip-ic { color:var(--coral); font-size:1.25rem; flex-shrink:0; }
  .tkt-strip-txt { display:inline-flex; align-items:center; gap:10px; font-family:var(--sans); font-size:0.9rem; color:var(--ink-3); min-width:0; }
  .tkt-strip-from { white-space:nowrap; }
  .tkt-strip-from strong { font-family:var(--serif); font-weight:700; font-size:1.18rem; color:var(--ink); margin-left:3px; }
  .tkt-strip-rt { display:inline-flex; align-items:center; gap:3px; white-space:nowrap; color:var(--ink-2); }
  .tkt-strip-rt .material-symbols-outlined { font-size:1rem; }
  .tkt-strip-skip { white-space:nowrap; }
  .tkt-strip-sep { width:4px; height:4px; border-radius:50%; background:var(--ink-3); opacity:.4; flex-shrink:0; }
  .tkt-strip-cta { display:inline-flex; align-items:center; gap:5px; background:var(--coral); color:#fff; font-family:var(--sans); font-weight:600; font-size:0.85rem; padding:11px 20px; border-radius:100px; white-space:nowrap; flex-shrink:0; transition:background .18s ease; }
  .tkt-strip:hover .tkt-strip-cta { background:var(--coral-deep); }
  .tkt-strip-cta .ar { font-size:1.05rem; transition:transform .18s ease; }
  .tkt-strip:hover .tkt-strip-cta .ar { transform:translateX(3px); }
  @media (max-width:640px) { .tkt-strip { gap:12px; padding-left:18px; } .tkt-strip-sep-sm, .tkt-strip-skip { display:none; } }

/* ===== static/css/modules/templates/layouts--partials--nav.css ===== */

/* Extracted from layouts/partials/nav.html; edit this module directly. */
.global-search-trigger {
    display: inline-flex;
    align-items: center;
    gap: 0.65rem;
    min-height: 2.75rem;
    padding: 0.7rem 0.95rem;
    border-radius: 999px;
    border: 1px solid rgba(22, 101, 52, 0.12);
    background: rgba(255, 255, 255, 0.72);
    color: rgb(68, 64, 60);
    box-shadow: 0 10px 30px rgba(15, 23, 42, 0.04);
    transition: border-color 180ms ease, background-color 180ms ease, transform 180ms ease, color 180ms ease;
  }

  .global-search-trigger:hover,
  .global-search-trigger:focus-visible {
    border-color: rgba(22, 101, 52, 0.24);
    background: rgba(255, 255, 255, 0.96);
    color: rgb(22, 101, 52);
    transform: translateY(-1px);
    outline: none;
  }

  .global-search-trigger-label {
    max-width: 17rem;
    overflow: hidden;
    font-family: 'Agrandir', sans-serif;
    font-size: 0.95rem;
    font-weight: 500;
    line-height: 1;
    text-overflow: ellipsis;
    white-space: nowrap;
  }

  .global-search-trigger-key {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 1.75rem;
    height: 1.75rem;
    padding: 0 0.5rem;
    border-radius: 999px;
    background: rgba(15, 23, 42, 0.06);
    color: rgb(87, 83, 78);
    font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", "Courier New", monospace;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1;
  }

  @media (max-width: 1023px) {
    .global-search-trigger {
      padding-inline: 0.8rem;
    }
  }

  @media (max-width: 639px) {
    .global-search-trigger {
      min-width: 2.75rem;
      padding-inline: 0.8rem;
      gap: 0;
    }
  }

/* ===== static/css/modules/templates/layouts--partials--opening-hours-card.css ===== */

/* Extracted from layouts/partials/opening-hours-card.html; edit this module directly. */
.opening-hours-summary:hover { background: var(--cream-2); }

/* ===== static/css/modules/templates/layouts--partials--places-grid--2.css ===== */

/* Extracted from layouts/partials/places-grid.html; edit this module directly. */
@media (max-width: 1024px) { .places-grid { grid-template-columns: repeat(3,1fr) !important; } }
  @media (max-width: 640px)  { .places-grid { grid-template-columns: repeat(2,1fr) !important; } }

/* ===== static/css/modules/templates/layouts--partials--places-grid.css ===== */

/* Extracted from layouts/partials/places-grid.html; edit this module directly. */
.places-pager { display: flex; flex-wrap: wrap; justify-content: center; align-items: center; gap: 8px; margin-top: 20px; }
    .places-pager .pill { min-width: 42px; justify-content: center; text-align: center; }
    .places-pager .pager-step { display: inline-flex; align-items: center; gap: 8px; padding: 9px 16px; }
    .places-pager .pager-prev .line-icon { transform: rotate(180deg); }
    [dir="rtl"] .places-pager .pager-prev .line-icon { transform: rotate(0deg); }
    [dir="rtl"] .places-pager .pager-next .line-icon { transform: rotate(180deg); }
    @media (max-width: 640px) { .places-pager .pager-step span { display: none; } }

/* ===== static/css/modules/templates/layouts--partials--quick-facts.css ===== */

/* Extracted from layouts/partials/quick-facts.html; edit this module directly. */
.qf-strip {
    display: inline-grid;
    grid-template-columns: auto auto;
    gap: 16px clamp(28px, 4vw, 52px);
    align-items: center;
    text-align: left;
    max-width: 100%;
    background: rgba(255, 255, 255, 0.94);
    backdrop-filter: blur(8px);
    border: 1px solid var(--line);
    border-radius: 18px;
    box-shadow: 0 6px 22px -8px rgba(29, 57, 53, 0.16);
    padding: 18px clamp(24px, 3vw, 40px);
  }
  @media (max-width: 600px) { .qf-strip { grid-template-columns: 1fr; } }

/* ===== static/css/modules/templates/layouts--partials--ticket-status-capsule.css ===== */

/* Extracted from layouts/partials/ticket-status-capsule.html; edit this module directly. */
.tkt-status-capsule { display:flex; gap:14px; align-items:flex-start; margin:20px 0 4px;
    padding:16px 18px; border:1px solid var(--line); border-left:3px solid var(--coral);
    border-radius:14px; background:rgba(232,95,51,0.05); }
  .tkt-status-icon { color:var(--coral); font-size:1.4rem; margin-top:1px; }
  .tkt-status-lead { font-weight:600; color:var(--ink); margin:0; }
  .tkt-status-price { color:var(--ink-2); font-size:0.9rem; margin:4px 0 0; }
  .tkt-status-link { display:inline-flex; align-items:center; gap:4px; margin-top:6px;
    font-size:0.85rem; font-weight:600; color:var(--coral); text-decoration:none; }
  .tkt-status-link:hover { text-decoration:underline; }

/* ===== static/css/modules/templates/layouts--partials--tickets-sidebar.css ===== */

/* Extracted from layouts/partials/tickets-sidebar.html; edit this module directly. */
.tkt-side-card { display:block; padding:15px 17px; border:1px solid var(--line); border-radius:16px; background:#fff; text-decoration:none; transition:border-color .18s ease, box-shadow .18s ease, transform .18s ease; }
  .tkt-side-card + .tkt-side-card { margin-top:12px; }
  .tkt-side-card:hover { border-color:var(--coral); box-shadow:0 12px 26px -14px rgba(29,57,53,0.32); transform:translateY(-2px); }
  .tkt-side-title { font-family:var(--serif); font-weight:700; font-size:1rem; line-height:1.3; color:var(--ink); margin:0 0 9px; display:-webkit-box; -webkit-line-clamp:3; -webkit-box-orient:vertical; overflow:hidden; transition:color .18s ease; }
  .tkt-side-card:hover .tkt-side-title { color:var(--coral); }
  .tkt-side-meta { display:flex; flex-wrap:wrap; align-items:center; gap:5px 12px; font-size:0.76rem; margin-bottom:7px; }
  .tkt-side-rt { display:inline-flex; align-items:center; gap:3px; color:var(--ink-2); font-weight:600; }
  .tkt-side-rt .material-symbols-outlined { color:var(--sun); font-size:0.95rem; }
  .tkt-side-instant { display:inline-flex; align-items:center; color:#2F7D52; font-weight:600; }
  .tkt-side-trust { display:flex; align-items:center; gap:5px; font-size:0.72rem; color:var(--ink-3); margin-bottom:13px; }
  .tkt-side-trust .material-symbols-outlined { color:#2F7D52; font-size:0.9rem; font-variation-settings:'FILL' 1; }
  .tkt-side-foot { display:flex; align-items:center; justify-content:space-between; gap:10px; padding-top:12px; border-top:1px solid var(--line-soft); }
  .tkt-side-price { font-family:var(--serif); font-weight:700; font-size:1.3rem; line-height:1; color:var(--coral); }
  .tkt-side-book { display:inline-flex; align-items:center; gap:4px; font-family:var(--sans); font-weight:600; font-size:0.82rem; color:var(--coral); white-space:nowrap; }
  .tkt-side-book .ar { font-size:0.95rem; transition:transform .18s ease; }
  .tkt-side-card:hover .tkt-side-book .ar { transform:translateX(3px); }

/* ===== static/css/modules/templates/layouts--partners--single.css ===== */

/* Extracted from layouts/partners/single.html; edit this module directly. */
.partner-grid { display:grid; grid-template-columns:1fr 1fr; gap:20px; }
  .benefit-grid { display:grid; grid-template-columns:1fr 1fr; gap:28px 56px; }
  @media (max-width: 860px){
    .partner-grid, .benefit-grid { grid-template-columns:1fr !important; }
  }

/* Two-track partners page (2026-10-06): self-serve partner types (#earn) and
   custom partnerships (#custom). Anchors land below the sticky nav. */
.ptn-section [id], .ptn-section[id] { scroll-margin-top: 96px; }
.ptn-lede { font-size:18px; line-height:1.55; color:var(--ink-2); max-width:720px; margin-top:22px; }
.ptn-type-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:20px; margin-top:40px; }
.ptn-type { padding:28px; display:flex; flex-direction:column; gap:14px; border:1px solid var(--line); }
.ptn-type:target, .ptn-type:has(> * > .ptn-anchor-alias:target) { outline:2px solid var(--coral); outline-offset:3px; }
.ptn-type-name { font-size:25px; line-height:1.08; color:var(--ink); }
.ptn-type-body { font-size:16px; line-height:1.55; color:var(--ink-2); flex:1; }
.ptn-type-cta { align-self:flex-start; }
.ptn-type-cta .line-icon { color:var(--coral); }
.ptn-steps-title { margin-top:64px; color:var(--coral); }
.ptn-steps { list-style:none; padding:0; margin:18px 0 0; display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:28px 40px; border-top:1px solid var(--line); padding-top:26px; }
.ptn-step { display:flex; gap:16px; align-items:flex-start; }
.ptn-step-no { font-family:var(--sans); font-size:12px; letter-spacing:.14em; color:var(--coral); padding-top:6px; }
.ptn-step-name { font-size:22px; line-height:1.1; color:var(--ink); }
.ptn-step-body { font-size:15.5px; line-height:1.5; color:var(--ink-2); margin-top:6px; }
.ptn-note { font-size:14px; line-height:1.55; color:var(--ink-2); max-width:760px; margin-top:26px; }
.ptn-note a { color:var(--ink); text-decoration:underline; text-underline-offset:3px; }
.ptn-switch { margin-top:40px; padding:28px 32px; border-radius:20px; display:flex; justify-content:space-between; align-items:center; gap:24px; flex-wrap:wrap; }
.ptn-switch > div { flex:1; min-width:260px; }
@media (max-width: 1080px){
  .ptn-type-grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
}
@media (max-width: 860px){
  .ptn-type-grid, .ptn-steps { grid-template-columns:1fr; }
  .ptn-type { padding:24px; }
  .ptn-steps-title { margin-top:44px; }
  .ptn-switch { padding:24px; }
}
/* RTL: forward arrows point left (partners + ambassadors pages only; the
   site has no global rule yet). */
[dir="rtl"] body[data-page-type="partners"] .btn .line-icon { transform: scaleX(-1); }

/* ===== static/css/modules/templates/layouts--place--single.css ===== */

/* Extracted from layouts/place/single.html; edit this module directly. */
/* Editorial markdown styling — H1s are stripped at the template level (see above),
     not hidden with CSS, so there is no .editorial-content h1 rule here. */
  .editorial-content h2 {
    font-family: 'Plus Jakarta Sans', sans-serif;
    color: #004b38; font-weight: 700; letter-spacing: 0.15em;
    text-transform: uppercase; font-size: 0.875rem;
    margin-bottom: 1.5rem; margin-top: 4rem;
  }
  .editorial-content h2:first-child { margin-top: 0; }
  /* Legacy pages: H2 headers are major section titles (not labels).
     Override the label style so they read as proper section headings.
     Applies to both legacy intro and legacy body sections. */
  .legacy-content h2 {
    font-family: 'Noto Serif', serif;
    font-size: 2.25rem; font-weight: 700;
    text-transform: none; letter-spacing: 0;
    color: #1c1b1b; margin-top: 4rem; margin-bottom: 1.25rem;
    line-height: 1.15;
  }
  .legacy-content h2:first-child { margin-top: 0; }
  /* Legacy H3 / H4 differentiation — the base editorial-content rules are
     too flat for legacy markdown where H4 is commonly used for major
     sub-sections. Lift H3 and H4 sizes so the hierarchy reads clearly. */
  .editorial-content.legacy-content h3 {
    font-size: 2.25rem;
    letter-spacing: -0.01em;
    margin-top: 3rem;
    padding-bottom: 0.5rem;
    border-bottom: 1px solid rgba(190, 201, 194, 0.3);
  }
  .editorial-content.legacy-content h4 {
    font-size: 1.75rem;
    letter-spacing: -0.005em;
    color: #1c1b1b;
    margin-top: 2.25rem;
    margin-bottom: 0.75rem;
    padding-left: 0.875rem;
    border-left: 3px solid #004b38;
  }
  /* Legacy Table of Contents — rendered as a sidebar-style panel with
     compact links. The exporter wraps the TOC section in <nav class="legacy-toc">. */
  .editorial-content .legacy-toc {
    margin: 3rem 0;
    padding: 1.75rem 2rem;
    background: rgba(228, 233, 229, 0.35);
    border: 1px solid rgba(190, 201, 194, 0.4);
    border-radius: 1rem;
    max-width: 40rem;
  }
  .editorial-content .legacy-toc .legacy-toc-title {
    font-family: 'Plus Jakarta Sans', sans-serif;
    font-size: 0.75rem; font-weight: 700;
    text-transform: uppercase; letter-spacing: 0.2em;
    color: #004b38; margin: 0 0 1rem 0;
  }
  .editorial-content .legacy-toc ul {
    list-style: none; padding: 0; margin: 0;
    display: block; gap: 0;
  }
  .editorial-content .legacy-toc ul li {
    display: list-item;
    padding: 0.35rem 0;
    background: transparent;
    border: none;
    box-shadow: none;
    border-radius: 0;
    font-family: 'Noto Serif', serif;
    font-size: 1rem;
    line-height: 1.5;
    color: #1c1b1b;
    margin: 0;
  }
  .editorial-content .legacy-toc ul li::before {
    content: none;
    display: none;
  }
  .editorial-content .legacy-toc ul ul {
    margin: 0.25rem 0 0.5rem 1rem;
    padding-left: 0.75rem;
    border-left: 1px solid rgba(190, 201, 194, 0.5);
  }
  .editorial-content .legacy-toc ul ul li {
    font-size: 0.9rem;
    color: #3f4944;
    padding: 0.2rem 0;
  }
  .editorial-content .legacy-toc a {
    color: inherit;
    text-decoration: none;
    background-image: none;
    transition: color 0.15s ease;
  }
  .editorial-content .legacy-toc a:hover {
    color: #004b38;
    background-image: none;
  }
  .editorial-content h3 {
    font-family: 'Noto Serif', serif; font-size: 2rem; font-weight: 700;
    color: #1c1b1b; margin-bottom: 1.5rem; margin-top: 2rem; line-height: 1.2;
  }
  .editorial-content h4 {
    font-family: 'Noto Serif', serif; font-size: 1.5rem; font-weight: 700;
    color: #1c1b1b; margin-bottom: 1rem; margin-top: 1.5rem;
  }
  .editorial-content > p:first-of-type {
    font-family: 'Noto Serif', serif; font-size: 1.5rem;
    line-height: 1.4; color: #1c1b1b; margin-bottom: 2rem;
  }
  .editorial-content p {
    color: #3f4944; line-height: 1.7; font-size: 1.05rem; margin-bottom: 1.25rem;
  }
  .editorial-content a,
  article a:not(.bg-primary):not(.bg-secondary):not(.rounded-full):not(.btn) {
    color: #9d4228;
    text-decoration: none;
    background-image: linear-gradient(#9d4228, #9d4228);
    background-size: 0% 1px;
    background-position: 0 100%;
    background-repeat: no-repeat;
    transition: background-size 0.3s ease, color 0.2s ease;
  }
  .editorial-content a:hover,
  article a:not(.bg-primary):not(.bg-secondary):not(.rounded-full):not(.btn):hover {
    color: #c4533a;
    background-image: linear-gradient(#c4533a, #c4533a);
    background-size: 100% 1px;
  }
  .editorial-content ul {
    list-style: none; padding: 0; margin: 1.5rem 0;
    display: flex; flex-direction: column; gap: 1rem;
  }
  .editorial-content ul li {
    display: flex; align-items: flex-start; gap: 1rem;
    padding: 1.25rem 1.5rem; background: #ffffff; border-radius: 1rem;
    border: 1px solid rgba(190, 201, 194, 0.2); box-shadow: 0 1px 3px rgba(0,0,0,0.04);
  }
  .editorial-content ul li::before {
    content: "arrow_forward"; font-family: "Material Symbols Outlined";
    font-size: 1.2rem; color: #9d4228; flex-shrink: 0; margin-top: 2px;
  }
  .editorial-content strong { font-weight: 600; color: #1c1b1b; }
  .editorial-content hr { border: none; height: 1px; background: rgba(190, 201, 194, 0.3); margin: 3rem 0; }
  #sources .source-link:hover { color: var(--coral); }

/* ===== static/css/modules/templates/layouts--seo-commercial--single.css ===== */

/* Extracted from layouts/seo-commercial/single.html; edit this module directly. */
.seo-page .seo-prose > p { font-family: var(--serif-body); color: #465C58; line-height: 1.7; margin-bottom: 1.15rem; font-size: 17px; }
  .seo-page .seo-prose > h2 { font-family: var(--serif); font-weight: 700; font-size: 38px; color: #1D3935; margin: 3rem 0 1rem; line-height: 1.05; letter-spacing: -0.02em; scroll-margin-top: 6rem; }
  .seo-page .seo-prose > h3 { font-family: var(--serif); font-weight: 600; font-size: 24px; color: #1D3935; margin: 2rem 0 0.5rem; }
  .seo-page .seo-prose > ul, .seo-page .seo-prose > ol { margin: 0 0 1.5rem 1.4rem; padding-left: 0; }
  .seo-page .seo-prose > ul > li, .seo-page .seo-prose > ol > li { font-family: var(--serif-body); color: #465C58; line-height: 1.7; margin-bottom: 0.45rem; font-size: 17px; }
  .seo-page .seo-prose > ul { list-style: disc; }
  .seo-page .seo-prose > ol { list-style: decimal; }
  .seo-page .seo-prose a { color: #C8451F; text-decoration: underline; text-decoration-thickness: 1px; text-underline-offset: 3px; }
  .seo-page .seo-prose a:hover { text-decoration-thickness: 2px; }
  .seo-page .seo-prose strong { color: #1D3935; font-weight: 600; }
  .seo-page .seo-toc__link { display: block; border-left: 2px solid rgba(29,57,53,0.14); padding: 5px 0 5px 14px; color: #7C928E; font-family: var(--sans); font-size: 13.5px; line-height: 1.35; transition: color .15s, border-color .15s; }
  .seo-page .seo-toc__link:hover { color: #E85F33; }
  .seo-page .seo-toc__link[aria-current="true"] { color: #1D3935; font-weight: 600; border-left-color: #E85F33; }
  .seo-page details.seo-faq summary { list-style: none; }
  .seo-page details.seo-faq summary::-webkit-details-marker { display: none; }
  .seo-page details.seo-faq .seo-faq__chevron { transition: transform .2s ease; flex-shrink: 0; }
  .seo-page details.seo-faq[open] .seo-faq__chevron { transform: rotate(180deg); }
  .seo-page .seo-sticky-cta { display: none; }
  @media (max-width: 1024px) {
    .seo-page .seo-sticky-cta { display: block; position: fixed; left: 0; right: 0; bottom: 0; z-index: 40; padding: 12px 16px calc(12px + env(safe-area-inset-bottom)); background: rgba(250,242,226,0.96); backdrop-filter: blur(8px); border-top: 1px solid rgba(29,57,53,0.14); }
    .seo-page .seo-hero-grid { grid-template-columns: 1fr !important; }
    .seo-page .seo-toc { display: none !important; }
    .seo-page .seo-body-grid { grid-template-columns: 1fr !important; }
    .seo-page .seo-2col { grid-template-columns: 1fr !important; }
    .seo-page .seo-facts { grid-template-columns: repeat(2, 1fr) !important; }
    .seo-page .section, .seo-page .seo-band { padding-left: 20px !important; padding-right: 20px !important; }
    .seo-page h1.seo-h1 { font-size: 13vw !important; }
  }

/* ===== static/css/modules/templates/layouts--seo-passes--single.css ===== */

/* Extracted from layouts/seo-passes/single.html; edit this module directly. */
@keyframes seo-blob-drift-1 {
    0%, 100% { transform: translate(0%, 0%) scale(1); }
    33% { transform: translate(8%, -6%) scale(1.08); }
    66% { transform: translate(-5%, 5%) scale(0.94); }
  }
  @keyframes seo-blob-drift-2 {
    0%, 100% { transform: translate(0%, 0%) scale(1); }
    33% { transform: translate(-7%, 4%) scale(1.05); }
    66% { transform: translate(6%, -7%) scale(0.96); }
  }
  @keyframes seo-blob-drift-3 {
    0%, 100% { transform: translate(0%, 0%) scale(1); }
    50% { transform: translate(4%, -8%) scale(1.1); }
  }
  @keyframes seo-shimmer {
    0% { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
  }
  @keyframes seo-fade-up {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
  }
  .seo-hero { position: relative; overflow: hidden; isolation: isolate; }
  .seo-hero__mesh { position: absolute; inset: -10%; z-index: -1; filter: blur(60px); opacity: 0.85; pointer-events: none; }
  .seo-hero__blob { position: absolute; border-radius: 50%; will-change: transform; }
  .seo-hero__blob--1 {
    width: 60vw; height: 60vw; max-width: 800px; max-height: 800px;
    top: -10%; left: -10%;
    background: radial-gradient(circle at 30% 30%, #a1f3d3 0%, transparent 65%);
    animation: seo-blob-drift-1 22s ease-in-out infinite;
  }
  .seo-hero__blob--2 {
    width: 55vw; height: 55vw; max-width: 750px; max-height: 750px;
    top: 10%; right: -12%;
    background: radial-gradient(circle at 60% 40%, #f9c4e4 0%, transparent 65%);
    animation: seo-blob-drift-2 26s ease-in-out infinite;
  }
  .seo-hero__blob--3 {
    width: 45vw; height: 45vw; max-width: 600px; max-height: 600px;
    bottom: -15%; left: 25%;
    background: radial-gradient(circle at 50% 50%, #fd8c6c 0%, transparent 60%);
    animation: seo-blob-drift-3 30s ease-in-out infinite;
    opacity: 0.6;
  }
  .seo-hero__shimmer {
    background: linear-gradient(90deg, #004b38 0%, #00654d 25%, #004b38 50%, #00654d 75%, #004b38 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: seo-shimmer 8s linear infinite;
  }
  .seo-fade { animation: seo-fade-up 0.7s ease-out both; }
  .seo-fade-2 { animation: seo-fade-up 0.7s ease-out 0.1s both; }
  .seo-fade-3 { animation: seo-fade-up 0.7s ease-out 0.2s both; }
  .seo-fade-4 { animation: seo-fade-up 0.7s ease-out 0.3s both; }

  .pass-card { transition: box-shadow .2s ease, transform .2s ease; }
  .pass-card:hover { box-shadow: 0 18px 40px -20px rgba(0,75,56,0.25); transform: translateY(-2px); }
  .pass-badge-skip { background: #dcfce7; color: #065f46; }
  .pass-badge-transport { background: #dbeafe; color: #1e40af; }
  .pass-badge-no { background: #f4f4f5; color: #52525b; }
  .verdict-buy { border-left: 4px solid #16a34a; }
  .verdict-skip { border-left: 4px solid #dc2626; }
  .verdict-borderline { border-left: 4px solid #ca8a04; }

  .seo-faq__item[open] .seo-faq__chevron { transform: rotate(180deg); }
  .seo-faq__chevron { transition: transform 0.2s ease; }

  .seo-intro > p { color: #3f4944; line-height: 1.75; margin-bottom: 1.25rem; font-size: 1.0625rem; }

/* ===== static/css/modules/templates/layouts--seo-tips--single.css ===== */

/* Extracted from layouts/seo-tips/single.html; edit this module directly. */
@keyframes seo-blob-drift-1 {
    0%, 100% { transform: translate(0%, 0%) scale(1); }
    33% { transform: translate(8%, -6%) scale(1.08); }
    66% { transform: translate(-5%, 5%) scale(0.94); }
  }
  @keyframes seo-blob-drift-2 {
    0%, 100% { transform: translate(0%, 0%) scale(1); }
    33% { transform: translate(-7%, 4%) scale(1.05); }
    66% { transform: translate(6%, -7%) scale(0.96); }
  }
  @keyframes seo-blob-drift-3 {
    0%, 100% { transform: translate(0%, 0%) scale(1); }
    50% { transform: translate(4%, -8%) scale(1.1); }
  }
  @keyframes seo-shimmer {
    0% { background-position: 0% 50%; }
    100% { background-position: 200% 50%; }
  }
  @keyframes seo-fade-up {
    from { opacity: 0; transform: translateY(12px); }
    to { opacity: 1; transform: translateY(0); }
  }
  .seo-hero { position: relative; overflow: hidden; isolation: isolate; }
  .seo-hero__mesh { position: absolute; inset: -10%; z-index: -1; filter: blur(60px); opacity: 0.85; pointer-events: none; }
  .seo-hero__blob { position: absolute; border-radius: 50%; will-change: transform; }
  .seo-hero__blob--1 {
    width: 60vw; height: 60vw; max-width: 800px; max-height: 800px;
    top: -10%; left: -10%;
    background: radial-gradient(circle at 30% 30%, #fde68a 0%, transparent 65%);
    animation: seo-blob-drift-1 22s ease-in-out infinite;
  }
  .seo-hero__blob--2 {
    width: 55vw; height: 55vw; max-width: 750px; max-height: 750px;
    top: 10%; right: -12%;
    background: radial-gradient(circle at 60% 40%, #bfdbfe 0%, transparent 65%);
    animation: seo-blob-drift-2 26s ease-in-out infinite;
  }
  .seo-hero__blob--3 {
    width: 45vw; height: 45vw; max-width: 600px; max-height: 600px;
    bottom: -15%; left: 25%;
    background: radial-gradient(circle at 50% 50%, #a1f3d3 0%, transparent 60%);
    animation: seo-blob-drift-3 30s ease-in-out infinite;
    opacity: 0.6;
  }
  .seo-hero__shimmer {
    background: linear-gradient(90deg, #004b38 0%, #00654d 25%, #004b38 50%, #00654d 75%, #004b38 100%);
    background-size: 200% 100%;
    -webkit-background-clip: text; background-clip: text;
    -webkit-text-fill-color: transparent;
    animation: seo-shimmer 8s linear infinite;
  }
  .seo-fade { animation: seo-fade-up 0.7s ease-out both; }
  .seo-fade-2 { animation: seo-fade-up 0.7s ease-out 0.1s both; }
  .seo-fade-3 { animation: seo-fade-up 0.7s ease-out 0.2s both; }
  .seo-fade-4 { animation: seo-fade-up 0.7s ease-out 0.3s both; }

  .rank-1 { background: linear-gradient(135deg, #fde68a, #fbbf24); color: #7c2d12; }
  .rank-2 { background: linear-gradient(135deg, #e5e7eb, #9ca3af); color: #1f2937; }
  .rank-3 { background: linear-gradient(135deg, #fecaca, #f87171); color: #7f1d1d; }

  .hack-card { transition: box-shadow .2s ease, transform .2s ease; }
  .hack-card:hover { box-shadow: 0 18px 40px -20px rgba(0,75,56,0.20); transform: translateY(-2px); }

  .seo-faq__item[open] .seo-faq__chevron { transform: rotate(180deg); }
  .seo-faq__chevron { transition: transform 0.2s ease; }

  .seo-intro > p { color: #3f4944; line-height: 1.75; margin-bottom: 1.25rem; font-size: 1.0625rem; }

/* ===== static/css/modules/templates/layouts--support--single.css ===== */

/* Extracted from layouts/support/single.html; edit this module directly. */
.prose-redesign p { font-family: var(--serif-body); font-size: 17px; line-height: 1.65; color: var(--ink-2); margin-bottom: 18px; }
  .prose-redesign h2 { font-family: var(--serif); font-weight: 700; font-size: 32px; color: var(--ink); margin: 40px 0 16px; }
  .prose-redesign a { color: var(--coral); border-bottom: 1px solid var(--coral); }

/* ===== static/css/modules/templates/layouts--travel-tips--single.css ===== */

/* Extracted from layouts/travel-tips/single.html; edit this module directly. */
/* Scoped long-form prose styling for the journal — redesign 2026-05. */
  .article-redesign { max-width: 720px; margin: 0 auto; }
  .article-redesign p {
    font-family: var(--serif-body);
    font-size: 19px; line-height: 1.75; color: var(--ink-2);
    margin-bottom: 1.5rem;
  }
  .article-redesign > p:first-of-type::first-letter {
    float: left; font-family: var(--serif); font-weight: 700;
    font-size: 5rem; line-height: 0.78; padding-right: 0.7rem;
    padding-top: 0.4rem; color: var(--coral);
  }
  .article-redesign h2 {
    font-family: var(--serif); font-weight: 700; font-size: 2rem;
    line-height: 1.1; letter-spacing: -0.02em; color: var(--ink);
    margin: 3rem 0 1rem;
  }
  .article-redesign h3 {
    font-family: var(--serif); font-weight: 700; font-size: 1.4rem;
    color: var(--ink); margin: 2.2rem 0 0.75rem;
  }
  .article-redesign ul, .article-redesign ol { margin: 0 0 1.5rem 1.4rem; }
  .article-redesign li {
    font-family: var(--serif-body); font-size: 18px; line-height: 1.7;
    color: var(--ink-2); margin-bottom: 0.5rem;
  }
  .article-redesign ul { list-style: disc; }
  .article-redesign ol { list-style: decimal; }
  .article-redesign blockquote {
    border-left: 3px solid var(--coral); padding-left: 1.4rem; margin: 2rem 0;
    font-family: var(--serif); font-style: italic; font-size: 1.25rem;
    line-height: 1.5; color: var(--ink);
  }
  .article-redesign a { color: var(--coral); text-decoration: underline; text-underline-offset: 2px; }
  .article-redesign a:hover { text-decoration: none; }
  .article-redesign figure { margin: 2.5rem 0; }
  .article-redesign figure img { border-radius: 20px; width: 100%; }
  .article-redesign figcaption {
    font-family: var(--sans); font-size: 0.85rem; color: var(--ink-3);
    text-align: center; margin-top: 0.6rem;
  }
  .article-redesign strong { color: var(--ink); font-weight: 600; }

/* ===== static/css/modules/v3/foundation.css ===== */

/* =====================================================================
   v3 foundation — redesign 2026-10 ("one page, one story").
   Scope: pages whose root carries .audiala-page.v3 (place, city, country
   and, progressively, the rest). Brand tokens are unchanged (cream paper,
   deep-teal ink, coral joy, Fraunces / Source Serif 4 / Inter); this layer
   changes layout, rhythm, reading comfort and contrast.
   Loaded after redesign.css + components/ + templates/ (module order), so
   equal-specificity rules here win; generated utilities load last.
   ===================================================================== */

:root {
  --v3-maxw: 1200px;
  --v3-gutter: clamp(20px, 4vw, 48px);
  --v3-measure: 700px;
  /* Contrast-safe variants (WCAG AA on cream #FAF2E2):
     coral #E85F33 on cream 3.1:1 → --v3-coral-text 5.0:1 for small text;
     white on coral 3.4:1 → white on --v3-coral-fill 4.9:1 for buttons;
     ink-3 #7C928E 3.0:1 → --v3-muted 5.1:1 for meta text (4.6:1 on the
     cream-2 cards, where #576D69 fell just short at 4.46:1). */
  --v3-coral-text: #B8401C;
  --v3-coral-fill: #C8451F;
  --v3-muted: #556B67;
  --v3-paper: #FBF6EC;
  --v3-radius: 18px;
  --v3-radius-sm: 12px;
  --v3-shadow: 0 1px 0 rgba(29, 57, 53, .06), 0 10px 30px -18px rgba(29, 57, 53, .35);
  --v3-h1: clamp(40px, 6.2vw, 80px);
  --v3-h2: clamp(28px, 3.2vw, 40px);
  --v3-h3: clamp(20px, 2vw, 24px);
  --v3-body: clamp(17.5px, 1.25vw, 19px);
}

/* ---------- Page shell: full-bleed paper, no floating card ---------- */
html:has(> body > .audiala-page.v3),
body:has(> .audiala-page.v3) { background: var(--cream) !important; }
.audiala-page.v3 {
  max-width: none;
  margin: 0;
  border-radius: 0;
  box-shadow: none;
  overflow: clip;
  font-size: 16px;
}
.v3 .v3-wrap {
  width: 100%;
  max-width: calc(var(--v3-maxw) + 2 * var(--v3-gutter));
  margin-inline: auto;
  padding-inline: var(--v3-gutter);
}
/* Shared partials still carry the 1280px-card gutters; re-centre them on
   the same column as v3 content. */
.v3 > section.responsive-section-gutters,
.v3 > .section,
.v3 > section.section,
.v3 > main > section.responsive-section-gutters,
.v3 > main > .section,
.v3 > main > section.section,
.v3 .footer {
  padding-inline: max(var(--v3-gutter), calc((100% - var(--v3-maxw)) / 2)) !important;
}
.v3 .nav {
  padding-inline: max(var(--v3-gutter), calc((100% - var(--v3-maxw)) / 2));
  padding-block: 14px;
  position: sticky; top: 0; z-index: 30;
  background: color-mix(in srgb, var(--cream) 92%, transparent);
  backdrop-filter: saturate(1.4) blur(10px);
  -webkit-backdrop-filter: saturate(1.4) blur(10px);
}
/* The nav sits inside <header class="site-header"> (the banner landmark).
   A sticky box cannot leave a parent of its own height, so the header is the
   element that sticks. Wide screens only: there it keeps search and "Get the
   app" in reach, and the rail and chip offsets (72px) assume it. Narrow
   screens let it scroll away and pin the section chips to the top edge. */
@media (min-width: 1024px) {
  .v3 .site-header { position: sticky; top: 0; z-index: 30; }
  /* Long-read headings carry their own 32px anchor offset; clear the 74px
     header instead (the h2 already has 34px of top padding). */
  .v3 .lv-article .editorial-content.legacy-content h2 { scroll-margin-top: 64px; }
  .v3 .lv-article .editorial-content.legacy-content h3 { scroll-margin-top: 98px; }
}
.v3 :focus-visible { outline: 2px solid var(--v3-coral-fill); outline-offset: 3px; border-radius: 6px; }
.v3 [id] { scroll-margin-top: 136px; }

/* ---------- Type ---------- */
.v3 .v3-title {
  font-family: var(--serif);
  font-weight: 600;
  font-size: var(--v3-h1);
  line-height: 1.02;
  letter-spacing: -0.025em;
  font-variation-settings: "opsz" 144, "SOFT" 30;
  color: var(--ink);
  text-wrap: balance;
  overflow-wrap: anywhere;
  hyphens: auto;
}
.v3 .v3-title::after { content: "."; color: var(--coral); }
.v3 .v3-h2 {
  font-family: var(--serif);
  font-weight: 600;
  font-size: var(--v3-h2);
  line-height: 1.1;
  letter-spacing: -0.018em;
  color: var(--ink);
  text-wrap: balance;
  margin-bottom: 18px;
}
.v3 .v3-h3, .v3 .v3-main h3 {
  font-family: var(--serif);
  font-weight: 600;
  font-size: var(--v3-h3);
  line-height: 1.22;
  letter-spacing: -0.01em;
  color: var(--ink);
}
.v3 .v3-kicker {
  font-family: var(--sans);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .14em;
  text-transform: uppercase;
  color: var(--v3-coral-text);
  margin-bottom: 10px;
}
.v3 .v3-lead {
  font-family: var(--serif-body);
  font-size: clamp(19px, 1.6vw, 22px);
  line-height: 1.5;
  color: var(--ink-2);
  max-width: 34em;
  text-wrap: pretty;
}
.v3 .v3-prose { font-family: var(--serif-body); font-size: var(--v3-body); line-height: 1.68; color: var(--ink-2); }
.v3 .v3-prose p + p, .v3 .v3-prose p + ul, .v3 .v3-prose ul + p { margin-top: 1em; }
.v3 .v3-prose strong { color: var(--ink); font-weight: 600; }
.v3 .v3-prose a, .v3 .v3-main .v3-prose a, .v3 .v3-link {
  color: var(--v3-coral-text);
  text-decoration: underline;
  text-decoration-thickness: 1px;
  text-underline-offset: 3px;
}
.v3 .v3-prose ul { padding-inline-start: 1.2em; list-style: disc; }
.v3 .v3-byline { font-family: var(--sans); font-size: 13.5px; line-height: 1.5; color: var(--v3-muted); }

/* ---------- Buttons ---------- */
.v3 .v3-btn {
  display: inline-flex; align-items: center; gap: 9px;
  min-height: 44px;
  padding: 11px 18px;
  border-radius: 999px;
  font-family: var(--sans); font-size: 14.5px; font-weight: 600; letter-spacing: -.005em;
  line-height: 1.1;
  border: 1px solid transparent;
  transition: background .15s ease, border-color .15s ease, transform .15s ease, box-shadow .15s ease;
  white-space: nowrap;
}
.v3 .v3-btn .line-icon { width: 18px; height: 18px; color: inherit; }
.v3 .v3-btn-primary { background: var(--v3-coral-fill); color: #fff; box-shadow: 0 8px 20px -10px rgba(200, 69, 31, .75); }
.v3 .v3-btn-primary:hover { background: #B23C1A; transform: translateY(-1px); }
.v3 .v3-btn-quiet { background: transparent; color: var(--ink); border-color: var(--line); }
.v3 .v3-btn-quiet:hover { border-color: var(--ink-3); background: rgba(255, 255, 255, .45); }
.v3 .v3-btn-icon { padding-inline: 14px; color: var(--ink); border-color: var(--line); background: transparent; }
.v3 .v3-btn-icon:hover { border-color: var(--ink-3); }
.v3 .v3-save[aria-pressed="true"] { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.v3 .v3-save[aria-pressed="true"] .line-icon path { fill: currentColor; }

/* ---------- Breadcrumbs ---------- */
.v3 .v3-crumbs {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px;
  font-family: var(--sans); font-size: 13.5px; color: var(--v3-muted);
}
.v3 .v3-crumbs a { color: var(--ink-2); }
/* Touch: a 44px target around the 21px link; the negative margin keeps the row height. */
@media (pointer: coarse) {
  .v3 .v3-crumbs a { padding-block: 12px; margin-block: -12px; }
}
.v3 .v3-crumbs a:hover { color: var(--v3-coral-text); text-decoration: underline; text-underline-offset: 3px; }
.v3 .v3-crumbs span[aria-hidden] { color: var(--ink-4); }

/* ---------- Generic section rhythm inside the reading column ---------- */
.v3 .v3-sec { padding-block: clamp(36px, 5vw, 56px) 0; }
.v3 .v3-sec + .v3-sec { border-top: 1px solid var(--line); margin-top: clamp(36px, 5vw, 56px); }
.v3 .v3-sec-lead { font-family: var(--serif-body); font-size: 18px; line-height: 1.55; color: var(--ink-2); margin: -4px 0 22px; }

/* ---------- Notes (look for this / secret / time travel) ---------- */
.v3 .v3-note {
  margin-top: 28px;
  padding: 20px 22px;
  border-radius: var(--v3-radius-sm);
  background: var(--cream-2);
}
.v3 .v3-note-k {
  display: flex; align-items: center; gap: 8px;
  font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: var(--ink); margin-bottom: 8px;
}
.v3 .v3-note-k .line-icon { width: 16px; height: 16px; color: var(--v3-coral-text); }
.v3 .v3-note .v3-prose { font-size: 17px; }

/* ---------- Listen panel (the one in-article app module) ---------- */
.v3 .v3-listen {
  display: grid; grid-template-columns: auto 1fr; gap: 18px 22px; align-items: start;
  margin: clamp(40px, 5vw, 56px) 0 0;
  padding: clamp(20px, 3vw, 28px);
  border-radius: var(--v3-radius);
  background: linear-gradient(135deg, #FFF8EA 0%, var(--cream-2) 100%);
  border: 1px solid rgba(232, 95, 51, .18);
}
.v3 .v3-listen-disc {
  width: 52px; height: 52px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--v3-coral-fill); color: #fff;
}
.v3 .v3-listen-disc .line-icon { width: 24px; height: 24px; color: #fff; }
.v3 .v3-listen-t { font-family: var(--serif); font-weight: 600; font-size: clamp(22px, 2.2vw, 27px); line-height: 1.15; color: var(--ink); letter-spacing: -.012em; }
.v3 .v3-listen-s { margin-top: 8px; font-family: var(--serif-body); font-size: 17px; line-height: 1.55; color: var(--ink-2); max-width: 36em; }
.v3 .v3-listen-actions { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 20px; margin-top: 16px; font-family: var(--sans); font-size: 14.5px; font-weight: 600; }
.v3 .v3-listen .v3-kicker { margin-bottom: 6px; }
@media (max-width: 560px) {
  .v3 .v3-listen { grid-template-columns: 1fr; }
  .v3 .v3-listen-disc { width: 44px; height: 44px; }
}

/* ---------- Rail (shared with legacy long-read) ---------- */
.v3 .lv-article {
  padding-block: clamp(28px, 4vw, 48px) clamp(48px, 6vw, 80px);
  grid-template-columns: 236px minmax(0, var(--v3-measure));
  column-gap: clamp(40px, 6vw, 96px);
  justify-content: start;
}
.v3 .v3-wrap > .lv-article { padding-inline: 0; }
.v3 .lv-article--no-rail { grid-template-columns: minmax(0, var(--v3-measure)); justify-content: center; }
.v3 .lv-article-rail { top: 92px; max-height: calc(100vh - 116px); }
.v3 .lv-toc-l2 { font-size: 15px; }
.v3 .v3-rail-app {
  display: grid; grid-template-columns: 76px 1fr; gap: 12px; align-items: center;
  margin-top: 26px; padding: 14px;
  border-radius: var(--v3-radius-sm);
  background: var(--v3-paper);
  border: 1px solid var(--line);
}
.v3 .v3-rail-app img { width: 76px; height: 76px; border-radius: 8px; mix-blend-mode: multiply; }
/* Place-carrying QR (v3/place-qr-script.html): 2px per module needs 138px,
   too wide beside the copy in a 236px rail, so the code sits above it. The
   generic PNG keeps its 76px column until the code is drawn (no-JS). */
.v3 .v3-rail-app:has(.v3-rail-qr[data-v3-qr-ready]) { grid-template-columns: 1fr; justify-items: start; }
.v3 .v3-rail-qr[data-v3-qr-ready] { width: 138px; height: 138px; border-radius: 8px; overflow: hidden; background: #fff; }
.v3 .v3-rail-qr svg { display: block; }
.v3 .v3-rail-app-t { font-family: var(--serif); font-weight: 600; font-size: 16px; color: var(--ink); line-height: 1.2; }
.v3 .v3-rail-app-s { font-family: var(--sans); font-size: 12.5px; line-height: 1.4; color: var(--v3-muted); margin: 4px 0 6px; }
.v3 .v3-rail-app a { font-family: var(--sans); font-size: 13px; font-weight: 600; color: var(--v3-coral-text); }

/* Narrow screens: the rail becomes a sticky horizontal chip bar (one tap to
   any section, always visible) instead of a folded card. The header is not
   sticky here, so the bar pins to the top edge. */
@media (max-width: 1023px) {
  .v3 [id],
  .v3 .lv-article .editorial-content.legacy-content :is(h2, h3) { scroll-margin-top: 72px; }
  .v3 .lv-article { display: block; }
  .v3 .lv-article-rail {
    position: sticky; top: 0; z-index: 20;
    max-height: none; overflow: visible;
    margin: 0 calc(-1 * var(--v3-gutter)) 8px;
    padding: 0;
    background: color-mix(in srgb, var(--cream) 94%, transparent);
    backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
    border-bottom: 1px solid var(--line);
  }
  .v3 .lv-article-rail .lv-toc { display: block; background: none; border: 0; border-radius: 0; padding: 0; box-shadow: none; }
  .v3 .lv-article-rail .lv-toc > summary { display: none; }
  .v3 .lv-article-rail .lv-toc:not([open]) > .lv-toc-list { display: flex; }
  .v3 .lv-toc-list {
    display: flex; gap: 8px; margin: 0; padding: 4px var(--v3-gutter);
    overflow-x: auto; scrollbar-width: none; scroll-behavior: smooth;
  }
  .v3 .lv-toc-list::-webkit-scrollbar { display: none; }
  .v3 .lv-toc-list li.lv-toc-l3 { display: none; }
  .v3 .lv-toc-l2 { margin: 0 !important; flex: 0 0 auto; font-family: var(--sans); font-size: 13.5px; font-weight: 500; }
  /* The link is the 44px touch target; the 34px pill is drawn inside it, so
     the bar keeps its height. Long section titles end in an ellipsis. */
  .v3 .lv-article .lv-toc .lv-toc-list li.lv-toc-l2 a[href] {
    position: relative; z-index: 0; display: block;
    max-width: min(72vw, 300px); padding: 13px 14px; line-height: 18px;
    border: 0; border-radius: 0; background: none; color: var(--ink-2);
    white-space: nowrap; overflow: hidden; text-overflow: ellipsis;
    outline-offset: -4px;
  }
  .v3 .lv-article .lv-toc .lv-toc-list li.lv-toc-l2 a[href]::after {
    content: ""; position: absolute; inset: 5px 0; z-index: -1;
    border-radius: 999px; border: 1px solid var(--line); background: var(--v3-paper);
  }
  .v3 .lv-toc-l2 a::before { content: none !important; }
  .v3 .lv-article .lv-toc .lv-toc-list li.lv-toc-l2 a[href][aria-current] { background: none; color: var(--cream); }
  .v3 .lv-article .lv-toc .lv-toc-list li.lv-toc-l2 a[href][aria-current]::after { background: var(--ink); border-color: var(--ink); }
  .v3 .v3-rail-app { display: none; }
}

/* ---------- Your places (saved + recent) ---------- */
.v3 .v3-recent { padding-block: clamp(36px, 5vw, 56px); border-top: 1px solid var(--line); }
.v3 .v3-recent-head { display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between; gap: 6px 24px; margin-bottom: 18px; }
.v3 .v3-recent-head .v3-h2 { margin: 0; font-size: clamp(24px, 2.6vw, 32px); }
.v3 .v3-recent-head p { font-family: var(--sans); font-size: 13.5px; color: var(--v3-muted); }
.v3 .v3-recent-list { list-style: none; display: grid; grid-auto-flow: column; grid-auto-columns: minmax(180px, 220px); gap: 14px; overflow-x: auto; padding-bottom: 6px; scrollbar-width: thin; }
.v3 .v3-recent-list a { display: grid; gap: 8px; }
.v3 .v3-recent-img {
  aspect-ratio: 4 / 3; border-radius: var(--v3-radius-sm); overflow: hidden;
  display: grid; place-items: center;
  background: var(--cream-2); color: var(--ink-3);
  font-family: var(--serif); font-size: 40px; font-weight: 600;
}
.v3 .v3-recent-img img { width: 100%; height: 100%; object-fit: cover; }
.v3 .v3-recent-t { font-family: var(--serif); font-weight: 600; font-size: 17px; line-height: 1.2; color: var(--ink); }
.v3 .v3-recent-s { font-family: var(--sans); font-size: 12.5px; color: var(--v3-muted); }
.v3 .v3-recent-list a:hover .v3-recent-t { color: var(--v3-coral-text); }

/* ---------- Mobile dock (one bottom bar) ---------- */
.v3-dock {
  position: fixed; inset-inline: 10px; bottom: calc(10px + env(safe-area-inset-bottom));
  z-index: 40;
  display: flex; align-items: stretch; gap: 8px;
  padding: 8px;
  border-radius: 20px;
  background: rgba(29, 57, 53, .96);
  color: var(--cream);
  box-shadow: 0 18px 40px -16px rgba(19, 28, 31, .6);
  transform: translateY(140%);
  transition: transform .28s ease;
  font-family: var(--sans);
}
.v3-dock.is-on { transform: none; }
.v3-dock[hidden] { display: none; }
@media (min-width: 1024px) { .v3-dock { display: none !important; } }
.v3-dock a, .v3-dock button { color: inherit; text-decoration: none; }
.v3-dock-x { flex: 0 0 auto; width: 34px; display: grid; place-items: center; opacity: .7; background: none; border: 0; }
.v3-dock-x .line-icon { width: 16px; height: 16px; }
.v3-dock-app { flex: 1 1 auto; min-width: 0; display: flex; align-items: center; gap: 10px; padding: 4px 6px; }
.v3-dock-disc { flex: 0 0 auto; width: 38px; height: 38px; border-radius: 50%; display: grid; place-items: center; background: var(--v3-coral-fill); }
.v3-dock-disc .line-icon { width: 18px; height: 18px; color: #fff; }
.v3-dock-txt { min-width: 0; display: grid; line-height: 1.2; }
.v3-dock-txt strong { font-size: 14.5px; font-weight: 600; white-space: nowrap; overflow: hidden; text-overflow: ellipsis; }
.v3-dock-txt small { font-size: 12px; opacity: .72; }
.v3-dock-tix {
  flex: 0 0 auto; display: flex; align-items: center; gap: 6px;
  padding: 0 14px; border-radius: 14px;
  background: var(--cream); color: var(--ink) !important;
  font-size: 14px; font-weight: 600;
}
.v3-dock-tix .line-icon { width: 17px; height: 17px; }
/* The legacy bottom bars are replaced on v3 pages. */
.v3 ~ .mobile-cta-bar, .v3 .mobile-cta-bar { display: none !important; }
.v3 .nav .btn { letter-spacing: 0; font-size: 14px; }

/* "Your places" strip embedded in non-v3 pages (home). */
.v3-embed .v3-recent { padding-inline: 48px; border-top: 0; }
.v3-embed .v3-wrap { max-width: none; padding-inline: 0; }
@media (max-width: 700px) { .v3-embed .v3-recent { padding-inline: 20px; } }

/* ---------- Trip brief + newsletter forms ---------- */
.v3-hp { position: absolute !important; left: -9999px !important; width: 1px; height: 1px; opacity: 0; }
.v3 .v3-brief-wrap { padding-block: clamp(32px, 4vw, 48px); }
.v3 .v3-brief {
  display: grid; grid-template-columns: minmax(0, 1.1fr) minmax(0, 1fr); gap: 20px 40px; align-items: center;
  padding: clamp(22px, 3vw, 32px); border-radius: var(--v3-radius);
  background: var(--ink); color: var(--cream);
}
.v3 .v3-brief .v3-kicker { color: var(--sun); }
.v3 .v3-brief-t { font-family: var(--serif); font-weight: 600; font-size: clamp(22px, 2.4vw, 28px); line-height: 1.15; letter-spacing: -.012em; color: var(--cream); }
.v3 .v3-brief-s { margin-top: 10px; font-family: var(--serif-body); font-size: 16.5px; line-height: 1.55; color: rgba(250, 242, 226, .82); }
.v3 .v3-brief-form { display: grid; grid-template-columns: 1fr 1fr; gap: 6px 12px; align-items: end; }
.v3 .v3-brief-form label { font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: rgba(250, 242, 226, .75); grid-row: 1; }
.v3 .v3-brief-form input[type=date], .v3 .v3-brief-form input[type=email] {
  grid-row: 2; min-height: 46px; width: 100%; padding: 10px 14px; border-radius: 12px;
  border: 1px solid rgba(250, 242, 226, .25); background: rgba(250, 242, 226, .08); color: var(--cream);
  font-family: var(--sans); font-size: 15px; color-scheme: dark;
}
.v3 .v3-brief-form input:focus-visible { outline: 2px solid var(--sun); outline-offset: 2px; }
.v3 .v3-brief-form button { grid-column: 1 / -1; justify-content: center; margin-top: 8px; }
.v3 .v3-brief-status { grid-column: 1 / -1; min-height: 1.2em; font-family: var(--sans); font-size: 14px; color: var(--sun-soft); }
.v3 .v3-brief-form.is-done input, .v3 .v3-brief-form.is-done label, .v3 .v3-brief-form.is-done button { display: none; }
.v3 .v3-brief-form.is-done .v3-brief-status { font-size: 16px; }
@media (max-width: 760px) {
  .v3 .v3-brief { grid-template-columns: 1fr; }
}
@media (max-width: 420px) {
  .v3 .v3-brief-form { grid-template-columns: 1fr; }
  .v3 .v3-brief-form label, .v3 .v3-brief-form input[type=date], .v3 .v3-brief-form input[type=email] { grid-row: auto; }
}
.v3-nl-status { min-height: 1.2em; margin-top: 8px; font-family: var(--sans); font-size: 13px; color: var(--sun-soft, #FBE89A); }

/* AI-referral one-question prompt */
.v3 .v3-aiq { margin-block: 28px; padding: 14px 16px; border-radius: var(--v3-radius-sm); border: 1px dashed var(--ink-4); background: var(--v3-paper); font-family: var(--sans); }
.v3 .v3-aiq label { display: block; font-size: 14px; color: var(--ink-2); margin-bottom: 8px; }
.v3 .v3-aiq-row { display: flex; gap: 8px; align-items: center; }
.v3 .v3-aiq input { flex: 1; min-width: 0; min-height: 42px; padding: 8px 12px; border-radius: 10px; border: 1px solid var(--line); background: #fff; font: inherit; font-size: 15px; color: var(--ink); }
.v3 .v3-aiq-x { background: none; border: 0; color: var(--v3-muted); padding: 6px; }
.v3 .v3-aiq-x .line-icon { width: 16px; height: 16px; }
.v3 .v3-aiq-thanks { font-size: 14px; color: #2F7D6F; }

/* ---------- Contrast and size floor (WCAG AA) ----------
   --ink-3 (#7C928E) is 3.0:1 on cream and 2.7:1 on cream-2: too light for
   the credits, captions, provenance lines and rail sub-links that use it.
   On v3 pages it resolves to --v3-muted (4.6:1 or better on cream, paper
   and cream-2). The cookie banner keeps the original value. */
.audiala-page.v3 { --ink-3: var(--v3-muted); }
.audiala-page.v3 #audiala-consent-root { --ink-3: #7C928E; }
/* The display accents are too light for small text on paper. */
.v3 .lv-ticket-row .prov .inst { color: var(--ink-2); }
.v3 .pill.is-coral { background: var(--v3-coral-fill); }
.audiala-page.v3 .btn-coral { background: var(--v3-coral-fill); }
.audiala-page.v3 .btn-coral:hover { background: var(--v3-coral-text); }
.audiala-page.v3 #audiala-consent-root .btn-coral { background: var(--coral); }
.audiala-page.v3 #audiala-consent-root .btn-coral:hover { background: var(--coral-deep); }
.v3 .lv-toc > summary .f-eyebrow,
.v3 .lv-article .editorial-content.lv-article-intro > :is(h2, h3):first-child { color: var(--v3-coral-text); }
/* Footer small print on the dark band: 40% cream is 3.5:1. */
.v3 .footer-bottom { color: rgba(250, 242, 226, .62); }
/* Nothing meant to be read sits under 12px. */
.v3 .f-eyebrow { font-size: 12px; letter-spacing: .16em; }
.v3 .footer h4 { font-size: 12px; }
.v3 .lv-ticket-row .prov,
.v3 .lv-ticket-row .prov .inst,
.v3 .lv-ticket-row .from .lbl { font-size: 12px; }
.v3 .lv-video .frame .pill.tag,
.v3 .lv-gyg .frame .pill.tag,
.v3 .lv-gyg .foot .from { font-size: 12px; }
.v3 .ph .ph-credit,
.v3 .ph .ph-label { font-size: 12px; }

/* ===== static/css/modules/v3/hub.css ===== */

/* v3 hubs: city (layouts/city/section.html) and country (layouts/country/section.html). */

/* ---------- Sticky section chips ---------- */
.v3 .v3-chips {
  position: sticky; top: 72px; z-index: 20;
  margin-top: clamp(20px, 3vw, 32px);
  background: color-mix(in srgb, var(--cream) 94%, transparent);
  backdrop-filter: blur(10px); -webkit-backdrop-filter: blur(10px);
  border-bottom: 1px solid var(--line);
}
/* nav is ~73px tall at every width */
.v3 .v3-chips .lv-toc-list {
  list-style: none; display: flex; gap: 8px; margin: 0; padding: 10px 0;
  overflow-x: auto; scrollbar-width: none; scroll-behavior: smooth;
}
.v3 .v3-chips .lv-toc-list::-webkit-scrollbar { display: none; }
.v3 .v3-chips li { flex: 0 0 auto; margin: 0; }
.v3 .v3-chips a {
  display: block; padding: 7px 14px; border-radius: 999px;
  font-family: var(--sans); font-size: 13.5px; font-weight: 500; white-space: nowrap;
  color: var(--ink-2); background: var(--v3-paper); border: 1px solid var(--line);
  transition: background .15s ease, color .15s ease, border-color .15s ease;
}
.v3 .v3-chips a:hover { border-color: var(--ink-3); color: var(--ink); }
.v3 .v3-chips a[aria-current] { background: var(--ink); color: var(--cream); border-color: var(--ink); }
/* Narrow screens: the header scrolls away, so the bar pins to the top edge.
   The link is the 44px touch target; the 34px pill is drawn inside it. */
@media (max-width: 1023px) {
  .v3 .v3-chips { top: 0; }
  .v3 .v3-chips .lv-toc-list { padding: 4px 0; }
  .v3 .v3-chips a {
    position: relative; z-index: 0;
    max-width: min(72vw, 300px); padding: 13px 14px; line-height: 18px;
    border: 0; border-radius: 0; background: none;
    overflow: hidden; text-overflow: ellipsis; outline-offset: -4px;
  }
  .v3 .v3-chips a::after {
    content: ""; position: absolute; inset: 5px 0; z-index: -1;
    border-radius: 999px; border: 1px solid var(--line); background: var(--v3-paper);
    transition: background .15s ease, border-color .15s ease;
  }
  .v3 .v3-chips a:hover::after { border-color: var(--ink-3); }
  .v3 .v3-chips a[aria-current] { background: none; }
  .v3 .v3-chips a[aria-current]::after { background: var(--ink); border-color: var(--ink); }
}

/* ---------- Bands (full-width sections, constrained content) ---------- */
.v3 .v3-band { padding-block: clamp(44px, 6vw, 80px); }
.v3 .v3-band + .v3-band { border-top: 1px solid var(--line); }
.v3 .v3-band-head {
  display: flex; flex-wrap: wrap; align-items: baseline; justify-content: space-between;
  gap: 8px 32px; margin-bottom: clamp(20px, 3vw, 32px);
}
.v3 .v3-band-head .v3-h2 { margin: 0; }
.v3 .v3-band-head p { font-family: var(--serif-body); font-size: 17px; line-height: 1.5; color: var(--ink-2); max-width: 34em; }
.v3 .v3-band-ink { background: var(--ink); color: var(--cream); border-top: 0 !important; }
.v3 .v3-band-ink + .v3-band { border-top: 0; }
.v3 .v3-band-ink .v3-h2, .v3 .v3-band-ink .v3-h3, .v3 .v3-band-ink h3, .v3 .v3-band-ink h4 { color: var(--cream); }
.v3 .v3-band-ink .v3-band-head p { color: rgba(250, 242, 226, .78); }
.v3 .v3-band-ink .v3-kicker { color: var(--sun); }
.v3 .v3-narrow { max-width: calc(860px + 2 * var(--v3-gutter)); }

/* Two-column "heading left, reading right" */
.v3 .v3-split { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: clamp(24px, 5vw, 80px); align-items: start; }
.v3 .v3-split-head { position: sticky; top: 140px; }
.v3 .v3-split-head .editorial-attribution, .v3 .v3-split-head > div:not(.v3-h2) { margin-top: 14px; font-size: 13px; }
.v3 .v3-split-body { max-width: var(--v3-measure); min-width: 0; }
@media (max-width: 900px) {
  .v3 .v3-split { grid-template-columns: 1fr; }
  .v3 .v3-split-head { position: static; }
}
.v3 .v3-dropcap p:first-child::first-letter {
  float: inline-start; font-family: var(--serif); font-weight: 600; font-size: 3.4em; line-height: .86;
  margin: 6px 10px 0 0; color: var(--coral);
}
.v3 .v3-highlights { margin-top: 28px; }
.v3 .v3-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .v3 .v3-cols-3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 600px) { .v3 .v3-cols-3 { grid-template-columns: 1fr; } }
.v3 .v3-band .v3-tips h3 { font-size: 19px; }

/* ---------- Place cards (curated) ---------- */
.v3 .v3-cards {
  list-style: none; margin: 0; padding: 0;
  display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: clamp(14px, 2vw, 22px);
}
.v3 .v3-card a { display: grid; gap: 12px; height: 100%; }
.v3 .v3-card .ph { aspect-ratio: 4 / 3; border-radius: var(--v3-radius-sm); overflow: hidden; }
.v3 .v3-card .ph img { width: 100%; height: 100%; object-fit: cover; transition: transform .5s ease; }
.v3 .v3-card a:hover .ph img { transform: scale(1.04); }
.v3 .v3-card.is-lead { grid-column: span 2; grid-row: span 2; }
.v3 .v3-card.is-lead .ph { aspect-ratio: auto; flex: 1; min-height: 280px; height: 100%; }
.v3 .v3-card.is-lead a { grid-template-rows: 1fr auto; }
.v3 .v3-card-mono {
  aspect-ratio: 4 / 3; border-radius: var(--v3-radius-sm);
  display: grid; place-items: center;
  background: var(--cream-2); color: var(--coral);
  font-family: var(--serif); font-style: italic; font-weight: 600; font-size: 56px;
}
.v3 .v3-card-body { display: grid; gap: 4px; }
.v3 .v3-card-k { font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--v3-muted); }
.v3 .v3-card-t { font-family: var(--serif); font-weight: 600; font-size: 19px; line-height: 1.2; color: var(--ink); }
.v3 .v3-card.is-lead .v3-card-t { font-size: clamp(22px, 2.4vw, 28px); }
.v3 .v3-card-d { font-family: var(--serif-body); font-size: 15px; line-height: 1.5; color: var(--ink-2); display: -webkit-box; -webkit-line-clamp: 3; -webkit-box-orient: vertical; overflow: hidden; }
.v3 .v3-card a:hover .v3-card-t { color: var(--v3-coral-text); }
.v3 .v3-more { margin-top: 26px; }
@media (max-width: 900px) { .v3 .v3-cards { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) {
  .v3 .v3-cards { grid-template-columns: 1fr 1fr; gap: 14px 12px; }
  .v3 .v3-card.is-lead { grid-row: auto; }
  .v3 .v3-card.is-lead .ph { min-height: 0; aspect-ratio: 16 / 10; }
  .v3 .v3-card-t { font-size: 17px; }
  .v3 .v3-card:not(.is-lead) .v3-card-d { display: none; }
}

/* ---------- Plan your trip ---------- */
.v3 .v3-logi-wide { grid-template-columns: 1fr 1fr; column-gap: 48px; }
.v3 .v3-logi-wide > div { grid-template-columns: 1fr; gap: 6px; }
.v3 .v3-logi-wide > div:nth-child(2) { border-top: 0; }
@media (max-width: 760px) {
  .v3 .v3-logi-wide { grid-template-columns: 1fr; }
  .v3 .v3-logi-wide > div:nth-child(2) { border-top: 1px solid var(--line-soft); }
}
.v3 .v3-days { list-style: none; padding: 0; margin: 28px 0 0; display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 16px; }
.v3 .v3-days > li { padding: 20px; border-radius: var(--v3-radius-sm); background: var(--v3-paper); border: 1px solid var(--line); }
.v3 .v3-days h3 { font-size: 19px; }
.v3 .v3-days ul { margin-top: 10px; padding-inline-start: 1.1em; font-family: var(--serif-body); font-size: 15.5px; line-height: 1.6; color: var(--ink-2); list-style: disc; }
.v3 .v3-city-tix:not(:empty) { margin-top: 36px; }
.v3 .v3-city-tix .section, .v3 .v3-city-tix section { padding: 0 !important; margin: 0 !important; background: none !important; }

/* ---------- Timeline ---------- */
.v3 .v3-timeline { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; }
.v3 .v3-timeline > li { display: grid; gap: 6px; padding: 18px 0; border-top: 1px solid rgba(250, 242, 226, .14); }
.v3 .v3-tl-y { font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--sun); }
.v3 .v3-timeline h3 { font-size: 19px; line-height: 1.25; }
.v3 .v3-timeline p { font-family: var(--serif-body); font-size: 15.5px; line-height: 1.55; color: rgba(250, 242, 226, .8); margin-top: 4px; }
.v3 .v3-timeline-more { margin-top: 8px; }
.v3 .v3-timeline-more > summary {
  display: inline-flex; align-items: center; gap: 8px; cursor: pointer; list-style: none;
  margin: 10px 0 6px; padding: 10px 16px; border-radius: 999px;
  border: 1px solid rgba(250, 242, 226, .3); color: var(--cream);
  font-family: var(--sans); font-size: 14px; font-weight: 600;
}
.v3 .v3-timeline-more > summary::-webkit-details-marker { display: none; }
.v3 .v3-timeline-more[open] > summary { display: none; }
@media (max-width: 900px) { .v3 .v3-timeline { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .v3 .v3-timeline { grid-template-columns: 1fr; } }
.v3 .v3-people-h { margin: 44px 0 14px; }
.v3 .v3-people { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 0 32px; }
.v3 .v3-people > li { padding: 18px 0; border-top: 1px solid rgba(250, 242, 226, .14); }
.v3 .v3-people h4 { font-family: var(--serif); font-weight: 600; font-size: 20px; }
.v3 .v3-people .v3-kicker { margin-bottom: 4px; }
.v3 .v3-people p { font-family: var(--serif-body); font-size: 15.5px; line-height: 1.55; color: rgba(250, 242, 226, .8); margin-top: 6px; }
.v3 .v3-people .v3-people-c { font-style: italic; color: var(--sun-soft); }
@media (max-width: 900px) { .v3 .v3-people { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .v3 .v3-people { grid-template-columns: 1fr; } }

/* ---------- Eat & drink ---------- */
.v3 .v3-eat { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 0 48px; }
.v3 .v3-eat > li { padding: 18px 0; border-top: 1px solid var(--line-soft); }
.v3 .v3-eat h3 { font-family: var(--serif); font-weight: 600; font-size: 19px; }
.v3 .v3-eat h3 a:hover { color: var(--v3-coral-text); text-decoration: underline; text-underline-offset: 3px; }
.v3 .v3-eat-meta { font-family: var(--sans); font-size: 13px; color: var(--v3-muted); margin-top: 3px; }
.v3 .v3-eat p:not(.v3-eat-meta) { font-family: var(--serif-body); font-size: 15.5px; line-height: 1.55; color: var(--ink-2); margin-top: 6px; }
@media (max-width: 700px) { .v3 .v3-eat { grid-template-columns: 1fr; } }

/* ---------- Gallery + films ---------- */
.v3 .v3-gallery-wide { grid-template-columns: repeat(4, minmax(0, 1fr)); }
.v3 .v3-gallery .ph { width: 100%; height: 100%; border-radius: 0; }
.v3 .v3-gallery .ph img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 760px) { .v3 .v3-gallery-wide { grid-template-columns: 1fr 1fr; } }
.v3 .v3-films-h { margin: 40px 0 14px; }
.v3 .v3-films { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.v3 .v3-films a { display: grid; gap: 8px; }
.v3 .v3-film-img { position: relative; display: block; }
.v3 .v3-film-img .ph { aspect-ratio: 16 / 9; border-radius: var(--v3-radius-sm); overflow: hidden; }
.v3 .v3-film-img .ph img { width: 100%; height: 100%; object-fit: cover; }
.v3 .v3-film-play { position: absolute; inset-inline-start: 10px; bottom: 10px; width: 34px; height: 34px; border-radius: 50%; display: grid; place-items: center; background: rgba(255, 255, 255, .92); color: var(--ink); }
.v3 .v3-film-play .line-icon { width: 14px; height: 14px; }
.v3 .v3-film-t { font-family: var(--serif); font-weight: 600; font-size: 16px; line-height: 1.3; color: var(--ink); display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden; }
@media (max-width: 900px) {
  .v3 .v3-films { grid-auto-flow: column; grid-template-columns: none; grid-auto-columns: 70%; overflow-x: auto; scroll-snap-type: x mandatory; }
  .v3 .v3-films > li { scroll-snap-align: start; }
}

/* ---------- Walks: the existing tour partials, re-centred ---------- */
.v3 .v3-walks { border-top: 1px solid var(--line); }
.v3 .v3-walks > section { padding-block: clamp(44px, 6vw, 72px) !important; }
.v3 .v3-walks > section + section { padding-top: 0 !important; }
.v3 .v3-walks .section-head h2 { font-family: var(--serif); font-weight: 600; font-size: var(--v3-h2); letter-spacing: -.018em; }
.v3 .v3-walks .btn-coral { background: var(--v3-coral-fill); color: #fff; }

/* ---------- All places: a compact directory, not 48 posters ---------- */
.v3 .v3-directory > section { border-top: 1px solid var(--line); padding-block: clamp(44px, 6vw, 72px) !important; }
.v3 .v3-directory .section-head h2 { font-family: var(--serif); font-weight: 600; font-size: var(--v3-h2); letter-spacing: -.018em; }
.v3 .v3-directory .section-head h2 .joy { display: none; }
.v3 .v3-directory .places-grid {
  display: grid !important;
  grid-template-columns: repeat(3, minmax(0, 1fr)) !important;
  gap: 0 32px !important;
}
.v3 .v3-directory .places-grid > article {
  position: relative;
  display: grid !important; grid-template-columns: 56px 1fr; gap: 14px; align-items: center;
  padding: 10px 0; border-top: 1px solid var(--line-soft);
}
.v3 .v3-directory .places-grid > article .ph { width: 56px !important; height: 56px !important; aspect-ratio: 1 !important; border-radius: 10px !important; overflow: hidden; }
.v3 .v3-directory .places-grid > article .ph:not(.has-img) { background: var(--cream-2) !important; }
.v3 .v3-directory .places-grid > article .ph:not(.has-img) > * { display: none; }
.v3 .v3-directory .places-grid > article .ph img { width: 100%; height: 100%; object-fit: cover; }
.v3 .v3-directory .places-grid > article > div { margin: 0 !important; padding: 0 !important; }
.v3 .v3-directory .places-grid h3 { font-family: var(--serif) !important; font-weight: 600 !important; font-size: 16.5px !important; line-height: 1.25 !important; letter-spacing: 0 !important; }
.v3 .v3-directory .places-grid .f-eyebrow { font-size: 11px; color: var(--v3-muted); margin-bottom: 2px; }
.v3 .v3-directory .places-grid > article:hover h3 { color: var(--v3-coral-text); }
@media (max-width: 900px) { .v3 .v3-directory .places-grid { grid-template-columns: 1fr 1fr !important; } }
@media (max-width: 560px) { .v3 .v3-directory .places-grid { grid-template-columns: 1fr !important; } }

/* Legacy city guide */
.v3 .v3-city-guide { border-top: 1px solid var(--line); }

/* ---------- Fixes for shared partials inside v3 hubs ---------- */
.v3 .v3-chips .lv-toc-l2 a::before { content: none !important; }
.v3 .v3-chips .lv-toc-l2 { counter-increment: none; font-family: var(--sans); }
.v3 .v3-tips h3 { font-family: var(--serif); font-weight: 600; color: var(--ink); line-height: 1.25; }
.v3 .v3-band-ink .v3-tips h3 { color: var(--cream); }
.v3 .v3-gallery figure:has(> .ph:not(.has-img)) { display: none; }
.v3 .v3-films li:has(.ph:not(.has-img)) .v3-film-img .ph { background: var(--ink); }
.v3 .v3-directory .places-grid .f-eyebrow { display: none; }

/* Old "section-head" headers (signature tours, ticket carousel, walking
   tours teaser) speak the v3 heading language. */
.v3 .section-head .section-no { display: none !important; }
.v3 .section-head h2, .v3 .section-head h2 > span {
  font-family: var(--serif) !important; font-weight: 600 !important; font-style: normal !important;
  font-size: var(--v3-h2) !important; line-height: 1.1 !important; letter-spacing: -.018em !important;
  color: var(--ink) !important;
}
.v3 .section-head h2 .joy { color: var(--coral) !important; font-style: normal !important; }
.v3 .section-head .lead { font-family: var(--serif-body); font-size: 17px; line-height: 1.5; color: var(--ink-2); }
.v3 #signature-tours { background: transparent !important; }
.v3 #city-top-tickets .section-head h2, .v3 #city-top-tickets .section-head h2 > span { font-size: var(--v3-h3) !important; }

/* ---------- Country ---------- */
.v3 .v3-az { margin-top: 26px; }
.v3 .v3-az > summary { list-style: none; cursor: pointer; display: inline-flex; }
.v3 .v3-az > summary::-webkit-details-marker { display: none; }
.v3 .v3-az > summary .line-icon { transition: transform .2s ease; }
.v3 .v3-az[open] > summary .line-icon { transform: rotate(90deg); }
.v3 .v3-az-list { list-style: none; margin: 20px 0 0; padding: 0; columns: 4 180px; column-gap: 32px; }
.v3 .v3-az-list li { break-inside: avoid; padding: 5px 0; font-family: var(--sans); font-size: 14.5px; }
.v3 .v3-az-list a { color: var(--ink-2); }
.v3 .v3-az-list a:hover { color: var(--v3-coral-text); text-decoration: underline; text-underline-offset: 3px; }
.v3 .v3-regions .v3-prose, .v3 .v3-cols-3 .v3-prose { font-size: 16px; line-height: 1.58; }
.v3 .v3-landmarks h3 a:hover { color: var(--v3-coral-text); }
.v3 .v3-eat.v3-cols-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
@media (max-width: 900px) { .v3 .v3-eat.v3-cols-3 { grid-template-columns: 1fr 1fr; } }
@media (max-width: 560px) { .v3 .v3-eat.v3-cols-3 { grid-template-columns: 1fr; } }
.v3 .v3-days-s { font-family: var(--serif-body); font-size: 15.5px; line-height: 1.55; color: var(--ink-2); margin: 6px 0 8px; }
.v3 .v3-chapter { padding-top: 30px; margin-top: 30px; border-top: 1px solid var(--line); }
.v3 .v3-dropcap + .v3-chapter, .v3 .v3-split-body > .v3-chapter:first-child { border-top: 0; margin-top: 0; padding-top: 0; }
.v3 .v3-chapter h3 { font-family: var(--serif); font-weight: 600; font-size: var(--v3-h3); margin-bottom: 10px; }
.v3 .v3-chapters-more { margin-top: 28px; }
.v3 .v3-chapters-more > summary { list-style: none; cursor: pointer; display: inline-flex; }
.v3 .v3-chapters-more > summary::-webkit-details-marker { display: none; }
.v3 .v3-chapters-more[open] > summary { display: none; }
.v3 .v3-note-quiet { margin-top: 0; background: var(--v3-paper); border: 1px solid var(--line); }
.v3 .v3-note-quiet .v3-prose { font-size: 16px; }

/* ---------- /statistics/ ---------- */
.v3 .v3-stats-table { overflow-x: auto; margin-top: 16px; }
.v3 .v3-stats-table table { width: 100%; border-collapse: collapse; font-family: var(--sans); font-size: 15px; color: var(--ink); }
.v3 .v3-stats-table th, .v3 .v3-stats-table td { text-align: start; padding: 12px 14px 12px 0; border-bottom: 1px solid var(--line); vertical-align: top; }
.v3 .v3-stats-table th { font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--v3-muted); }
.v3 .v3-stats-table td.num { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
.v3 .v3-stats-h { margin: 36px 0 12px; }
.v3 .v3-stats-langs { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(170px, 1fr)); gap: 0 28px; font-family: var(--sans); }
.v3 .v3-stats-langs li { display: flex; justify-content: space-between; padding: 9px 0; border-bottom: 1px solid var(--line-soft); }
.v3 .v3-stats-langs b { font-variant-numeric: tabular-nums; }

/* ===== static/css/modules/v3/place.css ===== */

/* v3 place page (layouts/place/single.html). */

/* ---------- Hero ---------- */
.v3 .v3-hero { padding-top: clamp(18px, 3vw, 32px); }
.v3 .v3-hero-grid {
  display: grid;
  grid-template-columns: minmax(0, 1.25fr) minmax(0, 1fr);
  gap: clamp(28px, 4vw, 64px);
  align-items: start;
  margin-top: clamp(18px, 2.4vw, 28px);
}
.v3 .v3-hero-main { min-width: 0; }
.v3 .v3-where {
  display: flex; flex-wrap: wrap; align-items: center; gap: 6px 8px;
  margin-top: 14px;
  font-family: var(--sans); font-size: 14px; color: var(--v3-muted);
}
.v3 .v3-where .line-icon { width: 16px; height: 16px; color: var(--v3-coral-text); }
.v3 .v3-where span[aria-hidden] { color: var(--ink-4); }
.v3 .v3-verified { display: inline-flex; align-items: center; gap: 5px; }
.v3 .v3-verified .line-icon { color: #2F7D6F; width: 15px; height: 15px; }
.v3 .v3-hero .v3-lead { margin-top: 18px; }
.v3 .v3-actions { display: flex; flex-wrap: wrap; gap: 10px; margin-top: 24px; }
.v3 .v3-ticket-teaser strong { font-weight: 700; color: var(--v3-coral-text); }
.v3 .v3-hero-side { display: grid; gap: 14px; min-width: 0; }
.v3 .v3-hero-side:empty { display: none; }

/* Quick answer + audio preview: same card language, quieter than before. */
.v3 .v3-hero-side .answer-capsule {
  margin: 0;
  padding: 18px 20px;
  border-radius: var(--v3-radius);
  background: var(--v3-paper);
  border: 1px solid var(--line);
  box-shadow: none;
  font-family: var(--serif-body);
  font-size: 16.5px;
  line-height: 1.55;
  color: var(--ink-2);
}
.v3 .v3-hero-side .answer-capsule::before {
  content: none;
}
.v3 .v3-hero-side .lv-audio-preview {
  margin: 0;
  border-radius: var(--v3-radius);
  border: 1px solid rgba(232, 95, 51, .22);
  background: linear-gradient(135deg, #FFF8EA, var(--cream-2));
  box-shadow: var(--v3-shadow);
}
.v3 .lv-audio-preview .btn-coral { background: var(--v3-coral-fill); }

/* Desktop QR to the phone (v3/place-qr-card.html): the quick-answer card's
   surface, quieter than the coral primary. Desktop only (>= 1024px, the
   rail/dock breakpoint). The 138px box is reserved before the QR is drawn
   (2px per module for the place router URL), so nothing shifts. */
.v3 .v3-qr-card { display: none; }
@media (min-width: 1024px) {
  .v3 .v3-qr-card {
    display: grid;
    grid-template-columns: 138px minmax(0, 1fr);
    gap: 18px;
    align-items: center;
    padding: 14px;
    padding-inline-end: 20px;
    border-radius: var(--v3-radius);
    background: var(--v3-paper);
    border: 1px solid var(--line);
  }
  .v3 .v3-qr-card[hidden] { display: none; }
}
.v3 .v3-qr-box {
  width: 138px; height: 138px;
  display: flex; align-items: center; justify-content: center;
  border-radius: 10px; overflow: hidden;
  background: #fff;
}
.v3 .v3-qr-box svg { display: block; }
.v3 .v3-qr-box img { width: 120px; height: 120px; mix-blend-mode: multiply; }
.v3 .v3-qr-t { font-family: var(--serif); font-weight: 600; font-size: 17px; line-height: 1.25; color: var(--ink); text-wrap: balance; }
.v3 .v3-qr-s { margin-top: 6px; font-family: var(--sans); font-size: 13.5px; line-height: 1.4; color: var(--v3-muted); }

/* Photo: framed, no overlay; credit stays on the image. */
.v3 .v3-hero-media { margin-top: clamp(28px, 4vw, 44px); }
.v3 .v3-hero-media .ph {
  width: 100%;
  aspect-ratio: 16 / 7;
  border-radius: var(--v3-radius);
  overflow: hidden;
}
.v3 .v3-hero-media .ph img { width: 100%; height: 100%; object-fit: cover; }
@media (max-width: 760px) {
  .v3 .v3-hero-media { padding-inline: 0; }
  .v3 .v3-hero-media .ph { aspect-ratio: 4 / 3; border-radius: 0; }
}

/* Facts row */
.v3 .v3-facts {
  display: grid;
  grid-template-columns: repeat(var(--n, 4), minmax(0, 1fr));
  margin-top: 18px;
  border-top: 1px solid var(--line);
  border-bottom: 1px solid var(--line);
}
.v3 .v3-facts[data-n="1"] { --n: 1; }
.v3 .v3-facts[data-n="2"] { --n: 2; }
.v3 .v3-facts[data-n="3"] { --n: 3; }
.v3 .v3-facts > div { padding: 16px 18px 16px 0; min-width: 0; }
.v3 .v3-facts > div + div { padding-inline-start: 18px; border-inline-start: 1px solid var(--line); }
.v3 .v3-facts dt {
  display: flex; align-items: center; gap: 7px;
  font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase;
  color: var(--v3-muted);
}
.v3 .v3-facts dt .line-icon { width: 15px; height: 15px; color: var(--v3-coral-text); }
.v3 .v3-facts dd { margin-top: 6px; font-family: var(--serif-body); font-size: 16.5px; line-height: 1.4; color: var(--ink); }
@media (max-width: 760px) {
  .v3 .v3-facts { grid-template-columns: 1fr 1fr; }
  .v3 .v3-facts > div { padding: 14px 12px 14px 0; }
  .v3 .v3-facts > div:nth-child(2n) { padding-inline-start: 14px; border-inline-start: 1px solid var(--line); }
  .v3 .v3-facts > div:nth-child(2n+1) { padding-inline-start: 0; border-inline-start: 0; }
  .v3 .v3-facts > div:nth-child(n+3) { border-top: 1px solid var(--line); }
}

@media (max-width: 900px) {
  .v3 .v3-hero-grid { grid-template-columns: 1fr; }
}

/* ---------- Reading column ---------- */
.v3 .v3-main { min-width: 0; max-width: var(--v3-measure); }
.v3 .v3-main > .v3-sec:first-child { padding-top: 0; }
.v3 .v3-standfirst {
  font-family: var(--serif-body);
  font-size: clamp(21px, 1.9vw, 24px);
  line-height: 1.5;
  color: var(--ink);
  margin-bottom: 22px;
}
.v3 .v3-intro .v3-byline { margin-top: 22px; padding-top: 14px; border-top: 1px solid var(--line-soft); }

/* What to see: numbered, ruled, no cards */
.v3 .v3-see { list-style: none; margin: 8px 0 0; padding: 0; counter-reset: v3see; }
.v3 .v3-see > li { counter-increment: v3see; position: relative; padding: 26px 0 0 52px; }
.v3 .v3-see > li + li { margin-top: 26px; border-top: 1px solid var(--line-soft); }
.v3 .v3-see > li::before {
  content: counter(v3see);
  position: absolute; inset-inline-start: 0; top: 24px;
  width: 34px; height: 34px; border-radius: 50%;
  display: grid; place-items: center;
  font-family: var(--serif); font-style: italic; font-weight: 600; font-size: 17px;
  color: var(--v3-coral-text); background: var(--coral-soft);
}
.v3 .v3-see h3 { margin-bottom: 8px; }

/* Plan your visit: definition rows */
.v3 .v3-logi { display: grid; gap: 0; margin: 4px 0 8px; }
.v3 .v3-logi > div { display: grid; grid-template-columns: minmax(150px, 30%) 1fr; gap: 18px; padding: 16px 0; border-top: 1px solid var(--line-soft); }
.v3 .v3-logi > div:first-child { border-top: 0; }
.v3 .v3-logi dt {
  display: flex; align-items: flex-start; gap: 8px;
  font-family: var(--sans); font-size: 14px; font-weight: 600; color: var(--ink); line-height: 1.4;
}
.v3 .v3-logi dt .line-icon { flex: 0 0 auto; width: 17px; height: 17px; color: var(--v3-coral-text); margin-top: 1px; }
.v3 .v3-logi dd { font-family: var(--serif-body); font-size: 16.5px; line-height: 1.6; color: var(--ink-2); }
.v3 .v3-logi dd p + p { margin-top: .6em; }
@media (max-width: 640px) {
  .v3 .v3-logi > div { grid-template-columns: 1fr; gap: 4px; }
}

/* Tickets block inside Plan your visit: no second section chrome. */
.v3 .v3-plan #all-tickets { padding: 0; margin-top: 30px; }
.v3 .v3-plan #all-tickets .section-title, .v3 .v3-plan #all-tickets h2 {
  font-family: var(--serif); font-size: var(--v3-h3); font-weight: 600; letter-spacing: -.01em;
}
.v3 .v3-plan #all-tickets h2 .section-no { display: none; }
.v3 .v3-plan #all-tickets .lead { font-family: var(--sans); font-size: 13.5px; color: var(--v3-muted); }
.v3 .v3-plan .lv-disclosure { color: var(--v3-muted); }
.v3 .v3-plan #gyg-extras { padding: 0; margin-top: 30px; }
.v3 .v3-plan #ticket-recommendation { margin-top: 24px; }

/* Gallery: 1 lead + up to 6, captions kept short */
.v3 .v3-gallery { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 10px; }
.v3 .v3-gallery figure { position: relative; margin: 0; border-radius: var(--v3-radius-sm); overflow: hidden; background: var(--cream-2); aspect-ratio: 4 / 3; }
.v3 .v3-gallery figure:first-child { grid-column: span 2; grid-row: span 2; aspect-ratio: auto; }
.v3 .v3-gallery img { width: 100%; height: 100%; object-fit: cover; }
.v3 .v3-gallery figcaption {
  position: absolute; inset-inline: 0; bottom: 0;
  padding: 18px 10px 8px;
  font-family: var(--sans); font-size: 11.5px; line-height: 1.35; color: #fff;
  background: linear-gradient(transparent, rgba(19, 28, 31, .72));
  display: -webkit-box; -webkit-line-clamp: 2; -webkit-box-orient: vertical; overflow: hidden;
  opacity: 0; transition: opacity .2s ease;
}
.v3 .v3-gallery figure:hover figcaption, .v3 .v3-gallery figure:focus-within figcaption { opacity: 1; }
.v3 .v3-gallery[data-count="1"] { grid-template-columns: 1fr; }
.v3 .v3-gallery[data-count="1"] figure:first-child { grid-column: auto; grid-row: auto; aspect-ratio: 16 / 9; }
@media (max-width: 640px) {
  .v3 .v3-gallery { grid-template-columns: 1fr 1fr; }
  .v3 .v3-gallery figure:first-child { grid-column: span 2; grid-row: auto; aspect-ratio: 16 / 10; }
}

/* Story */
.v3 .v3-story .v3-prose p:first-child::first-letter {
  float: inline-start;
  font-family: var(--serif); font-weight: 600; font-size: 3.4em; line-height: .86;
  margin: 6px 10px 0 0; color: var(--coral);
}
.v3 .v3-turning {
  margin-top: 32px;
  padding: clamp(22px, 3vw, 32px);
  border-radius: var(--v3-radius);
  background: var(--ink);
  color: var(--cream);
}
.v3 .v3-turning .v3-kicker { color: var(--sun); }
.v3 .v3-turning h3 { color: var(--cream); font-size: clamp(22px, 2.4vw, 28px); margin-bottom: 12px; }
.v3 .v3-turning .v3-prose { color: rgba(250, 242, 226, .86); }
.v3 .v3-turning .v3-prose a { color: var(--sun-soft); }
.v3 .v3-pair { display: grid; grid-template-columns: 1fr 1fr; gap: 28px; margin-top: 32px; }
.v3 .v3-pair h3 { font-size: 19px; margin-bottom: 6px; }
.v3 .v3-pair .v3-prose { font-size: 16.5px; }
@media (max-width: 640px) { .v3 .v3-pair { grid-template-columns: 1fr; } }

/* Tips: a ruled list, not 9 cards */
.v3 .v3-tips { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 0 32px; }
.v3 .v3-tips > li { padding: 18px 0; border-top: 1px solid var(--line-soft); }
.v3 .v3-tips h3 { font-size: 18px; margin-bottom: 6px; }
.v3 .v3-tips .v3-prose { font-size: 16px; line-height: 1.58; }
@media (max-width: 640px) { .v3 .v3-tips { grid-template-columns: 1fr; } }

/* FAQ */
.v3 .v3-faq { border-top: 1px solid var(--line); }

/* Sources: folded by default */
.v3 .v3-sources details > summary {
  list-style: none; cursor: pointer;
  display: flex; align-items: center; gap: 10px;
}
.v3 .v3-sources details > summary::-webkit-details-marker { display: none; }
.v3 .v3-sources details > summary::after {
  content: "+"; margin-inline-start: auto;
  font-family: var(--sans); font-size: 22px; color: var(--v3-muted);
}
.v3 .v3-sources details[open] > summary::after { content: "–"; }
.v3 .v3-sources-n {
  font-family: var(--sans); font-size: 12px; font-weight: 600;
  padding: 2px 8px; border-radius: 999px; background: var(--cream-2); color: var(--ink-2);
}
.v3 .v3-sources .v3-byline { margin: 14px 0 10px; }
.v3 .v3-sources ul { list-style: none; padding: 0; display: grid; gap: 10px; font-family: var(--sans); font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.v3 .v3-sources li a { color: var(--ink); font-weight: 600; text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.v3 .v3-sources li span { color: var(--v3-muted); }
.v3 .v3-attrib { margin-top: 28px; }

/* Related places + walking tours keep their partials, re-centred. */
.v3 #related { border-top: 1px solid var(--line); }

/* Legacy long-read inside v3: match the structured column */
.v3.is-legacy .lv-article-main { max-width: var(--v3-measure); }
.v3 .lv-article-main > .v3-listen { margin-block: 40px; }
.v3 .lv-article-main > .v3-plan { border-top: 1px solid var(--line); margin-top: 48px; }

/* ---------- Mobile hero order: identity → photo → quick answer ----------
   Only for heroes built on .v3-hero-grid (place / city / country). Simple
   heroes (How Audiala works, statistics, pricing, download) keep their
   .v3-wrap: dissolving it removed their side gutters on phones. */
@media (max-width: 900px) {
  .v3 .v3-hero:has(.v3-hero-grid) { display: flex; flex-direction: column; }
  .v3 .v3-hero:has(.v3-hero-grid) > .v3-wrap:first-child, .v3 .v3-hero-grid { display: contents; }
  .v3 .v3-crumbs { order: 1; padding-inline: var(--v3-gutter); }
  .v3 .v3-hero-main { order: 2; padding-inline: var(--v3-gutter); margin-top: 14px; }
  .v3 .v3-hero-media { order: 3; margin-top: 24px; }
  .v3 .v3-hero > .v3-wrap:last-child { order: 4; }
  .v3 .v3-hero-side { order: 5; padding-inline: var(--v3-gutter); margin-top: 22px; }
  .v3 .v3-hero-side:has(> :only-child.answer-capsule:empty) { display: none; }
  .v3 .v3-facts { margin-top: 0; border-top: 0; }
}

/* ---------- Partials inside the reading column: one heading language ---------- */
.v3 .v3-main .section-title, .v3 .v3-main #video-gallery h2, .v3 .v3-main #gyg-extras h2.ttl,
.v3 .v3-main #where-to-eat h2, .v3 .v3-main #nearby-food h2 {
  font-family: var(--serif); font-weight: 600; letter-spacing: -.015em; color: var(--ink);
}
.v3 .v3-main #video-gallery h2 { font-size: var(--v3-h2); line-height: 1.1; }
.v3 .v3-main #video-gallery h2 .joy, .v3 .v3-main #gyg-extras .joy { color: inherit; font-style: normal; }
.v3 .v3-main .section-no { display: none; }
.v3 .v3-main #video-gallery { padding-block: clamp(36px, 5vw, 56px) 0; border-top: 1px solid var(--line); margin-top: clamp(36px, 5vw, 56px); }

/* Horizontal shelves for tours and videos: they are optional extras, so
   they get one row (swipe for more) instead of a wall of tall cards. */
.v3 .lv-gyg-grid, .v3 .lv-videos {
  display: grid !important;
  grid-auto-flow: column;
  grid-template-columns: none !important;
  grid-auto-columns: minmax(220px, 31%);
  gap: 14px !important;
  overflow-x: auto;
  scroll-snap-type: x mandatory;
  padding-bottom: 8px;
  scrollbar-width: thin;
}
.v3 .lv-gyg-grid > *, .v3 .lv-videos > * { scroll-snap-align: start; }
@media (max-width: 640px) {
  .v3 .lv-gyg-grid, .v3 .lv-videos { grid-auto-columns: 74%; }
}
.v3 #gyg-extras .head { margin-bottom: 14px; }
.v3 #gyg-extras h2.ttl { font-size: var(--v3-h3) !important; line-height: 1.2; }

/* Legacy long-read: one rule between parts, not two. */
.v3 .lv-article .legacy-content hr { display: none; }

/* ---------- Next stop ---------- */
.v3 .v3-next { padding-block: clamp(36px, 5vw, 56px); border-top: 1px solid var(--line); background: var(--v3-paper); }
.v3 .v3-next-main { display: flex; flex-wrap: wrap; align-items: center; gap: 16px 24px; }
.v3 .v3-next-card {
  flex: 1 1 520px; max-width: 760px;
  display: grid; grid-template-columns: minmax(120px, 220px) 1fr; gap: 20px; align-items: center;
  padding: 12px; border-radius: var(--v3-radius); background: var(--cream); border: 1px solid var(--line);
  transition: border-color .15s ease, transform .15s ease;
}
.v3 .v3-next-card:hover { border-color: var(--ink-3); transform: translateY(-1px); }
.v3 .v3-next-card .ph, .v3 .v3-next-card .v3-card-mono { aspect-ratio: 4 / 3; border-radius: var(--v3-radius-sm); overflow: hidden; }
.v3 .v3-next-card .ph img { width: 100%; height: 100%; object-fit: cover; }
.v3 .v3-next-body { display: grid; gap: 6px; }
.v3 .v3-next-walk { display: inline-flex; align-items: center; gap: 6px; font-family: var(--sans); font-size: 13px; font-weight: 600; color: var(--v3-coral-text); }
.v3 .v3-next-walk .line-icon { width: 15px; height: 15px; }
.v3 .v3-next-name { font-family: var(--serif); font-weight: 600; font-size: clamp(22px, 2.6vw, 30px); line-height: 1.12; color: var(--ink); letter-spacing: -.015em; }
.v3 .v3-next-go { font-family: var(--sans); font-size: 14px; font-weight: 600; color: var(--ink-2); }
.v3 .v3-next-card:hover .v3-next-go { color: var(--v3-coral-text); }
.v3 .v3-next-more { list-style: none; margin: 18px 0 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; font-family: var(--sans); font-size: 14.5px; }
.v3 .v3-next-more a { font-weight: 600; color: var(--ink); text-decoration: underline; text-decoration-color: var(--line); text-underline-offset: 3px; }
.v3 .v3-next-more a:hover { color: var(--v3-coral-text); }
.v3 .v3-next-more span, .v3 .v3-next-or { color: var(--v3-muted); }
@media (max-width: 560px) {
  .v3 .v3-next-card { grid-template-columns: 104px 1fr; gap: 14px; }
  .v3 .v3-next-dir { width: 100%; justify-content: center; }
}

/* Phones: the audio sample is the first thing under the photo. */
@media (max-width: 900px) {
  .v3 .v3-hero-side .lv-audio-preview { order: -1; }
}

/* ---------- "More in {city}" tiles ---------- */
.v3 .lv-related .meta .typ { font-size: 12px; letter-spacing: .1em; }
/* No photo stored, or it failed to load (its onerror hides it): a paper tile
   with the place's initial and its name in ink. The dark scrim and the cream
   title are for photos only. */
.v3 .lv-related .card-place:not(:has(img:not([style*="display"]))) figure { background: var(--cream-2); box-shadow: inset 0 0 0 1px var(--line); }
.v3 .lv-related .card-place:not(:has(img:not([style*="display"]))) figure::after { content: none; }
.v3 .lv-related .card-place:not(:has(img:not([style*="display"]))) .meta { inset: 0; padding: 16px 18px; display: flex; flex-direction: column; justify-content: flex-end; }
.v3 .lv-related .card-place:not(:has(img:not([style*="display"]))) .meta::before {
  content: attr(data-initial); content: attr(data-initial) / "";
  margin-bottom: auto;
  font-family: var(--serif); font-weight: 600; font-size: clamp(56px, 6.4vw, 92px); line-height: .9;
  color: var(--ink); opacity: .16;
}
.v3 .lv-related .card-place:not(:has(img:not([style*="display"]))) .meta :is(h3, h4) { color: var(--ink); }
.v3 .lv-related .card-place:not(:has(img:not([style*="display"]))) .meta .typ { color: var(--v3-muted); }
.v3 .lv-related .card-place:not(:has(img:not([style*="display"]))):hover figure { box-shadow: inset 0 0 0 1px var(--ink-3); }

/* ===== static/css/modules/v3/play-invite.css ===== */

/* Audiala Play entry card on pilot place pages (layouts/partials/play-invite.html).
   Sits under the hero; quieter than the coral audio actions so the story stays the primary offer. */
.v3 .v3-play-invite-wrap { margin-top: clamp(28px, 4vw, 40px); }
.v3 .v3-play-invite {
  display: grid; grid-template-columns: auto 1fr auto; gap: 14px 18px; align-items: center;
  max-width: 760px;
  padding: 16px 18px;
  border-radius: var(--v3-radius);
  background: var(--v3-paper);
  border: 1px solid var(--line);
}
.v3 .v3-play-invite-disc {
  width: 44px; height: 44px; border-radius: 50%;
  display: grid; place-items: center;
  background: var(--ink); color: var(--cream);
}
.v3 .v3-play-invite-disc .line-icon { width: 22px; height: 22px; color: var(--cream); }
.v3 .v3-play-invite-t { font-family: var(--serif); font-weight: 600; font-size: clamp(19px, 1.9vw, 22px); line-height: 1.2; color: var(--ink); letter-spacing: -.01em; }
.v3 .v3-play-invite-s { margin-top: 4px; font-family: var(--sans); font-size: 14px; line-height: 1.45; color: var(--v3-muted); }
.v3 .v3-play-invite-btn { background: var(--ink); color: var(--cream); }
.v3 .v3-play-invite-btn:hover { background: #142a27; transform: translateY(-1px); }
@media (max-width: 640px) {
  .v3 .v3-play-invite { grid-template-columns: auto 1fr; padding: 16px; }
  .v3 .v3-play-invite-btn { grid-column: 1 / -1; justify-content: center; width: 100%; }
}

/* ===== static/css/modules/v3/statistics.css ===== */

/* =====================================================================
   /statistics/ — "Audiala in numbers" data-viz page.
   Server-rendered tiles, bar lists, heatmap and tables + charts drawn by
   static/js/statistics.js. Chart colours are roles, not raw hex, so the
   page reads as one system: teal for magnitude, coral for emphasis.
   Categorical slots (semantic map) validated on the cream surface with the
   dataviz validator: adjacent CVD ΔE ≥ 9.1, normal-vision ΔE ≥ 19.6; four
   slots sit under 3:1, so the map always ships a legend + hover labels.
   ===================================================================== */

.st {
  --st-surface: var(--cream);
  --st-card: #FFFBF3;
  --st-mark: #2E6E66;          /* single-series teal */
  --st-mark-soft: #A9CFC8;
  --st-accent: var(--v3-coral-fill);
  --st-grid: rgba(29, 57, 53, .10);
  --st-axis: var(--ink-3);
  --st-ink-band: #16302C;
  --st-cat-1: #2a78d6; --st-cat-2: #eb6834; --st-cat-3: #1baf7a; --st-cat-4: #eda100;
  --st-cat-5: #e87ba4; --st-cat-6: #008300; --st-cat-7: #4a3aa7; --st-cat-8: #e34948;
}

/* ---------- hero + KPI tiles ---------- */
.st .st-hero { padding-block: clamp(28px, 4vw, 56px) clamp(12px, 2vw, 20px); }
.st .st-finding { max-width: 44em; margin-top: 18px; padding-inline-start: 14px; border-inline-start: 3px solid var(--coral); font-family: var(--serif-body); font-size: clamp(17px, 1.3vw, 19px); line-height: 1.5; color: var(--ink); }
.st .st-finding-method { display: block; margin-top: 4px; font-family: var(--sans); font-size: 13px; color: var(--ink-3); }
.st .st-kpis { padding-block: 8px clamp(36px, 5vw, 64px); }
.st .st-kpi-grid {
  display: grid; gap: 14px;
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.st .st-kpi {
  background: var(--st-card); border: 1px solid var(--line); border-radius: var(--v3-radius-sm);
  padding: 18px 18px 16px; display: flex; flex-direction: column; gap: 6px; min-width: 0;
}
.st .st-kpi dt { font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .08em; text-transform: uppercase; color: var(--v3-muted); }
.st .st-kpi dd {
  font-family: var(--serif); font-weight: 600; font-size: clamp(28px, 3vw, 40px); line-height: 1.05;
  letter-spacing: -0.02em; color: var(--ink); font-variant-numeric: tabular-nums lining-nums;
  overflow-wrap: anywhere;
}
.st .st-kpi p { font-family: var(--sans); font-size: 13.5px; line-height: 1.45; color: var(--ink-2); }
/* Charts are laid out left to right in every language (axes, heatmap
   labels at x=0); without this an RTL page anchors SVG text from the right. */
.st svg { direction: ltr; }
/* Tiles whose value is a word (a name, a period), not a number: never break mid-word. */
.st .st-kpi-word dd { font-size: clamp(24px, 2.4vw, 34px); overflow-wrap: normal; hyphens: manual; }
.st .st-scale-line { margin-top: 14px; }
/* Hero (2×2) + seven tiles leaves one empty cell in both the 4- and 2-column grids. */
.st .st-kpi-grid > .st-kpi:last-child:not(.st-kpi-hero) { grid-column: span 2; }
.st .st-kpi-hero { grid-column: span 2; grid-row: span 2; background: var(--ink); border-color: var(--ink); justify-content: flex-end; padding: 26px; }
.st .st-kpi-hero dt { color: var(--mint); }
.st .st-kpi-hero dd { color: var(--cream); font-size: clamp(48px, 7vw, 92px); }
.st .st-kpi-hero-long dd { font-size: clamp(40px, 5.4vw, 72px); }
.st .st-kpi-hero p { color: var(--ink-4); font-size: 15px; }
@media (max-width: 900px) {
  .st .st-kpi-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 420px) {
  .st .st-kpi { padding: 14px; }
  .st .st-kpi dd { font-size: 26px; }
}

.st .st-jump { display: flex; flex-wrap: wrap; gap: 8px; margin-top: 22px; }
.st .st-jump a {
  font-family: var(--sans); font-size: 13.5px; font-weight: 500; color: var(--ink);
  padding: 7px 13px; border: 1px solid var(--line); border-radius: 999px; background: transparent;
}
.st .st-jump a:hover { border-color: var(--ink-3); background: rgba(255, 255, 255, .5); }

/* ---------- section scaffolding ---------- */
.st .st-intro { font-family: var(--serif-body); font-size: var(--v3-body); line-height: 1.6; color: var(--ink-2); max-width: 46em; margin-bottom: 22px; text-wrap: pretty; }
.st .st-note { font-family: var(--sans); font-size: 14.5px; line-height: 1.55; color: var(--ink-2); margin-bottom: 12px; }
.st .st-h3 { margin: 28px 0 12px; }
.st .st-cols > div > .st-h3:first-child, .st .st-cols > figure > .st-h3:first-child { margin-top: 0; }
.st .st-cols { display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 1fr); gap: clamp(24px, 4vw, 56px); margin-top: 28px; align-items: start; }
@media (max-width: 860px) { .st .st-cols { grid-template-columns: minmax(0, 1fr); } }
.st .st-fig { margin: 0 0 18px; min-width: 0; }
.st .st-fig figcaption { margin-top: 10px; max-width: 60em; }
.st .v3-byline + .st-h3 { margin-top: 32px; }

/* ---------- horizontal bar list (partials/stats/hbar.html) ---------- */
.st .st-hbar { list-style: none; margin: 0; padding: 0; font-family: var(--sans); font-size: 14px; }
.st .st-hbar-row {
  display: grid; grid-template-columns: minmax(8em, 40%) minmax(0, 1fr) auto; align-items: center;
  gap: 12px; padding: 5px 0; border-bottom: 1px solid var(--line-soft);
}
.st .st-hbar-k { color: var(--ink); line-height: 1.3; min-width: 0; overflow-wrap: anywhere; }
.st .st-hbar-k a { color: var(--ink); text-decoration: underline; text-decoration-color: var(--ink-4); text-underline-offset: 3px; }
.st .st-hbar-k a:hover { color: var(--v3-coral-text); }
.st .st-hbar-k small { display: block; font-size: 12px; color: var(--v3-muted); }
.st .st-hbar-bar { display: block; width: 100%; height: 12px; overflow: visible; }
.st .st-hbar-bar rect { fill: var(--st-mark); }
.st .st-hbar-row:hover .st-hbar-bar rect { fill: var(--st-accent); }
.st .st-hbar-n { font-variant-numeric: tabular-nums; font-weight: 600; color: var(--ink); text-align: end; white-space: nowrap; }
.st .st-hbar-n small { font-weight: 400; color: var(--v3-muted); margin-inline-start: 8px; display: inline-block; min-width: 3.4em; }
@media (max-width: 520px) {
  .st .st-hbar-row { grid-template-columns: minmax(0, 1fr) auto; gap: 2px 10px; }
  .st .st-hbar-bar { grid-column: 1 / -1; grid-row: 2; height: 8px; }
}

/* ---------- JS charts ---------- */
.st .st-chart { position: relative; width: 100%; height: 300px; }
.st .st-chart-short { height: 220px; }
.st .st-chart-tall { height: 420px; }
.st .st-chart svg { display: block; width: 100%; height: 100%; overflow: visible; }
.st .st-chart text, .st .st-canvas-wrap text { font-family: var(--sans); font-size: 12px; fill: var(--ink-2); }
.st .st-axis-line { stroke: var(--st-axis); stroke-width: 1; }
.st .st-gridline { stroke: var(--st-grid); stroke-width: 1; }
.st .st-bar { fill: var(--st-mark); }
.st .st-bar.is-alt { fill: var(--st-mark-soft); }
.st .st-bar.is-hot, .st .st-bar:hover { fill: var(--st-accent); }
.st .st-area { fill: var(--st-mark); fill-opacity: .14; }
.st .st-line { fill: none; stroke: var(--st-mark); stroke-width: 2; stroke-linejoin: round; stroke-linecap: round; }
.st .st-dot { fill: var(--st-mark); fill-opacity: .55; stroke: var(--st-surface); stroke-width: 1; }
.st .st-dot.is-label { fill: var(--st-accent); fill-opacity: 1; }
.st .st-dot:hover { fill: var(--st-accent); fill-opacity: 1; }
.st .st-label { font-weight: 600; fill: var(--ink) !important; paint-order: stroke; stroke: var(--st-surface); stroke-width: 3px; }
.st .st-cross { stroke: var(--ink-3); stroke-width: 1; stroke-dasharray: 3 3; }
.st .st-hit { fill: transparent; }

.st .st-tip {
  position: absolute; z-index: 5; pointer-events: none; transform: translate(-50%, calc(-100% - 12px));
  background: var(--ink); color: var(--cream); font-family: var(--sans); font-size: 13px; line-height: 1.35;
  padding: 7px 10px; border-radius: 8px; white-space: nowrap; box-shadow: var(--v3-shadow);
  opacity: 0; transition: opacity .1s ease;
}
.st .st-tip.is-on { opacity: 1; }
.st .st-tip b { font-weight: 600; }
.st .st-tip span { color: var(--ink-4); }

/* ---------- canvas charts: dot map + semantic map ---------- */
.st .st-canvas-wrap { position: relative; width: 100%; border-radius: var(--v3-radius-sm); overflow: hidden; }
.st .st-canvas-wrap canvas { display: block; width: 100%; height: 100%; }
.st .st-map { aspect-ratio: 18 / 7; background: var(--st-ink-band); }
.st .st-sem { aspect-ratio: 16 / 10; background: var(--st-ink-band); }
@media (max-width: 640px) { .st .st-sem { aspect-ratio: 1 / 1; } }
.st .st-loading { position: absolute; inset: 0; display: grid; place-items: center; color: var(--ink-4); font-family: var(--sans); font-size: 14px; }
.st .st-sem-label {
  position: absolute; transform: translate(-50%, -50%); pointer-events: none;
  font-family: var(--sans); font-size: 12px; font-weight: 600; color: #fff; text-align: center;
  text-shadow: 0 1px 2px rgba(0, 0, 0, .8), 0 0 8px rgba(0, 0, 0, .6); max-width: 9em; line-height: 1.15;
}
@media (max-width: 640px) { .st .st-sem-label { font-size: 10px; } }

.st .st-legend { display: flex; flex-wrap: wrap; gap: 6px 8px; margin-top: 12px; }
.st .st-legend button {
  display: inline-flex; align-items: center; gap: 7px; font-family: var(--sans); font-size: 13px; color: var(--cream);
  padding: 5px 11px; border-radius: 999px; border: 1px solid rgba(250, 242, 226, .25); background: transparent; cursor: pointer;
}
.st .st-legend button[aria-pressed="false"] { opacity: .45; }
.st .st-legend i { width: 10px; height: 10px; border-radius: 50%; display: inline-block; }
.st .st-legend .st-c0 { background: var(--st-cat-1); } .st .st-legend .st-c1 { background: var(--st-cat-2); }
.st .st-legend .st-c2 { background: var(--st-cat-3); } .st .st-legend .st-c3 { background: var(--st-cat-4); }
.st .st-legend .st-c4 { background: var(--st-cat-5); } .st .st-legend .st-c5 { background: var(--st-cat-6); }
.st .st-legend .st-c6 { background: var(--st-cat-7); } .st .st-legend .st-c7 { background: var(--st-cat-8); }

/* dark band for the semantic map */
.st .st-band-ink { background: var(--st-ink-band); }
.st .st-band-ink + .v3-band { border-top: 0; }
.st .st-band-ink .v3-h2 { color: var(--cream); }
.st .st-band-ink .v3-kicker { color: #F39B78; }
.st .st-band-ink .st-intro { color: var(--ink-4); }
.st .st-band-ink .v3-byline { color: #9FB3AF; }

/* ---------- heatmap (server-rendered SVG) ---------- */
.st .st-heat-scroll { overflow-x: auto; }
.st .st-heat { display: block; width: 100%; min-width: 640px; height: auto; }
.st .st-heat rect { fill: var(--st-mark); }
.st .st-heat rect:hover { fill: var(--st-accent); fill-opacity: 1; }
.st .st-heat text { font-family: var(--sans); font-size: 12px; fill: var(--ink-2); }
.st .st-heat .st-heat-x { text-anchor: middle; }
.st .st-heat .st-heat-c { fill: var(--v3-muted); }

/* ---------- oldest places ---------- */
.st .st-oldest { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(260px, 1fr)); gap: 0 28px; font-family: var(--sans); font-size: 14.5px; }
.st .st-oldest li { padding: 9px 0; border-bottom: 1px solid var(--line-soft); display: flex; flex-wrap: wrap; gap: 4px 10px; align-items: baseline; }
.st .st-oldest b { font-variant-numeric: tabular-nums; color: var(--v3-coral-text); min-width: 6.5em; }
.st .st-oldest a { color: var(--ink); font-weight: 600; }
.st .st-oldest a:hover { color: var(--v3-coral-text); }
.st .st-oldest span { color: var(--v3-muted); font-size: 13px; }

@media (prefers-reduced-motion: reduce) { .st .st-tip { transition: none; } }
@media (forced-colors: active) {
  .st .st-hbar-bar rect, .st .st-bar, .st .st-heat rect { fill: CanvasText; }
}

.st .st-scale { min-height: 32px; padding: 5px 12px; font-size: 13px; margin-bottom: 8px; }
.st .st-scale[aria-pressed="true"] { background: var(--ink); color: var(--cream); border-color: var(--ink); }

/* ---------- motion (only when statistics.js adds .js-anim) ---------- */
@keyframes st-grow-y { from { transform: scaleY(0); } to { transform: scaleY(1); } }
.st.js-anim .st-chart:not(.is-drawn) .st-bar { transform-box: fill-box; transform-origin: 50% 100%; animation: st-grow-y .7s cubic-bezier(.2, .7, .2, 1) both; }
.st.js-anim .st-hbar-bar rect { transform-box: fill-box; transform-origin: 0 50%; transform: scaleX(0); transition: transform .9s cubic-bezier(.2, .7, .2, 1); }
.st.js-anim .st-hbar.is-in .st-hbar-bar rect { transform: scaleX(1); }
.st.js-anim .st-hbar.is-in .st-hbar-row:nth-child(n+4) rect { transition-delay: .08s; }
.st.js-anim .st-hbar.is-in .st-hbar-row:nth-child(n+8) rect { transition-delay: .16s; }
.st.js-anim .st-hbar.is-in .st-hbar-row:nth-child(n+12) rect { transition-delay: .24s; }
.st.js-anim .st-heat rect { opacity: 0; transition: opacity .6s ease; }
.st.js-anim .st-heat.is-in rect { opacity: 1; }

/* ---------- interactive layer (statistics-nerd.js) ---------- */
.st { --st-other: #7E8F8B; }
.st .st-legend .st-cx { background: var(--st-other); }
.st .st-switch { display: flex; flex-wrap: wrap; align-items: center; gap: 6px; margin-bottom: 12px; }
.st .st-switch button {
  font-family: var(--sans); font-size: 13px; font-weight: 500; color: var(--ink); cursor: pointer;
  padding: 6px 12px; border-radius: 999px; border: 1px solid var(--line); background: transparent;
}
.st .st-switch button[aria-pressed="true"] { background: var(--ink); color: var(--cream); border-color: var(--ink); }
.st .st-switch button:hover { border-color: var(--ink-3); }
.st .st-switch-sep { width: 1px; height: 20px; background: var(--line); margin-inline: 4px; }
.st .st-band-ink .st-switch button { color: var(--cream); border-color: rgba(250, 242, 226, .25); }
.st .st-band-ink .st-switch button[aria-pressed="true"] { background: var(--cream); color: var(--ink); border-color: var(--cream); }
.st .st-band-ink .st-switch-sep { background: rgba(250, 242, 226, .25); }

.st .st-globe { aspect-ratio: 16 / 10; background: radial-gradient(ellipse at 50% 45%, #1F3D38 0%, #0F201D 70%); touch-action: none; }
.st .st-globe.is-globe > .st-map { display: none; }
.st .st-globe.is-globe.is-flat > .st-map { display: block; position: absolute; inset: 0; aspect-ratio: auto; }
.st .st-globe.is-flat > .st-globe-cv, .st .st-globe.is-flat > .st-zoom { display: none; }
.st .st-globe:not(.is-globe) { aspect-ratio: auto; background: none; }
.st .st-globe-cv { cursor: grab; }
.st .st-globe.is-dragging .st-globe-cv { cursor: grabbing; }
.st .st-zoom { position: absolute; right: 12px; bottom: 12px; display: flex; flex-direction: column; gap: 6px; }
.st .st-zoom button {
  width: 34px; height: 34px; border-radius: 50%; border: 1px solid rgba(250, 242, 226, .3); background: rgba(22, 48, 44, .7);
  color: var(--cream); font: 600 18px/1 var(--sans); cursor: pointer;
}
.st .st-zoom button:hover { background: var(--ink); }
@media (max-width: 640px) { .st .st-globe { aspect-ratio: 1 / 1; } }

.st .st-sem { touch-action: none; }
.st .st-sem-layer { position: absolute; inset: 0; }
.st .st-sem-layer[hidden] { display: none; }
.st .st-sem-layer canvas { cursor: grab; }
.st .st-sem-label[hidden] { display: none; }
.st .st-search { flex: 1 1 260px; min-width: 0; }
.st .st-search input {
  width: 100%; font-family: var(--sans); font-size: 14px; color: var(--cream); padding: 7px 14px; border-radius: 999px;
  border: 1px solid rgba(250, 242, 226, .3); background: rgba(250, 242, 226, .06);
}
.st .st-search input::placeholder { color: #9FB3AF; }
.st .st-search-results {
  display: flex; flex-wrap: wrap; gap: 6px; margin: -4px 0 12px;
}
.st .st-search-results button {
  text-align: start; font-family: var(--sans); font-size: 13px; color: var(--ink); background: var(--cream); border: 0; border-radius: 10px; padding: 6px 10px; cursor: pointer;
}
.st .st-search-results button small { display: block; font-size: 11px; color: var(--v3-muted); }
.st .st-search-results p { color: var(--ink-4); font-family: var(--sans); font-size: 13px; }
@media (prefers-reduced-motion: reduce) {
  .st.js-anim .st-chart .st-bar { animation: none; }
}
.st .sr-only { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0, 0, 0, 0); white-space: nowrap; border: 0; }
.st .st-search-results[hidden] { display: none; }

/* ===== static/css/modules/v3/surfaces.css ===== */

/* =====================================================================
   v3 marketing surfaces — redesign 2026-10-06 (home, /features, /pricing,
   /download). Same paper, type and gutters as the v3 place/city pages
   (foundation.css); this layer only adds what marketing pages need:
   a calmer hero scale, plan cards, the store/QR handoff and screenshot
   figures. Pages opt in with `.audiala-page.v3.v3-mkt`.
   OVAK syntheses/marketing-surfaces-redesign-2026-10.
   ===================================================================== */

.v3-sr {
  position: absolute !important; width: 1px; height: 1px; padding: 0; margin: -1px;
  overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0;
}

/* ---------- Hero scale: no 120–148px slogans ---------- */
.v3-mkt .v3-hero { padding-block: clamp(28px, 4vw, 56px) clamp(8px, 2vw, 16px); }
.v3-mkt .v3-title { font-size: clamp(38px, 5vw, 68px); max-width: 15em; }
/* Copy that already ends in punctuation ("Plan trips. Hear stories.") */
.v3-mkt .v3-title.is-literal::after { content: none; }
.v3-mkt .v3-hero .v3-lead { margin-top: 16px; }
.v3-mkt .v3-band-tight { padding-block: clamp(20px, 3vw, 36px) clamp(44px, 6vw, 72px); }
.v3-mkt .v3-band-tight + .v3-band { border-top: 1px solid var(--line); }
.v3-mkt .v3-actions { align-items: center; gap: 12px 18px; }
.v3-mkt .v3-actions .v3-byline { margin: 0; }
.v3-mkt .v3-btn { white-space: normal; text-align: start; }
.v3-mkt .v3-band-ink .v3-btn-primary { box-shadow: none; }

/* ---------- Pricing: region line ---------- */
.v3-region {
  display: flex; flex-wrap: wrap; align-items: baseline; gap: 4px 10px;
  margin-top: 22px;
  font-family: var(--sans); font-size: 15px; color: var(--ink-2);
}
.v3-region strong { color: var(--ink); font-weight: 600; }
.v3-region-pick { position: relative; display: inline-flex; color: var(--v3-coral-text); font-weight: 600; text-decoration: underline; text-underline-offset: 3px; text-decoration-thickness: 1px; cursor: pointer; }
.v3-region-pick select {
  position: absolute; inset: 0; width: 100%; height: 100%;
  opacity: 0; cursor: pointer; font: inherit;
}
.v3-region-pick:focus-within { outline: 2px solid var(--v3-coral-fill); outline-offset: 3px; border-radius: 4px; }
.v3-region-note { margin-top: 18px; max-width: 46em; }

/* ---------- Pricing: plans ---------- */
.v3-plans {
  display: grid; grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(12px, 1.6vw, 20px);
}
.v3-plan {
  display: flex; flex-direction: column;
  padding: clamp(20px, 2.4vw, 28px);
  border-radius: var(--v3-radius);
  border: 1px solid var(--line);
  background: var(--v3-paper);
}
.v3-plan.is-featured { border: 2px solid var(--v3-coral-fill); background: #FFF8EA; }
.v3-plan-tag {
  font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .12em; text-transform: uppercase;
  color: var(--v3-coral-text);
}
.v3-plan-name { margin-top: 8px; font-family: var(--serif); font-weight: 600; font-size: 24px; line-height: 1.15; color: var(--ink); }
.v3-plan-price {
  margin-top: 16px;
  font-family: var(--serif); font-weight: 600; font-size: clamp(34px, 3.4vw, 44px); line-height: 1;
  letter-spacing: -.02em; color: var(--ink); font-variant-numeric: tabular-nums;
}
.v3-plan-cadence { margin-top: 8px; font-family: var(--sans); font-size: 14px; color: var(--v3-muted); }
.v3-plan-pitch { margin-top: 14px; font-family: var(--serif-body); font-size: 16.5px; line-height: 1.5; color: var(--ink-2); }
.v3-plan-note { margin-top: 10px; font-family: var(--sans); font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.v3-plan-note[hidden] { display: none; }
.v3-plan-trial { color: #2F7D6F; font-weight: 600; }
.v3-free {
  margin-top: 20px; padding: 14px 18px;
  border-radius: var(--v3-radius-sm); background: var(--cream-2);
  font-family: var(--serif-body); font-size: 17px; line-height: 1.5; color: var(--ink-2);
}
.v3-free strong { font-family: var(--serif); color: var(--ink); }
@media (max-width: 860px) {
  .v3-plans { grid-template-columns: 1fr; }
  .v3-plan { display: grid; grid-template-columns: 1fr auto; column-gap: 16px; align-items: baseline; }
  .v3-plan > * { grid-column: 1 / -1; }
  .v3-plan-name { grid-column: 1; }
  .v3-plan-price { grid-column: 2; grid-row: 1 / span 2; margin-top: 0; align-self: end; font-size: 34px; }
  .v3-plan-tag { grid-column: 1; }
}

/* ---------- Pricing: what every plan includes ---------- */
.v3-includes {
  list-style: none; padding: 0; margin-top: 8px;
  display: grid; grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: 0 clamp(28px, 4vw, 56px);
}
.v3-includes li { padding-block: 18px; border-top: 1px solid var(--line); }
.v3-includes .v3-h3 { font-size: 19px; margin-bottom: 4px; }
.v3-includes .v3-prose { font-size: 16.5px; }
@media (max-width: 640px) { .v3-includes { grid-template-columns: 1fr; } }

/* =====================================================================
   /download — the place → phone handoff
   ===================================================================== */
.v3-dl .v3-dl-hero { padding-block: clamp(20px, 3vw, 44px) clamp(28px, 4vw, 48px); }
.v3-dl .v3-dl-grid {
  display: grid; grid-template-columns: minmax(0, 1fr);
  gap: clamp(28px, 4vw, 64px); align-items: start;
}
.v3-dl .v3-title { font-size: clamp(36px, 4.4vw, 60px); }
.v3-dl .v3-lead { max-width: 30em; }

/* Place row: a quiet continuation of the page the visitor came from. */
.v3-dl-place {
  display: flex; align-items: center; gap: 14px;
  margin-top: 20px; padding: 12px 0;
  border-block: 1px solid var(--line);
  max-width: 34em;
}
.v3-dl-place[hidden] { display: none; }
.v3-dl-place-img {
  flex: 0 0 auto; width: 64px; height: 64px; border-radius: var(--v3-radius-sm);
  overflow: hidden; display: grid; place-items: center;
  background: var(--cream-2); color: var(--ink-3);
  font-family: var(--serif); font-weight: 600; font-size: 28px;
}
.v3-dl-place-img img { width: 100%; height: 100%; object-fit: cover; }
.v3-dl-place-txt { display: grid; gap: 2px; min-width: 0; }
.v3-dl-place-k { font-family: var(--sans); font-size: 12px; font-weight: 600; letter-spacing: .1em; text-transform: uppercase; color: var(--v3-muted); }
.v3-dl-place-txt strong { font-family: var(--serif); font-weight: 600; font-size: 20px; line-height: 1.2; color: var(--ink); overflow-wrap: anywhere; }
.v3-dl-place-s { font-family: var(--sans); font-size: 14px; color: var(--v3-muted); }

/* Official badges: same visible height, Apple first, clear space = ¼ height. */
.v3-dl-stores { display: flex; flex-wrap: wrap; align-items: center; gap: 12px 14px; margin-top: 22px; }
.v3-badge { display: inline-block; padding: 0; line-height: 0; border-radius: 10px; }
.v3-badge img { height: 48px; width: auto; display: block; }
.v3-badge:focus-visible { outline: 2px solid var(--v3-coral-fill); outline-offset: 4px; }
/* Known OS: the likely store is the badge; the other is behind the switch. */
.v3-dl[data-os="ios"]:not([data-switch="open"]) .v3-badge-android,
.v3-dl[data-os="android"]:not([data-switch="open"]) .v3-badge-ios { display: none; }
.v3-dl-switch {
  margin-top: 10px; padding: 6px 0; background: none; border: 0;
  font-family: var(--sans); font-size: 14px; font-weight: 600; color: var(--v3-coral-text);
  text-decoration: underline; text-underline-offset: 3px; cursor: pointer;
}
.v3-dl-switch[hidden] { display: none; }
.v3-dl-offer { margin-top: 16px; max-width: 34em; font-family: var(--sans); font-size: 14.5px; line-height: 1.5; color: var(--ink-2); }
.v3-dl-offer-note { color: var(--v3-muted); }
.v3-dl-offer .v3-link { font-weight: 600; white-space: nowrap; }
.v3-dl-after { margin-top: 10px; max-width: 34em; font-family: var(--sans); font-size: 14px; line-height: 1.5; color: var(--v3-muted); }
.v3-dl-after[hidden] { display: none; }

/* QR: desktop only. */
.v3-dl-qr { display: none; }
.v3-dl-qr-h { font-family: var(--serif); font-weight: 600; font-size: 22px; line-height: 1.2; color: var(--ink); }
.v3-dl-qr-t { margin-top: 6px; font-family: var(--sans); font-size: 14px; line-height: 1.45; color: var(--ink-2); }
.v3-dl-qr-code { margin-top: 16px; width: 216px; padding: 0; background: #fff; border-radius: 12px; line-height: 0; }
.v3-dl-qr-code img, .v3-dl-qr-code svg { width: 216px; height: 216px; display: block; image-rendering: pixelated; }
.v3-dl-copy { margin-top: 16px; }
.v3-dl-copy-status { min-height: 1.4em; margin-top: 8px; font-family: var(--sans); font-size: 13.5px; color: var(--ink-2); overflow-wrap: anywhere; }
.v3-dl-copy-status code { font-size: 12.5px; user-select: all; }
@media (min-width: 900px) {
  .v3-dl[data-layout="desktop"] .v3-dl-grid,
  .v3-dl:not([data-os="ios"]):not([data-os="android"]) .v3-dl-grid { grid-template-columns: minmax(0, 1fr) 300px; }
  .v3-dl:not([data-os="ios"]):not([data-os="android"]) .v3-dl-qr {
    display: block; padding: 24px; border: 1px solid var(--line); border-radius: var(--v3-radius); background: var(--v3-paper);
  }
}

/* "Inside Audiala": one real screenshot + three ruled rows. */
.v3-dl-inside { display: grid; grid-template-columns: 240px minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.v3-shot { margin: 0; }
.v3-shot img { width: 100%; height: auto; border-radius: 28px; border: 1px solid var(--line); box-shadow: var(--v3-shadow); }
.v3-shot figcaption { margin-top: 10px; font-family: var(--sans); font-size: 13px; line-height: 1.4; color: var(--v3-muted); }
.v3-rows { list-style: none; padding: 0; margin: 4px 0 18px; }
.v3-rows li { padding-block: 16px; border-top: 1px solid var(--line); }
.v3-rows .v3-h3 { font-size: 19px; margin-bottom: 4px; }
.v3-rows .v3-prose { font-size: 16.5px; }
@media (max-width: 760px) {
  .v3-dl-inside { grid-template-columns: 1fr; }
  .v3-dl-inside .v3-shot { order: 2; max-width: 220px; }
}

/* Closing row: text links only (badges live in the hero). */
.v3-dl-final-links { display: flex; flex-wrap: wrap; gap: 10px 24px; font-family: var(--sans); font-size: 15px; font-weight: 600; }
.v3-dl[data-os="ios"] .v3-final-android, .v3-dl[data-os="android"] .v3-final-ios { display: none; }
.v3-dl:not([data-layout="desktop"]) .v3-final-qr { display: none; }

/* =====================================================================
   Home pass (2026-10-06): the May layout inside the v3 full-bleed shell.
   ===================================================================== */
.v3-home .v3-title { margin-top: 6px; }
.v3-home .v3-lead { margin-top: 16px; max-width: 32em; }
.v3-home .hero-actions { margin-top: 24px; display: flex; flex-wrap: wrap; gap: 10px; }
.v3-home-sources { margin-top: 28px; padding-top: 18px; border-top: 1px solid var(--line); max-width: 34em; font-family: var(--sans); font-size: 14px; line-height: 1.5; color: var(--v3-muted); }
.v3-home-sources .v3-link { font-weight: 600; white-space: nowrap; }
@media (min-width: 700px) { .v3-home-coverage { margin-inline-start: 18px; } }
.v3-home-offer { margin-top: -4px; font-family: var(--serif-body); font-size: 18px; line-height: 1.5; color: rgba(250, 242, 226, .85); max-width: 34em; }
.v3-home .v3-band-ink .v3-actions { margin-top: 22px; }

/* =====================================================================
   How Audiala works (/features): screenshots beside the story.
   ===================================================================== */
.v3-how-hero { display: grid; grid-template-columns: minmax(0, 1fr) 240px; gap: clamp(28px, 5vw, 80px); align-items: center; }
.v3-how-split { display: grid; grid-template-columns: 220px minmax(0, 1fr); gap: clamp(28px, 5vw, 72px); align-items: start; }
.v3-how .v3-band:nth-of-type(even) .v3-how-split { grid-template-columns: minmax(0, 1fr) 220px; }
.v3-how .v3-band:nth-of-type(even) .v3-how-split > .v3-shot { order: 2; }
@media (max-width: 760px) {
  .v3-how-hero, .v3-how-split, .v3-how .v3-band:nth-of-type(even) .v3-how-split { grid-template-columns: 1fr; }
  .v3-how-hero .v3-shot { max-width: 220px; }
  .v3-how-split > .v3-shot { order: 2; max-width: 200px; }
}
.v3-home .v3-story-photo[hidden], .v3-home .audio-preview-copy[hidden] { display: none; }
.v3-home .v3-story-photo { height: 100%; }
.v3-home .v3-story-hook { margin-top: 6px; font-family: var(--serif-body); font-size: 17px; line-height: 1.5; color: var(--ink); text-wrap: pretty; }
.v3-home .v3-story-link { display: inline-block; margin-top: 6px; font-family: var(--sans); font-size: 14px; font-weight: 600; }

/* Rotating home stories (2026-10-06) */
.v3-home .v3-story-nav { display: flex; align-items: center; gap: 6px; margin-top: 10px; }
.v3-home .v3-story-nav[hidden] { display: none; }
.v3-home .v3-story-btn {
  width: 34px; height: 34px; display: grid; place-items: center;
  border-radius: 999px; border: 1px solid var(--line); background: transparent; color: var(--ink); cursor: pointer;
}
.v3-home .v3-story-btn:hover { border-color: var(--ink-3); }
.v3-home .v3-story-btn .line-icon { width: 16px; height: 16px; }
/* The chevron icon points right. */
.v3-home [data-story-prev] .line-icon { transform: rotate(180deg); }
[dir="rtl"] .v3-home [data-story-prev] .line-icon { transform: none; }
[dir="rtl"] .v3-home [data-story-next] .line-icon { transform: rotate(180deg); }
.v3-home .v3-story-pause { margin-inline-start: 6px; }
.v3-home .v3-story-pause.is-paused .line-icon { opacity: .45; }
.v3-home .v3-story-count { min-width: 4.5em; text-align: center; font-family: var(--sans); font-size: 13px; color: var(--v3-muted); font-variant-numeric: tabular-nums; }
.v3-home .v3-story-photo:not([hidden]), .v3-home .audio-preview-copy:not([hidden]) { animation: v3-story-in .45s ease; }
@keyframes v3-story-in { from { opacity: 0; } to { opacity: 1; } }
@media (prefers-reduced-motion: reduce) {
  .v3-home .v3-story-photo:not([hidden]), .v3-home .audio-preview-copy:not([hidden]) { animation: none; }
}

/* ===== static/css/modules/generated-utilities.css ===== */

/* Generated once from former static style attributes.
 * Classes are stable by declaration hash; edit declarations here after migration.
 * New inline styles are rejected by tests/test_style_modularity.py.
 */
/* first seen in layouts/partials/redesign/resume-card.html */
.u-0070778df7 { flex:1;min-width:0; }
/* first seen in layouts/partials/cookie-banner.html */
.u-0090e59d9f { background:rgba(19,28,31,0.5);backdrop-filter:blur(4px);padding:16px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-00bebfc1b7 { font-size:16px;font-weight:500;margin-top:2px;color:var(--ink); }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-010a5b2b6d { display:grid;grid-template-columns:repeat(6,1fr);gap:16px; }
/* first seen in layouts/partners/single.html */
.u-011fdac3da { display:flex;gap:18px;align-items:start; }
/* first seen in layouts/partials/where-to-eat.html */
.u-0135ae5a44 { background:var(--cream-2);padding:1.25rem 1.5rem;border-bottom:1px solid var(--line); }
/* first seen in layouts/animation-preview/single.html */
.u-018aa83544 { background:
    radial-gradient(circle at top, rgba(161, 243, 211, 0.26), transparent 30%),
    linear-gradient(180deg, #fcf9f8 0%, #f6f3f2 100%); }
/* first seen in layouts/download/single.html */
.u-01c4d5eb4c { display:block;border-radius:8px; }
/* first seen in layouts/ambassadors/single.html */
.u-0282489903 { margin-top:46px; }
/* first seen in layouts/ambassadors/single.html */
.u-02f1869b84 { padding:32px; }
/* first seen in layouts/partials/cookie-banner.html */
.u-02ff84560d { display:flex;flex-direction:column;gap:6px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-0390ebbf89 { font-size:96px;margin-top:18px;line-height:0.95; }
/* first seen in layouts/partials/sidebar-guide.html */
.u-03aaa3fc3c { font-family:var(--serif);font-size:1.2rem;color:var(--ink-2);padding-left:18px;text-decoration:none;transition:color .15s; }
/* first seen in layouts/support/single.html */
.u-045b37e8af { padding:80px 48px;background:#F4E6C2;margin:0 -0; }
/* first seen in layouts/city/section.html */
.u-04d0d21374 { color:var(--sun); }
/* first seen in layouts/partials/cookie-banner.html */
.u-04d27d0d0f { width:100%;max-width:560px;max-height:90vh;overflow:auto;border-radius:24px;padding:28px;display:flex;flex-direction:column;gap:16px; }
/* first seen in layouts/city/section.html */
.u-052ecd517f { font-size:22px;color:var(--cream);margin-bottom:10px; }
/* first seen in layouts/city/section.html */
.u-0580517939 { margin-top:36px;display:flex;gap:8px;flex-wrap:wrap; }
/* first seen in layouts/guides/list.html */
.u-05aa5208ea { font-size:52px;line-height:0.95;color:var(--cream); }
/* first seen in layouts/place/single.html */
.u-05e60dcb7f { text-align:center;margin-top:8px; }
/* first seen in layouts/partials/answer-capsule.html */
.u-05e8f1ff71 { font-size:15.5px;line-height:1.6;color:var(--ink-2);background:var(--cream-2);border:1px solid var(--line);border-left:3px solid var(--coral);border-radius:14px;padding:14px 18px;margin:0 0 18px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-069e329591 { background:var(--cream-2);border:1px solid var(--line);border-radius:18px;padding:clamp(1.25rem,3vw,1.75rem);margin-bottom:1.5rem; }
/* first seen in layouts/partials/gyg-extras.html */
.u-07d6766eaf { aspect-ratio:16/10;background:var(--cream-2); }
/* first seen in layouts/partials/city-signature-tours.html */
.u-07f41a8b8e { font-size:15px;line-height:1.6;color:var(--ink-2);margin-top:14px; }
/* first seen in layouts/city/section.html */
.u-083c667940 { display:grid;grid-template-columns:1.3fr 1fr;gap:60px;margin-top:24px;align-items:start; }
/* first seen in layouts/partials/where-to-eat.html */
.u-08ac965aa7 { display:inline-flex;align-items:center;gap:5px;color:var(--coral); }
/* first seen in layouts/partials/redesign/photo.html */
.u-0a13e87bf1 { position:absolute;inset:0;width:100%;height:100%;object-fit:cover;border-radius:inherit;z-index:0; }
/* first seen in layouts/city/section.html */
.u-0ae060593d { margin:0 48px; }
/* first seen in layouts/for/single.html */
.u-0b99583f64 { font-size:52px;line-height:1.12;color:#FAF2E2;margin-top:24px;font-weight:600; }
/* first seen in layouts/city/section.html */
.u-0bd55d8d13 { position:relative;padding-left:48px;margin-bottom:30px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-0bf90dab3e { position:absolute;top:24px;left:24px;display:flex;gap:8px;z-index:1; }
/* first seen in layouts/about/list.html */
.u-0d1026c9a9 { font-family:var(--serif);font-weight:700;font-size:64px;letter-spacing:-0.025em; }
/* first seen in layouts/partials/tickets-all.html */
.u-0d16e0d445 { margin-top:10px;color:var(--ink-3);max-width:62ch; }
/* first seen in layouts/country/section.html */
.u-0d8af12d2e { background:#1D3935;color:#FAF2E2; }
/* first seen in layouts/country/section.html */
.u-0dd29ede72 { display:grid;grid-template-columns:repeat(2, 1fr);gap:24px;margin-top:8px; }
/* first seen in layouts/partials/places-grid.html */
.u-0e391cda8d { font-family:var(--serif);font-weight:700;font-size:52px;letter-spacing:-0.025em;line-height:0.98; }
/* first seen in layouts/partials/where-to-eat.html */
.u-0ea903dab6 { display:grid;grid-template-columns:repeat(auto-fill,minmax(min(100%,290px),1fr));gap:18px;margin-bottom:2rem; }
/* first seen in layouts/for/single.html */
.u-0f8e02d684 { padding:32px;display:flex;gap:20px;align-items:flex-start; }
/* first seen in layouts/place/single.html */
.u-0fd92b1ecf { margin-top:36px; }
/* first seen in layouts/partials/lead-magnet.html */
.u-1016effc5e { margin:clamp(2.5rem,5vw,4rem) 0;padding:clamp(2rem,4vw,2.75rem) clamp(1.75rem,4vw,3rem); }
/* first seen in layouts/city/section.html */
.u-104a4498c4 { display:grid;grid-template-columns:1.3fr 1fr;gap:60px;margin-top:28px;align-items:start; }
/* first seen in layouts/partials/redesign/place-app-cta-bar.html */
.u-104f88bb50 { color:var(--coral);font-size:1.6rem;flex-shrink:0; }
/* first seen in layouts/country/section.html */
.u-10a5c706fe { font-family:var(--serif);font-weight:700;font-size:96px;line-height:0.8;float:left;color:#E85F33;margin-right:14px;margin-top:8px; }
/* first seen in layouts/guides/list.html */
.u-10a9a4e6c4 { flex:1;border:0;background:transparent;font-size:17px;color:var(--ink);outline:none; }
/* first seen in layouts/region/single.html */
.u-10de43dada { margin-top:36px;display:flex;justify-content:space-between;align-items:center;flex-wrap:wrap;gap:16px; }
/* first seen in layouts/city/section.html */
.u-110db9cb11 { max-width:760px;margin:0 auto;position:relative;padding-left:8px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-117df90e7e { font-size:0.875rem;font-style:italic;color:var(--ink-3);flex:1;text-align:right; }
/* first seen in layouts/for/list.html */
.u-11bd641831 { padding:6px 12px 14px; }
/* first seen in layouts/pricing/single.html */
.u-11da7b40af { display:flex;justify-content:space-between;align-items:start;gap:16px;cursor:pointer;list-style:none; }
/* first seen in layouts/country/section.html */
.u-120bf89b86 { display:flex;align-items:center;gap:14px; }
/* first seen in layouts/seo-commercial/single.html */
.u-122a19e228 { font-size:23px;line-height:1.45;color:#1D3935;letter-spacing:-0.005em; }
/* first seen in layouts/partials/opening-hours-card.html */
.u-123dcde164 { background:rgba(232,95,51,0.10);color:var(--coral); }
/* first seen in layouts/partials/editorial-attribution.html */
.u-12a018b3d4 { border-color:var(--line);color:var(--ink-3); }
/* first seen in layouts/pricing/single.html */
.u-12bac8b7d6 { font-size:14px;color:var(--ink-2);margin-top:2px; }
/* first seen in layouts/country/section.html */
.u-12d6ed7d1a { padding:20px;display:flex;gap:14px;align-items:flex-start; }
/* first seen in layouts/support/single.html */
.u-133625b329 { font-size:21px;line-height:1.5;color:var(--ink-2);max-width:600px;margin:24px auto 0; }
/* first seen in layouts/city/section.html */
.u-13aa887145 { background:var(--cream-2); }
/* first seen in layouts/partners/single.html */
.u-13bc27c97e { font-size:28px;line-height:1.05;color:var(--ink); }
/* first seen in layouts/country/section.html */
.u-144280c0e7 { display:grid;grid-template-columns:repeat(2, 1fr);gap:20px;max-width:820px;margin:28px auto 0; }
/* first seen in layouts/city/section.html */
.u-14d0dffde7 { font-size:22px;margin:12px 0 8px; }
/* first seen in layouts/region/single.html */
.u-150f6953ff { margin-top:24px;display:flex;align-items:baseline;gap:14px;padding-top:16px;border-top:1px solid var(--line); }
/* first seen in layouts/travel-tips/list.html */
.u-154ca2750f { font-size:26px;line-height:1.08;margin-top:8px; }
/* first seen in layouts/about/list.html */
.u-15ff00a7a0 { font-family:var(--serif);font-weight:700;font-size:92px;line-height:0.78;float:left;color:var(--coral);margin-right:14px;margin-top:8px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-169a622952 { display:inline-flex;align-items:center;gap:3px;color:var(--ink-2); }
/* first seen in layouts/region/single.html */
.u-16b6c4e523 { color:#E85F33;border-bottom:1px solid #E85F33; }
/* first seen in layouts/place/single.html */
.u-16e352a9ab { padding:32px 48px 48px; }
/* first seen in layouts/partials/app-cta.html */
.u-1717de061d { font-size:clamp(1rem,2vw,1.125rem);line-height:1.5;color:var(--ink-2);max-width:520px;margin:clamp(1.1rem,2vw,1.4rem) 0 0; }
/* first seen in layouts/region/single.html */
.u-17b4a8b54f { font-size:19px;color:var(--ink-2);margin-top:16px; }
/* first seen in layouts/pricing/single.html */
.u-17bab860e8 { display:grid;grid-template-columns:2fr 1fr;gap:60px;margin-top:28px;align-items:end; }
/* first seen in layouts/country/section.html */
.u-17c7f3371c { font-size:18px;margin:0; }
/* first seen in layouts/partials/places-grid.html */
.u-17d6bd539b { text-align:center;color:var(--ink-3);font-size:15px;margin-top:36px; }
/* first seen in layouts/country/section.html */
.u-17e2f21fee { color:#E85F33;text-decoration:underline; }
/* first seen in layouts/ambassadors/single.html */
.u-17f0f4e1a9 { font-size:18px;color:rgba(250,242,226,.72);max-width:590px;margin:20px auto 0; }
/* first seen in layouts/city/section.html */
.u-17f74a27a4 { padding-top:80px; }
/* first seen in layouts/seo-commercial/single.html */
.u-18124753dd { color:#7C928E;margin-bottom:10px; }
/* first seen in layouts/guides/list.html */
.u-186d357af1 { font-size:19px;line-height:1.5;color:var(--ink);margin-bottom:32px; }
/* first seen in layouts/download/single.html */
.u-18f8a7e497 { display:flex;flex-direction:column;align-items:flex-start;line-height:1.1; }
/* first seen in layouts/city/section.html */
.u-194cf23a21 { margin-top:48px;position:relative; }
/* first seen in layouts/country/section.html */
.u-195bd0cd2a { color:#E85F33;margin-right:8px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-19f466aed0 { position:absolute;bottom:28px;left:28px;right:28px;color:var(--cream);z-index:1; }
/* first seen in layouts/country/section.html */
.u-1a00f53b09 { display:flex;align-items:center;gap:12px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-1a1981250d { color:var(--ink-4); }
/* first seen in layouts/partials/lead-magnet.html */
.u-1a67f4a6b4 { font-size:clamp(2rem,3.6vw,2.75rem);line-height:0.98;color:var(--cream);margin:12px 0 0; }
/* first seen in layouts/seo-commercial/single.html */
.u-1a739d06d4 { margin-bottom:48px; }
/* first seen in layouts/ambassadors/single.html */
.u-1baa3bd523 { padding:100px 48px;background:var(--ink);color:var(--cream);text-align:center; }
/* first seen in layouts/travel-tips/list.html */
.u-1bb52c3eef { padding-top:24px;border-top:1px solid var(--line); }
/* first seen in layouts/partials/gyg-extras.html */
.u-1bb616a331 { background:var(--cream-2);color:var(--coral); }
/* first seen in layouts/download/single.html */
.u-1bc314323b { display:block;width:100%;border-radius:34px; }
/* first seen in layouts/for/single.html */
.u-1bdf621a3f { color:#FAF2E2; }
/* first seen in layouts/pricing/single.html */
.u-1c237322ea { font-size:22px;line-height:1.15;margin-bottom:10px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-1c8c51ce8c { font-size:clamp(1.6rem,3.4vw,2.25rem);line-height:1.1;color:var(--ink);margin:0 0 1.5rem; }
/* first seen in layouts/changelog/single.html */
.u-1cb6adbf47 { font-size:16.5px;line-height:1.5;color:var(--ink); }
/* first seen in layouts/country/section.html */
.u-1cd09af134 { font-size:28px;margin:0; }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-1ce9c4a3d6 { color:var(--coral);white-space:nowrap; }
/* first seen in layouts/country/section.html */
.u-1d436efc1f { margin-top:6px; }
/* first seen in layouts/seo-commercial/single.html */
.u-1d606fddca { font-size:16px;line-height:1.65;color:#465C58; }
/* first seen in layouts/support/single.html */
.u-1da242f118 { font-size:104px;margin:24px auto 0;max-width:900px;line-height:0.92; }
/* first seen in layouts/partials/ticket-recommendation.html */
.u-1e3faec0d9 { margin:clamp(2.5rem,5vw,4rem) 0;padding:clamp(1.5rem,4vw,2rem);padding-left:clamp(1.5rem,4vw,2rem);border-left:4px solid var(--coral);background:var(--cream-2);border-radius:0 18px 18px 0; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-1e5d49987c { position:absolute;right:-24px;top:64px;padding:18px 22px;display:flex;gap:14px;align-items:center;max-width:240px; }
/* first seen in layouts/seo-commercial/single.html */
.u-1f09c9e975 { font-size:72px;line-height:1.0;letter-spacing:-0.03em;margin:0; }
/* first seen in layouts/about/list.html */
.u-1f52179ba0 { display:grid;grid-template-columns:1fr 2fr;gap:80px; }
/* first seen in layouts/country/section.html */
.u-1fa55f8baa { font-style:italic;color:#E85F33; }
/* first seen in layouts/features/single.html */
.u-1fc891dcc1 { font-size:64px;color:var(--cream);line-height:0.98; }
/* first seen in layouts/country/section.html */
.u-20094a2110 { padding:80px 48px;background:#1D3935;color:#FAF2E2; }
/* first seen in layouts/support/single.html */
.u-200ce2903d { font-size:80px;line-height:0.95;max-width:760px;margin:0 auto; }
/* first seen in layouts/partials/where-to-eat.html */
.u-207ebc0980 { font-family:var(--serif);font-weight:700;font-size:1.15rem;color:var(--ink);margin:0; }
/* first seen in layouts/city/section.html */
.u-209fe4718a { padding:12px 4px 0; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-20e85b52d5 { display:grid;grid-template-columns:1.5fr 1fr 1fr;gap:20px; }
/* first seen in layouts/place/single.html */
.u-219245a6ae { margin-top:10px;color:var(--ink-3); }
/* first seen in layouts/partials/where-to-eat.html */
.u-232f9fa610 { font-size:0.95rem; }
/* first seen in layouts/country/section.html */
.u-23490c24c3 { font-size:34px;line-height:1.05;margin:14px 0 0; }
/* first seen in layouts/for/single.html */
.u-23ac7c19de { position:absolute;inset:-32px;border-radius:50%;background:var(--cream-2);z-index:0; }
/* first seen in layouts/seo-commercial/single.html */
.u-23b56c8ea9 { font-size:14.5px;line-height:1.5;color:#7C928E;display:flex;gap:8px; }
/* first seen in layouts/download/single.html */
.u-23ff6987a9 { font-size:14px;color:var(--coral);margin-top:4px; }
/* first seen in layouts/support/single.html */
.u-245626a114 { width:48px;height:48px;border-radius:12px;background:#ECE0B8;display:grid;place-items:center;flex-shrink:0; }
/* first seen in layouts/country/section.html */
.u-24b408041a { font-family:var(--serif);font-weight:700;font-size:64px;letter-spacing:-0.025em;color:#FAF2E2; }
/* first seen in layouts/partials/where-to-eat.html */
.u-251caa5d0b { margin-top:clamp(2.5rem,5vw,4rem); }
/* first seen in layouts/partials/where-to-eat.html */
.u-2556ffc29a { display:flex;align-items:center;gap:12px;min-width:0; }
/* first seen in layouts/partials/city-signature-tours.html */
.u-259e3970eb { display:block;width:100%;height:100%;object-fit:cover;object-position:center 62%; }
/* first seen in layouts/city/section.html */
.u-25e8d42e56 { font-size:26px; }
/* first seen in layouts/partials/editorial-attribution.html */
.u-261f33f299 { font-size:13.5px;line-height:1.6;color:var(--ink-3); }
/* first seen in layouts/city/section.html */
.u-26b0b52cd6 { font-size:12.5px;line-height:1.45;color:var(--ink-3); }
/* first seen in layouts/city/section.html */
.u-26f8dfe02c { font-size:28px;margin-top:8px; }
/* first seen in layouts/for/single.html */
.u-275e2f20b9 { font-size:20px;line-height:1; }
/* first seen in layouts/changelog/single.html */
.u-27fbad1b05 { font-size:38px;margin-top:8px;line-height:1.0; }
/* first seen in layouts/partials/redesign/place-app-cta-bar.html */
.u-28325d4536 { background:var(--coral);color:#fff; }
/* first seen in layouts/travel-tips/list.html */
.u-2875c21d3a { display:grid;grid-template-columns:repeat(3, 1fr);gap:28px; }
/* first seen in layouts/partials/price-card.html */
.u-289579665a { font-family:var(--serif);color:var(--ink); }
/* first seen in layouts/about/list.html */
.u-28a7f2621c { padding:32px 40px;display:grid;grid-template-columns:repeat(4, 1fr);gap:32px;align-items:center; }
/* first seen in layouts/guides/list.html */
.u-293f96555b { position:absolute;top:20px;left:20px;z-index:1; }
/* first seen in layouts/features/single.html */
.u-295639d065 { display:grid;grid-template-columns:1fr 1fr;gap:72px;align-items:center; }
/* first seen in layouts/seo-commercial/single.html */
.u-296aa464cd { margin-top:28px;width:100%;justify-content:center; }
/* first seen in layouts/partials/redesign/footer.html */
.u-29cc3aef23 { display:flex;gap:18px; }
/* first seen in layouts/city/section.html */
.u-29f2ed1eba { font-size:15px;color:var(--coral);margin-bottom:14px; }
/* first seen in layouts/seo-commercial/single.html */
.u-29f36c61fd { color:#E85F33;margin-bottom:10px; }
/* first seen in layouts/for/list.html */
.u-2affac8331 { display:grid;grid-template-columns:repeat(2, 1fr);gap:24px; }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-2ba93061c4 { color:var(--ink-3);overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
/* first seen in layouts/country/section.html */
.u-2c475c62c9 { font-size:12.5px;line-height:1.4;color:#7C928E;margin-top:8px; }
/* first seen in layouts/region/single.html */
.u-2c57ee9ed7 { font-size:15px;color:#FAF2E2;opacity:0.85;display:inline-flex;align-items:center;gap:6px; }
/* first seen in layouts/download/single.html */
.u-2c678249ea { display:grid;grid-template-columns:1.3fr 1fr;gap:60px;align-items:center;margin-top:24px;position:relative; }
/* first seen in layouts/partials/where-to-eat.html */
.u-2c7a3f50fb { display:inline-flex;align-items:center;gap:5px;color:var(--coral);margin-left:auto; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-2c898daaa9 { padding:32px 48px 60px;position:relative;z-index:2; }
/* first seen in layouts/country/section.html */
.u-2c8cebfd90 { color:#E85F33; }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-2ce0f3c81b { display:flex;align-items:center;justify-content:space-between;gap:8px;margin-top:auto;padding-top:8px; }
/* first seen in layouts/features/single.html */
.u-2cf547a91f { font-family:var(--serif);font-weight:700;font-size:18px;color:var(--ink); }
/* first seen in layouts/for/single.html */
.u-2cf8eb8b03 { width:4px;height:4px;border-radius:50%;background:currentColor; }
/* first seen in layouts/partials/redesign/footer.html */
.u-2e30950d3e { display:grid;grid-template-columns:1fr 1fr;gap:60px;align-items:end; }
/* first seen in layouts/country/section.html */
.u-2e459fae85 { font-size:18px;line-height:1.5;color:#1D3935; }
/* first seen in layouts/city/section.html */
.u-2e4b9dea17 { font-size:28px;line-height:1.1;margin-bottom:18px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-2e655885d1 { font-style:italic; }
/* first seen in layouts/city/section.html */
.u-2e686265c8 { position:absolute;left:28px;bottom:24px;right:28px;z-index:3;color:#FAF2E2; }
/* first seen in layouts/partners/single.html */
.u-2e8a801c9e { font-size:18px;color:rgba(250,242,226,0.7);max-width:540px;margin:20px auto 0; }
/* first seen in layouts/city/section.html */
.u-2e92007d08 { display:block;position:relative;border-radius:24px;overflow:hidden;margin-bottom:28px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-2ec55b9bd1 { display:flex;align-items:flex-start;justify-content:space-between;gap:8px;margin-bottom:12px; }
/* first seen in layouts/country/section.html */
.u-2ecf31185b { font-size:26px;margin:0; }
/* first seen in layouts/pricing/single.html */
.u-2ef1f5fe45 { list-style:none;display:flex;flex-direction:column;gap:12px; }
/* first seen in layouts/travel-tips/list.html */
.u-2f17536715 { padding:10px 16px; }
/* first seen in layouts/about/list.html */
.u-2f1f0cdf7a { padding-top:48px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-2f5ad6e33d { display:flex;gap:14px;margin-top:32px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-306ac269d5 { max-width:1080px;margin:0 auto;text-align:center; }
/* first seen in layouts/partials/cookie-banner.html */
.u-3169815d7b { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;align-items:center;padding-top:4px; }
/* first seen in layouts/partials/cookie-banner.html */
.u-32ca680d42 { display:flex;align-items:center;justify-content:space-between;gap:12px; }
/* first seen in layouts/city/section.html */
.u-32e2d7cb2d { font-size:13px;color:var(--ink-3);margin-top:8px; }
/* first seen in layouts/city/section.html */
.u-32f1e0e488 { color:var(--ink-3); }
/* first seen in layouts/about/list.html */
.u-338e6ad03b { margin-top:auto;display:inline-flex;align-items:center;gap:8px;color:var(--coral);font-size:14px; }
/* first seen in layouts/features/single.html */
.u-3420414fd8 { color:var(--ink-2); }
/* first seen in layouts/faq/single.html */
.u-347315e79e { padding:32px 36px;scroll-margin-top:24px; }
/* first seen in layouts/city/section.html */
.u-3506041091 { font-size:32px;color:#E85F33; }
/* first seen in layouts/city/section.html */
.u-3517ec692d { margin-top:18px; }
/* first seen in layouts/city/section.html */
.u-351c7049f8 { font-size:32px;color:#FAF2E2;line-height:1.05;max-width:640px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-356da7d992 { font-size:19px;line-height:1.55;color:var(--ink-2);margin-top:24px; }
/* first seen in layouts/country/section.html */
.u-35b2caa742 { font-size:48px;margin-top:14px;color:#FAF2E2;line-height:0.95; }
/* first seen in layouts/seo-commercial/single.html */
.u-361a0a86c1 { font-size:14px;color:#7C928E;margin-top:18px;padding-top:14px;border-top:1px solid rgba(29,57,53,0.14); }
/* first seen in layouts/ambassadors/single.html */
.u-367d1c9d11 { font-size:21px;line-height:1.5;color:var(--ink-2);max-width:680px;margin:28px auto 0; }
/* first seen in layouts/features/single.html */
.u-3684df93b2 { color:var(--coral);flex-shrink:0;margin-top:2px; }
/* first seen in layouts/country/section.html */
.u-36b17fc55a { text-align:center;font-size:22px;color:#465C58;margin-bottom:36px; }
/* first seen in layouts/country/section.html */
.u-36e81f8612 { margin-top:4px; }
/* first seen in layouts/travel-tips/single.html */
.u-3710dde462 { font-size:18px;line-height:1.5;color:rgba(250,242,226,0.85);max-width:480px;margin:16px auto 0; }
/* first seen in layouts/ambassadors/single.html */
.u-372872bdb4 { font-size:72px;line-height:.98;color:var(--cream);max-width:820px;margin:20px auto 0; }
/* first seen in layouts/for/list.html */
.u-3778066401 { padding:14px;position:relative;display:flex;flex-direction:column;gap:16px; }
/* first seen in layouts/region/single.html */
.u-382ed8e73d { color:#FAF2E2;opacity:0.8;margin-bottom:10px; }
/* first seen in layouts/seo-commercial/single.html */
.u-389503ba80 { font-size:14.5px;line-height:1.5;color:#465C58;display:flex;gap:8px; }
/* first seen in layouts/city/section.html */
.u-38965f9b18 { margin:0; }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-38ccb93f63 { font-size:14px;font-weight:500;line-height:1.3;color:var(--ink); }
/* first seen in layouts/guides/list.html */
.u-3a3369c844 { display:grid;grid-template-columns:repeat(4, 1fr);gap:20px; }
/* first seen in layouts/about/list.html */
.u-3a51a7cceb { padding:32px;display:flex;flex-direction:column;gap:18px;min-height:260px; }
/* first seen in layouts/download/single.html */
.u-3a53595141 { font-size:15px;line-height:1.45;color:var(--cream); }
/* first seen in layouts/partials/home/trip-prep.html */
.u-3a7409f962 { width:0%; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-3a952cc0c2 { font-size:20px;line-height:1.5;color:var(--ink-2);max-width:520px;margin-top:28px; }
/* first seen in layouts/partners/single.html */
.u-3ad16154e1 { flex:1;min-width:280px; }
/* first seen in layouts/ambassadors/single.html */
.u-3ae47a24d1 { background:var(--cream-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line); }
/* first seen in layouts/partners/single.html */
.u-3af523cb68 { font-size:15.5px;line-height:1.5;color:var(--ink-2);margin-top:6px; }
/* first seen in layouts/for/single.html */
.u-3afca43b9d { font-family:var(--serif);font-weight:700;font-size:60px;letter-spacing:-0.025em;line-height:0.98; }
/* first seen in layouts/download/single.html */
.u-3b2cdac893 { padding:16px; }
/* first seen in layouts/city/section.html */
.u-3b5581cff5 { position:relative;justify-self:center; }
/* first seen in layouts/place/single.html */
.u-3b7a6d2a83 { display:flex;gap:12px;flex-wrap:wrap;margin-top:24px; }
/* first seen in layouts/partials/ticket-status-capsule.html */
.u-3bbc6d2ade { font-size:0.9rem; }
/* first seen in layouts/seo-commercial/single.html */
.u-3c209e4ba5 { color:#E85F33;margin-bottom:8px; }
/* first seen in layouts/features/single.html */
.u-3c3c9e523b { max-width:980px;margin:0 auto; }
/* first seen in layouts/404.html */
.u-3c3ed2a498 { display:flex;flex-wrap:wrap;gap:12px;justify-content:center;margin-top:36px; }
/* first seen in layouts/download/single.html */
.u-3d33d36e28 { padding:14px;border-radius:28px; }
/* first seen in layouts/pricing/single.html */
.u-3d660f79c6 { width:100%;border-collapse:collapse;font-family:var(--sans);font-size:14px;margin-top:48px; }
/* first seen in layouts/partials/redesign/nav.html */
.u-3d90e904d7 { padding:10px 18px;font-size:13px; }
/* first seen in layouts/city/section.html */
.u-3da9dd991c { font-size:22px;cursor:pointer;list-style:none; }
/* first seen in layouts/ambassadors/single.html */
.u-3dc9c801db { justify-content:center; }
/* first seen in layouts/guides/list.html */
.u-3e0f08e0a6 { font-size:16px;color:var(--ink-3); }
/* first seen in layouts/download/single.html */
.u-3e17c49658 { display:flex;gap:24px;margin-top:40px;align-items:center;flex-wrap:wrap; }
/* first seen in layouts/seo-commercial/single.html */
.u-3e2b61ae7b { display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:32px; }
/* first seen in layouts/seo-commercial/single.html */
.u-3e33bb1b2d { display:grid;grid-template-columns:repeat(5, 1fr);gap:16px;margin-top:48px; }
/* first seen in layouts/partials/places-grid.html */
.u-3f25facc73 { color:var(--ink-3);margin-bottom:4px; }
/* first seen in layouts/seo-commercial/single.html */
.u-3f360fc582 { color:#F3C43D;justify-content:center;margin-bottom:18px; }
/* first seen in layouts/country/section.html */
.u-3f464de534 { padding:28px;border-left:3px solid #E85F33;display:flex;flex-direction:column;gap:10px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-3f4c5ebbf9 { display:flex;align-items:center;gap:10px;margin-bottom:14px; }
/* first seen in layouts/guides/list.html */
.u-3fd3508729 { padding:0 48px 48px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-40581aab5c { font-size:0.9rem;line-height:1.55;color:var(--ink-2);margin:0 0 14px; }
/* first seen in layouts/for/single.html */
.u-40584f99af { display:inline-flex;gap:4px;color:#F3C43D;font-size:22px;letter-spacing:0.2em; }
/* first seen in layouts/city/section.html */
.u-40a57292e8 { display:inline-flex;align-items:center;gap:6px;color:var(--ink); }
/* first seen in layouts/features/single.html */
.u-40e4af8d58 { padding:40px 48px 8px;text-align:center; }
/* first seen in layouts/partials/featured-video.html */
.u-413b3c9d25 { aspect-ratio:16/9;position:relative;background:var(--cream-2); }
/* first seen in layouts/seo-commercial/single.html */
.u-4155c125b6 { color:#7C928E;margin-top:1px; }
/* first seen in layouts/country/section.html */
.u-415d3edc09 { align-self:flex-start; }
/* first seen in layouts/download/single.html */
.u-415f667200 { position:relative;width:300px;border-radius:44px;background:var(--ink);padding:10px;box-shadow:0 40px 80px -30px rgba(29,57,53,0.45); }
/* first seen in layouts/partials/home/redesign-home.html */
.u-418c6210a2 { font-size:13px;color:rgba(250,242,226,0.85);margin-top:4px; }
/* first seen in layouts/partials/app-cta.html */
.u-42060acac7 { justify-self:center; }
/* first seen in layouts/partners/single.html */
.u-42a2d34575 { padding:32px;display:flex;flex-direction:column;gap:16px;border:1px solid rgba(29,57,53,0.14); }
/* first seen in layouts/for/list.html */
.u-42b9917da0 { display:grid;grid-template-columns:2fr 1fr;gap:60px;margin-top:24px;align-items:end; }
/* first seen in layouts/partners/single.html */
.u-43423a8834 { width:52px;height:52px;border-radius:14px;background:var(--cream);display:grid;place-items:center;color:var(--coral); }
/* first seen in layouts/download/single.html */
.u-438d6e78be { border-top:1px solid var(--line); }
/* first seen in layouts/city/section.html */
.u-4397138144 { font-size:26px;margin-bottom:8px; }
/* first seen in layouts/for/single.html */
.u-43b6118baa { font-size:18px;line-height:1.55;color:var(--ink-2);max-width:460px;margin-top:20px; }
/* first seen in layouts/download/single.html */
.u-43e9c079be { font-size:16px; }
/* first seen in layouts/country/section.html */
.u-441f637d70 { display:flex;flex-wrap:wrap;gap:8px;margin-top:6px; }
/* first seen in layouts/city/section.html */
.u-44340014b3 { position:relative;border-radius:16px;overflow:hidden; }
/* first seen in layouts/city/section.html */
.u-443ba44b18 { margin-top:48px;text-align:center; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-44a98fd956 { font-size:40px;line-height:0.95; }
/* first seen in layouts/support/single.html */
.u-451a801fd0 { padding:22px 26px;display:flex;gap:18px;align-items:center; }
/* first seen in layouts/place/single.html */
.u-451d13ae38 { margin-left:6px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-457f167b18 { border:none;border-radius:18px;padding:0;max-width:24rem;width:calc(100% - 2rem);box-shadow:0 24px 60px -20px rgba(29,57,53,0.45); }
/* first seen in layouts/travel-tips/single.html */
.u-45b5b15a2d { padding:0 48px 8px;max-width:1080px;margin:0 auto; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-45feff7398 { font-size:16px;line-height:1.5;color:var(--ink-2); }
/* first seen in layouts/city/section.html */
.u-46234d4045 { display:grid;grid-template-columns:1fr 3fr;gap:60px;align-items:start; }
/* first seen in layouts/faq/single.html */
.u-4627ab07ea { display:flex;align-items:center;gap:16px;margin-bottom:8px; }
/* first seen in layouts/features/single.html */
.u-4636770b49 { margin-bottom:12px; }
/* first seen in layouts/features/single.html */
.u-4676690010 { font-size:52px;margin-top:18px;line-height:0.98;max-width:520px; }
/* first seen in layouts/city/section.html */
.u-46c93f28c9 { color:rgba(250,242,226,0.8);margin-bottom:8px; }
/* first seen in layouts/changelog/single.html */
.u-46cab3da42 { max-width:760px; }
/* first seen in layouts/pricing/single.html */
.u-46d1a0fd1a { font-family:var(--serif);font-size:28px;color:var(--ink-3);margin-top:18px;font-weight:400; }
/* first seen in layouts/city/section.html */
.u-46f7a8d53f { font-size:36px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-47037da9ff { background:#fff;border:1px solid var(--line);border-radius:18px;overflow:hidden;box-shadow:0 1px 3px rgba(29,57,53,0.05);display:flex;flex-direction:column; }
/* first seen in layouts/download/single.html */
.u-47374c3b1e { display:grid;grid-template-columns:repeat(4, 1fr);gap:36px; }
/* first seen in layouts/download/single.html */
.u-473fea79ec { font-size:36px;color:var(--coral); }
/* first seen in layouts/support/single.html */
.u-475fa1188d { margin-bottom:36px; }
/* first seen in layouts/partials/redesign/footer.html */
.u-47d4fec507 { display:flex;gap:0;margin-top:14px;background:rgba(250,242,226,0.08);border-radius:100px;padding:6px;max-width:420px; }
/* first seen in layouts/guides/list.html */
.u-4851a7b10f { display:grid;grid-template-columns:1fr 2fr;gap:60px;margin-bottom:40px;align-items:end; }
/* first seen in layouts/seo-commercial/single.html */
.u-48f15d5178 { font-size:18px;color:#7C928E; }
/* first seen in layouts/country/section.html */
.u-48f2ae8c6d { font-size:18px;color:#1D3935; }
/* first seen in layouts/partials/lead-magnet.html */
.u-49129c7918 { display:flex;flex-direction:column;gap:14px;align-items:flex-end; }
/* first seen in layouts/for/single.html */
.u-49e65a900e { font-size:19px;line-height:1.5;color:rgba(255,255,255,0.92);max-width:520px;margin:18px auto 0; }
/* first seen in layouts/partials/city-signature-tours.html */
.u-4a18d435d2 { padding:0;overflow:hidden;display:flex;flex-direction:column; }
/* first seen in layouts/country/section.html */
.u-4a4bdec0e4 { font-size:30px;margin:0; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-4a8148af42 { color:var(--ink-3);font-size:14px; }
/* first seen in layouts/travel-tips/single.html */
.u-4c16aecccb { justify-content:center;display:flex;align-items:center;gap:10px; }
/* first seen in layouts/city/section.html */
.u-4c5261272c { display:flex;gap:12px;margin-top:28px;flex-wrap:wrap; }
/* first seen in layouts/place/single.html */
.u-4ca4145749 { margin:0;color:var(--ink-3);font-size:15px;line-height:1.55;padding-bottom:14px; }
/* first seen in layouts/seo-commercial/single.html */
.u-4d2051f3bc { display:grid;grid-template-columns:1.25fr 1fr;gap:60px;margin-top:28px;align-items:center; }
/* first seen in layouts/for/single.html */
.u-4e0e2c69bb { display:flex;gap:12px;justify-content:center;margin-top:32px;flex-wrap:wrap; }
/* first seen in layouts/partials/where-to-eat.html */
.u-4e41fa4f64 { padding:0.5rem 1.5rem 1rem; }
/* first seen in layouts/seo-commercial/single.html */
.u-4e5a22d545 { position:sticky;top:96px;align-self:start; }
/* first seen in layouts/region/single.html */
.u-4e6d2d8ccf { font-size:17px;color:var(--ink-3); }
/* first seen in layouts/region/single.html */
.u-4f4fe07927 { display:flex;align-items:center;gap:10px; }
/* first seen in layouts/place/single.html */
.u-4ffb60fc28 { font-size:21px;line-height:1.45;color:var(--ink-2); }
/* first seen in layouts/partials/home/redesign-home.html */
.u-50b6af6d26 { margin-bottom:18px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-5129331aa0 { display:flex;flex-wrap:wrap;align-items:center;gap:10px;margin-bottom:14px;font-size:0.8rem; }
/* first seen in layouts/city/section.html */
.u-51915be910 { font-size:18px;line-height:1.5;color:rgba(250,242,226,0.72);margin-top:16px; }
/* first seen in layouts/partials/answer-capsule.html */
.u-52bcd58570 { margin:0;font-weight:500; }
/* first seen in layouts/country/section.html */
.u-52c121537d { color:#7C928E; }
/* first seen in layouts/city/section.html */
.u-52d92492fe { position:absolute;top:22px;left:22px;z-index:1; }
/* first seen in layouts/features/single.html */
.u-5311bff9f3 { font-size:18px;line-height:1.6;color:var(--ink-2);margin-top:14px; }
/* first seen in layouts/city/section.html */
.u-534e273774 { font-size:24px;color:var(--cream);margin-top:6px;line-height:1.1; }
/* first seen in layouts/seo-commercial/single.html */
.u-53890c8be8 { display:flex;flex-direction:column;gap:18px; }
/* first seen in layouts/seo-commercial/single.html */
.u-53e213f419 { padding:28px 32px; }
/* first seen in layouts/about/list.html */
.u-543ac43053 { margin-top:40px; }
/* first seen in layouts/city/section.html */
.u-545a3614b6 { font-size:16px;margin-top:24px;color:var(--ink-3);border-top:1px solid var(--line);padding-top:18px; }
/* first seen in layouts/support/single.html */
.u-545eb87984 { display:grid;grid-template-columns:repeat(2, 1fr);gap:18px; }
/* first seen in layouts/for/single.html */
.u-5462cfda14 { width:56px;height:56px;border-radius:16px;background:var(--cream-3);display:grid;place-items:center;flex-shrink:0; }
/* first seen in layouts/partials/where-to-eat.html */
.u-54fd82b1d3 { aspect-ratio:16/10;background:var(--cream-2);overflow:hidden; }
/* first seen in layouts/place/single.html */
.u-55175ffdad { margin-top:30px;background:rgba(250,242,226,0.06); }
/* first seen in layouts/partials/sidebar-guide.html */
.u-556909f316 { color:var(--coral);margin-bottom:8px; }
/* first seen in layouts/about/list.html */
.u-55f8419648 { font-size:120px;margin-top:24px;max-width:980px;line-height:0.92; }
/* first seen in layouts/place/single.html */
.u-56eaa83f4b { max-width:1184px;margin:0 auto; }
/* first seen in layouts/country/section.html */
.u-56eded55b8 { display:flex;gap:12px;align-items:flex-start; }
/* first seen in layouts/partials/where-to-eat.html */
.u-5736bf9c52 { font-size:0.875rem;color:var(--ink-2);flex:1;text-align:right; }
/* first seen in layouts/404.html */
.u-57b6a198ef { min-height:54vh;display:flex;flex-direction:column;align-items:center;justify-content:center;text-align:center; }
/* first seen in layouts/partials/where-to-eat.html */
.u-5830216796 { font-family:var(--serif);font-weight:700;font-size:1.2rem;line-height:1.2;color:var(--ink);margin:0; }
/* first seen in layouts/404.html */
.u-5832584189 { font-size:19px;line-height:1.55;color:var(--ink-2);max-width:540px;margin-top:24px; }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-58610391d4 { font-size:12px;color:var(--ink-3);text-align:center;margin-top:24px; }
/* first seen in layouts/place/single.html */
.u-587135a266 { display:grid;grid-template-columns:1fr 2fr;gap:64px;align-items:start; }
/* first seen in layouts/city/section.html */
.u-58a496f28b { font-size:16px;color:var(--ink); }
/* first seen in layouts/about/list.html */
.u-58d455dcb2 { display:grid;grid-template-columns:repeat(3, 1fr);gap:24px; }
/* first seen in layouts/partials/hero-shader.html */
.u-59106cd44d { position:absolute;top:0;left:0;width:100%;height:100%; }
/* first seen in layouts/partials/redesign/nav.html */
.u-591f0fe9bb { padding:2px 6px;background:var(--cream-2);border-radius:4px;font-family:ui-monospace,monospace;font-size:10px;color:var(--ink-2); }
/* first seen in layouts/changelog/single.html */
.u-59718d8f2f { display:flex;align-items:baseline;gap:14px; }
/* first seen in layouts/city/section.html */
.u-59d1ff0173 { color:rgba(250,242,226,0.85);margin-bottom:8px; }
/* first seen in layouts/download/single.html */
.u-5a2dfef236 { text-align:center; }
/* first seen in layouts/city/section.html */
.u-5a6732a8f0 { font-size:14.5px;line-height:1.6;color:var(--ink-2);margin-top:2px; }
/* first seen in layouts/features/single.html */
.u-5ad57eddcd { font-family:var(--serif-body);font-size:18px;color:rgba(250,242,226,0.78);max-width:560px;margin:18px auto 0; }
/* first seen in layouts/ambassadors/single.html */
.u-5ae679ca01 { max-width:760px;margin:26px auto 0;text-align:center;font-size:14px; }
/* first seen in layouts/features/single.html */
.u-5af62b27f6 { font-size:100px;margin:0 auto;max-width:1000px;line-height:0.92; }
/* first seen in layouts/partials/redesign/resume-card.html */
.u-5b2b1f2e85 { border-radius:12px; }
/* first seen in layouts/city/section.html */
.u-5bb70cb611 { font-size:14.5px;line-height:1.5;color:var(--ink-2);margin-top:8px; }
/* first seen in layouts/country/section.html */
.u-5d97603ff8 { font-size:16px;margin-top:24px;color:#7C928E;border-top:1px solid #ECE0B8;padding-top:18px; }
/* first seen in layouts/place/single.html */
.u-5d9e7edb01 { display:grid;grid-template-columns:1fr 2.2fr;gap:64px;align-items:start; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-5db34c5a0f { padding:32px;display:flex;flex-direction:column;gap:18px;min-height:360px; }
/* first seen in layouts/for/single.html */
.u-5dc420b71c { font-size:20px;line-height:1.5;color:var(--ink-2);max-width:520px;margin-top:24px; }
/* first seen in layouts/ambassadors/single.html */
.u-5eb01c3d5b { justify-content:center;color:rgba(250,242,226,.62); }
/* first seen in layouts/about/list.html */
.u-5f3aa1f443 { padding:0 48px 100px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-5f3c4a8792 { width:100%;height:100%;object-fit:cover; }
/* first seen in layouts/download/single.html */
.u-5f60f65dfe { display:flex;align-items:baseline;gap:18px; }
/* first seen in layouts/for/list.html */
.u-5fb48d4591 { padding:32px 48px 32px; }
/* first seen in layouts/about/list.html */
.u-60088bcb0a { color:rgba(250,242,226,0.5); }
/* first seen in layouts/place/single.html */
.u-6113610bf6 { display:flex;align-items:center;gap:8px;color:var(--mint);font-family:var(--sans);font-size:13px; }
/* first seen in layouts/features/single.html */
.u-61ba8a4b16 { color:var(--ink); }
/* first seen in layouts/partials/home/redesign-home.html */
.u-61e13a880d { padding:100px 48px;background:var(--ink);color:var(--cream); }
/* first seen in layouts/city/section.html */
.u-6229f0cc0f { display:grid;grid-template-columns:repeat(3, 1fr);gap:16px; }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-62414bc774 { padding-top:56px;padding-bottom:56px; }
/* first seen in layouts/pricing/single.html */
.u-6253876a64 { flex:1; }
/* first seen in layouts/travel-tips/single.html */
.u-6291d5b024 { padding:40px 48px 0; }
/* first seen in layouts/partials/app-cta.html */
.u-63b8032694 { display:flex;flex-wrap:wrap;gap:12px;margin-top:clamp(1.4rem,3vw,1.9rem); }
/* first seen in layouts/pricing/single.html */
.u-642aafc25f { display:flex;gap:18px;align-items:center; }
/* first seen in layouts/partials/where-to-eat.html */
.u-6540653eac { display:flex;flex-wrap:wrap;align-items:center;gap:8px;margin-bottom:1rem; }
/* first seen in layouts/region/single.html */
.u-6642977f6c { padding:0 48px 56px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-668356b37a { flex-shrink:0;width:30px;height:30px;border-radius:50%;display:grid;place-items:center;border:none;background:none;cursor:pointer;color:var(--ink-2); }
/* first seen in layouts/page/single.html */
.u-669ea0087d { display:inline-flex;align-items:center;gap:8px;color:var(--ink-3); }
/* first seen in layouts/seo-commercial/single.html */
.u-67861589f7 { color:#E85F33;margin-top:1px; }
/* first seen in layouts/partials/city-signature-tours.html */
.u-6817436c22 { font-size:15px;color:var(--coral);margin-top:10px; }
/* first seen in layouts/country/section.html */
.u-68afb14c51 { display:flex;flex-wrap:wrap;align-items:center;gap:6px 4px;margin-top:auto;padding-top:8px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-693b4127c3 { font-size:0.875rem;color:var(--ink-2); }
/* first seen in layouts/place/single.html */
.u-697ed29b56 { font-size:36px;line-height:1.1;margin:28px 0 18px;max-width:820px;font-weight:600; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-69992510f9 { display:flex;align-items:center;gap:14px;margin-top:10px; }
/* first seen in layouts/region/single.html */
.u-69dfcfb892 { color:#E85F33;font-style:italic; }
/* first seen in layouts/seo-commercial/single.html */
.u-69f9330419 { padding:18px 20px; }
/* first seen in layouts/place/single.html */
.u-6a1b4e8b30 { font-size:11.5px;color:var(--ink-4); }
/* first seen in layouts/partials/home/redesign-home.html */
.u-6a75b92e91 { margin-top:14px;display:inline-flex;align-items:center;gap:8px;color:var(--ink);font-size:14px;border-bottom:1px solid var(--ink);padding-bottom:2px; }
/* first seen in layouts/partials/home/features.html */
.u-6a791ab6b3 { animation: hero-float 8s ease-in-out infinite; }
/* first seen in layouts/region/single.html */
.u-6abfb56c69 { position:absolute;top:24px;left:24px;z-index:1; }
/* first seen in layouts/place/single.html */
.u-6acdbd3852 { display:flex;align-items:center;gap:18px;margin-top:22px;flex-wrap:wrap; }
/* first seen in layouts/travel-tips/single.html */
.u-6aeea35e00 { max-width:720px;margin:28px auto 0; }
/* first seen in layouts/partials/where-to-eat.html */
.u-6af288c71a { font-size:0.875rem;font-weight:500;color:var(--ink);width:6rem;flex-shrink:0; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-6b05d986b8 { display:flex;gap:28px;align-items:baseline;flex-wrap:wrap;font-family:var(--serif);font-weight:500;font-size:17px;color:var(--ink-2);line-height:1.4; }
/* first seen in layouts/about/list.html */
.u-6b49f98601 { justify-self:end; }
/* first seen in layouts/pricing/single.html */
.u-6bb0fa2c75 { display:grid;grid-template-columns:1fr 1fr 1fr;gap:20px; }
/* first seen in layouts/features/single.html */
.u-6be6f40dca { text-align:center;margin-bottom:44px; }
/* first seen in layouts/seo-commercial/single.html */
.u-6c226cfb7d { display:grid;grid-template-columns:1fr 1fr;gap:18px 48px; }
/* first seen in layouts/partials/gyg-extras.html */
.u-6c515a79a5 { background:#fff;border:1px solid var(--line); }
/* first seen in layouts/place/single.html */
.u-6c90ec46f1 { margin:0 0 20px;color:var(--ink-3);font-size:15px;line-height:1.55; }
/* first seen in layouts/for/single.html */
.u-6cd4e51930 { display:grid;grid-template-columns:1.15fr 1fr;gap:56px;align-items:center; }
/* first seen in layouts/city/section.html */
.u-6d63bd25de { font-size:16px;line-height:1.6;color:var(--ink-2); }
/* first seen in layouts/partials/hero-place.html */
.u-6dab00c12e { height:85vh; }
/* first seen in layouts/for/list.html */
.u-6db275baea { display:inline-flex;align-items:center;gap:8px;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:3px;margin-top:18px; }
/* first seen in layouts/guides/list.html */
.u-6dc9c32888 { padding:0 6px 6px; }
/* first seen in layouts/city/section.html */
.u-6e1dbf4604 { display:grid;grid-template-columns:repeat(3, 1fr);gap:20px; }
/* first seen in layouts/pricing/single.html */
.u-6e7cc9a802 { font-size:19px;line-height:1.5;color:var(--ink-2); }
/* first seen in layouts/changelog/single.html */
.u-6e945cf17e { padding:48px 56px;display:flex;flex-wrap:wrap;gap:28px;align-items:center;justify-content:space-between; }
/* first seen in layouts/city/section.html */
.u-6f4d0b8320 { color:var(--sun);justify-content:center; }
/* first seen in layouts/region/single.html */
.u-704e8c6c45 { position:relative;display:flex;min-height:480px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-705ac112fa { font-family:var(--serif);font-weight:700;color:var(--ink);font-size:1rem;line-height:1.2;margin:0; }
/* first seen in layouts/ambassadors/single.html */
.u-70ca8fcad9 { font-family:var(--mono);font-size:11px;letter-spacing:.08em;color:rgba(250,242,226,.5);margin-top:22px; }
/* first seen in layouts/country/section.html */
.u-71a61b90ba { text-align:center;color:#7C928E;padding:0 48px 48px; }
/* first seen in layouts/travel-tips/list.html */
.u-71b79668a7 { padding:14px;position:relative;display:flex;flex-direction:column;gap:14px; }
/* first seen in layouts/city/section.html */
.u-71d366d6f1 { font-size:13px;color:var(--coral); }
/* first seen in layouts/for/single.html */
.u-7224278cbc { display:grid;grid-template-columns:1fr 2fr;gap:60px;align-items:start; }
/* first seen in layouts/ambassadors/single.html */
.u-726e8b317f { margin-top:10px; }
/* first seen in layouts/country/section.html */
.u-727df89f1a { padding:28px;display:flex;flex-direction:column;gap:14px; }
/* first seen in layouts/partials/redesign/footer.html */
.u-72b0d8c0c5 { flex:1;background:transparent;border:0;padding:10px 16px;color:var(--cream);outline:none;font-family:var(--sans);font-size:13px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-72ff3e0795 { font-size:88px;color:var(--cream); }
/* first seen in layouts/city/section.html */
.u-7309c212a0 { position:relative;padding-left:48px; }
/* first seen in layouts/country/section.html */
.u-735a429e1b { color:#F3C43D; }
/* first seen in layouts/for/list.html */
.u-73b923035b { padding-top:24px; }
/* first seen in layouts/for/single.html */
.u-741d8efca6 { font-size:0.5em;vertical-align:0.18em; }
/* first seen in layouts/city/section.html */
.u-7450c1d87c { display:flex;align-items:center;gap:12px;margin-top:14px; }
/* first seen in layouts/place/single.html */
.u-755dfae64a { display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:24px; }
/* first seen in layouts/seo-commercial/single.html */
.u-7564ec607e { margin-bottom:16px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-75c0db0f30 { max-width:170px;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
/* first seen in layouts/travel-tips/single.html */
.u-760c637efb { padding:56px;background:#1D3935;text-align:center; }
/* first seen in layouts/ambassadors/single.html */
.u-7661446723 { padding:56px 48px 72px;text-align:center; }
/* first seen in layouts/support/single.html */
.u-769d49ab97 { font-size:14px;color:var(--ink-2);margin-top:4px; }
/* first seen in layouts/page/single.html */
.u-76bf65cc48 { font-size:21px;line-height:1.5;color:var(--ink-2);max-width:640px;margin-top:24px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-772d81c52b { background:#fff;border:1px solid var(--line);color:var(--ink);font-size:0.85rem;padding:5px 12px;border-radius:100px; }
/* first seen in layouts/country/section.html */
.u-7747560df9 { margin-top:24px;border-left:3px solid #E85F33;padding:6px 0 6px 20px; }
/* first seen in layouts/country/section.html */
.u-78a1e5a511 { padding:32px;display:flex;flex-direction:column;gap:14px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-78b8b4b097 { background:#fff;border:1px solid var(--line);color:var(--ink);font-size:0.8rem;padding:4px 12px;border-radius:100px; }
/* first seen in layouts/download/single.html */
.u-792710bf00 { display:grid;grid-template-columns:repeat(4, 1fr);gap:24px; }
/* first seen in layouts/country/section.html */
.u-7984501338 { margin-top:20px;padding:18px 20px;display:flex;gap:12px;align-items:flex-start; }
/* first seen in layouts/partials/cookie-banner.html */
.u-79ab00ef11 { font-size:10px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-79b5e64169 { color:var(--coral-deep);font-size:1.35rem; }
/* first seen in layouts/pricing/single.html */
.u-79d7d6ca0a { border-bottom:1px solid var(--ink); }
/* first seen in layouts/country/section.html */
.u-79d88214f5 { font-size:15px;line-height:1.6;color:#ECE0B8;margin-top:8px; }
/* first seen in layouts/partials/cookie-banner.html */
.u-79f0ff61dc { display:flex;flex-direction:column;gap:2px; }
/* first seen in layouts/partials/featured-video.html */
.u-7a5c9a808d { border-radius:18px;overflow:hidden;border:1px solid var(--line);box-shadow:0 6px 20px -10px rgba(29,57,53,0.2); }
/* first seen in layouts/guides/list.html */
.u-7a6e6dcbba { font-size:14px;color:rgba(250,242,226,0.85);display:inline-flex;align-items:center;gap:6px; }
/* first seen in layouts/partials/redesign/hero-facts-strip.html */
.u-7aee8bbf1b { position:absolute;left:36px;right:36px;bottom:32px;padding:18px 8px;background:rgba(250,242,226,0.96);backdrop-filter:saturate(140%) blur(6px);border-radius:24px;border:1px solid var(--line); }
/* first seen in layouts/changelog/single.html */
.u-7b09529b66 { font-size:48px;margin-top:12px;line-height:0.98; }
/* first seen in layouts/guides/list.html */
.u-7b53a6f488 { flex:1;display:flex;gap:10px;align-items:center;padding:10px 22px;background:var(--cream);border-radius:100px;border:1px solid var(--line);cursor:text; }
/* first seen in layouts/pricing/single.html */
.u-7bba94ae72 { font-size:15px;line-height:1.55;color:var(--ink-2);padding-right:60px; }
/* first seen in layouts/partials/home/hero-shader.html */
.u-7d15a524b3 { z-index:-1; }
/* first seen in layouts/changelog/single.html */
.u-7d19c0cd5c { font-size:112px;margin-top:24px;line-height:0.92; }
/* first seen in layouts/guides/list.html */
.u-7d3e1b821e { font-family:var(--serif);font-weight:700;font-size:22px;color:var(--ink); }
/* first seen in layouts/partials/home/redesign-home.html */
.u-7d47860d53 { font-size:28px; }
/* first seen in layouts/city/section.html */
.u-7d6a91a249 { display:grid;grid-template-columns:1fr 1fr;gap:48px;margin-top:36px; }
/* first seen in layouts/seo-commercial/single.html */
.u-7d6f128888 { font-size:26px;margin-bottom:18px; }
/* first seen in layouts/features/single.html */
.u-7d72ce35d9 { color:rgba(250,242,226,0.85);font-weight:400; }
/* first seen in layouts/seo-commercial/single.html */
.u-7decb18833 { display:grid;grid-template-columns:1fr 1fr;gap:32px; }
/* first seen in layouts/partials/price-card.html */
.u-7e14217fcf { font-family:var(--sans);color:var(--ink-3); }
/* first seen in layouts/for/single.html */
.u-7f0c11aabc { padding:100px 48px;background:#1D3935;color:#FAF2E2; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-7f5565345b { margin-top:56px;padding-top:28px;border-top:1px solid var(--line); }
/* first seen in layouts/city/section.html */
.u-80e6c707cb { display:flex;justify-content:space-between;align-items:center;margin-top:auto;padding-top:14px;border-top:1px solid var(--line); }
/* first seen in layouts/partials/map-section.html */
.u-81537a85cf { flex-shrink:0; }
/* first seen in layouts/country/section.html */
.u-81d93fe668 { display:grid;grid-template-columns:repeat(3, 1fr);gap:16px;margin-top:8px; }
/* first seen in layouts/for/single.html */
.u-82219bda3d { font-family:var(--serif);font-size:28px;color:var(--coral);line-height:1; }
/* first seen in layouts/for/single.html */
.u-82b8a4e8c7 { margin-top:32px;display:inline-flex;align-items:center;gap:12px;font-size:13px;color:rgba(250,242,226,0.55);font-family:var(--sans);letter-spacing:0.14em;text-transform:uppercase; }
/* first seen in layouts/country/section.html */
.u-82e70d2af4 { color:#E85F33;font-size:34px; }
/* first seen in layouts/partials/tickets-all.html */
.u-83ac1ceef7 { cursor:pointer; }
/* first seen in layouts/partials/where-to-eat.html */
.u-83e51a65e1 { display:flex;flex-wrap:wrap;align-items:center;gap:14px;padding-top:12px;border-top:1px solid var(--line-soft);font-size:0.8rem; }
/* first seen in layouts/partials/where-to-eat.html */
.u-846dacc514 { font-size:0.9rem;line-height:1.55;color:var(--ink);margin:0 0 8px; }
/* first seen in layouts/partials/cookie-banner.html */
.u-84ee2a5d2b { font-size:21px; }
/* first seen in layouts/partials/cookie-banner.html */
.u-85e7427e7f { display:flex;flex-direction:column;gap:12px; }
/* first seen in layouts/place/single.html */
.u-86038c238e { font-size:34px;line-height:1.0;letter-spacing:-0.025em;font-weight:700;color:var(--ink);margin:0 0 18px; }
/* first seen in layouts/city/section.html */
.u-862e4694bd { font-size:13.5px;line-height:1.5;color:var(--ink-2);margin-top:6px; }
/* first seen in layouts/city/section.html */
.u-86d8dc3223 { font-family:var(--serif);font-weight:700;font-size:96px;line-height:0.8;float:left;color:var(--coral);margin-right:14px;margin-top:8px; }
/* first seen in layouts/city/section.html */
.u-870b2a20d6 { padding:32px 48px 20px; }
/* first seen in layouts/download/single.html */
.u-884cc40c53 { width:52px;height:52px;border-radius:14px;background:var(--cream-2);display:grid;place-items:center; }
/* first seen in layouts/faq/single.html */
.u-88ac224ebb { font-size:44px;color:var(--cream);margin-top:12px;line-height:1.0; }
/* first seen in layouts/partials/where-to-eat.html */
.u-890b865fe9 { display:inline-flex;align-items:center;gap:3px;color:var(--ink-3); }
/* first seen in layouts/pipeline-animation-preview/single.html */
.u-891097f552 { background:
    radial-gradient(circle at top, rgba(161, 243, 211, 0.2), transparent 32%),
    linear-gradient(180deg, #fcf9f8 0%, #f6f3f2 100%); }
/* first seen in layouts/partials/home/redesign-home.html */
.u-8969d90c9f { font-size:14px;color:var(--ink-3);margin-top:14px; }
/* first seen in layouts/country/section.html */
.u-8986cf1f78 { padding:28px;display:flex;flex-direction:column;gap:12px; }
/* first seen in layouts/city/section.html */
.u-898c188623 { position:relative; }
/* first seen in layouts/guides/list.html */
.u-89a35b4232 { margin-top:24px;display:flex;flex-direction:column;gap:6px; }
/* first seen in layouts/city/section.html */
.u-89ac7bd639 { padding-top:0; }
/* first seen in layouts/place/single.html */
.u-89b6339a28 { grid-template-columns:1fr 1fr; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-89d9405603 { font-size:64px;line-height:1.1;color:var(--cream);margin-top:24px;font-weight:600; }
/* first seen in layouts/region/single.html */
.u-89dd31ae51 { position:absolute;bottom:32px;left:32px;right:32px;color:#FAF2E2;z-index:1; }
/* first seen in layouts/city/section.html */
.u-8a24c4e6ff { font-size:52px;margin-top:14px;color:var(--cream);line-height:0.95; }
/* first seen in layouts/partials/places-grid.html */
.u-8a3da7aa5f { display:grid;grid-template-columns:repeat(4,1fr);gap:20px; }
/* first seen in layouts/about/list.html */
.u-8a450d4ed2 { margin-left:10px; }
/* first seen in layouts/for/single.html */
.u-8a4d79a17d { border-radius:10px; }
/* first seen in layouts/city/section.html */
.u-8a5abcda15 { display:grid;grid-template-columns:repeat(2, 1fr);gap:20px 32px; }
/* first seen in layouts/country/section.html */
.u-8ae109e4ee { font-size:13.5px;line-height:1.55;color:#465C58; }
/* first seen in layouts/seo-commercial/single.html */
.u-8ae9fa3bba { color:#7C928E;margin-bottom:8px; }
/* first seen in layouts/travel-tips/list.html */
.u-8b5424b3bc { font-size:15px;line-height:1.55;color:var(--ink-2);margin-top:8px; }
/* first seen in layouts/pricing/single.html */
.u-8b83aa89e6 { width:52px;height:52px;border-radius:14px;background:var(--cream);display:grid;place-items:center; }
/* first seen in layouts/download/single.html */
.u-8b8b912401 { font-size:20px;line-height:1.5;color:var(--ink-2);max-width:540px;margin-top:28px; }
/* first seen in layouts/travel-tips/single.html */
.u-8b8f9bfd4f { max-width:720px;margin:48px auto 0;padding-top:28px;border-top:1px solid var(--line);display:flex;flex-wrap:wrap;gap:8px; }
/* first seen in layouts/partials/gyg-extras.html */
.u-8c56fd2b8a { color:var(--sun);font-variation-settings:'FILL' 1; }
/* first seen in layouts/download/single.html */
.u-8c640a3528 { font-family:var(--serif);font-weight:700;font-size:clamp(32px,6vw,56px);letter-spacing:-0.025em;line-height:1.0; }
/* first seen in layouts/seo-commercial/single.html */
.u-8c781907e0 { width:100%;justify-content:center; }
/* first seen in layouts/concierge-animation-preview/single.html */
.u-8cb06372e5 { background:
    radial-gradient(circle at top, rgba(255, 199, 218, 0.2), transparent 28%),
    radial-gradient(circle at bottom, rgba(161, 243, 211, 0.18), transparent 26%),
    linear-gradient(180deg, #fcf9f8 0%, #f6f3f2 100%); }
/* first seen in layouts/city/section.html */
.u-8d4494924a { display:grid;grid-template-columns:repeat(2, 1fr);gap:36px 48px; }
/* first seen in layouts/place/single.html */
.u-8d8107e607 { font-size:15px;line-height:1.65;color:var(--ink-2);margin-bottom:16px;break-inside:avoid; }
/* first seen in layouts/partials/tickets-all.html */
.u-8d84299030 { margin-top:14px; }
/* first seen in layouts/city/section.html */
.u-8e103c3254 { font-size:56px;color:var(--cream);margin:0; }
/* first seen in layouts/partials/map-section.html */
.u-8e20af605c { max-width:1184px;margin:0 auto;text-decoration:none; }
/* first seen in layouts/country/section.html */
.u-8e9c380292 { font-size:16px;line-height:1.6;color:#465C58; }
/* first seen in layouts/city/section.html */
.u-8ea9ed76dc { position:absolute;bottom:24px;left:24px;right:24px;color:var(--cream);z-index:1; }
/* first seen in layouts/page/single.html */
.u-8ec1213481 { padding-top:32px;border-top:1px solid var(--line); }
/* first seen in layouts/ambassadors/single.html */
.u-8ec929ec4c { font-size:96px;margin:26px auto 0;max-width:1060px;line-height:.92; }
/* first seen in layouts/partials/cookie-banner.html */
.u-8edb3ed6f7 { display:flex;align-items:flex-start;justify-content:space-between;gap:12px; }
/* first seen in layouts/ambassadors/single.html */
.u-8ee8ec5fbc { color:var(--cream);border-color:rgba(250,242,226,.35); }
/* first seen in layouts/partials/redesign/footer.html */
.u-8f02e9e3e5 { background:transparent;color:var(--cream);padding:10px 20px; }
/* first seen in layouts/faq/single.html */
.u-8f9b9a1e0b { font-size:108px;margin-top:24px;max-width:920px;line-height:0.92; }
/* first seen in layouts/pricing/single.html */
.u-905afb5ec2 { padding:72px 48px;background:var(--cream-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line); }
/* first seen in layouts/features/single.html */
.u-90d7883025 { margin-left:8px;padding:4px 10px;font-size:11px; }
/* first seen in layouts/place/single.html */
.u-910f53fb7a { margin-top:20px; }
/* first seen in layouts/city/section.html */
.u-915f326770 { display:inline-flex;transform:rotate(180deg); }
/* first seen in layouts/partials/answer-capsule.html */
.u-91867ba9b6 { margin:0 0 .25rem;color:var(--coral-deep); }
/* first seen in layouts/about/list.html */
.u-91cc290ebd { font-family:var(--serif-body);font-size:17px;line-height:1.6;color:rgba(250,242,226,0.78);margin-top:18px;max-width:520px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-91f8f4cecd { font-style:italic;color:var(--sun); }
/* first seen in layouts/for/list.html */
.u-922ff6b772 { font-size:18px;line-height:1.55;color:var(--ink-2); }
/* first seen in layouts/city/section.html */
.u-928124bf08 { display:grid;grid-template-columns:repeat(2, 1fr);gap:24px 40px; }
/* first seen in layouts/place/single.html */
.u-92860992dc { margin-bottom:14px;color:var(--ink-3);letter-spacing:0.16em; }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-9349f1e819 { font-family:var(--serif);font-weight:700;font-size:56px;letter-spacing:-0.025em;line-height:0.98; }
/* first seen in layouts/partners/single.html */
.u-9361ecb898 { font-size:16px;line-height:1.55;color:var(--ink-2); }
/* first seen in layouts/place/single.html */
.u-93942ecf4c { text-align:center;font-size:20px;color:var(--ink-2);margin-bottom:28px; }
/* first seen in layouts/features/single.html */
.u-93ae73a3df { background:#F8D8C8;border-radius:12px;padding:12px 14px;margin-bottom:10px; }
/* first seen in layouts/country/section.html */
.u-93befb07d8 { font-size:13.5px;line-height:1.5;color:#465C58;margin-top:8px; }
/* first seen in layouts/partials/city-signature-tours.html */
.u-94c4e2677a { font-size:36px;line-height:1.05;margin:0; }
/* first seen in layouts/ambassadors/single.html */
.u-94ebbb60d8 { justify-content:center;color:var(--ink-3);margin-top:18px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-953d3bac02 { font-size:1.25rem; }
/* first seen in layouts/seo-commercial/single.html */
.u-9577060dec { font-size:22px;line-height:1.4;color:#1D3935; }
/* first seen in layouts/guides/list.html */
.u-95e9cdb9e7 { display:flex;justify-content:space-between;align-items:end;gap:24px; }
/* first seen in layouts/for/single.html */
.u-95fa7d4237 { font-size:60px;line-height:0.95;margin-top:14px; }
/* first seen in layouts/seo-commercial/single.html */
.u-9681e3f05a { font-size:19px;line-height:1.5;color:#BBC9C5;margin-top:20px; }
/* first seen in layouts/features/single.html */
.u-96fc5e12b9 { list-style:none;margin-top:26px;display:flex;flex-direction:column;gap:14px; }
/* first seen in layouts/guides/list.html */
.u-971a329221 { color:var(--coral);font-style:italic; }
/* first seen in layouts/partials/redesign/section-title.html */
.u-97463e63a9 { font-family:var(--serif);font-weight:700;font-size:64px;letter-spacing:-0.025em;line-height:0.98;color:var(--ink); }
/* first seen in layouts/partials/home/redesign-home.html */
.u-974ff9a3f3 { color:var(--cream);font-size:38px; }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-97502c389c { display:flex;flex-direction:column;flex:1;gap:6px;padding:14px; }
/* first seen in layouts/partials/tickets-sidebar.html */
.u-977f1772dd { color:#2F7D52;font-variation-settings:'FILL' 1; }
/* first seen in layouts/features/single.html */
.u-97b6a8f528 { font-size:16px;line-height:1.5;color:var(--ink); }
/* first seen in layouts/download/single.html */
.u-97f1c7107f { display:grid;grid-template-columns:1fr 3fr;gap:60px;align-items:flex-start; }
/* first seen in layouts/guides/list.html */
.u-97fa396694 { display:flex;justify-content:space-between;padding:10px 0;border-bottom:1px solid var(--line); }
/* first seen in layouts/country/section.html */
.u-9853d71671 { margin-top:20px;padding:16px 24px;display:flex;align-items:flex-start;gap:12px; }
/* first seen in layouts/for/single.html */
.u-985f34a73c { font-size:22px;line-height:1.2; }
/* first seen in layouts/seo-commercial/single.html */
.u-9899b74039 { display:grid;grid-template-columns:1fr 1fr;gap:24px; }
/* first seen in layouts/for/single.html */
.u-98afcc9e1b { display:flex;flex-direction:column; }
/* first seen in layouts/partners/single.html */
.u-9907646f84 { font-size:96px;margin:24px auto 0;max-width:1000px;line-height:0.92; }
/* first seen in layouts/seo-commercial/single.html */
.u-991aa5959a { padding:56px 48px;background:#F4E6C2;border-top:1px solid rgba(29,57,53,0.14);border-bottom:1px solid rgba(29,57,53,0.14); }
/* first seen in layouts/download/single.html */
.u-997b3b0456 { font-size:22px; }
/* first seen in layouts/travel-tips/single.html */
.u-9a4df5cdb0 { font-size:56px;line-height:0.98;color:#FAF2E2;margin-top:14px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-9a827722bc { margin-top:36px;display:inline-flex;align-items:center;gap:12px;font-size:13px;color:rgba(250,242,226,0.5);font-family:var(--sans);letter-spacing:0.14em;text-transform:uppercase; }
/* first seen in layouts/city/section.html */
.u-9a8ff29472 { margin-left:4px; }
/* first seen in layouts/partials/places-grid.html */
.u-9aeb9795c7 { padding:12px 4px 4px; }
/* first seen in layouts/city/section.html */
.u-9aed7055aa { padding:26px 28px; }
/* first seen in layouts/city/section.html */
.u-9b6e36dd0c { display:flex;gap:12px;margin-top:24px; }
/* first seen in layouts/country/section.html */
.u-9b71ddcecc { max-width:820px;margin:24px auto 0; }
/* first seen in layouts/guides/list.html */
.u-9b75d38881 { text-align:right; }
/* first seen in layouts/partials/city-signature-tours.html */
.u-9bae8975e2 { position:absolute;top:18px;left:18px; }
/* first seen in layouts/region/single.html */
.u-9bce8cddc6 { font-size:72px;line-height:0.92;color:#FAF2E2; }
/* first seen in layouts/for/single.html */
.u-9be42e4722 { border-bottom:1px solid var(--line); }
/* first seen in layouts/partials/where-to-eat.html */
.u-9c0590b397 { color:var(--coral);font-size:1.35rem; }
/* first seen in layouts/pricing/single.html */
.u-9c5825d533 { margin-top:auto;justify-content:center; }
/* first seen in layouts/guides/list.html */
.u-9cedc61aa0 { font-size:22px;margin-top:4px; }
/* first seen in layouts/for/single.html */
.u-9d1c936a3d { max-width:980px;margin:0 auto;text-align:center; }
/* first seen in layouts/partials/faq-answers.html */
.u-9d71c01546 { margin-top:8px;font-family:var(--serif-body);font-size:15px;line-height:1.6;color:var(--ink-2); }
/* first seen in layouts/city/section.html */
.u-9d9ac661fc { color:rgba(250,242,226,0.5);margin-bottom:6px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-9dae097d0f { position:absolute;inset:0;padding:22px;display:flex;flex-direction:column;justify-content:end;color:var(--cream);z-index:1; }
/* first seen in layouts/404.html */
.u-9db0bd6d7d { font-size:14px;color:var(--ink-3);max-width:520px;margin-top:40px; }
/* first seen in layouts/support/single.html */
.u-9ddea76d64 { font-size:22px;line-height:1.05; }
/* first seen in layouts/partials/tickets-all.html */
.u-9e0f7853ea { margin-top:20px;font-family:var(--sans);font-size:13px;color:var(--ink-3); }
/* first seen in layouts/partials/where-to-eat.html */
.u-9e47d7fc93 { padding:1.25rem;display:flex;flex-direction:column;flex:1; }
/* first seen in layouts/partials/cookie-banner.html */
.u-9e64922e50 { max-width:680px;border-radius:22px;padding:20px 22px;gap:14px; }
/* first seen in layouts/city/section.html */
.u-9e91d604a7 { font-size:15px;line-height:1.6;color:var(--ink-2); }
/* first seen in layouts/for/single.html */
.u-9f192908cb { display:flex;justify-content:space-between;align-items:center;gap:16px;cursor:pointer;padding:22px 0;list-style:none; }
/* first seen in layouts/place/single.html */
.u-9f251d7379 { padding-top:76px;padding-bottom:0; }
/* first seen in layouts/partials/featured-video.html */
.u-9f34e98db0 { font-family:var(--serif);font-weight:600;font-size:0.95rem;color:var(--ink);margin:0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
/* first seen in layouts/partners/single.html */
.u-a07db200c1 { font-size:21px;line-height:1.5;color:var(--ink-2);max-width:660px;margin:26px auto 0; }
/* first seen in layouts/partials/where-to-eat.html */
.u-a0bfa70fa9 { font-size:0.7rem;color:var(--ink-3);margin-top:1rem; }
/* first seen in layouts/partials/city-signature-tours.html */
.u-a0c3fb5dae { display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:24px; }
/* first seen in layouts/seo-commercial/single.html */
.u-a151d81690 { margin-top:8px;text-align:right;color:#7C928E; }
/* first seen in layouts/download/single.html */
.u-a17fea8d50 { padding:100px 48px;background:var(--cream-2);border-top:1px solid var(--line);border-bottom:1px solid var(--line); }
/* first seen in layouts/partials/where-to-eat.html */
.u-a18e2768f6 { flex-shrink:0;font-size:9.5px;letter-spacing:0.12em;text-transform:uppercase;padding:4px 9px; }
/* first seen in layouts/seo-commercial/single.html */
.u-a1b08c53ec { font-size:21px;line-height:1.2; }
/* first seen in layouts/city/section.html */
.u-a25a4319a6 { padding:32px 28px;border-left:1px solid var(--line);display:flex;flex-direction:column;justify-content:space-between; }
/* first seen in layouts/city/section.html */
.u-a28c8d3bc8 { display:flex;flex-direction:column;gap:8px; }
/* first seen in layouts/404.html */
.u-a2a034acd5 { color:var(--coral);margin-bottom:18px; }
/* first seen in layouts/features/single.html */
.u-a2dcd07765 { color:var(--cream); }
/* first seen in layouts/support/single.html */
.u-a3540dcce4 { font-size:15px;line-height:1.55;color:var(--ink-2); }
/* first seen in layouts/travel-tips/list.html */
.u-a3565d3c2a { display:flex;justify-content:center;align-items:center;gap:8px;margin-top:48px; }
/* first seen in layouts/seo-commercial/single.html */
.u-a3d54d2198 { margin-top:24px;display:flex;flex-direction:column;gap:2px; }
/* first seen in layouts/seo-commercial/single.html */
.u-a4c2ffdf30 { margin-inline:auto; }
.u-a45385ec80 { display:flex;align-items:center;justify-content:space-between;gap:16px;cursor:pointer; }
/* first seen in layouts/city/section.html */
.u-a48e1b5af7 { font-size:13px;color:var(--ink-3);margin-top:4px; }
/* first seen in layouts/partners/single.html */
.u-a49e855606 { padding-top:64px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-a4c4c593d2 { font-size:13px;color:var(--ink-3); }
/* first seen in layouts/404.html */
.u-a55d68f411 { font-size:88px;line-height:0.95;max-width:760px; }
/* first seen in layouts/features/single.html */
.u-a57eec4ea8 { margin-bottom:3px; }
/* first seen in layouts/city/section.html */
.u-a6d4d66313 { display:flex;justify-content:center;margin-top:48px; }
/* first seen in layouts/city/section.html */
.u-a737271c28 { padding:100px 48px;background:var(--cream-2); }
/* first seen in layouts/partials/home/redesign-home.html */
.u-a78560f95e { width:56px;height:56px;border-radius:16px;background:var(--cream-3);display:grid;place-items:center; }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-a7b24e14d7 { display:flex;flex-direction:column;overflow:hidden;color:inherit; }
/* first seen in layouts/changelog/single.html */
.u-a7b9061092 { padding-top:56px; }
/* first seen in layouts/seo-commercial/single.html */
.u-a809293540 { font-family:var(--serif);font-weight:700;font-size:90px;line-height:0.8;float:left;color:#E85F33;margin-right:14px;margin-top:8px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-a851c82566 { display:inline-flex;gap:4px;color:var(--sun);font-size:22px;letter-spacing:0.2em; }
/* first seen in layouts/download/single.html */
.u-a911088097 { font-size:14.5px;line-height:1.55;color:var(--ink-2); }
/* first seen in layouts/partials/quick-facts.html */
.u-a9308571ac { max-width:1536px;margin:-32px auto 32px;padding:0 clamp(20px,4vw,32px);position:relative;z-index:10;text-align:center; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-a935fbf844 { display:grid;grid-template-columns:1.3fr 1fr;gap:80px;align-items:center; }
/* first seen in layouts/city/section.html */
.u-a9868f2916 { padding:30px 32px;display:flex;gap:22px;align-items:flex-start; }
/* first seen in layouts/travel-tips/single.html */
.u-a9df8d85cf { margin-top:30px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-aa1c1e2819 { font-weight:700;color:var(--coral); }
/* first seen in layouts/seo-commercial/single.html */
.u-aa29b5974e { color:#E85F33;margin-bottom:14px; }
/* first seen in layouts/download/single.html */
.u-aa3ffa88fb { position:absolute;top:20px;left:50%;transform:translateX(-50%);width:80px;height:22px;background:var(--ink);border-radius:100px;z-index:2; }
/* first seen in layouts/about/list.html */
.u-aa71d77ebe { font-size:24px;line-height:1.5;color:var(--ink);letter-spacing:-0.005em; }
/* first seen in layouts/features/single.html */
.u-aa74f20916 { display:grid;grid-template-columns:1fr 1fr;gap:12px; }
/* first seen in layouts/seo-commercial/single.html */
.u-aac4d9e9e2 { font-size:21px;line-height:1.45;color:#465C58;margin-top:24px;max-width:600px; }
/* first seen in layouts/download/single.html */
.u-aad634895e { min-width:240px;justify-content:flex-start; }
/* first seen in layouts/city/section.html */
.u-aadb211c6c { display:grid;grid-template-columns:1fr 1fr;gap:24px 48px; }
/* first seen in layouts/seo-commercial/single.html */
.u-aaf12318fc { font-size:15px;line-height:1.55;color:#1D3935;padding-top:14px;border-top:1px solid rgba(29,57,53,0.14); }
/* first seen in layouts/place/single.html */
.u-ab5e6084be { column-count:2;column-gap:36px;margin-top:24px; }
/* first seen in layouts/partials/map-section.html */
.u-abf4abefbe { padding:0 48px;margin:clamp(1.5rem,3vw,2.5rem) 0; }
/* first seen in layouts/region/single.html */
.u-abfbec0700 { display:grid;grid-template-columns:1.6fr 1fr;gap:60px;margin-top:24px;align-items:end; }
/* first seen in layouts/guides/list.html */
.u-ac426d4667 { display:flex;justify-content:space-between;align-items:end;margin-top:14px; }
/* first seen in layouts/city/section.html */
.u-ac846ae639 { display:flex;flex-direction:column;gap:16px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-ad2cd608a9 { display:flex;gap:12px;margin-top:36px;align-items:center; }
/* first seen in layouts/partials/sidebar-guide.html */
.u-ad40c0114c { background:var(--cream-2);border:1px solid var(--line);border-left:3px solid var(--coral);border-radius:0 16px 16px 0;padding:18px 20px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-adbb64ea6a { font-size:19px;line-height:1.5;color:var(--ink-2);max-width:480px;margin-top:24px; }
/* first seen in layouts/support/single.html */
.u-adc16be8c0 { padding:36px;display:flex;flex-direction:column;gap:16px;min-height:240px; }
/* first seen in layouts/features/single.html */
.u-adcff25a67 { display:none;flex-direction:column;gap:16px;max-width:480px;margin:0 auto; }
/* first seen in layouts/country/section.html */
.u-add73dd67d { display:flex;flex-direction:column;gap:18px;margin-top:24px; }
/* first seen in layouts/city/section.html */
.u-ae01e5f41e { margin-bottom:4px; }
/* first seen in layouts/ambassadors/single.html */
.u-ae402a2589 { font-size:25px;margin-top:14px; }
/* first seen in layouts/download/single.html */
.u-ae4869b17e { display:flex;gap:36px;margin-top:40px;padding-top:24px;border-top:1px solid var(--line);flex-wrap:wrap; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-ae4af5c654 { font-size:14px;color:var(--coral);margin-top:12px; }
/* first seen in layouts/country/section.html */
.u-af235579e6 { font-size:14px;color:#1D3935; }
/* first seen in layouts/faq/single.html */
.u-afddc1840d { display:flex;flex-direction:column;gap:24px; }
/* first seen in layouts/page/single.html */
.u-b0026d62af { max-width:720px; }
/* first seen in layouts/country/section.html */
.u-b06610b6f7 { font-size:14px;line-height:1.5;color:#465C58;margin-top:6px; }
/* first seen in layouts/city/section.html */
.u-b08b9256cd { font-size:14px;line-height:1.6;color:var(--ink-2); }
/* first seen in layouts/pricing/single.html */
.u-b0c5b48432 { position:absolute;top:-1px;right:24px;padding:8px 16px;background:var(--coral);color:#fff;font-family:var(--sans);font-size:10.5px;letter-spacing:0.14em;text-transform:uppercase;font-weight:500;border-bottom-left-radius:12px;border-bottom-right-radius:12px; }
/* first seen in layouts/travel-tips/list.html */
.u-b155c3fc8b { text-align:center;padding:64px 0; }
/* first seen in layouts/download/single.html */
.u-b15d9e6581 { position:absolute;right:-200px;top:60px;width:700px;height:700px;border-radius:50%;border:1px dashed var(--line);pointer-events:none; }
/* first seen in layouts/pricing/single.html */
.u-b18c9ee98a { display:grid;grid-template-columns:1fr 1fr;gap:0 56px;margin-top:36px; }
/* first seen in layouts/page/single.html */
.u-b193201701 { font-size:88px;margin-top:20px;max-width:980px;line-height:0.94; }
/* first seen in layouts/seo-commercial/single.html */
.u-b2a71683ac { font-size:64px;line-height:0.98;color:#FAF2E2;margin:0; }
/* first seen in layouts/partials/sidebar-guide.html */
.u-b2eed19afd { font-family:var(--serif-body);font-size:0.9rem;line-height:1.55;color:var(--ink-2);margin:0; }
/* first seen in layouts/region/single.html */
.u-b39c6cc0ac { font-size:24px;margin-top:4px; }
/* first seen in layouts/place/single.html */
.u-b3dee2d7db { font-size:17px;line-height:1.55;color:var(--ink-3);max-width:380px;justify-self:end; }
/* first seen in layouts/place/single.html */
.u-b499781c40 { display:grid;grid-template-columns:1fr 2fr;gap:80px;align-items:start; }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-b4b5ebe414 { display:inline-flex;align-items:center;gap:4px;color:var(--ink-2); }
/* first seen in layouts/guides/list.html */
.u-b4e6bb240b { font-size:19px;line-height:1.4;color:var(--ink-2);max-width:460px; }
/* first seen in layouts/city/section.html */
.u-b51a4c274f { font-size:14.5px;line-height:1.6;color:rgba(250,242,226,0.72);margin-top:8px; }
/* first seen in layouts/for/single.html */
.u-b5299d865e { background:var(--cream-2);border-top:1px solid var(--line); }
/* first seen in layouts/guides/list.html */
.u-b5c93602e7 { display:flex;justify-content:space-between;margin-top:8px;padding-top:8px;border-top:1px solid var(--line-soft); }
/* first seen in layouts/seo-commercial/single.html */
.u-b60849c203 { padding:22px 26px;height:fit-content; }
/* first seen in layouts/partners/single.html */
.u-b64cf24092 { display:flex;gap:12px;justify-content:center;margin-top:36px;flex-wrap:wrap; }
/* first seen in layouts/guides/list.html */
.u-b73cc482c0 { display:inline-flex;align-items:center;gap:8px;color:var(--ink);border-bottom:1px solid var(--ink);padding-bottom:3px; }
/* first seen in layouts/for/single.html */
.u-b788528d17 { font-size:26px;line-height:1.05; }
/* first seen in layouts/country/section.html */
.u-b7d74ef237 { background:#F4E6C2; }
/* first seen in layouts/partials/home/final-cta.html */
.u-b7efea048f { background: radial-gradient(circle, rgba(255,255,255,0.15) 1px, transparent 1px); background-size: 24px 24px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-b861045483 { font-family:var(--serif);font-size:72px;line-height:0.8;float:left;color:var(--coral);margin-right:14px;margin-top:6px;font-weight:700; }
/* first seen in layouts/faq/single.html */
.u-b890894657 { font-size:21px;line-height:1.5;color:var(--ink-2);max-width:600px;margin-top:24px; }
/* first seen in layouts/city/section.html */
.u-b8cc8a0354 { flex:1;height:1px;background:rgba(250,242,226,0.18); }
/* first seen in layouts/country/section.html */
.u-b8cfdc72d2 { font-size:17px;line-height:1.7;color:#465C58; }
/* first seen in layouts/partials/where-to-eat.html */
.u-b8d28aec40 { display:flex;align-items:flex-start;gap:9px;font-size:0.9rem;line-height:1.5;color:var(--ink-2); }
/* first seen in layouts/seo-commercial/single.html */
.u-b951bff326 { display:flex;align-items:baseline;gap:14px;flex-wrap:wrap;margin-bottom:8px; }
/* first seen in layouts/partials/ticket-recommendation.html */
.u-b9a74e50bb { font-size:clamp(1.2rem,2.6vw,1.5rem);line-height:1.35;color:var(--ink);margin:0 0 22px; }
/* first seen in layouts/partners/single.html */
.u-ba229dad93 { font-size:22px;line-height:1.1;color:var(--ink); }
/* first seen in layouts/seo-commercial/single.html */
.u-ba5d5de304 { display:flex;gap:14px;align-items:flex-start; }
/* first seen in layouts/partials/faq-answers.html */
.u-ba9dbe1879 { margin:0 0 6px;color:var(--coral-deep); }
/* first seen in layouts/city/section.html */
.u-baa2ca1432 { font-size:24px;margin-bottom:8px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-bacaeb6cc2 { font-size:0.75rem;color:var(--ink-3);margin:2px 0 0;overflow:hidden;text-overflow:ellipsis;white-space:nowrap; }
/* first seen in layouts/country/section.html */
.u-bb841ee2b2 { font-size:15px;margin:0; }
/* first seen in layouts/for/single.html */
.u-bbc3f40888 { font-family:var(--serif);font-style:italic;color:#fff; }
/* first seen in layouts/city/section.html */
.u-bbcf0955c2 { font-size:96px;margin-top:16px;line-height:0.95; }
/* first seen in layouts/support/single.html */
.u-bc17c12243 { font-size:28px;line-height:1.0; }
/* first seen in layouts/guides/list.html */
.u-bc819ff60f { padding:14px;display:flex;gap:14px;align-items:center;border-radius:100px; }
/* first seen in layouts/country/section.html */
.u-bccbdf7abf { font-size:24px;line-height:1.45;color:#1D3935;letter-spacing:-0.005em; }
/* first seen in layouts/changelog/single.html */
.u-bce7c67486 { padding:40px 48px 8px; }
/* first seen in layouts/country/section.html */
.u-bd542abdd5 { font-size:30px; }
/* first seen in layouts/for/single.html */
.u-bd77621d90 { padding:36px 48px 60px;position:relative; }
/* first seen in layouts/for/single.html */
.u-bd8764f98d { display:flex;gap:12px;margin-top:34px;align-items:center;flex-wrap:wrap; }
/* first seen in layouts/city/section.html */
.u-bd99c6150d { display:flex;gap:12px;margin-top:32px; }
/* first seen in layouts/city/section.html */
.u-bdc3497241 { position:absolute;left:0;top:0;width:32px;height:32px;border-radius:50%;display:flex;align-items:center;justify-content:center;background:#7C928E;box-shadow:0 0 0 4px #1D3935; }
/* first seen in layouts/partials/lead-magnet.html */
.u-be08c70bcb { font-size:16.5px;line-height:1.5;color:rgba(250,242,226,0.78);margin:14px 0 0;max-width:460px; }
/* first seen in layouts/partials/app-cta.html */
.u-be10a75f62 { padding:clamp(2.5rem,7vw,6rem) 0; }
/* first seen in layouts/city/section.html */
.u-be1fb868b1 { padding:32px 28px; }
/* first seen in layouts/guides/list.html */
.u-bea5d5bff8 { margin-top:28px;display:flex;justify-content:space-between;align-items:center; }
/* first seen in layouts/download/single.html */
.u-beb092fd65 { padding:32px 48px 60px;position:relative;overflow:hidden; }
/* first seen in layouts/place/single.html */
.u-bf4383e23d { margin-top:22px;padding-top:18px;border-top:1px solid var(--line);font-size:15px;line-height:1.5;color:var(--ink-3); }
/* first seen in layouts/download/single.html */
.u-bf9d57d795 { font-size:20px; }
/* first seen in layouts/partials/redesign/related-places.html */
.u-bfad76cc87 { margin-top:44px;display:flex;justify-content:center; }
/* first seen in layouts/partners/single.html */
.u-bfeba30141 { font-size:72px;line-height:0.98;color:var(--cream);max-width:820px;margin:0 auto; }
/* first seen in layouts/pricing/single.html */
.u-c035e4064c { padding:32px 48px 24px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-c0b3463608 { font-size:72px;margin-top:16px;line-height:0.95; }
/* first seen in layouts/country/section.html */
.u-c0beb120df { display:flex;flex-direction:column;gap:64px;margin-top:16px; }
/* first seen in layouts/place/single.html */
.u-c12087794b { margin-top:40px;position:relative; }
/* first seen in layouts/country/section.html */
.u-c1ddad46e1 { font-size:16px;color:#7C928E;margin-top:8px; }
/* first seen in layouts/for/single.html */
.u-c224173eb0 { padding:56px;background:#E85F33;text-align:center; }
/* first seen in layouts/partials/redesign/phone-card.html */
.u-c234e02c55 { display:block;width:100%;height:auto;border-radius:35px; }
/* first seen in layouts/city/section.html */
.u-c263c3223c { font-size:14px;line-height:1.55;color:rgba(250,242,226,0.75); }
/* first seen in layouts/partials/cookie-banner.html */
.u-c27308dd14 { display:flex;flex-wrap:wrap;justify-content:flex-end;gap:10px;align-items:center; }
/* first seen in layouts/city/section.html */
.u-c2863c4ac8 { position:absolute;inset:0;z-index:2; }
/* first seen in layouts/partials/ticket-recommendation.html */
.u-c28e0daef2 { color:var(--coral);margin-bottom:12px; }
/* first seen in layouts/country/section.html */
.u-c29bb10d18 { color:#9AAFAB; }
/* first seen in layouts/region/single.html */
.u-c2d0369853 { display:flex;justify-content:space-between;align-items:end;margin-top:16px; }
/* first seen in layouts/travel-tips/list.html */
.u-c36e97ce71 { display:inline-grid;place-items:center;width:72px;height:72px;border-radius:20px;background:var(--cream-2);margin-bottom:18px; }
/* first seen in layouts/for/single.html */
.u-c41cf743d8 { font-size:15.5px;line-height:1.55;color:var(--ink-2);margin-top:8px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-c443669d5a { font-family:var(--sans);font-size:10.5px;letter-spacing:0.16em;text-transform:uppercase;color:rgba(250,242,226,0.8);margin-bottom:6px; }
/* first seen in layouts/guides/list.html */
.u-c44a427cae { padding:20px; }
/* first seen in layouts/seo-commercial/single.html */
.u-c462c55060 { display:grid;grid-template-columns:2fr 3fr;gap:60px;align-items:start; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-c4a72f5c5a { position:absolute;right:-32px;bottom:60px;padding:20px 24px;max-width:280px; }
/* first seen in layouts/country/section.html */
.u-c4e3bd5634 { list-style:none;margin-top:24px;display:flex;flex-direction:column;gap:14px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-c4f140a809 { min-width:0; }
/* first seen in layouts/city/section.html */
.u-c4f1e60524 { font-size:18px;color:var(--ink-3); }
/* first seen in layouts/seo-commercial/single.html */
.u-c500155b62 { margin-bottom:8px; }
/* first seen in layouts/pricing/single.html */
.u-c545fbd4e3 { color:var(--coral);margin-top:4px; }
/* first seen in layouts/city/section.html */
.u-c55425ab14 { display:block;margin-top:18px;font-variation-settings:normal; }
/* first seen in layouts/country/section.html */
.u-c56d2421ad { font-size:14px;line-height:1.5;color:#465C58; }
/* first seen in layouts/travel-tips/single.html */
.u-c628c89943 { font-size:21px;line-height:1.5;color:var(--ink-2);margin-top:20px;max-width:600px;margin-left:auto;margin-right:auto; }
/* first seen in layouts/partials/where-to-eat.html */
.u-c665e71525 { font-size:0.95rem;color:var(--sun); }
/* first seen in layouts/partials/home/redesign-home.html */
.u-c697c3502f { font-family:var(--sans);font-size:11px;letter-spacing:0.18em;text-transform:uppercase;color:rgba(250,242,226,0.8);margin-bottom:10px; }
/* first seen in layouts/city/section.html */
.u-c6bc367109 { font-size:30px;line-height:1.0; }
/* first seen in layouts/country/section.html */
.u-c6da1f995a { display:grid;grid-template-columns:repeat(3, 1fr);gap:20px;margin-top:8px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-c6f72c2e43 { font-size:18px;color:var(--ink-2);max-width:220px;padding-left:32px;border-left:1px solid var(--line); }
/* first seen in layouts/pricing/single.html */
.u-c6fc862dc5 { padding:22px 0;border-bottom:1px solid var(--line); }
/* first seen in layouts/city/section.html */
.u-c7870b2e07 { padding:32px 48px 60px; }
/* first seen in layouts/partials/redesign/footer.html */
.u-c7b35eb108 { display:block;border-radius:7px; }
/* first seen in layouts/city/section.html */
.u-c7f805c5ce { font-size:24px;margin:0; }
/* first seen in layouts/partials/faq-answers.html */
.u-c8085f4511 { background:var(--cream-2);border:1px solid var(--line);border-left:3px solid var(--coral);border-radius:14px;padding:18px 26px 8px; }
/* first seen in layouts/partials/city-tickets-carousel.html */
.u-c855bed58f { color:var(--coral);margin-bottom:10px; }
/* first seen in layouts/guides/list.html */
.u-c8bb0818a3 { display:grid;grid-template-columns:1.5fr 1fr 1fr 1fr;gap:20px; }
/* first seen in layouts/download/single.html */
.u-c8d31172da { font-size:30px;margin-top:6px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-c999825e6c { display:flex;flex-wrap:wrap;gap:8px; }
/* first seen in layouts/city/section.html */
.u-c9f60aeaa9 { display:grid;grid-template-columns:1.4fr 1fr;gap:60px;align-items:center; }
/* first seen in layouts/city/section.html */
.u-cb1eb0db6f { font-size:52px;color:var(--cream);margin-top:16px;line-height:1.0; }
/* first seen in layouts/city/section.html */
.u-cb2ca86975 { position:absolute;left:15px;top:6px;bottom:6px;width:2px;background:#E85F33;opacity:0.55; }
/* first seen in layouts/partials/city-signature-tours.html */
.u-cb70e66e49 { margin-top:auto;padding-top:24px; }
/* first seen in layouts/city/section.html */
.u-cb82fc7977 { font-size:16px;line-height:1.6;color:var(--ink-2);margin-top:14px; }
/* first seen in layouts/region/single.html */
.u-cb92cc8703 { padding:36px 48px 48px; }
/* first seen in layouts/partials/gyg-extras.html */
.u-cbb28317a9 { color:#2F7D52; }
/* first seen in layouts/download/single.html */
.u-cbfe4bc287 { position:absolute;right:-120px;top:140px;width:540px;height:540px;border-radius:50%;border:1px dashed var(--line);pointer-events:none; }
/* first seen in layouts/city/section.html */
.u-cc16d670cc { font-size:22px;line-height:1.4;color:var(--ink-2); }
/* first seen in layouts/city/section.html */
.u-cc6423d3ac { display:flex;align-items:center;gap:14px;margin:36px 0 22px;position:relative;z-index:1; }
/* first seen in layouts/city/section.html */
.u-ccb8719901 { border-top:1px solid rgba(250,242,226,0.2);padding-top:16px; }
/* first seen in layouts/guides/list.html */
.u-ccc58d95e3 { display:flex;gap:6px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-cd4429aa73 { padding:0 48px; }
/* first seen in layouts/ambassadors/single.html */
.u-cdab69a74a { display:flex;gap:12px;justify-content:center;flex-wrap:wrap;margin-top:34px; }
/* first seen in layouts/partials/cookie-banner.html */
.u-cdcef186c8 { font-size:13px; }
/* first seen in layouts/about/list.html */
.u-cdefe44fa0 { font-size:22px;line-height:1.5;color:var(--ink-2);max-width:620px;margin-top:28px; }
/* first seen in layouts/features/single.html */
.u-ce1db93977 { font-size:88px;line-height:0.95;max-width:780px;margin:0 auto; }
/* first seen in layouts/place/single.html */
.u-ce3a438608 { font-family:var(--serif);font-weight:700;font-size:88px;line-height:0.8;float:left;color:#E85F33;margin-right:14px;margin-top:10px; }
/* first seen in layouts/partials/sidebar-guide.html */
.u-ce49d3d803 { font-family:var(--serif);font-weight:700;font-size:1.2rem;color:var(--coral);border-left:3px solid var(--coral);padding-left:15px;text-decoration:none; }
/* first seen in layouts/partials/faq-answers.html */
.u-ce4bd39bfe { cursor:pointer;font-family:var(--serif);font-weight:600;font-size:17px;line-height:1.4;color:var(--ink); }
/* first seen in layouts/city/section.html */
.u-ce5c5015c8 { min-width:24px; }
/* first seen in layouts/country/section.html */
.u-ce6d93eeaf { font-size:24px;margin:6px 0 0;color:#FAF2E2; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-ced2e6773a { display:inline-flex;align-items:center;gap:10px;font-size:14px;color:var(--ink-2);padding:14px 0; }
/* first seen in layouts/city/section.html */
.u-d0069f5d40 { font-size:9.5px;letter-spacing:0.12em;color:var(--ink-4);margin-top:4px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-d016ce31b3 { position:absolute;left:-32px;bottom:80px;width:360px;padding:8px; }
/* first seen in layouts/seo-commercial/single.html */
.u-d023410e5f { list-style:none;display:flex;flex-direction:column;gap:6px; }
/* first seen in layouts/partials/redesign/related-places.html */
.u-d0712c7f44 { margin:0;color:var(--ink-3);font-size:15px;line-height:1.55;padding-bottom:12px; }
/* first seen in layouts/place/single.html */
.u-d0ca3f1f6a { margin-top:32px; }
/* first seen in layouts/guides/list.html */
.u-d1271e076a { padding:14px;display:flex;flex-direction:column;gap:12px;position:relative; }
/* first seen in layouts/seo-commercial/single.html */
.u-d1a51cd599 { display:flex;gap:12px;margin-top:32px;flex-wrap:wrap; }
/* first seen in layouts/partials/city-signature-tours.html */
.u-d24e8f68c3 { padding:28px 30px 30px;display:flex;flex:1;flex-direction:column; }
/* first seen in layouts/seo-commercial/single.html */
.u-d2f58c99e3 { display:flex;justify-content:center;margin-top:32px; }
/* first seen in layouts/region/single.html */
.u-d3e47e324c { font-size:19px;line-height:1.5;color:#FFFFFF;opacity:0.92;max-width:520px;margin:18px auto 0; }
/* first seen in layouts/about/list.html */
.u-d4bb0455b9 { padding:0 48px 24px; }
/* first seen in layouts/seo-commercial/single.html */
.u-d518039798 { font-size:16px;line-height:1.6;color:#465C58;margin-top:14px; }
/* first seen in layouts/travel-tips/single.html */
.u-d59c07545a { justify-content:center;color:rgba(250,242,226,0.6); }
/* first seen in layouts/about/list.html */
.u-d5d78dd408 { font-size:15.5px;line-height:1.55;color:var(--ink-2); }
/* first seen in layouts/download/single.html */
.u-d60edde15c { font-size:17px; }
/* first seen in layouts/download/single.html */
.u-d64c8cb335 { font-size:18px; }
/* first seen in layouts/support/single.html */
.u-d6a494a8b8 { font-family:var(--serif);font-weight:700;font-size:56px;letter-spacing:-0.025em; }
/* first seen in layouts/city/section.html */
.u-d6c831d51e { font-size:14px;color:var(--coral); }
/* first seen in layouts/partials/app-cta.html */
.u-d71631a083 { font-size:clamp(2.75rem,6vw,5.25rem);line-height:0.95;color:var(--ink);margin:0; }
/* first seen in layouts/region/single.html */
.u-d770872b18 { font-size:48px;color:#E85F33; }
/* first seen in layouts/city/section.html */
.u-d7dc3a896e { font-size:40px;color:#E85F33;flex-shrink:0; }
/* first seen in layouts/features/single.html */
.u-d802a6f8c3 { margin-right:8px; }
/* first seen in layouts/partials/redesign/footer.html */
.u-d874330623 { font-family:var(--serif-body);font-size:14px;line-height:1.55;color:rgba(250,242,226,0.7);margin-top:18px;max-width:300px; }
/* first seen in layouts/city/section.html */
.u-d8cbe60fba { font-size:18px;line-height:1.15; }
/* first seen in layouts/travel-tips/list.html */
.u-d92aac7516 { padding:0 8px 10px; }
/* first seen in layouts/guides/list.html */
.u-d9b0e00469 { width:48px;height:48px;border-radius:12px;background:var(--cream-3);display:grid;place-items:center;margin-bottom:14px; }
/* first seen in layouts/for/single.html */
.u-d9c3fde4ea { display:grid;grid-template-columns:1fr 1.2fr;gap:72px;align-items:center; }
/* first seen in layouts/country/section.html */
.u-d9d648fff0 { font-size:22px;line-height:1.4;color:#465C58; }
/* first seen in layouts/seo-commercial/single.html */
.u-d9d6d1599f { font-size:22px;line-height:1.1; }
/* first seen in layouts/changelog/single.html */
.u-da8f5b7dec { font-size:21px;line-height:1.5;color:var(--ink-2);max-width:580px;margin-top:24px; }
/* first seen in layouts/guides/list.html */
.u-da985350c6 { font-family:var(--serif);font-weight:700;font-size:88px;letter-spacing:-0.03em;line-height:0.95;color:var(--ink);text-decoration:none; }
/* first seen in layouts/about/list.html */
.u-dbf6f0eea7 { padding:56px 60px;display:grid;grid-template-columns:1.4fr 1fr;gap:48px;align-items:center; }
/* first seen in layouts/city/section.html */
.u-dc0c53c5a6 { padding:28px 32px;display:flex;flex-direction:column;gap:10px; }
/* first seen in layouts/place/single.html */
.u-dc2a3e4b75 { font-size:46px;color:var(--cream);margin-top:14px;line-height:0.98; }
/* first seen in layouts/download/single.html */
.u-dc3ae5e42b { color:rgba(250,242,226,0.6);font-size:9px; }
/* first seen in layouts/city/section.html */
.u-dc3cc2defc { font-size:19px;line-height:1.5;color:var(--ink-2);max-width:540px;margin-top:24px; }
/* first seen in layouts/place/single.html */
.u-dc3e7f4a1e { font-size:17px;line-height:1.55;color:var(--ink-3);max-width:420px;justify-self:end; }
/* first seen in layouts/city/section.html */
.u-dded226115 { padding:8px 2px 0; }
/* first seen in layouts/faq/single.html */
.u-deabf86590 { width:52px;height:52px;border-radius:14px;background:#ECE0B8;display:grid;place-items:center; }
/* first seen in layouts/plan-animation-preview/single.html */
.u-dec8f66ed5 { background:
    radial-gradient(circle at top, rgba(134, 214, 184, 0.22), transparent 32%),
    linear-gradient(180deg, #fcf9f8 0%, #f6f3f2 100%); }
/* first seen in layouts/download/single.html */
.u-df98904aa5 { display:flex;justify-content:space-between;align-items:flex-start; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-e031e5f0d3 { display:flex;gap:12px;margin-top:36px; }
/* first seen in layouts/for/list.html */
.u-e032a3b8a3 { font-size:36px;line-height:1.0;margin-top:6px; }
/* first seen in layouts/for/single.html */
.u-e07d142b5f { position:relative;z-index:1;width:280px;max-width:100%;border-radius:36px;box-shadow:0 30px 80px rgba(29,57,53,0.18); }
/* first seen in layouts/city/section.html */
.u-e0b2ed5fac { text-align:center;max-width:680px;margin:0 auto 56px; }
/* first seen in layouts/country/section.html */
.u-e0f0427452 { color:#7C928E;border-top:1px solid #ECE0B8;padding-top:12px; }
/* first seen in layouts/country/section.html */
.u-e0f80279eb { font-size:15px;line-height:1.6;color:#465C58; }
/* first seen in layouts/seo-commercial/single.html */
.u-e12e782519 { font-size:16px;color:#7C928E; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-e131bc6518 { font-family:var(--serif);font-weight:700;font-size:64px;letter-spacing:-0.025em;line-height:0.98; }
/* first seen in layouts/download/single.html */
.u-e14977d3d9 { text-align:center;margin-top:10px;color:var(--ink-3); }
/* first seen in layouts/city/section.html */
.u-e1a2f1440e { font-size:16px;color:rgba(250,242,226,0.88);margin-top:8px;max-width:420px; }
/* first seen in layouts/city/section.html */
.u-e1bfc8aec4 { color:var(--sun);background:#1D3935;padding-right:12px; }
/* first seen in layouts/download/single.html */
.u-e1c29e9b86 { display:flex;flex-direction:column;gap:10px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-e1f26cf8d1 { font-size:18px;color:rgba(250,242,226,0.85);margin-top:8px; }
/* first seen in layouts/about/list.html */
.u-e242161a86 { font-size:52px;color:var(--cream);margin-top:14px;line-height:0.98; }
/* first seen in layouts/download/single.html */
.u-e267607f4d { font-size:clamp(30px,5vw,44px);line-height:0.98;margin-top:14px;color:var(--cream); }
/* first seen in layouts/partials/editorial-attribution.html */
.u-e2db03dc6f { font-family:var(--sans);font-weight:600;color:var(--ink-2); }
/* first seen in layouts/pricing/single.html */
.u-e36061aa36 { padding:16px;color:var(--ink);font-weight:500; }
/* first seen in layouts/about/list.html */
.u-e36e4b2c98 { font-style:italic;color:var(--coral); }
/* first seen in layouts/partials/city-signature-tours.html */
.u-e3c1aa24b3 { position:relative;aspect-ratio:4/3;overflow:hidden;background:var(--cream); }
/* first seen in layouts/city/section.html */
.u-e41781924f { font-size:16px;color:#fff;line-height:1; }
/* first seen in layouts/about/list.html */
.u-e4d5864c52 { font-size:32px;line-height:1.0; }
/* first seen in layouts/partials/redesign/place-app-cta-bar.html */
.u-e509ea68ac { border-color:var(--line); }
/* first seen in layouts/city/section.html */
.u-e53982496b { display:block; }
/* first seen in layouts/country/section.html */
.u-e5543e84e0 { font-size:20px;margin:0; }
/* first seen in layouts/partials/city-signature-tours.html */
.u-e5a45904cf { font-size:10px!important; }
/* first seen in layouts/features/single.html */
.u-e64203bbcf { display:flex;gap:12px;justify-content:center;margin-top:32px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-e6420fffda { display:inline-flex;align-items:center;gap:5px;color:var(--ink-2);background:none;border:none;padding:0;cursor:pointer;font:inherit; }
/* first seen in layouts/partials/featured-video.html */
.u-e6df42c813 { font-size:0.78rem;color:var(--ink-3);flex-shrink:0; }
/* first seen in layouts/pricing/single.html */
.u-e701aedf33 { text-align:left;padding:20px 16px;vertical-align:bottom; }
/* first seen in layouts/for/list.html */
.u-e748207c9d { font-size:15px;line-height:1.55;color:var(--ink-2);margin-top:10px; }
/* first seen in layouts/seo-commercial/single.html */
.u-e7f684a139 { font-size:17px;line-height:1.5;color:#465C58;margin-bottom:18px; }
/* first seen in layouts/city/section.html */
.u-e82fae72e1 { display:grid;grid-template-columns:2fr 1fr 1fr 1fr;gap:20px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-e844b34b52 { width:28px;height:1px;background:var(--ink-3); }
/* first seen in layouts/faq/single.html */
.u-e869087f4e { font-size:34px;line-height:1.0; }
/* first seen in layouts/partials/cookie-banner.html */
.u-e95fd59ec7 { font-size:32px; }
/* first seen in layouts/city/section.html */
.u-ea1b3b82dc { position:absolute;top:50%;left:50%;transform:translate(-50%,-50%);z-index:3; }
/* first seen in layouts/seo-commercial/single.html */
.u-eb060ea708 { color:#1D3935; }
/* first seen in layouts/page/single.html */
.u-eb63e50540 { transform:rotate(180deg);display:inline-flex; }
/* first seen in layouts/download/single.html */
.u-eb6b7bb458 { display:flex;gap:12px;justify-content:center;margin-top:44px;flex-wrap:wrap; }
/* first seen in layouts/features/single.html */
.u-eba4df3cb0 { display:flex;align-items:start;gap:12px; }
/* first seen in layouts/for/single.html */
.u-ec080f2bab { font-size:64px;line-height:0.95;color:#fff; }
/* first seen in layouts/partials/answer-capsule-city.html */
.u-ec65cbfb46 { font-size:15.5px;line-height:1.6;font-weight:400;color:var(--ink-2);background:var(--cream-2);border:1px solid var(--line);border-left:3px solid var(--coral);border-radius:14px;padding:14px 18px;margin:0 0 18px; }
/* first seen in layouts/region/single.html */
.u-ecf8d5d4aa { display:grid;grid-template-columns:repeat(3, 1fr);gap:20px;margin-top:40px; }
/* first seen in layouts/pricing/single.html */
.u-ed1cc625cb { font-size:18px;color:rgba(250,242,226,0.7);max-width:520px;margin:20px auto 0; }
/* first seen in layouts/about/list.html */
.u-ed7273bce2 { padding:40px 48px 24px; }
/* first seen in layouts/travel-tips/single.html */
.u-ee1d2db58f { padding:48px 48px 32px;max-width:820px;margin:0 auto;text-align:center; }
/* first seen in layouts/partials/redesign/footer.html */
.u-ee73f9ee67 { display:flex;gap:10px;margin-top:12px;flex-wrap:wrap;align-items:center; }
/* first seen in layouts/pricing/single.html */
.u-ee884a23ff { color:var(--coral);margin-bottom:6px; }
/* first seen in layouts/city/section.html */
.u-eea07b7608 { font-size:20px;line-height:1.45;color:var(--ink-2); }
/* first seen in layouts/features/single.html */
.u-ef201758f9 { color:rgba(250,242,226,0.7); }
/* first seen in layouts/partners/single.html */
.u-ef66fe4003 { margin-top:48px; }
/* first seen in layouts/about/list.html */
.u-ef696517c4 { color:var(--coral); }
/* first seen in layouts/guides/list.html */
.u-ef992728aa { font-size:17px;line-height:1.55;color:var(--ink-2); }
/* first seen in layouts/about/list.html */
.u-f054059e13 { width:56px;height:56px;border-radius:16px;background:#ECE0B8;display:grid;place-items:center; }
/* first seen in layouts/shortcodes/guest-post-form.html */
.u-f0a9114a06 { position:absolute;left:-10000px;height:0;width:0;overflow:hidden; }
/* first seen in layouts/partials/cookie-banner.html */
.u-f1076067fe { display:flex;align-items:center;gap:12px;flex-wrap:wrap; }
/* first seen in layouts/support/single.html */
.u-f10dab4b49 { font-size:19px;color:var(--ink-2);margin:24px auto 32px;max-width:520px; }
/* first seen in layouts/city/section.html */
.u-f22028d017 { padding:22px;display:flex;flex-direction:column;gap:16px;position:relative; }
/* first seen in layouts/place/single.html */
.u-f2603c9ec6 { justify-content:center;color:var(--ink-3);margin-top:24px; }
/* first seen in layouts/pricing/single.html */
.u-f26c1a90ff { font-size:28px;margin-top:4px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-f28e7ad9ba { color:var(--coral);font-size:1.05rem;flex-shrink:0;margin-top:1px; }
/* first seen in layouts/partials/places-grid.html */
.u-f2b9d0aa46 { font-size:20px;margin:0;line-height:1.1; }
/* first seen in layouts/features/single.html */
.u-f2d3aaeff6 { font-size:18px;line-height:1.6;color:var(--ink-2);margin-top:22px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-f2e97eed99 { display:flex;justify-content:space-between;align-items:start; }
/* first seen in layouts/country/section.html */
.u-f2eb11fed9 { font-size:15px;line-height:1.5;color:#465C58; }
/* first seen in layouts/travel-tips/single.html */
.u-f315725b8b { font-size:64px;line-height:1.02;letter-spacing:-0.02em;margin-top:20px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-f319d41053 { list-style:none;padding:0;margin:0;display:flex;flex-direction:column;gap:10px; }
/* first seen in layouts/seo-commercial/single.html */
.u-f34701ef81 { display:grid;grid-template-columns:260px 1fr;gap:60px;align-items:start; }
/* first seen in layouts/city/section.html */
.u-f40e95f44c { padding:22px 26px; }
/* first seen in layouts/seo-commercial/single.html */
.u-f491552a18 { list-style:none;display:flex;flex-direction:column;gap:7px; }
/* first seen in layouts/for/single.html */
.u-f496d63203 { font-size:16px;line-height:1.6;color:var(--ink-2);padding:0 0 22px; }
/* first seen in layouts/download/single.html */
.u-f4af1db142 { font-size:14px;line-height:1.5;color:var(--ink-2);margin-top:8px; }
/* first seen in layouts/seo-commercial/single.html */
.u-f4ee49c6cd { color:#E85F33;font-weight:700; }
/* first seen in layouts/country/section.html */
.u-f565250b69 { max-width:760px;margin:0 auto; }
/* first seen in layouts/seo-commercial/single.html */
.u-f5a64deb6e { padding:32px 48px 56px; }
/* first seen in layouts/download/single.html */
.u-f5d0984e40 { font-size:28px;line-height:1; }
/* first seen in layouts/city/section.html */
.u-f5dd18da3a { font-size:38px;margin-top:6px; }
/* first seen in layouts/download/single.html */
.u-f5df0ca1fb { padding:20px 4px; }
/* first seen in layouts/city/section.html */
.u-f675273530 { grid-row:span 2;position:relative;display:flex; }
/* first seen in layouts/pricing/single.html */
.u-f6cf20ef2b { margin-top:20px;padding:24px 28px;border-radius:20px;display:flex;justify-content:space-between;align-items:center;gap:24px; }
/* first seen in layouts/city/section.html */
.u-f6f3a596a2 { padding:0;overflow:hidden;display:grid;grid-template-columns:1fr 2.5fr 1.2fr; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-f777ebe9bc { font-family:var(--serif);font-weight:700;font-size:72px;letter-spacing:-0.025em;line-height:0.95; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-f785ea8608 { position:absolute;inset:-40px;border-radius:50%;background:var(--cream-2);z-index:0; }
/* first seen in layouts/download/single.html */
.u-f7a1fa6e83 { font-size:36px;color:var(--ink); }
/* first seen in layouts/partials/nav.html */
.u-f7dc83e60c { font-family:'Agrandir',sans-serif; }
/* first seen in layouts/seo-commercial/single.html */
.u-f81fbb46cf { font-size:16.5px;line-height:1.5;color:#465C58; }
/* first seen in layouts/partials/hero-place.html */
.u-f881217aaa { font-variation-settings: 'FILL' 1; }
/* first seen in layouts/pricing/single.html */
.u-f8b60ea76e { text-align:left;padding:20px 16px;width:34%; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-f8df3c7cf4 { display:grid;grid-template-columns:1fr 1.4fr;gap:80px;align-items:center; }
/* first seen in layouts/country/section.html */
.u-f8ea9ae7f4 { color:#E85F33;margin-bottom:6px; }
/* first seen in layouts/country/section.html */
.u-f8fa749885 { font-size:14.5px;line-height:1.6;color:#465C58; }
/* first seen in layouts/features/single.html */
.u-f9a4387f25 { font-size:21px;line-height:1.5;color:var(--ink-2);max-width:640px;margin:26px auto 0; }
/* first seen in layouts/partners/single.html */
.u-fa0367b21a { flex-shrink:0;width:44px;height:44px;border-radius:12px;background:var(--cream);display:grid;place-items:center;color:var(--coral); }
/* first seen in layouts/features/single.html */
.u-fa21424570 { color:rgba(250,242,226,0.45); }
/* first seen in layouts/support/single.html */
.u-fa33aa318b { margin-top:auto;display:inline-flex;align-items:center;gap:8px;color:var(--coral);font-size:14px;font-weight:500; }
/* first seen in layouts/changelog/single.html */
.u-fa90c5794f { list-style:none;margin-top:18px;display:flex;flex-direction:column;gap:14px; }
/* first seen in layouts/city/section.html */
.u-fa99d97f80 { padding:80px 48px;background:var(--ink);color:var(--cream); }
/* first seen in layouts/partials/hero-ticket-strip.html */
.u-facac219c8 { font-variation-settings:'FILL' 1; }
/* first seen in layouts/city/section.html */
.u-fb2189707d { padding:96px 48px;background:var(--ink);color:var(--cream); }
/* first seen in layouts/partials/redesign/related-places.html */
.u-fbbbab1ebe { display:grid;grid-template-columns:auto 1fr;gap:48px;align-items:end;margin-bottom:28px; }
/* first seen in layouts/partials/tickets-all.html */
.u-fbc5ccfb8d { display:flex;align-items:end;justify-content:space-between;gap:24px;flex-wrap:wrap;margin-bottom:18px; }
/* first seen in layouts/city/section.html */
.u-fbc9978008 { font-size:24px;line-height:1.45;color:var(--ink);letter-spacing:-0.005em; }
/* first seen in layouts/country/section.html */
.u-fbf9559ac8 { font-size:14.5px;line-height:1.55;color:#465C58; }
/* first seen in layouts/place/single.html */
.u-fc03274b8e { display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:36px; }
/* first seen in layouts/partials/home/redesign-home.html */
.u-fc0a610efb { padding:32px 40px;display:grid;grid-template-columns:repeat(4, 1fr) auto;gap:32px;align-items:center; }
/* first seen in layouts/partials/featured-video.html */
.u-fc1b22ade4 { background:var(--cream-2);padding:12px 20px;display:flex;align-items:center;justify-content:space-between;gap:12px; }
/* first seen in layouts/guides/list.html */
.u-fca7ad9975 { font-size:40px;color:var(--coral); }
/* first seen in layouts/partials/app-cta.html */
.u-fcb43b7223 { color:var(--ink-3);margin-bottom:16px; }
/* first seen in layouts/travel-tips/single.html */
.u-fcb63b1f82 { font-family:var(--serif);font-style:italic;color:#F3C43D; }
/* first seen in layouts/place/single.html */
.u-fcb9f130a6 { padding:0 48px 32px; }
/* first seen in layouts/seo-commercial/single.html */
.u-fcc1e1ddf4 { padding:96px 48px;background:#1D3935;color:#FAF2E2;text-align:center; }
/* first seen in layouts/place/single.html */
.u-fcf619b197 { display:grid;grid-template-columns:1fr 1fr;gap:40px;align-items:end;margin-bottom:48px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-fd9da5f66a { background:var(--sun-soft);border:1px solid var(--line);border-radius:18px;padding:clamp(1.25rem,3vw,1.75rem);margin-bottom:2rem; }
/* first seen in layouts/ambassadors/single.html */
.u-fdf9a801c1 { font-size:29px;margin-top:14px; }
/* first seen in layouts/partners/single.html */
.u-fe5b1af6e7 { font-size:16px;line-height:1.55;color:var(--ink-2);max-width:640px; }
/* first seen in layouts/partners/single.html */
.u-fef68e1781 { padding:32px 36px;border-radius:20px;display:flex;justify-content:space-between;align-items:center;gap:32px;flex-wrap:wrap; }
/* first seen in layouts/region/single.html */
.u-ff6fb370b4 { font-size:72px; }
/* first seen in layouts/partials/redesign/phone-card.html */
.u-ff9ca89b65 { position:relative;width:300px;max-width:100%;border-radius:42px;background:var(--ink);padding:7px;box-shadow:0 40px 80px -30px rgba(29,57,53,0.4); }
/* first seen in layouts/city/section.html */
.u-ffd0b3478e { padding:14px 4px 4px; }
/* first seen in layouts/partials/where-to-eat.html */
.u-fffb9b0120 { color:var(--coral);font-size:1.5rem;flex-shrink:0; }
/* first seen in layouts/city/section.html */
.u-fffdd52c08 { margin-bottom:10px; }
