/* St Mawes destination-hub prototype — scoped to this one local village. */
body:has(.smx) #content > .duchy-breadcrumbs { display:none !important; }
body:has(.smx) #content { padding:0; background:#fbfcfe; }
.smx { --navy:#102756; --blue:#00a7e8; --cyan:#22c1ea; --yellow:#ffd52e; --line:#d9e0ea; color:var(--navy); background:#fbfcfe; font-family:Inter,Arial,sans-serif; }
.smx * { box-sizing:border-box; }
.smx-wrap { width:min(1440px,calc(100% - 64px)); margin:0 auto; }
.smx-header { background:linear-gradient(112deg,#1598df,#00c3ee); border-bottom:3px solid #0e2147; }
.smx-header__top { width:min(1510px,calc(100% - 64px)); height:92px; margin:auto; display:grid; grid-template-columns:290px minmax(280px,1fr) 340px; gap:42px; align-items:center; }
.smx-brand { display:grid; color:#fff; line-height:1; text-decoration:none; }
.smx-brand__name { font-weight:800; font-size:37px; letter-spacing:-1.8px; text-shadow:2px 2px 0 #0a1b42; }
.smx-brand__name span { font-size:.58em; }
.smx-brand__tagline { margin-top:5px; font-size:13px; font-weight:700; letter-spacing:1.8px; text-transform:uppercase; }
.smx-search { height:54px; display:flex; align-items:center; overflow:hidden; background:#fff; border:2px solid #071a3f; border-radius:28px; box-shadow:3px 3px 0 #0b1f4a; }
.smx-search input { width:100%; border:0; outline:0; padding:0 28px; font:500 15px Inter,Arial,sans-serif; color:#354463; }
.smx-search span:last-child { display:grid; place-items:center; width:78px; height:100%; flex:none; border-left:2px solid #071a3f; background:var(--yellow); font-size:35px; color:#071a3f; }
.smx-quick { display:flex; justify-content:flex-end; gap:22px; white-space:nowrap; }
.smx-quick a { color:#071a3f; text-decoration:none; font-size:14px; font-weight:700; }
.smx-categories { min-height:68px; display:flex; justify-content:center; align-items:center; flex-wrap:wrap; gap:10px; padding:12px 18px; background:#fff; border-bottom:1px solid var(--line); }
.smx-categories a { padding:10px 14px; border:2px solid #0b1e47; border-radius:9px; box-shadow:2px 2px 0 #0b1e47; color:#071a3f; font-size:13px; font-weight:800; text-decoration:none; }
.smx-categories .is-stay{background:#a9eadf}.smx-categories .is-food{background:#ff9f18}.smx-categories .is-fun{background:#ffe064}.smx-categories .is-beach{background:#bdeaf8}.smx-categories .is-walk{background:#b6d769}.smx-categories .is-village{background:#dda7f0}.smx-categories .is-event{background:#fa69a7}.smx-categories .is-guide{background:#91c8fa}.smx-categories .is-offer{background:#ffe253}
.smx-hero { position:relative; min-height:350px; background-image:linear-gradient(90deg,#fff 4%,rgba(255,255,255,.96) 26%,rgba(255,255,255,.28) 53%,rgba(255,255,255,.04) 100%),var(--smx-hero); background-position:center; background-size:cover; border-bottom:1px solid var(--line); }
.smx-hero__layout { min-height:350px; display:grid; grid-template-columns:minmax(0,1.5fr) 340px; gap:56px; align-items:center; padding:26px 0 18px; }
.smx-breadcrumb { display:flex; gap:16px; color:#405372; font-size:13px; margin-bottom:22px; }.smx-breadcrumb a{color:inherit;text-decoration:none}.smx-hero h1,.smx h2 { margin:0; color:var(--navy); font-weight:800; letter-spacing:-1.5px; }.smx-hero h1{font-size:52px;line-height:1.04}.smx-favourite{display:inline-block;margin:15px 0 16px;color:var(--navy);font-size:14px;text-decoration:none}.smx-hero__copy>p{max-width:610px;margin:0;font-size:16px;line-height:1.55}.smx-hero__actions{display:flex;gap:16px;margin-top:30px}.smx-button{display:inline-flex;justify-content:center;align-items:center;gap:9px;min-height:48px;padding:12px 20px;border:2px solid #112854;border-radius:10px;box-shadow:2px 2px 0 #102756;color:#102756;font:800 14px Inter,Arial,sans-serif;text-decoration:none;cursor:pointer}.smx-button--yellow{background:var(--yellow)}.smx-button--white{background:#fff}
.smx-plan { padding:22px 24px 18px; background:rgba(255,255,255,.96); border:2px solid #102756; border-radius:12px; box-shadow:3px 3px 0 rgba(16,39,86,.22); }.smx-plan h2{font-size:20px;letter-spacing:-.4px}.smx-plan dl{margin:16px 0 15px}.smx-plan dl div{display:flex;justify-content:space-between;gap:15px;padding:10px 0;border-top:1px solid #d7dde8}.smx-plan dt{font-size:13px;font-weight:600}.smx-plan dd{margin:0;text-align:right;font-size:13px;font-weight:800}.smx-plan dd small{display:block;font-size:11px;font-weight:500;color:#586983;margin-top:2px}.smx-plan .smx-button{width:100%;min-height:42px;padding:9px 12px}
.smx-tabs { display:grid; grid-template-columns:repeat(6,minmax(0,1fr)); border-bottom:1px solid var(--line); background:#fff; }.smx-tabs button{display:flex;justify-content:center;align-items:center;gap:10px;min-height:57px;padding:10px;border:0;border-right:1px solid var(--line);background:#fff;color:#102756;cursor:pointer;font:700 14px Inter,Arial,sans-serif}.smx-tabs .is-active{box-shadow:inset 0 -4px 0 var(--blue)}
.smx-feature { display:grid; grid-template-columns:1.05fr .95fr; gap:70px; padding:58px 0 48px; }.smx-kicker{margin:0 0 10px;color:#158ab5;font-size:12px;font-weight:800;letter-spacing:1.3px;text-transform:uppercase}.smx-feature h2{max-width:650px;font-size:36px;line-height:1.12}.smx-feature>div>p:not(.smx-kicker){max-width:670px;color:#50617d;font-size:16px;line-height:1.65}.smx-feature ul{display:grid;gap:12px;margin:0;padding:0;list-style:none}.smx-feature li{display:grid;grid-template-columns:44px 1fr;grid-template-rows:auto auto;column-gap:13px;align-items:center;padding:16px 20px;background:#fff;border:1px solid #dbe3ee;border-radius:12px}.smx-feature li span{grid-row:span 2;display:grid;place-items:center;width:38px;height:38px;background:#ecf6fc;border-radius:50%;font-size:19px}.smx-feature li strong{font-size:15px}.smx-feature li small{color:#61728d;font-size:13px}
.smx-discover { display:grid;grid-template-columns:1.08fr .92fr;gap:24px;padding:18px 0 12px; }.smx-map-card,.smx-gallery-card{padding:12px;background:#fff;border:1px solid #cfd9e6;border-radius:10px;box-shadow:0 1px 4px rgba(16,39,86,.05)}.smx-panel-head{display:flex;justify-content:space-between;gap:16px;align-items:center;padding:2px 2px 12px}.smx-panel-head>div{display:flex;align-items:center;gap:12px}.smx-panel-head span{font-size:17px}.smx-panel-head h2{font-size:20px;letter-spacing:-.5px}.smx-panel-head>a{padding:7px 12px;border:1px solid #102756;border-radius:6px;color:#102756;font-size:12px;font-weight:700;text-decoration:none}.smx #village-territory-map{height:310px;overflow:hidden;border-radius:7px}.smx-gallery{display:grid;grid-template-columns:1.3fr 1fr 1fr;grid-template-rows:1fr 1fr;gap:8px;height:310px}.smx-gallery__item{border:0;border-radius:7px;background-image:var(--smx-hero);background-size:cover;cursor:pointer}.smx-gallery__item--1{grid-row:span 2;background-position:65% 55%}.smx-gallery__item--2{background-position:83% 48%}.smx-gallery__item--3{background-position:92% 34%}.smx-gallery__item--4{background-position:45% 70%}.smx-gallery__item--5{background-position:74% 76%}.smx-gallery__item--6{background-position:99% 80%}
.smx-preview-action { border:1px solid #102756; border-radius:6px; background:#fff; color:#102756; cursor:pointer; font:700 12px Inter,Arial,sans-serif; padding:7px 12px; }.smx-preview-action:hover,.smx-preview-action:focus-visible { background:#ffe26d; outline:none; }.smx-gallery-card--launch { display:block; width:100%; color:#102756; cursor:pointer; font:inherit; text-align:left; }.smx-gallery-card--launch .smx-panel-head { margin:0; }.smx-gallery-card--launch .smx-panel-head>span:first-child { display:flex; align-items:center; gap:12px; }.smx-gallery-card--launch .smx-panel-head strong { font-size:20px; font-weight:800; }.smx-gallery-card--launch:hover,.smx-gallery-card--launch:focus-visible { border-color:#158ab5; box-shadow:0 7px 18px rgba(16,39,86,.13); outline:3px solid #158ab5; outline-offset:3px; }.smx-map-mount { position:relative; min-width:0; }.smx-map-mount--full #village-territory-map { height:500px; }
.smx-bottom-nav{display:grid;grid-template-columns:repeat(7,1fr);margin-top:12px;border:1px solid #bfcbd9;border-radius:7px;overflow:hidden;background:#fff}.smx-bottom-nav a{padding:14px 8px;text-align:center;color:#102756;font-size:13px;font-weight:700;text-decoration:none}.smx-places,.smx-plan-section{padding:58px 0}.smx-places h2,.smx-plan-section h2{font-size:34px}.smx-places>p:not(.smx-kicker){color:#5e6d84}
.smx-tab-panels { min-height:420px; background:#f8fbfe; }.smx-tab-panels [hidden] { display:none !important; }.smx-panel { padding:52px 0 58px; }.smx-panel-intro { max-width:760px; margin-bottom:28px; }.smx-panel-intro h2 { font-size:36px; line-height:1.14; }.smx-panel-intro p:not(.smx-kicker) { margin-bottom:0; color:#52647e; font-size:16px; line-height:1.6; }.smx-cards { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:18px; }
/* Territory card markup is shared with other pages; scope its complete visual system here. */
.smx-cards .ch-sd-card { display:flex; flex-direction:column; min-width:0; min-height:100%; overflow:hidden; border:1px solid #d7e1ec; border-radius:12px; background:#fff; color:#102756; text-decoration:none; box-shadow:0 2px 6px rgba(16,39,86,.06); transition:transform .15s ease,box-shadow .15s ease; }.smx-cards .ch-sd-card:hover,.smx-cards .ch-sd-card:focus-visible { transform:translateY(-3px); box-shadow:0 10px 22px rgba(16,39,86,.13); outline:none; }.smx-cards .ch-sd-card:focus-visible { outline:3px solid #16a9d7; outline-offset:3px; }.smx-cards .ch-sd-card__visual { position:relative; height:88px; flex-shrink:0; overflow:hidden; }.smx-cards .ch-sd-card__visual-icon { position:absolute; top:20px; left:20px; width:42px; height:42px; stroke:#102756; fill:none; }.smx-cards .ch-sd-card__visual--yellow { background:#ffe26d; }.smx-cards .ch-sd-card__visual--pink { background:#f8b0cb; }.smx-cards .ch-sd-card__visual--green { background:#9ee2b3; }.smx-cards .ch-sd-card__visual--orange { background:#ffc280; }.smx-cards .ch-sd-card__visual--purple { background:#d8b4f8; }.smx-cards .ch-sd-card__visual--cyan { background:#a8e5f2; }.smx-cards .ch-sd-card__visual--blue { background:#a9cef8; }.smx-cards .ch-sd-card__visual--white { background:#f3f7fb; }.smx-cards .ch-sd-card__body { display:flex; flex:1; flex-direction:column; gap:10px; padding:18px; }.smx-cards .ch-sd-card__meta { display:flex; align-items:center; min-height:18px; }.smx-cards .ch-sd-card__cat { font-size:12px; font-weight:800; letter-spacing:.04em; text-transform:uppercase; }.smx-cards .ch-sd-card__cat--yellow { color:#a46600; }.smx-cards .ch-sd-card__cat--pink { color:#b12067; }.smx-cards .ch-sd-card__cat--green { color:#177340; }.smx-cards .ch-sd-card__cat--orange { color:#aa5200; }.smx-cards .ch-sd-card__cat--purple { color:#6b35a1; }.smx-cards .ch-sd-card__cat--cyan { color:#087a9a; }.smx-cards .ch-sd-card__cat--blue { color:#1d5ea8; }.smx-cards .ch-sd-card__title { margin:0; color:#102756; font-size:19px; font-weight:800; line-height:1.22; }.smx-cards .ch-sd-card__desc { display:-webkit-box; margin:0; overflow:hidden; color:#53647d; font-size:14px; line-height:1.5; -webkit-box-orient:vertical; -webkit-line-clamp:3; }.smx-cards .ch-sd-card__foot { display:flex; align-items:center; justify-content:space-between; gap:12px; margin-top:auto; padding-top:6px; }.smx-cards .ch-sd-card__price { color:#158ab5; font-size:14px; font-weight:800; }.smx-cards .ch-sd-card__go { display:grid; place-items:center; width:32px; height:32px; border-radius:50%; color:#102756; font-size:18px; font-weight:800; }.smx-cards .ch-sd-card__go--yellow { background:#ffe26d; }.smx-cards .ch-sd-card__go--pink { background:#f8b0cb; }.smx-cards .ch-sd-card__go--green { background:#9ee2b3; }.smx-cards .ch-sd-card__go--orange { background:#ffc280; }.smx-cards .ch-sd-card__go--purple { background:#d8b4f8; }.smx-cards .ch-sd-card__go--cyan { background:#a8e5f2; }.smx-cards .ch-sd-card__go--blue { background:#a9cef8; }.smx-story-grid { display:grid; grid-template-columns:repeat(2,minmax(0,1fr)); gap:18px; }.smx-story-grid article { padding:24px; background:#fff; border:1px solid #d8e1ec; border-radius:12px; }.smx-story-grid article>span { display:grid; place-items:center; width:40px; height:40px; margin-bottom:16px; border-radius:50%; background:#e9f7fc; color:#158ab5; font-size:20px; }.smx-story-grid h3 { margin:0 0 8px; color:#102756; font-size:20px; font-weight:800; }.smx-story-grid p { margin:0; color:#53647d; line-height:1.55; }.smx-itinerary ol { display:grid; gap:0; max-width:930px; margin:0; padding:0; list-style:none; background:#fff; border:1px solid #d7e0eb; border-radius:12px; overflow:hidden; }.smx-itinerary li { display:grid; grid-template-columns:130px 1fr; gap:28px; padding:22px 26px; border-bottom:1px solid #e0e7ef; }.smx-itinerary li:last-child { border-bottom:0; }.smx-itinerary time { color:#158ab5; font-size:15px; font-weight:800; }.smx-itinerary strong,.smx-itinerary span { display:block; }.smx-itinerary strong { color:#102756; font-size:18px; }.smx-itinerary span { margin-top:5px; color:#53647d; }.smx-photos-panel .smx-panel-head { margin-bottom:18px; }.smx-gallery--full { grid-template-columns:1.35fr 1fr 1fr; height:480px; }.smx-panel .smx-map-card { max-width:none; }.smx-panel #village-territory-map { height:500px; }.smx-bottom-nav button { padding:14px 8px; border:0; background:#fff; color:#102756; cursor:pointer; font:700 13px Inter,Arial,sans-serif; }
@media(max-width:1050px){.smx-header__top{grid-template-columns:240px minmax(220px,1fr);gap:22px}.smx-quick{display:none}.smx-categories{gap:10px}.smx-categories a{padding:8px 12px;font-size:12px}.smx-wrap{width:min(100% - 36px,1440px)}.smx-hero__layout{grid-template-columns:1fr 320px;gap:28px}.smx-hero h1{font-size:44px}.smx-feature{gap:35px}.smx-discover{grid-template-columns:1fr}.smx-gallery{height:280px}}
@media(max-width:700px){.smx-header__top{height:72px;width:calc(100% - 28px);grid-template-columns:115px 1fr}.smx-brand__name{font-size:21px;letter-spacing:-1px}.smx-brand__tagline{display:none}.smx-search{height:42px}.smx-search input{padding:0 12px;font-size:12px}.smx-search span:last-child{width:52px;font-size:27px}.smx-categories{display:none}.smx-hero{background-image:linear-gradient(90deg,rgba(255,255,255,.96),rgba(255,255,255,.8)),var(--smx-hero)}.smx-hero__layout{grid-template-columns:1fr;padding:26px 0}.smx-plan{margin-top:2px}.smx-breadcrumb{font-size:11px;margin-bottom:18px}.smx-hero h1{font-size:40px}.smx-hero__copy>p{font-size:15px}.smx-hero__actions{flex-direction:column;margin-top:24px}.smx-button{width:100%}.smx-tabs{display:flex;overflow:auto}.smx-tabs button{min-width:180px;font-size:12px}.smx-feature{grid-template-columns:1fr;padding:36px 0}.smx-feature h2{font-size:31px}.smx-discover{width:calc(100% - 28px)}.smx #village-territory-map{height:360px}.smx-gallery{height:250px;grid-template-columns:1.25fr 1fr}.smx-gallery__item--3,.smx-gallery__item--6{display:none}.smx-bottom-nav{grid-template-columns:repeat(2,1fr);width:calc(100% - 28px)}.smx-bottom-nav a,.smx-bottom-nav button{border-bottom:1px solid #dce3ed}.smx-panel{padding:34px 0}.smx-panel-intro h2{font-size:30px}.smx-cards,.smx-story-grid{grid-template-columns:1fr}.smx-itinerary li{grid-template-columns:1fr;gap:7px;padding:19px}.smx-gallery--full{height:320px}.smx-panel #village-territory-map{height:400px}.smx-places,.smx-plan-section{padding:36px 0}.smx-places h2,.smx-plan-section h2{font-size:29px}}

/* 2026 village-design pass: photographic, editorial and reusable. */
.smx {
	--navy:#102a43;
	--blue:#087f8c;
	--cyan:#8fd9d1;
	--yellow:#f4c95d;
	--line:#dbe4e6;
	background:#f7f4ed;
}
.smx-header {
	background:#fff;
	border-bottom:1px solid var(--line);
	box-shadow:0 1px 0 rgba(16,42,67,.04);
}
.smx-header__top { height:82px; }
.smx-brand { color:var(--navy); }
.smx-brand__name { font-size:32px; letter-spacing:0; text-shadow:none; }
.smx-brand__name span { color:#087f8c; }
.smx-brand__tagline { color:#61777a; letter-spacing:.12em; }
.smx-search { border:1px solid #b9c9cb; box-shadow:none; background:#f7faf9; }
.smx-search span:last-child { border-left:1px solid #b9c9cb; background:var(--yellow); }
.smx-quick a { color:#304d51; }
.smx-categories { min-height:58px; padding:9px 18px; gap:8px; background:#fbfcfa; }
.smx-categories a {
	padding:8px 13px;
	border:1px solid #afc1c2;
	border-radius:999px;
	box-shadow:none;
	background:#fff !important;
	font-size:12px;
	font-weight:700;
}
.smx-categories a:hover,.smx-categories a:focus-visible { background:#e6f4f1 !important; border-color:#087f8c; outline:none; }
.smx-hero {
	min-height:520px;
	background-image:
		linear-gradient(90deg,rgba(7,28,39,.86) 0%,rgba(7,28,39,.68) 34%,rgba(7,28,39,.18) 68%,rgba(7,28,39,.06) 100%),
		var(--smx-hero);
	background-position:center 54%;
	border-bottom:0;
}
.smx-hero__layout { min-height:520px; grid-template-columns:minmax(0,1.35fr) 360px; gap:clamp(32px,6vw,88px); padding:44px 0; }
.smx-hero__copy { color:#fff; }
.smx-breadcrumb,.smx-breadcrumb a { color:rgba(255,255,255,.78); }
.smx-hero h1 { color:#fff; max-width:720px; font-size:clamp(48px,5.3vw,76px); line-height:.98; letter-spacing:0; text-wrap:balance; }
.smx-favourite { color:#fff; }
.smx-hero__copy>p { max-width:650px; color:rgba(255,255,255,.92); font-size:17px; line-height:1.65; }
.smx-button { border:1px solid rgba(16,42,67,.9); border-radius:999px; box-shadow:none; transition:transform .18s ease,box-shadow .18s ease; }
.smx-button:hover,.smx-button:focus-visible { transform:translateY(-2px); box-shadow:0 8px 20px rgba(7,28,39,.2); outline:none; }
.smx-button--white { border-color:rgba(255,255,255,.75); background:rgba(255,255,255,.94); }
.smx-plan { padding:26px; border:1px solid rgba(255,255,255,.72); border-radius:18px; background:rgba(255,255,255,.93); box-shadow:0 18px 50px rgba(7,28,39,.24); backdrop-filter:blur(12px); }
.smx-plan dl div { padding:11px 0; }
.smx-tabs { position:sticky; top:0; z-index:20; box-shadow:0 5px 18px rgba(16,42,67,.08); }
.smx-tabs button { min-height:62px; color:#3f5d61; }
.smx-tabs .is-active { color:var(--navy); background:#eef7f4; box-shadow:inset 0 -3px 0 #087f8c; }
.smx-tab-panels { background:#f7f4ed; }
.smx-feature { padding-top:72px; }
.smx-feature h2,.smx-panel-intro h2 { letter-spacing:0; text-wrap:balance; }
.smx-feature li,.smx-map-card,.smx-gallery-card,.smx-story-grid article,.smx-itinerary ol,.smx-cards .ch-sd-card { border-color:#d7e0dd; border-radius:16px; box-shadow:0 8px 24px rgba(16,42,67,.06); }
.smx-feature li span,.smx-story-grid article>span { background:#e2f2ee; color:#087f8c; }

@media(max-width:700px){
	.smx-header__top { height:68px; }
	.smx-hero {
		min-height:auto;
		background-image:linear-gradient(180deg,rgba(7,28,39,.58),rgba(7,28,39,.9)),var(--smx-hero);
		background-position:66% center;
	}
	.smx-hero__layout { min-height:auto; padding:40px 0 28px; }
	.smx-hero__layout { grid-template-columns:minmax(0,1fr); gap:0; }
	.smx-hero__copy,.smx-plan { min-width:0; }
	.smx-hero h1 { font-size:clamp(42px,13vw,58px); }
	.smx-hero__copy>p { color:rgba(255,255,255,.9); }
	.smx-plan { margin-top:18px; padding:20px; background:#fff; backdrop-filter:none; }
	.smx-tabs { top:0; scrollbar-width:none; }
	.smx-tabs::-webkit-scrollbar { display:none; }
	.smx-tabs button { min-width:160px; min-height:54px; }
	.smx-feature { padding-top:46px; gap:28px; }
}

/* Interactive visitor tools. */
.smx-plan__links { display:grid; margin:15px 0; border-top:1px solid #d7dde8; }
.smx-plan__links a,.smx-plan__links button { display:grid; grid-template-columns:30px 1fr; grid-template-rows:auto auto; column-gap:10px; padding:10px 2px; border:0; border-bottom:1px solid #d7dde8; background:transparent; color:var(--navy); text-align:left; text-decoration:none; cursor:pointer; font-family:inherit; }
.smx-plan__links span { grid-row:1 / 3; align-self:center; font-size:18px; }
.smx-plan__links strong { font-size:13px; font-weight:800; }
.smx-plan__links small { color:#587079; font-size:11px; }
.smx-plan__links a:hover,.smx-plan__links a:focus-visible,.smx-plan__links button:hover,.smx-plan__links button:focus-visible { padding-left:8px; background:#edf7f4; outline:none; }
.smx-bottom-nav { grid-template-columns:repeat(7,minmax(0,1fr)); border-radius:10px; }
.smx-bottom-nav button { min-height:54px; border-right:1px solid #dce3ed; transition:background .16s ease,color .16s ease,transform .16s ease; }
.smx-bottom-nav button:last-child { border-right:0; }
.smx-bottom-nav button:hover,.smx-bottom-nav button:focus-visible { background:#edf7f4; color:#066b76; outline:none; }
.smx-bottom-nav button.is-active { background:#087f8c; color:#fff; box-shadow:inset 0 -3px 0 #f4c95d; }
.smx-map-popular { padding:42px 0 8px; }
.smx-map-popular__head { display:flex; align-items:end; justify-content:space-between; gap:24px; margin-bottom:20px; }
.smx-map-popular__head h2 { font-size:30px; letter-spacing:normal; }
.smx-map-popular__head button { padding:9px 14px; border:1px solid #9eb4b6; border-radius:999px; background:#fff; color:var(--navy); cursor:pointer; font:700 13px Inter,Arial,sans-serif; }
.smx-map-popular__head button:hover,.smx-map-popular__head button:focus-visible { border-color:#087f8c; background:#e5f3ef; outline:none; transform:translateY(-2px); }
.smx-map-cards > [data-smx-card-cat] { display:flex; min-width:0; }
.smx-map-cards > [data-smx-card-cat][hidden] { display:none; }
.smx-map-empty { padding:26px; border:1px dashed #9eb4b6; border-radius:14px; background:#fff; color:#52647e; text-align:center; }
.smx button,.smx a { transition:color .16s ease,background-color .16s ease,border-color .16s ease,box-shadow .16s ease,transform .16s ease; }
.smx-tabs button:hover,.smx-tabs button:focus-visible { background:#edf7f4; color:#087f8c; outline:none; }
.smx-gallery-card--launch:hover .smx-gallery__item { transform:scale(1.025); }
.smx-gallery__item { transition:transform .22s ease,filter .22s ease; }
.smx-cards .ch-sd-card:hover .ch-sd-card__go { transform:translateX(3px); }

@media(max-width:700px){
	.smx-bottom-nav { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.smx-bottom-nav button { border-bottom:1px solid #dce3ed; }
	.smx-map-popular__head { align-items:flex-start; flex-direction:column; }
}

.smx-conditions { display:grid; grid-template-columns:1fr 1fr; gap:8px; margin:16px 0 8px; }
.smx-conditions>div { display:grid; grid-template-columns:25px 1fr; grid-template-rows:auto auto; min-width:0; padding:10px; border:1px solid #d6e2df; border-radius:10px; background:#f7fbfa; }
.smx-conditions>div>span { grid-row:1 / 3; align-self:center; color:#087f8c; font-size:17px; }
.smx-conditions small { color:#61777a; font-size:10px; font-weight:700; }
.smx-conditions strong { min-width:0; color:var(--navy); font-size:12px; font-weight:800; line-height:1.35; }
.smx-conditions strong b { font:inherit; }
.smx-conditions strong i { color:#587079; font-size:10px; font-style:normal; font-weight:600; }
.smx-conditions__note { margin:0 0 12px; color:#667a7d; font-size:10px; line-height:1.45; }
.smx-conditions__note a { color:#066b76; font-weight:700; }
.smx-photo-submit { margin:18px 0 28px; padding:22px; border:1px solid #c9d9d6; border-radius:16px; background:#fff; box-shadow:0 8px 24px rgba(16,42,67,.06); }
.smx-photo-submit .ct-photo-submit-form { display:grid; grid-template-columns:minmax(0,1.3fr) minmax(0,1fr) auto; gap:16px; align-items:start; }
.smx-photo-submit .ct-photo-submit-intro { grid-column:1 / -1; display:flex; justify-content:space-between; gap:18px; padding-bottom:14px; border-bottom:1px solid #dbe4e6; }
.smx-photo-submit .ct-photo-submit-intro strong { color:var(--navy); font-size:18px; font-weight:800; }
.smx-photo-submit .ct-photo-submit-intro span { color:#61777a; font-size:12px; }
.smx-photo-submit p { display:grid; gap:7px; margin:0; color:var(--navy); font-size:13px; font-weight:700; }
.smx-photo-submit label { display:grid; gap:7px; }
.smx-photo-submit label br { display:none; }
.smx-photo-submit small { color:#667a7d; font-size:11px; font-weight:500; }
.smx-photo-submit input,.smx-photo-submit select { width:100%; min-height:44px; padding:9px 11px; border:1px solid #afc1c2; border-radius:8px; background:#f7faf9; color:var(--navy); font:500 14px Inter,Arial,sans-serif; }
.smx-photo-submit button[type=submit] { min-height:44px; margin-top:25px; padding:10px 18px; border:1px solid var(--navy); border-radius:999px; background:var(--yellow); color:var(--navy); cursor:pointer; font:800 13px Inter,Arial,sans-serif; white-space:nowrap; }
.smx-photo-submit button[type=submit]:hover,.smx-photo-submit button[type=submit]:focus-visible { transform:translateY(-2px); box-shadow:0 7px 18px rgba(16,42,67,.15); outline:none; }
.smx-photo-submit .ct-photo-success { grid-column:1 / -1; color:#177340; }
.smx-photo-submit .ct-photo-error { grid-column:1 / -1; color:#a92350; }

@media(max-width:900px){
	.smx-photo-submit .ct-photo-submit-form { grid-template-columns:1fr 1fr; }
	.smx-photo-submit button[type=submit] { grid-column:span 2; margin-top:0; }
}
@media(max-width:560px){
	.smx-conditions { grid-template-columns:1fr; }
	.smx-photo-submit { padding:16px; }
	.smx-photo-submit .ct-photo-submit-form { grid-template-columns:1fr; }
	.smx-photo-submit .ct-photo-submit-intro { display:grid; gap:5px; }
	.smx-photo-submit button[type=submit] { grid-column:auto; width:100%; }
}

/* The generic village marker rule can be lost when the live Leaflet canvas is
 * moved between St Mawes tab mounts. Keep its geometry explicit in this shell. */
.smx .village-map-pin { width:22px !important; height:22px !important; background:transparent !important; border:0 !important; }
.smx .village-map-pin__dot { display:block; width:22px !important; height:22px !important; min-height:22px; border:3px solid #102a43; border-radius:50%; box-shadow:2px 2px 0 #102a43; cursor:pointer; }

/* Planning belongs with the itinerary, not over the destination hero. */
.smx-hero__layout { grid-template-columns:minmax(0,1.35fr) 360px; }
.smx-hero__copy { max-width:760px; }
.smx-hero {
	background-image:
		linear-gradient(90deg,rgba(255,255,255,.98) 0%,rgba(255,255,255,.94) 32%,rgba(255,255,255,.56) 52%,rgba(255,255,255,.08) 76%),
		var(--smx-hero);
}
.smx-hero__copy { color:var(--navy); }
.smx-breadcrumb,.smx-breadcrumb a { color:#405372; }
.smx-hero h1 { color:var(--navy); text-shadow:none; }
.smx-favourite { color:var(--navy); }
.smx-hero__copy>p { color:#31475f; }
.smx-itinerary__layout { display:grid; grid-template-columns:minmax(0,1.65fr) minmax(320px,.72fr); gap:32px; align-items:start; }
.smx-itinerary__layout ol { max-width:none; }
.smx-itinerary__layout .smx-plan { position:sticky; top:calc(var(--duchy-sticky-subheader,144px) + 74px); margin:0; border-color:#d7e0dd; background:#fff; box-shadow:0 12px 32px rgba(16,42,67,.09); backdrop-filter:none; }
.smx-plan--hero { align-self:center; border-color:rgba(255,255,255,.86); background:rgba(255,255,255,.94); box-shadow:0 18px 50px rgba(16,42,67,.18); backdrop-filter:blur(10px); }

@media(max-width:1050px){
	.smx-hero__layout { grid-template-columns:minmax(0,1fr) 320px; }
	.smx-itinerary__layout { grid-template-columns:minmax(0,1.35fr) minmax(300px,.8fr); gap:24px; }
}
@media(max-width:820px){
	.smx-tabs { position:static; }
	.smx-hero__layout { grid-template-columns:minmax(0,1fr); }
	.smx-plan--hero { margin-top:20px; }
	.smx-itinerary__layout { grid-template-columns:minmax(0,1fr); }
	.smx-itinerary__layout .smx-plan { position:static; margin-top:4px; }
}
@media(min-width:821px){
	.smx-tabs { position:sticky; top:var(--duchy-sticky-subheader,144px); z-index:190; }
	.smx-tab-panels { scroll-margin-top:calc(var(--duchy-sticky-subheader,144px) + 63px); }
}
@media(max-width:700px){
	.smx-hero { background-image:linear-gradient(90deg,rgba(255,255,255,.97),rgba(255,255,255,.78)),var(--smx-hero); }
}

.smx-snapshot { margin:0 0 34px; border-top:1px solid #d5e1de; border-bottom:1px solid #d5e1de; background:#eaf4f1; }
.smx-snapshot>.smx-wrap { padding:42px 0 34px; }
.smx-snapshot header { max-width:760px; margin-bottom:24px; }
.smx-snapshot header h2 { font-size:36px; letter-spacing:normal; }
.smx-snapshot header>p:last-child { margin:10px 0 0; color:#526a70; font-size:16px; }
.smx-snapshot__links { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); gap:12px; }
.smx-snapshot__links a,.smx-snapshot__links button { display:flex; min-width:0; min-height:120px; flex-direction:column; justify-content:space-between; gap:14px; padding:18px; border:1px solid #b9cdca; border-radius:14px; background:#fff; color:var(--navy); cursor:pointer; text-align:left; text-decoration:none; font-family:inherit; box-shadow:0 5px 16px rgba(16,42,67,.05); }
.smx-snapshot__links b { color:#087f8c; font-size:13px; font-weight:800; }
.smx-snapshot__links span { color:#425c63; font-size:14px; line-height:1.45; }
.smx-snapshot__links a:hover,.smx-snapshot__links a:focus-visible,.smx-snapshot__links button:hover,.smx-snapshot__links button:focus-visible { transform:translateY(-4px); border-color:#087f8c; box-shadow:0 12px 24px rgba(16,42,67,.11); outline:none; }
.smx-snapshot__facts { display:grid; grid-template-columns:repeat(5,minmax(0,1fr)); border-top:1px solid #c9d9d6; background:#fff; }
.smx-gallery--single { grid-template-columns:1fr; grid-template-rows:1fr; }
.smx-gallery--single .smx-gallery__item--1 { grid-row:auto; background-position:center; }
.smx-snapshot__facts a,.smx-snapshot__facts button { display:grid; min-width:0; min-height:132px; place-content:center; gap:6px; padding:18px; border:0; border-right:1px solid #dbe4e6; background:#fff; color:var(--navy); cursor:pointer; text-align:center; text-decoration:none; font-family:inherit; }
.smx-snapshot__facts>*:last-child { border-right:0; }
.smx-snapshot__facts small { color:#6a7e82; font-size:10px; font-weight:800; letter-spacing:.08em; text-transform:uppercase; }
.smx-snapshot__facts strong { color:#087f8c; font-size:24px; font-weight:800; }
.smx-snapshot__facts span { color:#536b70; font-size:12px; }
.smx-snapshot__facts a:hover,.smx-snapshot__facts a:focus-visible,.smx-snapshot__facts button:hover,.smx-snapshot__facts button:focus-visible { background:#f4faf8; outline:none; }

@media(max-width:1050px){
	.smx-snapshot__links { grid-template-columns:repeat(3,minmax(0,1fr)); }
}
@media(max-width:700px){
	.smx-snapshot>.smx-wrap { padding:34px 0 28px; }
	.smx-snapshot header h2 { font-size:30px; }
	.smx-snapshot__links { grid-template-columns:1fr; }
	.smx-snapshot__links a,.smx-snapshot__links button { min-height:96px; }
	.smx-snapshot__facts { grid-template-columns:1fr 1fr; }
	.smx-snapshot__facts a,.smx-snapshot__facts button { min-height:112px; border-bottom:1px solid #dbe4e6; }
}

/* Strong destination hero and clean overview reading rhythm. */
.smx-hero__geo { display:flex; flex-wrap:wrap; align-items:center; gap:9px; max-width:none !important; margin:0 0 18px !important; color:#087f8c !important; font-size:12px !important; font-weight:800; letter-spacing:.035em; text-transform:uppercase; }
.smx-hero__geo span { color:#27a876; font-size:10px; }
.smx-hero h1 { display:grid; gap:0; max-width:720px; margin:0 0 22px; font-size:clamp(58px,6.4vw,88px); font-weight:800; line-height:.86; letter-spacing:normal; }
.smx-hero h1 span,.smx-hero h1 em { display:block; font:inherit; }
.smx-hero h1 em { color:#087f8c; font-style:normal; }
.smx-hero__copy>p:not(.smx-hero__geo) { max-width:700px; font-size:clamp(17px,1.45vw,20px); font-weight:500; line-height:1.6; }
.smx-hero__actions { flex-wrap:wrap; align-items:center; gap:10px; }
.smx-hero__actions .smx-button { min-height:50px; padding:12px 17px; font-size:13px; }
.smx-hero__actions .smx-button--icon { width:50px; padding:0; border-color:#9eb5b5; background:#fff; font-size:23px; }
.smx-hero__actions .smx-button--icon[aria-pressed="true"] { border-color:#d64368; background:#ffe8ef; color:#b51f4b; }
.smx-feature { align-items:start; }
.smx-feature h2 { max-width:720px; font-size:clamp(38px,3.5vw,50px); line-height:1.12; letter-spacing:normal; }
.smx-feature>div>p:not(.smx-kicker) { max-width:760px; color:#41586f; font-size:18px; font-weight:450; line-height:1.75; }
.smx-feature li { padding:20px 22px; }
.smx-feature li strong { font-size:17px; font-weight:800; }
.smx-feature li small { font-size:14px; line-height:1.45; }

@media(max-width:820px){
	.smx-hero h1 { font-size:clamp(52px,12vw,72px); }
	.smx-hero__actions .smx-button { width:auto; flex:1 1 190px; }
	.smx-hero__actions .smx-button--icon { flex:0 0 50px; }
}
@media(max-width:560px){
	.smx-hero__geo { font-size:10px !important; }
	.smx-hero h1 { font-size:50px; }
	.smx-hero__actions .smx-button { width:100%; flex-basis:100%; }
	.smx-hero__actions .smx-button--icon { width:50px; flex-basis:50px; }
	.smx-feature>div>p:not(.smx-kicker) { font-size:17px; line-height:1.7; }
}

/* Tablet and phone hero actions must never inherit the old column/flex-grow
 * combination: it turned ordinary buttons into very tall oval blocks between
 * 561px and 700px. Keep every action at its natural height and let it wrap. */
@media(max-width:820px){
	.smx-hero__actions {
		display:grid;
		grid-template-columns:minmax(0,1fr) minmax(0,1fr) 50px;
		align-items:center;
		gap:10px;
	}
	.smx-hero__actions .smx-button {
		width:auto;
		min-width:0;
		min-height:50px;
		flex:none;
		padding:12px 14px;
		white-space:normal;
	}
	.smx-hero__actions .smx-button--icon {
		grid-column:3;
		width:50px;
		height:50px;
		min-height:50px;
		padding:0;
	}
	.smx-hero__actions .smx-button:last-child { grid-column:1 / -1; }
}
@media(max-width:560px){
	.smx-hero__actions { grid-template-columns:minmax(0,1fr) 50px; }
	.smx-hero__actions .smx-button { grid-column:1 / -1; width:100%; }
	.smx-hero__actions .smx-button--icon { grid-column:2; grid-row:3; width:50px; }
	.smx-hero__actions .smx-button:last-child { grid-column:1 / -1; }
}

/* Expanded destination guide: editorial depth with useful actions. */
.smx-section-heading { max-width:820px; margin-bottom:22px; }
.smx-section-heading h2,.smx-section-heading h3 { margin:0; color:var(--navy); font-size:clamp(28px,3vw,40px); font-weight:800; line-height:1.15; }
.smx-section-heading>p:last-child { color:#526a70; font-size:16px; line-height:1.65; }
.smx-know { min-width:0; padding:26px; border:1px solid #bfd1ce; border-radius:18px; background:#fff; box-shadow:0 12px 30px rgba(16,42,67,.08); }
.smx-know h3 { margin:0 0 14px; color:var(--navy); font-size:25px; font-weight:800; }
.smx-know dl { margin:0 0 20px; }
.smx-know dl>div { display:grid; grid-template-columns:minmax(0,.8fr) minmax(0,1.2fr); gap:16px; padding:11px 0; border-bottom:1px solid #dde7e4; }
.smx-know dt { color:#61767a; font-size:12px; font-weight:700; }
.smx-know dd { margin:0; color:var(--navy); font-size:13px; font-weight:800; text-align:right; }
.smx-choose { padding:6px 0 58px; }
.smx-choose__grid { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:14px; }
.smx-choose__grid button { display:grid; min-width:0; min-height:188px; grid-template-rows:auto auto 1fr auto; gap:9px; padding:22px; border:1px solid #c8d8d5; border-radius:16px; background:#fff; color:var(--navy); cursor:pointer; text-align:left; font-family:inherit; box-shadow:0 7px 22px rgba(16,42,67,.06); }
.smx-choose__grid button>span { display:grid; width:42px; height:42px; place-items:center; border-radius:50%; background:#e3f3ef; color:#087f8c; font-size:20px; }
.smx-choose__grid strong { font-size:18px; font-weight:800; }
.smx-choose__grid small { color:#536b70; font-size:13px; line-height:1.5; }
.smx-choose__grid b { color:#087f8c; font-size:12px; font-weight:800; }
.smx-choose__grid button:hover,.smx-choose__grid button:focus-visible { transform:translateY(-4px); border-color:#087f8c; box-shadow:0 14px 28px rgba(16,42,67,.12); outline:none; }

.smx-coast { display:grid; gap:54px; }
.smx-coast>.smx-panel-intro { margin-bottom:0; }
.smx-castle-lead { display:grid; grid-template-columns:minmax(0,1.35fr) minmax(300px,.65fr); gap:36px; padding:36px; border:1px solid #c7d8d4; border-radius:20px; background:linear-gradient(135deg,#fff 0%,#edf7f4 100%); box-shadow:0 14px 34px rgba(16,42,67,.08); scroll-margin-top:230px; }
.smx-castle-lead h3 { margin:0 0 16px; color:var(--navy); font-size:clamp(30px,3vw,43px); font-weight:800; line-height:1.12; }
.smx-castle-lead p:not(.smx-kicker) { color:#415a61; font-size:16px; line-height:1.72; }
.smx-inline-actions { display:flex; flex-wrap:wrap; align-items:center; gap:10px; margin-top:22px; }
.smx-inline-actions .smx-button { min-height:46px; padding:10px 15px; }
.smx-timeline { display:grid; gap:0; margin:0; padding:0; list-style:none; }
.smx-timeline li { position:relative; display:grid; gap:5px; padding:0 0 22px 25px; border-left:2px solid #9bc9c1; }
.smx-timeline li:last-child { padding-bottom:0; }
.smx-timeline li::before { position:absolute; top:3px; left:-7px; width:12px; height:12px; border:2px solid #fff; border-radius:50%; background:#087f8c; content:""; }
.smx-timeline time { color:#087f8c; font-size:13px; font-weight:800; }
.smx-timeline span { color:#40585f; font-size:13px; line-height:1.5; }
.smx-look__grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:14px; }
.smx-look__grid article { min-width:0; padding:22px; border:1px solid #d4dfdd; border-radius:15px; background:#fff; }
.smx-look__grid article>span { display:grid; width:38px; height:38px; margin-bottom:13px; place-items:center; border-radius:50%; background:#e6f4f1; color:#087f8c; font-size:18px; }
.smx-look__grid h4,.smx-walk-grid h4 { margin:0 0 7px; color:var(--navy); font-size:18px; font-weight:800; }
.smx-look__grid p,.smx-walk-grid p { margin:0; color:#536970; font-size:14px; line-height:1.55; }
.smx-beaches,.smx-walks { scroll-margin-top:230px; }
.smx-beach-table { max-width:100%; overflow-x:auto; border:1px solid #cbdad7; border-radius:16px; background:#fff; }
.smx-beach-table table { width:100%; min-width:760px; border-collapse:collapse; }
.smx-beach-table th,.smx-beach-table td { padding:17px 18px; border-bottom:1px solid #dce6e4; color:#435c63; font-size:14px; line-height:1.5; text-align:left; vertical-align:top; }
.smx-beach-table thead th { background:#e8f4f1; color:var(--navy); font-size:12px; font-weight:800; }
.smx-beach-table tbody th { color:var(--navy); font-weight:800; }
.smx-beach-table tbody tr:last-child>* { border-bottom:0; }
.smx-text-link { padding:9px 13px; border:1px solid #a8c0bc; border-radius:999px; background:#fff; color:#087f8c; cursor:pointer; text-decoration:none; font:800 12px Inter,Arial,sans-serif; }
.smx-text-link:hover,.smx-text-link:focus-visible { border-color:#087f8c; background:#e9f5f2; outline:none; transform:translateY(-2px); }
.smx-walk-grid { display:grid; grid-template-columns:repeat(3,minmax(0,1fr)); gap:16px; }
.smx-walk-grid article { display:flex; min-width:0; min-height:230px; flex-direction:column; padding:24px; border:1px solid #cfddda; border-radius:16px; background:#fff; }
.smx-walk-grid small { margin-bottom:12px; color:#087f8c; font-size:11px; font-weight:800; letter-spacing:.03em; text-transform:uppercase; }
.smx-walk-grid a,.smx-walk-grid button { align-self:flex-start; margin-top:auto; padding:18px 0 0; border:0; background:transparent; color:#087f8c; cursor:pointer; text-decoration:none; font:800 13px Inter,Arial,sans-serif; }
.smx-walk-grid a:hover,.smx-walk-grid a:focus-visible,.smx-walk-grid button:hover,.smx-walk-grid button:focus-visible { color:#055d65; outline:none; transform:translateX(3px); }
.smx-safety { display:grid; grid-template-columns:1fr 1fr; gap:18px; padding:25px; border:1px solid #e7c46d; border-radius:16px; background:#fff8df; }
.smx-safety strong { color:var(--navy); font-size:15px; font-weight:800; }
.smx-safety p { margin:7px 0 0; color:#59625f; font-size:13px; line-height:1.55; }
.smx-safety a { display:inline-block; margin-top:8px; color:#087f8c; font-size:12px; font-weight:800; }

.smx-itinerary-switcher { display:flex; flex-wrap:wrap; gap:9px; margin:0 0 18px; }
.smx-itinerary-switcher button { min-height:42px; padding:9px 15px; border:1px solid #aabfbc; border-radius:999px; background:#fff; color:var(--navy); cursor:pointer; font:750 13px Inter,Arial,sans-serif; }
.smx-itinerary-switcher button:hover,.smx-itinerary-switcher button:focus-visible { border-color:#087f8c; background:#edf7f4; outline:none; transform:translateY(-2px); }
.smx-itinerary-switcher button.is-active { border-color:#087f8c; background:#087f8c; color:#fff; box-shadow:inset 0 -3px 0 #f4c95d; }
.smx-route-summary { display:grid; grid-template-columns:minmax(0,1fr) minmax(520px,1.15fr); gap:28px; margin-bottom:24px; padding:22px 24px; border:1px solid #c8d8d5; border-radius:16px; background:#eaf4f1; }
.smx-route-summary>div { display:grid; gap:5px; }
.smx-route-summary small { color:#60787b; font-size:10px; font-weight:800; letter-spacing:.06em; text-transform:uppercase; }
.smx-route-summary strong { color:var(--navy); font-size:21px; font-weight:800; }
.smx-route-summary span { color:#4d666b; font-size:13px; line-height:1.45; }
.smx-route-summary dl { display:grid; grid-template-columns:repeat(4,minmax(0,1fr)); gap:8px; margin:0; }
.smx-route-summary dl>div { padding:11px; border:1px solid #cadaD7; border-radius:10px; background:#fff; }
.smx-route-summary dt { color:#667c7f; font-size:9px; font-weight:800; text-transform:uppercase; }
.smx-route-summary dd { margin:5px 0 0; color:var(--navy); font-size:11px; font-weight:800; line-height:1.35; }
.smx-itinerary__time { display:grid; align-content:start; gap:4px; }
.smx-itinerary__time small { color:#718388; font-size:11px; font-weight:700; }
.smx-itinerary li>div:last-child>span { font-size:15px; line-height:1.55; }
.smx-itinerary li em { display:block; margin-top:9px; padding-left:12px; border-left:3px solid #bdd8d2; color:#65777b; font-size:12px; font-style:normal; line-height:1.5; }
.smx-itinerary li a,.smx-itinerary li button { display:inline-block; margin-top:12px; padding:0; border:0; background:transparent; color:#087f8c; cursor:pointer; text-decoration:none; font:800 12px Inter,Arial,sans-serif; }
.smx-itinerary li a:hover,.smx-itinerary li a:focus-visible,.smx-itinerary li button:hover,.smx-itinerary li button:focus-visible { color:#055d65; outline:none; transform:translateX(3px); }
.smx-sources { display:flex; flex-wrap:wrap; align-items:center; gap:9px 16px; margin-top:32px; padding:18px 20px; border-top:1px solid #ccd9d7; border-bottom:1px solid #ccd9d7; color:#607478; font-size:11px; }
.smx-sources strong { color:var(--navy); font-weight:800; }
.smx-sources a { color:#087f8c; font-weight:750; }
.smx-sources span { margin-left:auto; }

@media(max-width:1050px){
	.smx-choose__grid { grid-template-columns:repeat(2,minmax(0,1fr)); }
	.smx-castle-lead { grid-template-columns:minmax(0,1fr) 300px; padding:30px; }
	.smx-route-summary { grid-template-columns:1fr; }
}
@media(max-width:820px){
	.smx-castle-lead { grid-template-columns:1fr; }
	.smx-look__grid,.smx-walk-grid { grid-template-columns:1fr 1fr; }
	.smx-safety { grid-template-columns:1fr; }
	.smx-sources span { width:100%; margin-left:0; }
}
@media(max-width:700px){
	.smx-choose { padding-bottom:38px; }
	.smx-choose__grid,.smx-look__grid,.smx-walk-grid { grid-template-columns:1fr; }
	.smx-choose__grid button { min-height:150px; }
	.smx-castle-lead { padding:22px; scroll-margin-top:20px; }
	.smx-beaches,.smx-walks { scroll-margin-top:20px; }
	.smx-inline-actions { align-items:stretch; flex-direction:column; }
	.smx-inline-actions .smx-button,.smx-text-link { width:100%; text-align:center; }
	.smx-itinerary-switcher { display:grid; grid-template-columns:1fr 1fr; }
	.smx-itinerary-switcher button { min-width:0; padding:9px 8px; }
	.smx-route-summary { min-width:0; padding:18px; }
	.smx-route-summary dl { grid-template-columns:1fr 1fr; }
	.smx-itinerary li { grid-template-columns:76px minmax(0,1fr); gap:14px; }
	.smx-sources { align-items:flex-start; flex-direction:column; }
}
@media(max-width:480px){
	.smx-know dl>div { grid-template-columns:1fr; gap:4px; }
	.smx-know dd { text-align:left; }
	.smx-itinerary-switcher { grid-template-columns:1fr; }
	.smx-itinerary li { grid-template-columns:1fr; }
}

/* Full-resolution in-page photo viewer shared by gallery and map-photo clicks. */
body.smx-photo-open { overflow:hidden; }
.smx-photo-lightbox { position:fixed; inset:0; z-index:2147482000; display:grid; place-items:center; padding:clamp(18px,4vw,64px); background:rgba(4,14,25,.95); opacity:0; pointer-events:none; transition:opacity .18s ease; }
.smx-photo-lightbox[hidden] { display:none; }
.smx-photo-lightbox.is-visible { opacity:1; pointer-events:auto; }
.smx-photo-lightbox figure { display:grid; max-width:min(86vw,1500px); max-height:88vh; grid-template-rows:minmax(0,1fr) auto; margin:0; overflow:hidden; border:1px solid rgba(255,255,255,.3); border-radius:16px; background:#071c27; box-shadow:0 28px 90px rgba(0,0,0,.66); }
.smx-photo-lightbox img { display:block; width:auto; max-width:100%; height:auto; max-height:80vh; margin:auto; object-fit:contain; }
.smx-photo-lightbox figcaption { display:flex; align-items:center; justify-content:space-between; gap:20px; min-height:52px; padding:12px 18px; border-top:1px solid rgba(255,255,255,.18); color:#fff; }
.smx-photo-lightbox figcaption span { overflow:hidden; font-size:13px; font-weight:700; text-overflow:ellipsis; white-space:nowrap; }
.smx-photo-lightbox figcaption small { flex:0 0 auto; color:#bcd5d8; font-size:11px; font-weight:800; }
.smx-photo-lightbox__close,.smx-photo-lightbox__prev,.smx-photo-lightbox__next { position:absolute; display:grid; place-items:center; border:1px solid rgba(255,255,255,.4); background:rgba(7,28,39,.92); color:#fff; cursor:pointer; font-family:Inter,Arial,sans-serif; }
.smx-photo-lightbox__close { top:18px; right:22px; width:46px; height:46px; border-radius:50%; font-size:30px; line-height:1; }
.smx-photo-lightbox__prev,.smx-photo-lightbox__next { top:50%; width:54px; height:72px; margin-top:-36px; border-radius:14px; font-size:48px; font-weight:400; line-height:1; }
.smx-photo-lightbox__prev { left:20px; }
.smx-photo-lightbox__next { right:20px; }
.smx-photo-lightbox__close:hover,.smx-photo-lightbox__close:focus-visible,.smx-photo-lightbox__prev:hover,.smx-photo-lightbox__prev:focus-visible,.smx-photo-lightbox__next:hover,.smx-photo-lightbox__next:focus-visible { border-color:#f4c95d; background:#f4c95d; color:#102a43; outline:3px solid rgba(255,255,255,.85); outline-offset:3px; transform:translateY(-2px); }
@media(max-width:700px){
	.smx-photo-lightbox { padding:68px 10px 18px; }
	.smx-photo-lightbox figure { width:100%; max-width:100%; max-height:82vh; border-radius:11px; }
	.smx-photo-lightbox img { max-height:72vh; }
	.smx-photo-lightbox__close { top:12px; right:12px; }
	.smx-photo-lightbox__prev,.smx-photo-lightbox__next { top:auto; bottom:22px; z-index:2; width:44px; height:52px; margin:0; border-radius:10px; font-size:38px; }
	.smx-photo-lightbox__prev { left:18px; }
	.smx-photo-lightbox__next { right:18px; }
	.smx-photo-lightbox figcaption { min-height:68px; padding:11px 70px; }
	.smx-photo-lightbox figcaption span { font-size:11px; }
}
.smx-photo-heading-icon {
	display: grid;
	width: 32px;
	height: 32px;
	flex: 0 0 32px;
	place-items: center;
	border: 2px solid #7c3aed;
	border-radius: 50%;
	background: #fff;
	color: #7c3aed;
}

.smx-photo-heading-icon svg {
	width: 19px;
	height: 19px;
	fill: none;
	stroke: currentColor;
	stroke-width: 2;
	stroke-linecap: round;
	stroke-linejoin: round;
}
