:root{
--bg:#f7f4ee;
--surface:#fffdf8;
--surface-strong:#ffffff;
--text:#173042;
--muted:#5f7280;
--accent:#0b6e8a;
--accent-dark:#0a5469;
--line:#d9e3e8;
--shadow:0 18px 48px rgba(23,48,66,0.08);
--radius:18px;
--max:1120px;
}

*{box-sizing:border-box;}

html{scroll-behavior:smooth;}

body{
margin:0;
font-family:system-ui,-apple-system,Segoe UI,Roboto,Arial,sans-serif;
background:
radial-gradient(circle at top right,rgba(11,110,138,0.09),transparent 28%),
linear-gradient(180deg,#f8f6f1 0%,#f3efe7 100%);
color:var(--text);
line-height:1.65;
}

/* TEXT FIXES */

p,li,span,a,strong,figcaption,.meta{
word-break:normal;
overflow-wrap:break-word;
white-space:normal;
}

p{max-width:70ch;}

h1,h2,h3{
line-height:1.15;
margin:0 0 1rem;
word-break:normal;
overflow-wrap:break-word;
}

h1{font-size:clamp(2.2rem,5vw,4.4rem);}
h2{font-size:clamp(1.7rem,3.5vw,2.5rem);}
h3{font-size:1.2rem;}

a{
color:var(--accent);
text-decoration:none;
text-decoration-thickness:1px;
text-underline-offset:2px;
}

a:hover{color:var(--accent-dark);}

img{
max-width:100%;
height:auto;
display:block;
}

.container{
width:min(calc(100% - 2rem),var(--max));
margin:0 auto;
}

/* HEADER */

.site-header{
position:sticky;
top:0;
z-index:20;
backdrop-filter:blur(12px);
background:rgba(255,253,248,0.92);
border-bottom:1px solid rgba(217,227,232,0.9);
}

.header-inner{
display:flex;
align-items:center;
justify-content:space-between;
gap:1rem;
padding:1rem 0;
}

.brand{
font-size:1.3rem;
font-weight:700;
letter-spacing:0.03em;
color:var(--text);
}

.brand span{color:var(--accent);}

.nav{
display:flex;
flex-wrap:wrap;
gap:1rem;
font-size:0.95rem;
}

/* HERO */

.hero{padding:4.5rem 0 3rem;}

.hero-grid{
display:grid;
grid-template-columns:1.2fr 0.8fr;
gap:2rem;
align-items:center;
}

.eyebrow{
display:inline-block;
padding:0.35rem 0.8rem;
border-radius:999px;
background:rgba(11,110,138,0.1);
color:var(--accent-dark);
font-size:0.9rem;
letter-spacing:0.04em;
text-transform:uppercase;
}

.lead{
font-size:1.1rem;
color:var(--muted);
max-width:60ch;
}

/* CARDS */

.hero-card,.panel,.feature-card,.list-card,.cta{
background:#fff;
border:1px solid var(--line);
border-radius:var(--radius);
box-shadow:var(--shadow);
}

.hero-card{padding:1.6rem;}
.panel{padding:1.5rem;}

.hero-card ul,
.feature-card ul,
.panel ul,
.list-card ul{
padding-left:1.2rem;
}

.button-row{
display:flex;
flex-wrap:wrap;
gap:1rem;
margin-top:1.5rem;
}

/* HERO IMAGE */

.hero-media{margin-top:1.5rem;}

.hero-media img{
width:100%;
border-radius:var(--radius);
border:1px solid var(--line);
box-shadow:var(--shadow);
background:#fff;
}

.hero-media figcaption{
margin-top:0.7rem;
color:var(--muted);
font-size:0.95rem;
}

/* BUTTON */

.button{
display:inline-flex;
align-items:center;
justify-content:center;
padding:0.9rem 1.2rem;
border-radius:999px;
font-weight:700;
border:1px solid var(--accent);
}

.button.primary{
background:var(--accent);
color:#fff;
}

.button.secondary{
background:transparent;
color:var(--accent-dark);
}

/* SECTIONS */

.section{padding:1.5rem 0 3rem;}

.grid-3,
.grid-2,
.pages-grid{
display:grid;
gap:1.2rem;
}

.grid-3{grid-template-columns:repeat(3,minmax(0,1fr));}
.grid-2,.pages-grid{grid-template-columns:repeat(2,minmax(0,1fr));}

.feature-card,
.list-card,
.panel,
.cta{
padding:1.4rem;
}

.feature-card strong,
.list-card strong{
color:var(--accent-dark);
}

/* CONTENT CARDS */

.content-grid{
display:grid;
gap:1.2rem;
grid-template-columns:repeat(3,minmax(0,1fr));
margin-top:1.2rem;
}

.content-card,
.map-card,
.faq-item,
.stay-card,
.links-card{
background:#fff;
border:1px solid var(--line);
border-radius:var(--radius);
box-shadow:var(--shadow);
padding:1.25rem;
}

.content-card img,
.map-card img{
width:100%;
border-radius:14px;
border:1px solid var(--line);
margin-bottom:0.8rem;
}

/* RANKING LIST */

.ranking{
display:grid;
gap:1rem;
margin-top:1rem;
}

.rank-item{
display:flex;
gap:14px;
padding:1.2rem;
border-radius:16px;
border:1px solid var(--line);
background:var(--surface);
align-items:flex-start;
transition:0.2s ease;
}

.rank-item:hover{
transform:translateY(-3px);
box-shadow:0 12px 30px rgba(0,0,0,0.06);
}

.rank-item strong{
display:block;
font-size:1.1rem;
margin-bottom:6px;
}

.rank-item p{margin:6px 0;}

.rank-item.top{
border-color:rgba(11,110,138,0.35);
background:linear-gradient(
180deg,
rgba(11,110,138,0.1),
rgba(255,253,248,0.95)
);
}

/* NUMBER BADGE */

.rank-number{
display:flex;
align-items:center;
justify-content:center;
width:42px;
height:42px;
border-radius:50%;
background:var(--accent);
color:#fff;
font-weight:700;
font-size:1rem;
flex-shrink:0;
}

/* LINKS */

.inline-links{
display:flex;
flex-wrap:wrap;
gap:0.8rem 1rem;
}

.inline-links a{
font-weight:700;
}

.meta{
color:var(--muted);
font-size:0.95rem;
}

/* FOOTER */

.site-footer{
padding:2rem 0 3rem;
color:var(--muted);
font-size:0.95rem;
}

.site-footer p{
margin:0.45rem 0;
}

.site-footer .container{
border-top:1px solid var(--line);
padding-top:1.5rem;
}

.footer-trust{
font-size:0.92rem;
}

/* BREADCRUMB */

.breadcrumbs{
font-size:0.95rem;
color:var(--muted);
margin-bottom:1rem;
}

/* PAGE HERO */

.page-hero{padding:3rem 0 2rem;}

/* PAGE LAYOUT */

.page-layout{
display:grid;
grid-template-columns:minmax(0,1fr) 320px;
gap:1.5rem;
}

.sidebar{
display:grid;
gap:1.2rem;
}

/* RESPONSIVE */

@media(max-width:900px){

.hero-grid,
.page-layout,
.grid-3,
.grid-2,
.pages-grid,
.content-grid{
grid-template-columns:1fr;
}

.site-header{position:static;}

.rank-item{
flex-direction:row;
}

}
/* HOTEL RANKING LIST FIX */

.ranking{
display:flex;
flex-direction:column;
gap:1.2rem;
margin-top:1.2rem;
}

.rank-item{
display:grid;
grid-template-columns:42px 1fr;
gap:14px;
padding:1.2rem;
border-radius:16px;
border:1px solid var(--line);
background:var(--surface);
align-items:start;
}

.rank-item strong{
display:block;
font-size:1.15rem;
margin-bottom:6px;
color:var(--accent-dark);
}

.rank-item p{
margin:6px 0;
}

.rank-item a{
font-weight:700;
}

.rank-item.top{
border-color:rgba(11,110,138,0.35);
background:linear-gradient(
180deg,
rgba(11,110,138,0.1),
rgba(255,253,248,0.95)
);
}

.rank-number{
display:flex;
align-items:center;
justify-content:center;
width:42px;
height:42px;
border-radius:50%;
background:var(--accent);
color:#fff;
font-weight:700;
font-size:1rem;
flex-shrink:0;
}
 .rank-content { display: inline; }

 .tags {
   display: flex;
   flex-wrap: wrap;
   gap: 6px;
   margin: 0.5rem 0 0.65rem;
 }

.tags span {
   background: #eef6f9;
   border: 1px solid var(--line);
   padding: 4px 8px;
   font-size: 0.8rem;
   border-radius: 6px;
   color: var(--accent-dark);
 }

.mockup-grid{
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:1.2rem;
margin-top:1.2rem;
}

.phone-mockup{
background:linear-gradient(180deg,#0f2436 0%,#18384d 100%);
border-radius:32px;
padding:14px;
box-shadow:0 26px 60px rgba(23,48,66,0.2);
border:1px solid rgba(23,48,66,0.14);
}

.phone-screen{
background:linear-gradient(180deg,#f8fafc 0%,#eef4f8 100%);
border-radius:24px;
padding:1rem;
min-height:420px;
position:relative;
overflow:hidden;
}

.phone-notch{
width:96px;
height:18px;
border-radius:999px;
background:#0b1824;
margin:0 auto 1rem;
}

.phone-chip{
display:inline-block;
padding:0.28rem 0.7rem;
border-radius:999px;
background:rgba(11,110,138,0.12);
color:var(--accent-dark);
font-size:0.78rem;
font-weight:700;
letter-spacing:0.03em;
text-transform:uppercase;
}

.phone-title{
font-size:1.15rem;
margin:0.8rem 0 0.4rem;
color:var(--text);
}

.phone-copy{
font-size:0.92rem;
color:var(--muted);
margin:0;
}

.phone-panel{
margin-top:0.95rem;
padding:0.9rem;
border-radius:18px;
background:#fff;
border:1px solid var(--line);
box-shadow:0 10px 26px rgba(23,48,66,0.06);
}

.phone-panel strong{
display:block;
color:var(--accent-dark);
margin-bottom:0.35rem;
}

.phone-list{
margin:0.55rem 0 0;
padding-left:1rem;
font-size:0.88rem;
color:var(--muted);
}

.phone-list li+li{
margin-top:0.3rem;
}

.phone-stat-row{
display:grid;
grid-template-columns:repeat(2,minmax(0,1fr));
gap:0.7rem;
margin-top:0.95rem;
}

.phone-stat{
padding:0.8rem;
border-radius:16px;
background:#fff;
border:1px solid var(--line);
text-align:center;
}

.phone-stat b{
display:block;
font-size:1.1rem;
color:var(--accent-dark);
}

.phone-stat span{
display:block;
font-size:0.82rem;
color:var(--muted);
margin-top:0.18rem;
}

.phone-calendar{
margin-top:0.95rem;
padding:0.9rem;
border-radius:18px;
background:#fff;
border:1px solid var(--line);
}

.phone-calendar-grid{
display:grid;
grid-template-columns:repeat(7,minmax(0,1fr));
gap:0.35rem;
margin-top:0.55rem;
}

.phone-day{
aspect-ratio:1;
border-radius:10px;
display:flex;
align-items:center;
justify-content:center;
font-size:0.78rem;
background:#f6f8fa;
color:#607281;
}

.phone-day.booked{
background:rgba(11,110,138,0.16);
color:var(--accent-dark);
font-weight:700;
}

.phone-qr{
margin-top:1rem;
display:grid;
place-items:center;
padding:1rem;
border-radius:18px;
background:#fff;
border:1px solid var(--line);
}

.phone-qr-box{
width:132px;
height:132px;
border-radius:18px;
background:
linear-gradient(90deg,#0f2436 14px,transparent 14px) 0 0/44px 44px,
linear-gradient(#0f2436 14px,transparent 14px) 0 0/44px 44px,
linear-gradient(90deg,transparent 30px,#0f2436 30px,#0f2436 44px) 0 0/44px 44px,
linear-gradient(transparent 30px,#0f2436 30px,#0f2436 44px) 0 0/44px 44px,
linear-gradient(90deg,#0f2436 8px,transparent 8px) 6px 6px/22px 22px,
linear-gradient(#0f2436 8px,transparent 8px) 6px 6px/22px 22px,
linear-gradient(90deg,transparent 14px,#0f2436 14px,#0f2436 22px) 6px 6px/22px 22px,
linear-gradient(transparent 14px,#0f2436 14px,#0f2436 22px) 6px 6px/22px 22px,
linear-gradient(135deg,#dbe8ee 0%,#f6fbff 100%);
border:10px solid #f7fbfd;
box-shadow:inset 0 0 0 1px rgba(23,48,66,0.08);
}

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

.app-gallery{
display:grid;
grid-template-columns:repeat(3,minmax(0,1fr));
gap:1.2rem;
margin-top:1.2rem;
}

.app-shot{
background:#fff;
border:1px solid var(--line);
border-radius:24px;
box-shadow:var(--shadow);
padding:1rem;
}

.app-shot-media{
position:relative;
}

.app-shot-tag{
position:absolute;
top:14px;
left:14px;
display:inline-flex;
align-items:center;
padding:0.38rem 0.7rem;
border-radius:999px;
background:rgba(8,19,29,0.82);
color:#fff;
font-size:0.75rem;
font-weight:700;
letter-spacing:0.04em;
text-transform:uppercase;
backdrop-filter:blur(8px);
}

.app-shot img{
width:100%;
border-radius:20px;
border:1px solid var(--line);
background:#fff;
margin-bottom:0.9rem;
}

.app-shot h3{
font-size:1.08rem;
margin-bottom:0.45rem;
color:var(--accent-dark);
}

.app-shot p{
margin:0;
font-size:0.95rem;
color:var(--muted);
}

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