@import url('https://fonts.googleapis.com/css2?family=DM+Sans:wght@400;500;600;700&family=Playfair+Display:wght@500;600;700&display=swap');
:root{--blue:#079ed0;--blue-dark:#087ca7;--ink:#24292d;--muted:#657078;--paper:#fff;--pale:#effaff;--line:#dce9ee;--cream:#f8f6f1;--shadow:0 18px 45px rgba(25,52,65,.10)}
*{box-sizing:border-box}
html{scroll-behavior:smooth}
body{margin:0;color:var(--ink);background:var(--paper);font:400 16px/1.65 'DM Sans',Arial,sans-serif;-webkit-font-smoothing:antialiased}
img{display:block;max-width:100%}
a{color:inherit;text-decoration:none}
button,input,textarea{font:inherit}
button{cursor:pointer}
h1,h2,h3,p{margin-top:0}
h1,h2{font-family:'Playfair Display',Georgia,serif;line-height:1.14;letter-spacing:-.035em}
h1{font-size:clamp(3rem,6vw,5.9rem);font-weight:600}
h2{font-size:clamp(2.1rem,4vw,3.55rem);font-weight:600}
h3{font-size:1.2rem;line-height:1.35}
:focus-visible{outline:3px solid var(--blue);outline-offset:4px}
.shell{width:min(100% - 48px,1180px);margin-inline:auto}
.skip-link{position:absolute;top:-100px;left:1rem;z-index:100;background:var(--ink);color:#fff;padding:.6rem 1rem}
.skip-link:focus{top:1rem}
.site-header{position:relative;z-index:20;background:#fff;border-bottom:1px solid var(--line)}
.header-inner{display:flex;align-items:center;justify-content:space-between;gap:2rem;min-height:96px}
.brand{display:inline-flex;align-items:center;gap:.75rem;flex:none}
.brand img{width:66px;height:66px}
.brand-text{display:flex;flex-direction:column;line-height:1.08}
.brand-text strong{font-family:'Playfair Display',Georgia,serif;font-size:1.55rem;color:var(--blue);letter-spacing:-.04em}
.brand-text small{font-size:.64rem;letter-spacing:.18em;text-transform:uppercase;color:var(--muted);margin-top:.4rem}
.primary-nav{display:flex;align-items:center;gap:clamp(1rem,2vw,2rem);font-size:.9rem;font-weight:700}
.primary-nav>a{position:relative;padding:.5rem 0;white-space:nowrap}
.primary-nav>a::after{content:'';position:absolute;left:0;right:100%;bottom:.22rem;height:2px;background:var(--blue);transition:right .2s}
.primary-nav>a:hover,.primary-nav>a[aria-current=page]{color:var(--blue-dark)}
.primary-nav>a:hover::after,.primary-nav>a[aria-current=page]::after{right:0}
.language-switch{display:flex;align-items:center;gap:.35rem;padding:.45rem .7rem;border:1px solid var(--line);border-radius:100px;color:#9ca9af;font-size:.78rem}
.language-switch a{color:var(--muted)}
.language-switch a[aria-current=true]{color:var(--blue-dark);font-weight:700}
.nav-toggle{display:none;align-items:center;justify-content:center;flex-direction:column;gap:5px;width:44px;height:44px;border:1px solid var(--line);border-radius:8px;background:#fff}
.nav-toggle span{width:20px;height:2px;background:var(--ink);border-radius:2px}
.hero{background:linear-gradient(135deg,#fff 0%,#f1fbff 70%,#e9f8fc 100%);overflow:hidden}
.hero-grid{display:grid;grid-template-columns:1fr 1.07fr;align-items:center;gap:clamp(2rem,5vw,5rem);padding-block:clamp(48px,7vw,100px)}
.hero-copy{position:relative;z-index:2}
.eyebrow,.kicker{display:inline-flex;align-items:center;gap:.8rem;color:var(--blue-dark);text-transform:uppercase;font-size:.72rem;font-weight:700;letter-spacing:.18em}
.eyebrow-line{width:32px;height:2px;background:var(--blue)}
.hero h1{margin:1.25rem 0 1.4rem;max-width:650px}
.hero-copy>p{color:var(--muted);font-size:1.12rem;max-width:510px;margin-bottom:2rem}
.button-row{display:flex;align-items:center;flex-wrap:wrap;gap:1.6rem}
.button{display:inline-flex;align-items:center;justify-content:center;gap:1.3rem;min-height:52px;padding:.78rem 1.35rem;border:1px solid transparent;border-radius:4px;font-size:.89rem;font-weight:700;transition:transform .2s,background .2s,box-shadow .2s}
.button:hover{transform:translateY(-2px)}
.button-primary{background:var(--blue);color:#fff;box-shadow:0 10px 20px rgba(7,158,208,.18)}
.button-primary:hover{background:var(--blue-dark);color:#fff;box-shadow:0 14px 25px rgba(7,158,208,.25)}
.button-light{background:#fff;color:var(--blue-dark)}
.button-light:hover{background:var(--pale)}
.text-link{font-weight:700;color:var(--blue-dark);display:inline-flex;align-items:center;gap:.55rem;border-bottom:1px solid currentColor;padding-bottom:.2rem}
.text-link:hover{color:var(--ink)}
.hero-visual{position:relative;isolation:isolate}
.hero-visual::before{content:'';position:absolute;inset:-20px -36px 28px 36px;border:2px solid #b7e9f5;border-radius:52% 48% 55% 45%;z-index:-1;transform:rotate(-7deg)}
.hero-visual img{width:100%;aspect-ratio:1.06;object-fit:cover;border-radius:48% 52% 45% 55% / 45% 42% 58% 55%;box-shadow:var(--shadow)}
.hero-badge{position:absolute;right:-10px;bottom:22px;display:flex;align-items:center;gap:.55rem;max-width:190px;padding:1rem 1.2rem;background:#fff;box-shadow:var(--shadow);border-radius:4px;font-size:.82rem;font-weight:700;line-height:1.35}
.hero-badge span{color:var(--blue);font-size:1.5rem}
.section-pad{padding-block:clamp(64px,8vw,108px)}
.intro-grid{display:grid;grid-template-columns:.9fr 1fr;gap:clamp(2rem,8vw,8rem);align-items:center}
.intro h2{margin:1rem 0 0;max-width:500px}
.lead{font-size:clamp(1.1rem,1.5vw,1.3rem);line-height:1.8;color:var(--muted)}
.intro .lead{margin-bottom:1.5rem}
.featured{background:var(--cream)}
.section-head{display:flex;align-items:end;justify-content:space-between;gap:1.5rem;margin-bottom:2rem}
.section-head h2{margin:.8rem 0 0}
.section-head .text-link{margin-bottom:.45rem;white-space:nowrap}
.dish-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.5rem}
.dish-card{overflow:hidden;background:#fff;border:1px solid #e6ebec;border-radius:5px;box-shadow:0 8px 22px rgba(20,49,58,.04);transition:transform .2s,box-shadow .2s}
.dish-card:hover{transform:translateY(-4px);box-shadow:var(--shadow)}
.dish-card>img{width:100%;height:235px;object-fit:cover}
.dish-body{padding:1.35rem 1.35rem 1.6rem}
.dish-heading{display:flex;align-items:start;justify-content:space-between;gap:1rem}
.dish-heading h3{margin:0 0 .55rem}
.dish-heading strong{flex:none;color:var(--blue-dark);font-size:.94rem}
.dish-body p{font-size:.91rem;color:var(--muted);margin:0}
.callout{background:var(--blue-dark);color:#fff;text-align:center;padding:clamp(70px,8vw,100px) 0}
.callout .kicker{color:#b5ecfa}
.callout h2{font-size:clamp(2.8rem,5vw,4.8rem);margin:1rem 0 .5rem}
.callout p{color:#e2f7fd;margin-bottom:1.7rem}
.page-hero{background:linear-gradient(120deg,#0788b5,#036584);color:#fff;padding:clamp(72px,8vw,110px) 0}
.page-hero .kicker{color:#bcecf7}
.page-hero h1{font-size:clamp(2.9rem,5vw,5rem);margin:1rem 0}
.page-hero p{color:#e7faff;font-size:1.08rem;max-width:700px;margin:0}
.page-hero .button{margin-top:1.5rem}
.category-list{display:flex;flex-wrap:wrap;gap:.7rem;margin-bottom:2rem}
.category-list a{padding:.6rem 1.2rem;border:1px solid var(--line);border-radius:100px;font-size:.87rem;font-weight:700}
.category-list a:hover,.category-list a.active{background:var(--blue);border-color:var(--blue);color:#fff}
.menu-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.story-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,7vw,6rem);align-items:center}
.story-image img{width:100%;height:470px;object-fit:cover;border-radius:5px}
.story-grid h2{margin:1rem 0}
.story-grid .button{margin-top:1rem}
.post-grid{display:grid;grid-template-columns:repeat(2,minmax(0,1fr));gap:2rem}
.post-card{border:1px solid var(--line);background:#fff}
.post-card>a img{width:100%;height:310px;object-fit:cover}
.post-card>div{padding:1.6rem}
.post-card time,.article time{display:block;color:var(--blue-dark);font-size:.78rem;font-weight:700;text-transform:uppercase;letter-spacing:.13em;margin-bottom:.65rem}
.post-card h2{font-size:1.8rem;margin:.3rem 0 .7rem}
.post-card p{color:var(--muted)}
.article{max-width:860px}
.article>img{width:100%;max-height:490px;object-fit:cover;margin-bottom:2rem}
.article-body{font-size:1.1rem;line-height:1.95;color:#4c585e;margin:0 0 2rem}
.contact-grid{display:grid;grid-template-columns:.8fr 1.2fr;gap:clamp(2rem,7vw,6rem)}
.contact-grid h2{font-size:2.5rem;margin-bottom:1.7rem}
.detail{padding:1.1rem 0;border-bottom:1px solid var(--line)}
.detail span{font-size:.72rem;text-transform:uppercase;letter-spacing:.14em;color:var(--blue-dark);font-weight:700}
.detail p{margin:.4rem 0 0}
.detail a:hover{color:var(--blue-dark)}
.contact-form-wrap{padding:clamp(1.5rem,4vw,3rem);background:var(--pale);border-radius:5px}
.contact-form-wrap label{display:block;font-size:.85rem;font-weight:700;margin-bottom:1rem}
.contact-form-wrap input,.contact-form-wrap textarea{display:block;width:100%;margin-top:.4rem;padding:.8rem .9rem;border:1px solid #c5dbe3;border-radius:3px;background:#fff;color:var(--ink)}
.contact-form-wrap textarea{resize:vertical;min-height:150px}
.field-pair{display:grid;grid-template-columns:1fr 1fr;gap:1rem}
.hidden-field{position:absolute;left:-9999px;width:1px;height:1px;overflow:hidden}
.form-note{padding:.75rem 1rem;border-radius:4px}
.form-note.success{background:#dff5ea;color:#155f40}
.form-note.error{background:#fff0ed;color:#a63420}
.gallery-image{margin:0;overflow:hidden;border:1px solid var(--line)}
.gallery-image img{width:100%;height:250px;object-fit:cover}
.gallery-image figcaption{padding:1rem;font-weight:700}
.site-footer{background:#20282d;color:#fff;padding-top:4rem}
.footer-grid{display:grid;grid-template-columns:2fr 1fr 1fr;gap:3rem;padding-bottom:4rem}
.footer-brand{display:inline-block;color:#6bd1f0;font-family:'Playfair Display',Georgia,serif;font-size:2rem;font-weight:700;margin-bottom:.35rem}
.site-footer p,.site-footer span{color:#bac5ca}
.site-footer h2{font-family:'DM Sans',Arial,sans-serif;font-size:.75rem;text-transform:uppercase;letter-spacing:.16em;margin:0 0 1.2rem;color:#fff}
.site-footer .footer-grid>div:not(:first-child) a,.site-footer .footer-grid>div:not(:first-child) span{display:block;margin:.55rem 0;font-size:.9rem}
.site-footer a:hover{color:#6bd1f0}
.footer-bottom{border-top:1px solid #3c464b;padding:1.25rem 0;display:flex;align-items:center;justify-content:space-between;font-size:.78rem}
@media(max-width:950px){.header-inner{min-height:78px}.brand img{width:56px;height:56px}.nav-toggle{display:flex}.primary-nav{display:none;position:absolute;top:100%;left:0;right:0;background:#fff;box-shadow:var(--shadow);padding:1.25rem 24px 1.5rem;flex-direction:column;align-items:stretch;gap:.15rem}.primary-nav.is-open{display:flex}.primary-nav>a{padding:.65rem 0;border-bottom:1px solid var(--line)}.primary-nav>a::after{display:none}.language-switch{align-self:flex-start;margin-top:.7rem}.hero-grid{gap:2rem}.hero h1{font-size:clamp(2.9rem,6vw,4.4rem)}}
@media(max-width:700px){.shell{width:min(100% - 32px,1180px)}.hero-grid,.intro-grid,.story-grid,.contact-grid{grid-template-columns:1fr}.hero-grid{padding-block:54px 72px}.hero-visual{max-width:520px;margin:1rem auto 0;width:calc(100% - 18px)}.hero-visual::before{inset:-12px -12px 18px 18px}.hero-badge{right:-10px;bottom:-14px}.intro-grid{gap:1rem}.dish-grid,.menu-grid,.post-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.section-head{align-items:start;flex-direction:column}.story-image img{height:360px}.footer-grid{grid-template-columns:1fr 1fr;gap:2rem}.footer-grid>div:first-child{grid-column:1/-1}.page-hero{padding:65px 0}}
@media(max-width:520px){h1{font-size:3rem}.brand-text strong{font-size:1.35rem}.brand-text small{font-size:.55rem}.dish-grid,.menu-grid,.post-grid,.field-pair{grid-template-columns:1fr}.dish-card>img{height:245px}.hero-copy>p{font-size:1rem}.button-row{gap:1.2rem}.hero-badge{max-width:165px;font-size:.72rem}.contact-form-wrap{padding:1.4rem}.footer-grid{grid-template-columns:1fr 1fr}.footer-bottom{align-items:start;gap:.4rem;flex-direction:column}}
@media(prefers-reduced-motion:reduce){html{scroll-behavior:auto}*,*::before,*::after{transition-duration:.01ms!important;animation-duration:.01ms!important}}

/* Marbella's photographs, menus and virtual visit */
.place-note{background:#e6f6fc;border-block:1px solid #ccebf5}
.place-note-inner{display:flex;align-items:center;gap:1.2rem;padding-block:1.2rem}
.place-note-symbol{color:var(--blue-dark);font-size:2rem;line-height:1}
.place-note p{margin:0;flex:1;font-weight:600}
.place-note a{color:var(--blue-dark);font-weight:700;white-space:nowrap}
.story-section{background:#fff}
.story-image{position:relative}
.image-caption{position:absolute;bottom:1rem;left:1rem;right:1rem;width:max-content;max-width:calc(100% - 2rem);padding:.5rem .8rem;background:#fff;color:var(--blue-dark);font-size:.8rem;font-weight:700}
.gallery-feature,.menus-feature,.journal-feature{background:var(--cream)}
.home-gallery-grid,.gallery-grid{display:grid;grid-template-columns:repeat(4,minmax(0,1fr));gap:1rem}
.home-gallery-grid .gallery-card:first-child{grid-column:span 2;grid-row:span 2}
.home-gallery-grid .gallery-card:first-child img{height:100%;min-height:430px}
.gallery-grid{grid-template-columns:repeat(3,minmax(0,1fr))}
.gallery-card{margin:0;position:relative;overflow:hidden;background:#dfeef3;min-height:205px}
.gallery-card img{width:100%;height:225px;object-fit:cover;transition:transform .3s}
.gallery-card:hover img{transform:scale(1.04)}
.gallery-grid .gallery-card img{height:280px}
.gallery-card figcaption{position:absolute;left:0;right:0;bottom:0;padding:1.4rem 1rem .75rem;color:#fff;font-weight:700;background:linear-gradient(transparent,rgba(0,0,0,.7));font-size:.84rem}
.food-grid,.pdf-grid{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:1.4rem}
.food-card,.pdf-card{background:#fff;border:1px solid var(--line);overflow:hidden;box-shadow:0 8px 22px rgba(20,49,58,.05)}
.food-card>img{width:100%;height:260px;object-fit:cover}
.food-card-body,.pdf-card-body{padding:1.35rem 1.45rem 1.55rem}
.food-card h3,.pdf-card h3{font-family:'Playfair Display',Georgia,serif;font-size:1.35rem;margin:0 0 .5rem}
.food-card p,.pdf-card p{color:var(--muted);font-size:.93rem;margin:0}
.pdf-card-image{position:relative;display:block;overflow:hidden}
.pdf-card-image img{width:100%;height:245px;object-fit:cover;transition:transform .3s}
.pdf-card:hover img{transform:scale(1.04)}
.pdf-card-icon{position:absolute;right:1rem;bottom:1rem;display:grid;place-items:center;width:42px;height:42px;background:#fff;color:var(--blue-dark);font-size:1.2rem;border-radius:50%}
.pdf-card .kicker{font-size:.65rem;margin-bottom:.55rem}
.pdf-card .text-link{margin-top:1rem}
.tour-feature-grid,.location-grid,.video-grid,.journal-feature-grid{display:grid;grid-template-columns:1fr 1fr;gap:clamp(2rem,6vw,5rem);align-items:center}
.tour-feature-image{position:relative}
.tour-feature-image img{width:100%;height:450px;object-fit:cover}
.tour-play{position:absolute;left:50%;top:50%;transform:translate(-50%,-50%);display:grid;place-items:center;width:100px;height:100px;border:2px solid #fff;border-radius:50%;background:rgba(0,116,156,.86);color:#fff;font-size:1.4rem;font-weight:700}
.tour-feature h2,.video-section h2,.location-section h2{margin:1rem 0}
.tour-feature-copy .button{margin-top:1rem}
.location-section{background:#effaff}
.location-copy address{font-style:normal;font-weight:700;margin:1.2rem 0;color:var(--ink)}
.location-photo{width:100%;height:190px;object-fit:cover;margin-top:1.6rem}
.map-frame{height:470px;background:#d7edf4;box-shadow:var(--shadow)}
.map-frame iframe,.map-frame img{width:100%;height:100%;border:0;object-fit:cover}
.location-compact .map-frame{height:390px}
.video-frame{aspect-ratio:16/9;background:#172a35;box-shadow:var(--shadow)}
.video-frame video,.video-frame iframe{display:block;width:100%;height:100%;border:0;object-fit:cover}
.journal-feature-grid>img{width:100%;height:360px;object-fit:cover}
.journal-feature h2{font-size:clamp(2rem,3.2vw,3rem);margin:1rem 0}
.pdf-page-heading{padding:3rem 0 2rem;background:#effaff}
.back-link{color:var(--blue-dark);font-weight:700}
.pdf-page-title{display:flex;align-items:end;justify-content:space-between;gap:2rem;margin-top:1.8rem}
.pdf-page-title h1{font-size:clamp(2.5rem,5vw,4.5rem);margin:.5rem 0}
.pdf-page-title p{margin:0;color:var(--muted)}
.flipbook-section{padding:2rem 0 4rem;background:#e7f2f7}
.flipbook-frame{min-height:620px;background:#fff;border:1px solid var(--line);box-shadow:var(--shadow)}
.flipbook-frame ._df_book{height:min(78vh,820px);min-height:560px}
.flipbook-help{color:var(--muted);font-size:.86rem;margin:1rem 0 0;text-align:center}
.tour-frame{width:100%;aspect-ratio:16/9;min-height:520px;background:#14242d;box-shadow:var(--shadow)}
.tour-frame iframe{display:block;width:100%;height:100%;border:0}
.tour-actions{display:flex;justify-content:space-between;align-items:center;gap:1rem;margin-top:1rem}
.tour-actions p{margin:0;color:var(--muted)}
@media(max-width:950px){.home-gallery-grid,.gallery-grid{grid-template-columns:repeat(2,minmax(0,1fr))}.home-gallery-grid .gallery-card:first-child{grid-column:auto;grid-row:auto}.home-gallery-grid .gallery-card:first-child img{height:225px;min-height:0}.food-grid,.pdf-grid{grid-template-columns:repeat(2,minmax(0,1fr))}}
@media(max-width:700px){.tour-feature-grid,.location-grid,.video-grid,.journal-feature-grid{grid-template-columns:1fr}.tour-feature-image img{height:340px}.map-frame,.location-compact .map-frame{height:360px}.tour-frame{min-height:380px}.pdf-page-title{align-items:start;flex-direction:column}.place-note-inner{flex-wrap:wrap}.place-note p{flex-basis:calc(100% - 4rem)}.place-note a{margin-left:3.2rem}}
@media(max-width:520px){.home-gallery-grid,.gallery-grid,.food-grid,.pdf-grid{grid-template-columns:1fr}.gallery-card img,.gallery-grid .gallery-card img,.home-gallery-grid .gallery-card:first-child img{height:250px}.food-card>img,.pdf-card-image img{height:240px}.tour-frame{aspect-ratio:4/5;min-height:400px}.tour-actions{align-items:start;flex-direction:column}.flipbook-frame{min-height:480px}.flipbook-frame ._df_book{height:66vh;min-height:460px}.map-frame,.location-compact .map-frame{height:300px}}
