/*
Theme Name: Surfari Punta Rocas
Theme URI: https://surfari.pe/
Author: Surfari
Description: Tema oficial de Surfari Punta Rocas con reservas por WhatsApp, habitaciones, surf camps y datos estructurados.
Version: 1.6.2
Requires at least: 6.4
Requires PHP: 7.4
Text Domain: surfari
*/
:root{--ink:#082f3b;--cyan:#30ccea;--blue:#1473e6;--pink:#ef3e92;--yellow:#ffe057;--paper:#fffdf8;--white:#fff;--muted:#59737a;--line:#cfe1e4;--font-geist:Arial,sans-serif}
*{box-sizing:border-box}html{scroll-behavior:smooth}body{margin:0;background:var(--paper);color:var(--ink);font-family:var(--font-geist),Arial,sans-serif;overflow-x:hidden}a{color:inherit;text-decoration:none}img{width:100%;height:100%;display:block;object-fit:cover}.shell{width:min(1240px,calc(100% - 72px));margin-inline:auto}.skipLink{position:fixed;z-index:999;left:14px;top:-80px;padding:12px 16px;background:#fff;color:var(--ink);font-size:13px;font-weight:800;box-shadow:0 3px 15px rgba(0,0,0,.2)}.skipLink:focus{top:14px}
.nav{height:88px;padding:0 38px;display:flex;align-items:center;justify-content:space-between;background:#fff;border-top:4px solid transparent;border-image:linear-gradient(90deg,var(--cyan),var(--yellow),var(--pink)) 1}.logo{width:145px;height:67px}.logo img{object-fit:contain}.nav nav{display:flex;gap:36px;font-size:11px;font-weight:650}.nav nav a:hover{color:var(--pink)}.navCta{padding:14px 18px;background:var(--ink);color:#fff;font-size:10px;font-weight:800;text-transform:uppercase}.navCta span{margin-left:30px;color:var(--cyan)}
.hero{height:calc(100vh - 88px);min-height:680px;position:relative;overflow:hidden}.heroBg,.heroWash{position:absolute;inset:0}.heroBg{filter:saturate(1.25) contrast(1.04);transform:scale(1.01)}.heroWash{background:linear-gradient(90deg,rgba(4,43,54,.9) 0%,rgba(4,43,54,.58) 43%,rgba(4,43,54,.08) 75%),linear-gradient(0deg,rgba(4,43,54,.65),transparent 55%)}.heroCopy{position:absolute;z-index:2;left:7vw;top:38%;transform:translateY(-50%);max-width:760px;color:#fff}.heroCopy>span,.sectionLabel{font-size:9px;font-weight:800;letter-spacing:.17em}.hero h1{margin:18px 0 20px;font-size:clamp(68px,7.6vw,112px);font-weight:900;line-height:.76;letter-spacing:-.085em}.hero h1 em{font-style:normal;background:linear-gradient(90deg,var(--cyan),#fff18a,var(--pink));background-clip:text;-webkit-background-clip:text;color:transparent}.heroCopy>p{max-width:560px;margin:0;font-size:16px;line-height:1.5;color:rgba(255,255,255,.88)}.heroCopy>div{display:flex;align-items:center;gap:27px;margin-top:24px}.mainCta{padding:17px 20px;background:#fff;color:var(--ink);font-size:10px;font-weight:800;text-transform:uppercase;box-shadow:6px 6px 0 var(--cyan)}.mainCta b{margin-left:52px;color:var(--pink)}.textCta{padding-bottom:7px;border-bottom:1px solid #fff;font-size:10px;font-weight:750;text-transform:uppercase}.heroBadge{position:absolute;z-index:2;right:4vw;top:35px;width:132px;height:132px;border:3px solid var(--ink);background:var(--yellow);display:flex;align-items:center;justify-content:center;gap:6px;transform:rotate(3deg)}.heroBadge b{font-size:62px;line-height:1}.heroBadge span{font-size:10px;font-weight:900;line-height:1.05}
.availabilityForm{position:absolute;z-index:4;left:4vw;right:4vw;bottom:25px;display:grid;grid-template-columns:1.15fr repeat(4,minmax(0,.9fr)) 1.25fr;align-items:stretch;min-height:116px;background:rgba(255,255,255,.97);border-top:4px solid var(--cyan);box-shadow:0 22px 60px rgba(2,28,36,.3);backdrop-filter:blur(12px)}.availabilityIntro,.availabilityForm label{min-width:0;padding:23px 18px;display:flex;flex-direction:column;justify-content:center;border-right:1px solid var(--line)}.availabilityIntro small,.availabilityForm label span{margin-bottom:8px;color:var(--pink);font-size:8px;font-weight:850;letter-spacing:.13em;text-transform:uppercase}.availabilityIntro strong{font-size:15px}.availabilityForm input,.availabilityForm select{width:100%;min-width:0;padding:0;border:0;outline:0;background:transparent;color:var(--ink);font:700 12px/1.3 var(--font-geist),Arial,sans-serif}.availabilityForm input:focus,.availabilityForm select:focus{color:var(--blue)}.availabilityForm button{border:0;background:linear-gradient(135deg,var(--cyan),#83e8e0);color:var(--ink);font-size:9px;font-weight:900;letter-spacing:.04em;text-transform:uppercase;cursor:pointer}.availabilityForm button:hover{background:linear-gradient(135deg,var(--yellow),var(--cyan))}.availabilityForm button b{margin-left:13px;color:var(--pink);font-size:14px}.availabilityError{position:absolute;right:0;bottom:-23px;margin:0;padding:5px 10px;background:var(--pink);color:#fff;font-size:9px;font-weight:750}.availabilityError:empty{display:none}
.intro{padding:135px 0}.intro h2{max-width:1090px;margin:40px 0 65px;font-size:clamp(62px,7.9vw,110px);font-weight:900;line-height:.82;letter-spacing:-.085em}.intro h2 em{font-style:normal;color:var(--pink)}.introBottom{display:grid;grid-template-columns:.9fr 1.1fr;gap:100px;padding-top:25px;border-top:1px solid var(--line)}.introBottom>p{max-width:580px;margin:0;font-size:18px;line-height:1.58}.introBottom>div{display:grid;grid-template-columns:repeat(3,1fr);gap:15px}.introBottom span{font-size:10px;color:var(--muted)}.introBottom b{display:block;margin-bottom:6px;color:var(--ink);font-size:32px}
.gallery{height:850px;display:grid;grid-template-columns:1.2fr .8fr;grid-template-rows:1fr .72fr;gap:18px;padding-bottom:130px}.gallery figure{position:relative;margin:0;overflow:hidden;background:#ddd}.gallery img{filter:saturate(1.18);transition:.6s}.gallery figure:hover img{transform:scale(1.025)}.gallery figcaption{position:absolute;left:15px;bottom:15px;padding:9px 11px;background:#fff;font-size:8px;font-weight:850;letter-spacing:.1em}.gallerySurf{grid-row:1/3}.galleryQuote{padding:35px;display:flex;flex-direction:column;justify-content:space-between;background:linear-gradient(135deg,var(--cyan),#8ae6de 55%,var(--yellow))}.galleryQuote>span{font-size:60px;color:var(--pink)}.galleryQuote p{margin:0;font-size:31px;line-height:1.08}.galleryQuote b{font-weight:900}
.surfPacks{position:relative;padding:125px 0 95px;background:var(--ink);color:#fff;overflow:hidden}.surfPacksGlow{position:absolute;right:-120px;top:-180px;width:600px;height:600px;border-radius:50%;background:radial-gradient(circle,var(--pink),transparent 66%);opacity:.32}.surfPacksHead{position:relative;display:grid;grid-template-columns:1.15fr .55fr;gap:90px;align-items:end}.surfPacksHead h2{margin:28px 0 0;font-size:clamp(59px,6.5vw,92px);font-weight:900;line-height:.82;letter-spacing:-.08em}.surfPacksHead h2 em{font-style:normal;color:var(--cyan)}.surfPacksLead p{margin:0 0 25px;color:rgba(255,255,255,.84);font-size:15px;line-height:1.7}.surfPacksLead span{display:block;padding-top:18px;border-top:1px solid rgba(255,255,255,.25);color:var(--yellow);font-size:9px;font-weight:800;letter-spacing:.08em;text-transform:uppercase}.packGrid{position:relative;display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:70px}.surfPack{position:relative;padding:30px;display:flex;flex-direction:column;min-height:560px;background:#fff;color:var(--ink);transition:.3s}.surfPack:hover{transform:translateY(-7px)}.surfPack.featured{background:var(--yellow)}.surfPack.featured:before{content:"";position:absolute;inset:0;border:4px solid var(--cyan);pointer-events:none}.packTop{min-height:25px;display:flex;align-items:center;justify-content:space-between;gap:15px}.packTop small{color:var(--pink);font-size:8px;font-weight:900;letter-spacing:.13em}.packTop b{padding:7px 8px;background:var(--pink);color:#fff;font-size:7px;letter-spacing:.1em}.surfPack h3{margin:28px 0 8px;font-size:42px;font-weight:900;letter-spacing:-.06em}.surfPack>strong{color:var(--blue);font-size:13px}.surfPack>p{margin:25px 0;color:var(--muted);font-size:12px;line-height:1.65}.surfPack ul{margin:0;padding:0;list-style:none}.surfPack li{padding:11px 0;display:flex;gap:10px;border-top:1px solid var(--line);font-size:10px;line-height:1.4}.surfPack li span{color:var(--pink);font-weight:900}.surfPack>a{margin-top:auto;padding:17px 16px;display:flex;justify-content:space-between;background:var(--ink);color:#fff;font-size:9px;font-weight:900;text-transform:uppercase}.surfPack>a b{color:var(--cyan)}.packNote{position:relative;margin-top:35px;padding-top:25px;display:flex;justify-content:space-between;gap:25px;border-top:1px solid rgba(255,255,255,.25);color:rgba(255,255,255,.72);font-size:9px}.packNote span{display:flex;align-items:center;gap:8px}
.rooms{padding:125px 0 140px;background:var(--blue);color:#fff}.roomsHead{display:grid;grid-template-columns:1.15fr .45fr;gap:90px;align-items:end}.roomsHead h2{margin:28px 0 0;font-size:clamp(57px,6.4vw,88px);font-weight:900;line-height:.84;letter-spacing:-.08em}.roomsHead>p{margin:0;color:rgba(255,255,255,.82);font-size:14px;line-height:1.7}.roomGrid{display:grid;grid-template-columns:1fr 1fr;gap:22px;margin-top:65px}.room{display:grid;grid-template-columns:1fr .72fr;background:#fff;color:var(--ink);min-height:330px}.roomImage{position:relative;overflow:hidden}.roomImage img{filter:saturate(1.1);transition:.5s}.room:hover img{transform:scale(1.025);filter:saturate(1.25)}.roomImage span{position:absolute;left:12px;top:12px;padding:8px 10px;background:var(--yellow);font-size:8px;font-weight:900}.roomText{padding:27px 24px;display:flex;flex-direction:column;justify-content:center}.roomText small{color:var(--pink);font-size:8px;font-weight:850;text-transform:uppercase;letter-spacing:.1em}.roomText h3{margin:11px 0 8px;font-size:28px;font-weight:900;letter-spacing:-.045em}.roomText p{margin:0;color:var(--muted);font-size:10px;line-height:1.5}.roomText>a{align-self:flex-start;margin-top:33px;padding-bottom:7px;border-bottom:2px solid var(--cyan);font-size:8px;font-weight:900;text-transform:uppercase}
.services{min-height:760px;display:grid;grid-template-columns:.9fr 1.1fr;background:var(--pink)}.serviceTitle{padding:95px 6vw;display:flex;flex-direction:column;justify-content:center}.serviceTitle h2{margin:27px 0 0;font-size:clamp(56px,6vw,84px);font-weight:900;line-height:.82;letter-spacing:-.08em}.serviceTitle h2 em{font-style:normal;color:#fff}.serviceList{padding:75px 6vw;display:flex;flex-direction:column;justify-content:center;background:var(--yellow)}.serviceList>div{padding:22px 0;display:grid;grid-template-columns:55px 1fr;border-bottom:2px solid rgba(8,47,59,.35);font-size:21px;font-weight:750}.serviceList b{font-size:9px;color:var(--pink);letter-spacing:.1em}
.caramelo{min-height:620px;padding:90px 10vw;display:grid;grid-template-columns:.7fr 1.3fr;gap:80px;align-items:center;background:linear-gradient(135deg,#fff7c5,#ffd8e9 55%,#bdeff8);color:var(--ink)}.carameloMark{width:min(360px,70vw);aspect-ratio:1;display:flex;align-items:center;justify-content:center;border:5px solid var(--ink);border-radius:50%;background:linear-gradient(135deg,var(--yellow),var(--cyan),var(--pink));font-size:130px;box-shadow:18px 18px 0 #fff}.caramelo h2{margin:28px 0;font-size:clamp(60px,7vw,94px);font-weight:900;line-height:.82;letter-spacing:-.08em}.caramelo h2 em{font-style:normal;color:var(--pink)}.caramelo p{max-width:600px;margin:0;font-size:16px;line-height:1.7}
.location{min-height:700px;display:grid;grid-template-columns:1.15fr .85fr}.locationPhoto{position:relative;min-height:700px;margin:0;overflow:hidden;background:var(--ink)}.locationPhoto img{filter:saturate(1.12) contrast(1.04)}.locationPhoto figcaption{position:absolute;left:16px;bottom:16px;padding:9px 11px;background:rgba(255,255,255,.94);font-size:8px;font-weight:850;letter-spacing:.08em}.locationCopy{padding:90px 6vw;display:flex;flex-direction:column;justify-content:center;background:var(--cyan)}.locationCopy h2{margin:28px 0;font-size:clamp(58px,6vw,84px);font-weight:900;line-height:.82;letter-spacing:-.08em}.locationCopy p{max-width:500px;margin:0;font-size:14px;line-height:1.7}.locationCopy>div{display:flex;gap:25px;margin-top:35px}.locationCopy a{padding-bottom:7px;border-bottom:2px solid var(--ink);font-size:9px;font-weight:850;text-transform:uppercase}
.faq{padding:135px 0;display:grid;grid-template-columns:.55fr 1fr;gap:100px}.faq h2{margin:28px 0 0;font-size:clamp(58px,6vw,84px);font-weight:900;line-height:.82;letter-spacing:-.08em}.faqList{border-top:1px solid var(--line)}.faq details{border-bottom:1px solid var(--line)}.faq summary{padding:24px 0;display:flex;justify-content:space-between;gap:30px;cursor:pointer;list-style:none;font-size:15px;font-weight:700}.faq summary::-webkit-details-marker{display:none}.faq summary span{color:var(--pink);font-size:18px}.faq details p{max-width:680px;margin:0;padding:0 40px 25px 0;color:var(--muted);font-size:13px;line-height:1.7}
footer{position:relative;padding-top:105px;background:#fff;overflow:hidden;border-top:5px solid transparent;border-image:linear-gradient(90deg,var(--cyan),var(--yellow),var(--pink)) 1}.footerGlow{position:absolute;left:50%;top:-180px;transform:translateX(-50%);width:750px;height:250px;background:linear-gradient(90deg,var(--cyan),var(--yellow),var(--pink));filter:blur(70px);opacity:.35}.footerMain{position:relative;text-align:center}.footerMain>img{width:170px;height:80px;object-fit:contain;margin:auto}.footerMain>p{margin:40px 0 0;color:var(--pink);font-size:9px;font-weight:900;letter-spacing:.16em}.footerMain h2{margin:20px 0 35px;font-size:clamp(72px,9vw,126px);font-weight:900;line-height:.78;letter-spacing:-.09em}.footerMain>a{display:inline-flex;gap:60px;padding:17px 20px;background:var(--ink);color:#fff;font-size:10px;font-weight:850;text-transform:uppercase;box-shadow:6px 6px 0 var(--cyan)}.footerMain>a b{color:var(--pink)}.footerBottom{min-height:112px;margin-top:95px;border-top:1px solid var(--line);display:flex;align-items:center;justify-content:space-between;gap:18px;color:var(--muted);font-size:13px;font-weight:750;letter-spacing:.015em}.footerBottom a{min-height:44px;padding:10px 8px;display:inline-flex;align-items:center;color:var(--ink)}.footerBottom a:hover{color:var(--pink)}.wa{position:fixed;right:18px;bottom:18px;z-index:30;padding:14px 18px;display:flex;align-items:center;justify-content:center;gap:8px;border:3px solid var(--ink);border-radius:30px;background:#25d366;color:#fff;font-size:10px;font-weight:850;box-shadow:4px 4px 0 var(--ink)}.wa svg{width:22px;height:22px;flex:0 0 auto;fill:currentColor}
@media(prefers-reduced-motion:reduce){*{scroll-behavior:auto!important;transition:none!important}}@media(max-width:1100px){.hero{min-height:760px}.availabilityForm{grid-template-columns:repeat(3,1fr)}.availabilityIntro,.availabilityForm label{min-height:86px;padding:16px}.availabilityForm button{min-height:86px}.availabilityError{bottom:-22px}}@media(max-width:920px){.shell{width:calc(100% - 40px)}.nav nav{display:none}.introBottom,.roomsHead,.surfPacksHead,.faq{grid-template-columns:1fr}.surfPacksHead{gap:45px}.packGrid{grid-template-columns:1fr}.surfPack{min-height:0}.surfPack>a{margin-top:35px}.packNote{flex-direction:column}.gallery{height:1000px}.room{grid-template-columns:1fr}.roomImage{min-height:300px}.services,.location,.caramelo{grid-template-columns:1fr}.caramelo{padding:90px 6vw}.serviceTitle{min-height:610px}.locationPhoto{min-height:520px}.faq{gap:60px}}
@media(max-width:620px){.shell{width:calc(100% - 26px)}.nav{height:76px;padding:0 14px}.logo{width:122px;height:58px}.navCta{padding:11px 12px;font-size:8px}.navCta span{margin-left:10px}.hero{height:auto;min-height:970px}.heroCopy{left:20px;right:20px;top:38px;transform:none}.hero h1{margin:18px 0 20px;font-size:59px}.heroCopy>p{font-size:13px;line-height:1.5;max-width:82%}.heroCopy>div{margin-top:20px;align-items:flex-start;flex-direction:row}.heroCopy .mainCta{display:none}.heroBadge{right:15px;top:18px;width:86px;height:86px}.heroBadge b{font-size:40px}.heroBadge span{font-size:7px}.availabilityForm{left:13px;right:13px;bottom:15px;grid-template-columns:1fr 1fr;min-height:0}.availabilityIntro{grid-column:1/-1;min-height:62px;padding:12px 14px}.availabilityIntro small{margin-bottom:4px}.availabilityForm label{min-height:72px;padding:11px 13px}.availabilityForm label:nth-of-type(2),.availabilityForm label:nth-of-type(4){border-right:0}.availabilityForm button{grid-column:1/-1;min-height:60px}.availabilityError{left:0;right:0;bottom:-24px;text-align:center}.intro{padding:90px 0}.intro h2,.surfPacksHead h2,.roomsHead h2,.serviceTitle h2,.locationCopy h2,.faq h2,.caramelo h2{font-size:49px}.introBottom{gap:45px}.introBottom>div{grid-template-columns:1fr 1fr}.gallery{height:auto;grid-template-columns:1fr;grid-template-rows:430px 310px 270px;padding-bottom:90px}.gallerySurf{grid-row:auto}.surfPacks{padding:90px 0 70px}.packGrid{margin-top:45px}.surfPack{padding:24px}.surfPack h3{font-size:38px}.rooms{padding:90px 0}.roomGrid{grid-template-columns:1fr}.roomImage{min-height:280px}.serviceTitle,.serviceList,.locationCopy{padding:75px 22px}.serviceList>div{font-size:17px}.caramelo{padding:70px 22px;gap:60px}.carameloMark{font-size:90px;box-shadow:10px 10px 0 #fff}.locationPhoto{min-height:400px}.locationCopy>div{flex-direction:column;align-items:flex-start}.faq{padding:90px 0}.footerMain h2{font-size:57px}.footerBottom{padding:30px 0;gap:6px 14px;justify-content:center;flex-wrap:wrap;text-align:center;font-size:13px}.footerBottom span:first-child{width:100%;margin-bottom:4px}.footerBottom a{min-height:44px;padding:9px 7px}.footerBottom span:last-child{width:100%}.wa{width:58px;height:58px;padding:0;right:14px;bottom:max(14px,env(safe-area-inset-bottom));border-radius:50%}.wa svg{width:29px;height:29px}.wa span{display:none}}

/* Real Surfari photography — v1.1 */
.communityBanner{position:relative;min-height:680px;display:flex;align-items:flex-end;overflow:hidden;background:var(--ink)}.communityBanner>img,.communityShade{position:absolute;inset:0}.communityBanner>img{object-position:center 42%;filter:saturate(1.05) contrast(1.03)}.communityShade{background:linear-gradient(90deg,rgba(4,34,43,.94),rgba(4,34,43,.58) 49%,rgba(4,34,43,.08)),linear-gradient(0deg,rgba(4,34,43,.75),transparent 55%)}.communityCopy{position:relative;z-index:2;padding-bottom:70px;color:#fff}.communityCopy h2{max-width:920px;margin:25px 0 22px;font-size:clamp(58px,7vw,98px);font-weight:900;line-height:.82;letter-spacing:-.08em}.communityCopy h2 em{font-style:normal;color:var(--yellow)}.communityCopy p{max-width:560px;margin:0;color:rgba(255,255,255,.86);font-size:15px;line-height:1.65}.communityCopy>a{display:inline-flex;gap:50px;margin-top:28px;padding:16px 19px;background:#fff;color:var(--ink);font-size:9px;font-weight:900;text-transform:uppercase;box-shadow:6px 6px 0 var(--cyan)}.communityCopy>a b{color:var(--pink)}
.life{padding:130px 0}.lifeHead{display:grid;grid-template-columns:1.15fr .55fr;column-gap:80px;align-items:end}.lifeHead>.sectionLabel{grid-column:1/-1}.lifeHead h2{margin:30px 0 0;font-size:clamp(58px,6.8vw,94px);font-weight:900;line-height:.82;letter-spacing:-.08em}.lifeHead h2 em{font-style:normal;color:var(--pink)}.lifeHead p{margin:0 0 8px;color:var(--muted);font-size:14px;line-height:1.7}.lifeGrid{height:820px;margin-top:65px;display:grid;grid-template-columns:.72fr 1.28fr;grid-template-rows:1fr .82fr;gap:18px}.lifeGrid figure{position:relative;margin:0;overflow:hidden;background:#ddd}.lifeGrid img{transition:.6s}.lifeGrid figure:hover img{transform:scale(1.025)}.lifeGrid figcaption{position:absolute;left:15px;bottom:15px;padding:9px 11px;background:#fff;font-size:8px;font-weight:850;letter-spacing:.1em}.lifeWelcome{grid-row:1/3}.lifePing{grid-column:2}.lifeNight{grid-column:2}.lifeNight img{object-position:center 66%}
.caramelo{min-height:680px;grid-template-columns:.82fr 1.18fr}.carameloPhoto{position:relative;width:min(440px,75vw);aspect-ratio:1;margin:0;border:5px solid var(--ink);border-radius:50%;overflow:hidden;box-shadow:18px 18px 0 #fff}.carameloPhoto img{object-position:center 40%}.carameloPhoto figcaption{position:absolute;left:50%;bottom:18px;transform:translateX(-50%);width:max-content;max-width:85%;padding:9px 11px;background:#fff;font-size:8px;font-weight:850;letter-spacing:.09em}
@media(max-width:920px){.lifeHead{grid-template-columns:1fr;row-gap:35px}.caramelo{grid-template-columns:1fr}}
@media(max-width:620px){.communityBanner{min-height:700px}.communityBanner>img{object-position:58% center}.communityCopy{padding-bottom:45px}.communityCopy h2,.lifeHead h2{font-size:49px}.life{padding:90px 0}.lifeGrid{height:auto;grid-template-columns:1fr;grid-template-rows:430px 310px 360px}.lifeWelcome{grid-row:auto}.lifePing,.lifeNight{grid-column:auto}.carameloPhoto{box-shadow:10px 10px 0 #fff}.locationPhoto{min-height:500px}.locationPhoto img{object-position:center 62%}}

/* Commercial hierarchy and brand scale — v1.2 */
.nav{height:104px}.logo{width:190px;height:94px}.nav nav{font-size:13px}.navCta{font-size:11px}.hero{height:calc(100vh - 104px)}.heroCopy{top:36%;max-width:700px}.heroSlogan{display:block;color:var(--yellow);font-size:14px!important;letter-spacing:.2em!important}.heroMeta{display:block;margin-top:9px;color:rgba(255,255,255,.78);font-size:11px;font-weight:750;letter-spacing:.12em}.hero h1{font-size:clamp(56px,6.2vw,88px);line-height:.82;letter-spacing:-.07em}.heroCopy>p{max-width:600px;font-size:18px}.sectionLabel{font-size:11px}.mainCta,.textCta{font-size:11px}.heroBadge{width:148px;height:148px;flex-direction:column;gap:3px;text-align:center}.heroBadge strong{font-size:29px;line-height:.87}.heroBadge span{font-size:10px;line-height:1.08}.availabilityIntro small,.availabilityForm label span{font-size:10px}.availabilityIntro strong{font-size:17px}.availabilityForm input,.availabilityForm select{font-size:14px}.availabilityForm button{font-size:10px}.intro h2,.surfPacksHead h2,.roomsHead h2,.serviceTitle h2,.locationCopy h2,.faq h2,.caramelo h2,.communityCopy h2,.lifeHead h2{font-size:clamp(50px,5.7vw,78px);line-height:.88;letter-spacing:-.065em}.introBottom>p{font-size:19px}.surfPacksLead p,.roomsHead>p,.lifeHead p,.locationCopy p{font-size:16px}.gallery figcaption,.lifeGrid figcaption,.carameloPhoto figcaption{font-size:10px}.surfPack h3{font-size:38px}.surfPack>strong{font-size:15px}.surfPack>p{font-size:14px}.surfPack li{font-size:12px}.surfPack>a,.roomText>a{font-size:10px}.roomText small{font-size:10px}.roomText h3{font-size:30px}.roomText p{font-size:12px}.serviceList>div{font-size:22px}.faq summary{font-size:17px}.faq details p{font-size:15px}.bookingChannels{background:#fff;border-bottom:1px solid var(--line)}.bookingChannelsInner{min-height:118px;display:grid;grid-template-columns:1.2fr auto 1fr;gap:28px;align-items:center}.bookingChannelsInner>div:first-child{display:flex;flex-direction:column;gap:6px}.bookingChannelsInner small{color:var(--pink);font-size:10px;font-weight:900;letter-spacing:.14em}.bookingChannelsInner strong{font-size:15px}.directBooking{padding:16px 19px;background:var(--ink);color:#fff;font-size:10px;font-weight:900;text-transform:uppercase;box-shadow:5px 5px 0 var(--cyan)}.directBooking b{margin-left:35px;color:var(--pink)}.platformLinks{display:flex;justify-content:flex-end;gap:9px;flex-wrap:wrap}.platformLinks span{padding:9px 11px;border:1px solid var(--line);color:var(--muted);font-size:10px;font-weight:750}.footerMain>img{width:220px;height:150px}.footerMain h2{font-size:clamp(62px,7.5vw,102px)}
@media(max-width:920px){.nav{height:92px}.logo{width:160px;height:82px}.bookingChannelsInner{padding:25px 0;grid-template-columns:1fr 1fr}.platformLinks{grid-column:1/-1;justify-content:flex-start}.hero{height:auto;min-height:820px}.heroCopy{top:34%}}
@media(max-width:620px){.nav{height:82px}.logo{width:138px;height:72px}.hero{min-height:960px}.heroCopy{top:34px}.heroSlogan{font-size:11px!important}.heroMeta{font-size:9px}.hero h1{font-size:52px}.heroCopy>p{font-size:15px}.heroBadge{width:92px;height:92px}.heroBadge strong{font-size:18px}.heroBadge span{font-size:7px}.bookingChannelsInner{grid-template-columns:1fr;padding:24px 0}.platformLinks{grid-column:auto}.intro h2,.surfPacksHead h2,.roomsHead h2,.serviceTitle h2,.locationCopy h2,.faq h2,.caramelo h2,.communityCopy h2,.lifeHead h2{font-size:43px}.sectionLabel{font-size:10px}}

/* Header breathing room and clearer wordmark — v1.2.1 */
.nav{height:120px;padding:14px 48px 12px;gap:40px;box-shadow:0 8px 25px rgba(8,47,59,.07)}
.logo{width:235px;height:88px;flex:0 0 auto;display:block}
.logo img{object-fit:contain;object-position:left center}
.nav nav{margin-left:auto;gap:32px}
.hero{height:calc(100vh - 120px)}
.heroBg{object-position:center center}
.locationPhoto img{object-position:center 52%;filter:saturate(1.08) contrast(1.02)}
.footerMain>img{width:260px;height:110px}
@media(max-width:920px){.nav{height:104px;padding:10px 24px}.logo{width:205px;height:82px}.hero{height:auto}.navCta{margin-left:auto}}
@media(max-width:620px){.nav{height:96px;padding:9px 14px;gap:12px}.logo{width:172px;height:76px}.navCta{padding:12px 10px;font-size:8px}.hero{min-height:960px}.locationPhoto img{object-position:center 45%}.footerMain>img{width:220px;height:95px}}

/* Direct booking and social proof — v1.3 */
.bookingChannels{background:#fff7c5}
.bookingChannelsInner{min-height:132px;grid-template-columns:1.15fr 1fr auto;gap:38px}
.directBenefits{display:flex;justify-content:center;gap:12px;flex-wrap:wrap}
.directBenefits span{padding:10px 12px;background:#fff;border:1px solid rgba(8,47,59,.15);font-size:11px;font-weight:800}
.reviews{padding:120px 0 125px}
.reviewsHead{display:grid;grid-template-columns:1.2fr .8fr;gap:70px;align-items:end}
.reviewsHead h2{margin:28px 0 0;font-size:clamp(50px,5.7vw,78px);font-weight:900;line-height:.88;letter-spacing:-.065em}
.reviewsHead h2 em{font-style:normal;color:var(--pink)}
.reviewScores{display:flex;justify-content:flex-end;gap:14px}
.reviewScores a{min-width:170px;padding:20px;display:flex;align-items:center;gap:15px;border:1px solid var(--line);background:#fff}
.reviewScores b{font-size:35px;letter-spacing:-.06em}
.reviewScores span{color:var(--muted);font-size:11px;font-weight:750;line-height:1.4}
.reviewGrid{display:grid;grid-template-columns:repeat(3,1fr);gap:18px;margin-top:55px}
.reviewGrid article{min-height:285px;padding:28px;display:flex;flex-direction:column;background:#fff;border:1px solid var(--line);box-shadow:7px 7px 0 #e7f8fb}
.stars{color:var(--pink);font-size:15px;letter-spacing:.15em}
.reviewGrid blockquote{margin:30px 0 20px;font-size:22px;font-weight:800;line-height:1.35;letter-spacing:-.025em}
.reviewGrid p{margin:0 0 28px;color:var(--muted);font-size:12px;line-height:1.55}
.reviewGrid a{margin-top:auto;align-self:flex-start;padding-bottom:6px;border-bottom:2px solid var(--cyan);font-size:10px;font-weight:900;text-transform:uppercase}
.reviewsNote{margin:26px 0 0;color:var(--muted);font-size:10px}
.locationPhoto img{object-position:center center}
@media(max-width:920px){.bookingChannelsInner,.reviewsHead{grid-template-columns:1fr}.directBenefits{justify-content:flex-start}.reviewScores{justify-content:flex-start}.reviewGrid{grid-template-columns:1fr}}
@media(max-width:620px){.bookingChannelsInner{gap:18px}.directBenefits{flex-direction:column}.directBenefits span{width:100%}.reviews{padding:85px 0 90px}.reviewsHead h2{font-size:43px}.reviewScores{display:grid;grid-template-columns:1fr 1fr}.reviewScores a{min-width:0;padding:15px}.reviewScores b{font-size:28px}.reviewGrid{margin-top:35px}.reviewGrid article{min-height:0}.locationPhoto{min-height:420px}.locationPhoto img{object-position:center center}}

/* Beach and surf gallery — v1.4 */
.beachExperience{padding:125px 0 135px}.beachExperienceHead{display:grid;grid-template-columns:1.15fr .55fr;gap:80px;align-items:end}.beachExperienceHead h2{margin:28px 0 0;font-size:clamp(50px,5.7vw,78px);font-weight:900;line-height:.88;letter-spacing:-.065em}.beachExperienceHead h2 em{font-style:normal;color:var(--pink)}.beachExperienceHead>p{margin:0 0 6px;color:var(--muted);font-size:16px;line-height:1.7}.beachExperienceGrid{height:760px;margin-top:60px;display:grid;grid-template-columns:1.2fr .8fr .8fr;grid-template-rows:1fr .92fr;gap:16px}.beachExperienceGrid figure{position:relative;margin:0;overflow:hidden;background:#d8e8eb}.beachExperienceGrid img{transition:transform .6s,filter .6s;filter:saturate(1.06) contrast(1.02)}.beachExperienceGrid figure:hover img{transform:scale(1.025);filter:saturate(1.18) contrast(1.04)}.beachExperienceGrid figcaption{position:absolute;left:15px;bottom:15px;padding:10px 12px;background:#fff;color:var(--ink);font-size:9px;font-weight:900;letter-spacing:.09em}.beachPeople{grid-column:1/3}.surfAction{grid-column:3}.surfFriends{grid-column:1}.surfClass{grid-column:2/4}.beachPeople img{object-position:center 42%}.surfAction img{object-position:center 45%}.surfFriends img{object-position:center 47%}.surfClass img{object-position:center 40%}
@media(max-width:920px){.beachExperienceHead{grid-template-columns:1fr;gap:35px}.beachExperienceGrid{height:900px;grid-template-columns:1fr 1fr;grid-template-rows:1.1fr .8fr .8fr}.beachPeople{grid-column:1/3}.surfAction,.surfFriends{grid-column:auto}.surfClass{grid-column:1/3}}
@media(max-width:620px){.beachExperience{padding:85px 0 95px}.beachExperienceHead h2{font-size:43px}.beachExperienceGrid{height:auto;margin-top:42px;grid-template-columns:1fr;grid-template-rows:420px 300px 300px 320px}.beachPeople,.surfAction,.surfFriends,.surfClass{grid-column:auto}.beachExperienceGrid figcaption{font-size:8px}}

/* Final approved brand scale and conversion layout — v1.5 */
.nav{height:126px;padding:14px 46px 12px}
.logo{width:265px;height:98px;overflow:visible}
.logo img{transform:scale(1.08);transform-origin:left center}
.hero{height:calc(100vh - 126px)}
.heroBadge strong{font-size:38px;line-height:.9}
.locationPhoto img{object-position:center 58%;filter:saturate(1.08) contrast(1.02)}
@media(max-width:1100px){.nav{padding-inline:26px}.nav nav{gap:20px}.logo{width:225px}}
@media(max-width:920px){.nav{height:104px;padding:10px 24px}.logo{width:205px;height:82px}.hero{height:auto}.navCta{margin-left:auto}}

/* Mobile tap targets, balanced type and safe areas — v1.6 */
@media(max-width:620px){
  .nav{height:96px;padding:9px 14px;gap:12px;padding-top:max(9px,env(safe-area-inset-top))}
  .logo{width:172px;height:76px}
  .logo img{transform:scale(1.05)}
  .navCta{min-height:44px;padding:12px 10px;display:flex;align-items:center;white-space:nowrap;font-size:8px}
  .hero{min-height:930px}
  .heroCopy{top:118px;left:18px;right:18px}
  .hero h1{font-size:clamp(45px,14vw,56px);line-height:.86}
  .heroCopy>p{max-width:76%;font-size:15px}
  .heroBadge{top:112px;right:14px;width:88px;height:88px}
  .heroBadge strong{font-size:25px}
  .availabilityForm{bottom:max(14px,env(safe-area-inset-bottom))}
  .availabilityForm input,.availabilityForm select{font-size:16px}
  .availabilityForm button{min-height:64px;font-size:11px}
  .directBooking,.surfPack>a,.roomText>a,.locationCopy a,.footerMain>a{min-height:44px;display:inline-flex;align-items:center}
  .locationPhoto img{object-position:center 58%}
}
