/* CIUDAD DEL CABO · V96 · diseño editorial premium como Ruta Jardín */
.ct-page{--ct-ink:#112d3a;--ct-ocean:#0c3949;--ct-moss:#1b715c;--ct-gold:#f0b66a;--ct-pale:#f6f4ef;--ct-border:#e3e7e7;color:var(--ct-ink);font-family:inherit;overflow:hidden;background:#fff}
.ct-page *{box-sizing:border-box}.ct-page img{display:block;width:100%;object-fit:cover}.ct-page a{text-decoration:none}.ct-page button,.ct-page select{font:inherit}.ct-page [hidden]{display:none!important}
.ct-shell{width:min(1200px,calc(100% - 42px));margin-inline:auto}
.ct-hero{height:min(770px,86vh);min-height:600px;position:relative;background:#123446 var(--ct-hero) center 42%/cover no-repeat;color:white;display:flex;align-items:center;isolation:isolate}
.ct-hero::before{content:"";position:absolute;inset:0;background:linear-gradient(90deg,rgba(2,16,26,.88),rgba(3,23,31,.62) 48%,rgba(5,23,34,.12)),linear-gradient(0deg,rgba(2,15,26,.86),transparent 45%);z-index:-1}
.ct-hero-fog{position:absolute;inset:0;background:radial-gradient(ellipse at 88% 3%,rgba(255,190,113,.19),transparent 44%);pointer-events:none}
.ct-hero-in{position:relative;padding-block:58px 65px}.ct-crumbs{display:flex;gap:11px;align-items:center;font-size:13px;color:#e9e3d9;margin-bottom:75px}.ct-crumbs a{color:inherit}.ct-crumbs a:hover{color:var(--ct-gold)}
.ct-overline,.ct-eyebrow{font-size:11px;font-weight:800;letter-spacing:2.3px;text-transform:uppercase}.ct-overline{color:var(--ct-gold)}
.ct-hero h1,.ct-section-head h2,.ct-intro h2,.ct-final h2{font-family:Georgia,"Times New Roman",serif;letter-spacing:-.04em}
.ct-hero h1{font-size:clamp(58px,9vw,126px);line-height:.96;margin:19px 0 25px;max-width:1050px;font-weight:500}
.ct-hero h1 span{display:block;max-width:850px;margin-top:20px;font-size:clamp(22px,3.3vw,43px);font-style:italic;letter-spacing:-.025em;line-height:1.13;color:#f8eee0}
.ct-hero-text{font-size:clamp(15px,1.7vw,20px);line-height:1.7;color:#e8e5dc;max-width:680px;margin-bottom:28px}
.ct-hero-actions,.ct-final-acts{display:flex;align-items:center;gap:13px;flex-wrap:wrap}
.ct-btn{display:inline-flex;align-items:center;justify-content:space-between;gap:28px;border-radius:4px;padding:15px 22px;font-size:13px;font-weight:800;letter-spacing:.25px;cursor:pointer;border:1px solid transparent;transition:transform .2s,background .2s}
.ct-btn:hover{transform:translateY(-2px)}.ct-btn-gold{background:var(--ct-gold);color:#152f38!important}.ct-btn-outline{border-color:#b8c8cb;color:#fff!important;background:#ffffff0c}.ct-btn-dark{background:var(--ct-ocean);color:white;border:none}
.ct-facts{display:flex;flex-wrap:wrap;gap:0;margin-top:52px;padding-top:27px;border-top:1px solid #ffffff52}.ct-facts span{font-size:10px;letter-spacing:1.2px;color:#cddcdd;padding:0 24px;border-left:1px solid #ffffff57}.ct-facts span:first-child{padding-left:0;border-left:0}.ct-facts b{font-family:Georgia,serif;font-weight:400;font-size:27px;letter-spacing:-.7px;color:white;display:block;margin-bottom:5px}
.ct-sticky{position:sticky;top:0;z-index:90;background:#fffdfb;box-shadow:0 7px 22px #112d3a0e;border-bottom:1px solid #dfe4df}.ct-sticky .ct-shell{display:flex;justify-content:center;gap:clamp(17px,4.5vw,75px);overflow-x:auto}.ct-sticky a{white-space:nowrap;font-size:11px;color:var(--ct-ocean);font-weight:900;letter-spacing:1.1px;padding:18px 0}.ct-sticky a:hover{color:var(--ct-moss)}
.ct-intro{display:grid;grid-template-columns:1fr .82fr;gap:clamp(30px,7vw,95px);align-items:center;padding-block:102px}.ct-eyebrow{color:var(--ct-moss)}.ct-intro h2,.ct-section-head h2{font-size:clamp(33px,4.4vw,60px);font-weight:500;line-height:1.07;margin:21px 0}
.ct-intro p,.ct-section-head p{font-size:15px;line-height:1.9;color:#526572}.ct-intro figure{margin:0;position:relative}.ct-intro figure img{height:450px;border-radius:2px;box-shadow:21px 21px 0 #e5ece7}.ct-intro figcaption{font-size:10px;letter-spacing:1.6px;line-height:1.5;margin-top:31px;color:#7f8f90}
.ct-section{padding-block:100px}.ct-section-head{max-width:820px;margin-bottom:42px}.ct-section-head p{max-width:770px}.ct-planner-outer{background:#f2f6f3;background-image:radial-gradient(circle at 9% 15%,#dfecdf 0,transparent 30%)}
.ct-planner{display:grid;grid-template-columns:minmax(270px,.76fr) minmax(0,1.38fr);gap:25px;align-items:start}.ct-planner-controls,.ct-planner-results{background:#fff;padding:34px;border-radius:6px;border:1px solid #dce8e1;box-shadow:0 14px 37px #184d4111}
.ct-planner-controls{position:sticky;top:77px}.ct-control-label{display:block;font-weight:800;font-size:13px;margin:0 0 14px}.ct-control-label:not(:first-child){margin-top:31px}.ct-days{display:grid;grid-template-columns:repeat(5,1fr);gap:5px}.ct-days button{border:1px solid #d2dfd7;background:#f6faf7;color:#234133;padding:13px 2px;font-size:12px;font-weight:800;cursor:pointer;border-radius:5px}.ct-days button.is-selected{background:#1c705d;color:white;border-color:#1c705d}.ct-days button:focus-visible,.ct-filters button:focus-visible,.ct-map-category button:focus-visible{outline:3px solid #e5a54e;outline-offset:2px}
.ct-planner select{display:block;width:100%;padding:14px 12px;background:#fbfcfb;border:1px solid #c9d7d0;border-radius:4px;color:#183d3f}.ct-planner-note{margin-top:35px;background:#edf6f0;padding:17px 19px;border-left:3px solid #357d62;font-size:12px;line-height:1.7;color:#456c5d}
.ct-result-summary{border-bottom:1px solid #e2eae4;padding-bottom:18px}.ct-result-summary span{display:block;color:#69877b;font-size:10px;letter-spacing:1.7px;font-weight:900}.ct-result-summary strong{display:block;font-family:Georgia,serif;font-size:26px;margin-top:11px;font-weight:500}.ct-day-row{display:grid;grid-template-columns:49px 1fr;gap:17px;border-bottom:1px solid #e4ebe7;padding:23px 0}.ct-day-index{background:#0d4d4c;color:white;border-radius:50%;height:47px;width:47px;display:grid;place-items:center;font-family:Georgia,serif;font-size:23px}.ct-day-row strong{font-size:17px}.ct-day-row p{font-size:13px;line-height:1.7;color:#59706c;margin:7px 0 8px}.ct-day-row ol{margin:0;padding-left:17px;font-size:13px;line-height:1.9}.ct-day-row small{font-size:12px;color:#6c7f7e}
.ct-result-split{display:grid;grid-template-columns:1fr 1fr;gap:28px;padding-top:18px}.ct-result-split>div{padding:15px 17px;background:#f3f8f5}.ct-result-split>div+div{background:#fcf6f1}.ct-result-split h3{font-size:14px;margin:0 0 15px}.ct-result-split ul{list-style:none;margin:0;padding:0}.ct-result-split li{padding:8px 0;border-top:1px solid #dde8df;font-size:12px}.ct-result-split li strong{display:block;font-weight:750}.ct-result-split li small{display:block;color:#75857b;margin-top:3px}.ct-small{font-size:12px;line-height:1.6;color:#657879;margin:18px 0}
.ct-filters{display:flex;gap:8px;flex-wrap:wrap;margin-bottom:25px}.ct-filters button,.ct-map-category button{padding:10px 18px;border:1px solid #cfdad8;background:#fff;border-radius:30px;color:#365860;font-size:12px;cursor:pointer;font-weight:800}.ct-filters button.is-active,.ct-map-category button.is-active{color:#fff;background:#124f51;border-color:#124f51}
.ct-places{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:25px}.ct-place{border:1px solid #e6e8e4;border-radius:5px;overflow:hidden;box-shadow:0 10px 27px #132d3a0b;display:flex;flex-direction:column;background:#fff}.ct-place-media{height:224px;position:relative;overflow:hidden}.ct-place-media img{height:100%;transition:transform .55s}.ct-place:hover .ct-place-media img{transform:scale(1.05)}.ct-place-media span{position:absolute;top:16px;left:16px;background:#103a47e8;color:#fff;padding:7px 12px;letter-spacing:1px;font-size:11px;font-weight:800}.ct-place-body{padding:25px;display:flex;flex-direction:column;flex:1}.ct-zone{font-weight:800;letter-spacing:1px;text-transform:uppercase;color:#448073;font-size:10px}.ct-place h3{font-family:Georgia,serif;font-weight:500;font-size:28px;line-height:1.13;margin:13px 0}.ct-place-body>strong{font-size:13px;line-height:1.5}.ct-place-body>p{font-size:13px;line-height:1.78;color:#60727b;margin:12px 0 18px}.ct-tip{padding:15px;background:#f3f6f3;border-left:3px solid #7cae9a;color:#4d6265;font-size:12px;line-height:1.7;margin-top:auto}.ct-tip span{display:block;color:#1a6759;font-size:10px;letter-spacing:1.3px;font-weight:900;margin-bottom:4px}.ct-place-links{display:flex;flex-wrap:wrap;gap:10px;margin-top:20px}.ct-place-links a{font-size:11px;letter-spacing:.3px;color:#12535b;font-weight:800;border-bottom:1px solid #abc6b9;padding-bottom:3px}.ct-place-links a:hover{color:#af6528}.ct-photos-note{font-size:11px;line-height:1.7;color:#7b8485;margin-top:26px}
.ct-days-section{background:#0d2f3b;color:white}.ct-days-section .ct-eyebrow{color:#f0bf81}.ct-days-section .ct-section-head h2{color:white}.ct-route-grid{display:grid;grid-template-columns:repeat(5,minmax(0,1fr));gap:14px}.ct-route-card{background:#163e4a;color:#fff!important;display:block;transition:transform .2s}.ct-route-card:hover{transform:translateY(-5px)}.ct-route-photo{height:153px;position:relative}.ct-route-photo img{height:100%}.ct-route-photo b{position:absolute;left:14px;top:13px;font-family:Georgia,serif;font-size:30px;color:#fff;text-shadow:0 2px 6px #000}.ct-route-body{padding:20px 17px}.ct-route-body span{letter-spacing:1.8px;color:#f8bb78;font-size:10px;font-weight:900}.ct-route-body h3{font-family:Georgia,serif;font-size:20px;font-weight:500;line-height:1.17;min-height:70px;margin:11px 0}.ct-route-body p{font-size:11px;line-height:1.55;color:#cfdbda;min-height:55px}.ct-route-body strong{display:block;color:#f3c690;font-size:11px;border-top:1px solid #ffffff26;padding-top:13px;margin-top:17px}
.ct-map-layout{display:grid;grid-template-columns:minmax(0,1.65fr) minmax(270px,.65fr);background:#f4f7f4;border:1px solid #dfe8e1;min-height:510px}.ct-map{height:510px;z-index:1;background:#e0ebe7}.ct-map-sidebar{padding:32px}.ct-map-sidebar h3{font-family:Georgia,serif;font-size:27px;font-weight:400;margin:0 0 20px}.ct-map-category{display:flex;flex-direction:column;gap:9px}.ct-map-category button{text-align:left;background:#fff;border-radius:4px}.ct-map-category button.is-active{background:#145459}.ct-map-links{display:grid;gap:12px;margin-top:26px;border-top:1px solid #d7dfd7;padding-top:21px}.ct-map-links a{font-size:12px;font-weight:800;color:#1b6063}.ct-map-popup{min-width:155px;font-family:system-ui,sans-serif}.ct-map-popup strong,.ct-map-popup small,.ct-map-popup a{display:block}.ct-map-popup strong{font-size:14px}.ct-map-popup small{font-size:12px;color:#738284;margin:7px 0}.ct-map-popup a{font-size:12px;color:#07675b;font-weight:800}.ct-map-fallback{padding:30px}
.ct-advice{background:#f7f5ef}.ct-advice-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:16px}.ct-advice-grid article{background:#fff;padding:28px 23px;border-top:3px solid #2b755d;box-shadow:0 8px 22px #1a3c3709}.ct-advice-grid article>span{font-size:28px}.ct-advice-grid h3{font-family:Georgia,serif;font-size:21px;font-weight:500;margin:13px 0}.ct-advice-grid p{font-size:12px;line-height:1.8;color:#5b706e;margin:0}.ct-official{display:flex;align-items:center;gap:14px;flex-wrap:wrap;margin-top:28px;padding:23px;border:1px solid #dde7da}.ct-official span{font-size:10px;letter-spacing:1px;font-weight:800}.ct-official a{font-size:11px;color:#0e615c;font-weight:800}
.ct-final{min-height:410px;padding:94px 0;position:relative;background:linear-gradient(90deg,#092530ed,#09313aba),var(--ct-final) center 54%/cover;color:white}.ct-final span{font-size:11px;letter-spacing:2px;color:#f7c18d}.ct-final h2{font-size:clamp(36px,5.5vw,71px);font-weight:400;max-width:800px;margin:18px 0}.ct-final p{max-width:630px;line-height:1.7}.ct-final-acts{margin-top:27px}.ct-final-acts a{border:1px solid #e1c9a8;padding:14px 19px;font-size:12px;color:white;font-weight:800}
@media(max-width:990px){.ct-route-grid{grid-template-columns:repeat(3,minmax(0,1fr))}.ct-places{grid-template-columns:repeat(2,minmax(0,1fr))}.ct-advice-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ct-intro{gap:42px}}
@media(max-width:720px){.ct-shell{width:min(100% - 28px,560px)}.ct-hero{min-height:665px;height:auto}.ct-hero-in{padding-block:24px 35px}.ct-crumbs{margin-bottom:85px;font-size:11px}.ct-hero h1{font-size:clamp(52px,13.5vw,92px)}.ct-hero h1 span{font-size:28px}.ct-facts{margin-top:37px}.ct-facts span{padding:8px 12px 8px 0;border:0;min-width:45%}.ct-sticky .ct-shell{justify-content:flex-start;gap:24px;width:calc(100% - 26px)}.ct-sticky a{font-size:10px}.ct-section{padding-block:65px}.ct-intro{grid-template-columns:1fr;padding-block:65px;gap:25px}.ct-intro figure img{height:320px;box-shadow:10px 10px 0 #e5ece7}.ct-intro figcaption{margin-top:21px}.ct-planner{grid-template-columns:1fr}.ct-planner-controls{position:static}.ct-planner-controls,.ct-planner-results{padding:22px}.ct-places{grid-template-columns:1fr}.ct-place-media{height:240px}.ct-result-split{grid-template-columns:1fr;gap:12px}.ct-route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ct-map-layout{grid-template-columns:1fr}.ct-map{height:385px}.ct-map-sidebar{padding:22px}.ct-map-category{display:grid;grid-template-columns:repeat(2,minmax(0,1fr))}.ct-advice-grid{grid-template-columns:1fr}.ct-final{min-height:380px}.ct-hero-actions{gap:8px}.ct-btn{padding:13px 15px;font-size:11px}}
@media(max-width:430px){.ct-days button{font-size:10px;padding:12px 0}.ct-route-grid{gap:9px}.ct-route-photo{height:130px}.ct-route-body{padding:13px}.ct-route-body h3{font-size:18px;min-height:78px}.ct-route-body p{font-size:10px;min-height:84px}}
@media(prefers-reduced-motion:reduce){.ct-page *{scroll-behavior:auto!important;transition:none!important}}
@media print{header,footer,.ct-sticky,.ct-hero,.ct-intro,.ct-planner-controls,.ct-btn,.ct-places,.ct-days-section,.ct-map-layout,.ct-advice,.ct-final{display:none!important}.ct-section{padding:0!important}.ct-planner{display:block}.ct-planner-outer{background:white}.ct-planner-results{box-shadow:none;border:0}.ct-day-row{break-inside:avoid}.ct-shell{width:100%}}

/* V96 Cape Town: distinct Atlantic blue/sea-glass visual identity, shared premium layout */
.ct-page{--ct-ink:#112f3c;--ct-gold:#e0a85f;--ct-teal:#1e7179}
.ct-hero:before{background:linear-gradient(90deg,rgba(5,28,48,.84) 0%,rgba(6,30,49,.53) 48%,rgba(6,22,37,.22) 100%)}
.ct-planner{border-color:rgba(41,112,119,.17)}
.ct-days button.is-selected,.ct-filters button.is-active,.ct-map-category button.is-active{background:#16757b!important;color:white!important;border-color:#16757b!important}
.ct-place-media img,.ct-route-photo img{object-position:center}
.ct-photos-note{max-width:1000px}
@media print{.ct-sticky,.ct-hero-actions,.ct-map-layout,.ct-btn,.navbar,.topbar{display:none!important}.ct-planner{display:block!important}}

.ct-faq-list{display:grid;gap:12px;margin:26px 0 10px}.ct-faq-item{border:1px solid rgba(13,84,99,.15);border-radius:14px;background:#f8fbfa;overflow:hidden;box-shadow:0 8px 25px rgba(20,48,57,.04)}.ct-faq-item summary{cursor:pointer;list-style:none;display:flex;justify-content:space-between;align-items:center;padding:19px 23px;font-weight:760;color:#153f52;gap:16px}.ct-faq-item summary::-webkit-details-marker{display:none}.ct-faq-item summary:after{content:'+';font-size:24px;color:#218a92;font-weight:400}.ct-faq-item[open] summary:after{content:'−'}.ct-faq-item[open] summary{background:#e9f5f3}.ct-faq-item div{padding:3px 23px 18px;line-height:1.75}.ct-faq-item div p{max-width:850px;margin:0}.ct-faq{padding-block:68px 84px}.ct-page .ct-sticky .ct-shell{flex-wrap:wrap}@media(max-width:700px){.ct-faq{padding-block:40px 55px}.ct-faq-item summary{padding:17px}}
/* Keep the 1–7 day selector and 7 route cards evenly balanced. */
.ct-days{grid-template-columns:repeat(4,minmax(0,1fr));gap:8px}
.ct-route-grid{grid-template-columns:repeat(4,minmax(0,1fr))}
@media(max-width:1000px){.ct-route-grid{grid-template-columns:repeat(3,minmax(0,1fr))}}
@media(max-width:680px){.ct-route-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.ct-days{grid-template-columns:repeat(4,minmax(0,1fr))}}
@media(max-width:380px){.ct-days{grid-template-columns:repeat(2,minmax(0,1fr))}.ct-route-grid{grid-template-columns:1fr}}
